mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-19 05:30:07 +08:00
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
57 lines
1.2 KiB
Go
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
|
|
}
|