feat:使用niu包,添加新玩法牛牛拍卖行 (#1098)

This commit is contained in:
宇~
2025-01-20 14:45:02 +08:00
committed by GitHub
parent 2c5596cd96
commit 70ebb03434
5 changed files with 217 additions and 875 deletions

View File

@@ -1,41 +1,34 @@
package niuniu
import (
"bytes"
"fmt"
"image"
"image/png"
"net/http"
"github.com/FloatTech/AnimeAPI/niu"
"github.com/FloatTech/floatbox/file"
"github.com/FloatTech/rendercard"
"github.com/FloatTech/zbputils/control"
"github.com/FloatTech/zbputils/img/text"
zero "github.com/wdvxdr1123/ZeroBot"
)
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)
func processRankingImg(allUsers niu.BaseInfos, ctx *zero.Ctx, t bool) ([]byte, 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 = "牛牛长度"
s := "牛牛长度"
title := "牛牛长度排行"
if !t {
s = "牛牛深度"
title = "牛牛深度排行"
}
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))
resp, err := http.Get(fmt.Sprintf("https://q1.qlogo.cn/g?b=qq&nk=%d&s=100", user.UID))
if err != nil {
return nil, err
}
@@ -46,11 +39,16 @@ func (allUsers drawer) draw(t bool) (img image.Image, err error) {
}
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),
TopLeftText: ctx.CardOrNickName(user.UID),
BottomLeftText: fmt.Sprintf("QQ:%d", user.UID),
RightText: fmt.Sprintf("%s:%.2fcm", s, user.Length),
}
}
img, err = rendercard.DrawRankingCard(fontbyte, title, ri)
return
img, err := rendercard.DrawRankingCard(fontByte, title, ri)
if err != nil {
return nil, err
}
var buf bytes.Buffer
err = png.Encode(&buf, img)
return buf.Bytes(), err
}