ZeroBot-Plugin/plugin/niuniu/draw.go
github-actions[bot] 814fa0ce33
chore(lint): 改进代码样式 (#1040)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-21 00:12:03 +09:00

57 lines
1.2 KiB
Go

package niuniu
import (
"fmt"
"image"
"net/http"
"github.com/FloatTech/floatbox/file"
"github.com/FloatTech/rendercard"
"github.com/FloatTech/zbputils/control"
"github.com/FloatTech/zbputils/img/text"
)
type drawUserRanking struct {
name string
user *userInfo
}
type drawer []drawUserRanking
func (allUsers drawer) draw(t bool) (img image.Image, err error) {
fontbyte, err := file.GetLazyData(text.GlowSansFontFile, control.Md5File, true)
if err != nil {
return nil, err
}
var (
title string
s string
)
title = "牛牛深度排行"
s = "牛牛深度"
if t {
title = "牛牛长度排行"
s = "牛牛长度"
}
ri := make([]*rendercard.RankInfo, len(allUsers))
for i, user := range allUsers {
resp, err := http.Get(fmt.Sprintf("https://q1.qlogo.cn/g?b=qq&nk=%d&s=100", user.user.UID))
if err != nil {
return nil, err
}
decode, _, err := image.Decode(resp.Body)
_ = resp.Body.Close()
if err != nil {
return nil, err
}
ri[i] = &rendercard.RankInfo{
Avatar: decode,
TopLeftText: user.name,
BottomLeftText: fmt.Sprintf("QQ:%d", user.user.UID),
RightText: fmt.Sprintf("%s:%.2fcm", s, user.user.Length),
}
}
img, err = rendercard.DrawRankingCard(fontbyte, title, ri)
return
}