88 lines
1.9 KiB
Go
88 lines
1.9 KiB
Go
package vip
|
|
|
|
import (
|
|
"context"
|
|
"net/url"
|
|
|
|
"go-common/app/interface/main/reply/conf"
|
|
"go-common/app/interface/main/reply/model/vip"
|
|
"go-common/library/log"
|
|
bm "go-common/library/net/http/blademaster"
|
|
)
|
|
|
|
const (
|
|
_emojiURL = "/internal/v1/emoji/list"
|
|
)
|
|
|
|
type result struct {
|
|
Code int `json:"code"`
|
|
Data []*struct {
|
|
ID int64 `json:"id"`
|
|
Name string `json:"name"`
|
|
URL string `json:"path"`
|
|
State int8 `json:"deleted"`
|
|
Emojis []*struct {
|
|
ID int64 `json:"id"`
|
|
Name string `json:"name"`
|
|
URL string `json:"path"`
|
|
State int8 `json:"deleted"`
|
|
Remark string `json:"remark"`
|
|
} `json:"emojiList"`
|
|
} `json:"data"`
|
|
}
|
|
|
|
// Dao dao.
|
|
type Dao struct {
|
|
emojiURL string
|
|
httpClient *bm.Client
|
|
}
|
|
|
|
// New new a dao and return.
|
|
func New(c *conf.Config) *Dao {
|
|
d := &Dao{
|
|
httpClient: bm.NewClient(c.HTTPClient),
|
|
emojiURL: c.Reply.VipURL + _emojiURL,
|
|
}
|
|
return d
|
|
}
|
|
|
|
// Emoji return emojis to cache
|
|
func (dao *Dao) Emoji(c context.Context) (emjs []*vip.Emoji, emjM map[string]int64, err error) {
|
|
var res result
|
|
params := url.Values{}
|
|
if err = dao.httpClient.Get(c, dao.emojiURL, "", params, &res); err != nil {
|
|
log.Error("vip url(%s) error(%v)", dao.emojiURL+"?"+params.Encode(), err)
|
|
return
|
|
}
|
|
if res.Code != 0 {
|
|
log.Error("vip url(%s) error(%v)", dao.emojiURL+"?"+params.Encode(), res.Code)
|
|
return
|
|
}
|
|
emjs = make([]*vip.Emoji, 0, len(res.Data))
|
|
emjM = make(map[string]int64)
|
|
for _, d := range res.Data {
|
|
var tmp = &vip.Emoji{
|
|
Pid: d.ID,
|
|
Pname: d.Name,
|
|
Purl: d.URL,
|
|
Pstate: d.State,
|
|
}
|
|
emoTmps := make([]*vip.Face, 0, len(d.Emojis))
|
|
for _, e := range d.Emojis {
|
|
var emoTmp = &vip.Face{
|
|
ID: e.ID,
|
|
Name: e.Name,
|
|
URL: e.URL,
|
|
State: e.State,
|
|
}
|
|
emoTmps = append(emoTmps, emoTmp)
|
|
if d.State == 0 && e.State == 0 {
|
|
emjM[e.Name] = e.ID
|
|
}
|
|
}
|
|
tmp.Emojis = emoTmps
|
|
emjs = append(emjs, tmp)
|
|
}
|
|
return
|
|
}
|