12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package main
- import (
- "encoding/json"
- "io/ioutil"
- "net/http"
- "net/url"
- )
- type Emojis []Emoji
- type Emoji struct {
- Shortcode string `json:"shortcode"`
- Url string `json:"url"`
- StaticUrl string `json:"static_url"`
- VisibleInPicker bool `json:"visible_in_picker"`
- Category string `json:"category"`
- }
- func NewEmojiList(domain string) (Emojis, error) {
- emojis := Emojis{}
- bytes, err := fetchCustomEmojis(domain)
- if err != nil {
- return emojis, err
- }
- if err := json.Unmarshal(bytes, &emojis); err != nil {
- return emojis, err
- }
- return emojis, nil
- }
- func fetchCustomEmojis(domain string) ([]byte, error) {
- u, err := url.Parse("https://example.com/api/v1/custom_emojis")
- if err != nil {
- return nil, err
- }
- u.Host = domain
- resp, err := http.Get(u.String())
- if err != nil {
- return nil, err
- }
- defer resp.Body.Close()
- return ioutil.ReadAll(resp.Body)
- }
|