diff --git a/handler/beatleader/beatleader.go b/handler/beatleader/beatleader.go index 3d987c8..1495f45 100644 --- a/handler/beatleader/beatleader.go +++ b/handler/beatleader/beatleader.go @@ -20,6 +20,8 @@ import ( func init() { handler.RegisterHandler("查bl", getMyBLPic, constants.LEVEL_USER) handler.RegisterHelpInform("查bl", "beatleader", "查bl 查看您的最新分数") + handler.RegisterHandler("查bll", getMyBLPic, constants.LEVEL_USER) + handler.RegisterHelpInform("查bll", "beatleader", "查bll 查看您的最新分数(仅取第一帧)") handler.RegisterHandler("绑定bl", bindBL, constants.LEVEL_USER) handler.RegisterHelpInform("绑定bl", "beatleader", "绑定bl 绑定您的beatleader账号") handler.RegisterHandler("解绑bl", unbindBL, constants.LEVEL_USER) @@ -174,6 +176,11 @@ func getMyBLPic(msg model.Message) (reply *model.Reply) { ) tokens := util.SplitN(msg.RawMsg, 2) + + onlyFirstFrame := false + if strings.HasPrefix(msg.RawMsg, "查bll") { + onlyFirstFrame = true + } var userIdStr string var noUpdate bool = false if len(tokens) == 2 { @@ -207,9 +214,9 @@ func getMyBLPic(msg model.Message) (reply *model.Reply) { } if lastData != nil { - resultStr = data.LastDiffToImage(*lastData) + resultStr = data.LastDiffToImage(*lastData, onlyFirstFrame) } else { - resultStr = data.LastDiffToImage(*data) + resultStr = data.LastDiffToImage(*data, onlyFirstFrame) } imageMsg := message.ImageMessage{ diff --git a/handler/scoresaber/score.go b/handler/scoresaber/score.go index aee1561..9cc112e 100644 --- a/handler/scoresaber/score.go +++ b/handler/scoresaber/score.go @@ -19,6 +19,8 @@ import ( func init() { handler.RegisterHandler("查ss", getMySSPic, constants.LEVEL_USER) handler.RegisterHelpInform("查ss", "scoresaber", " 查看您的最新分数") + handler.RegisterHandler("查sss", getMySSPic, constants.LEVEL_USER) + handler.RegisterHelpInform("查sss", "scoresaber", "查sss 查看您的最新分数(仅取第一帧)") handler.RegisterHandler("绑定ss", bindSS, constants.LEVEL_USER) handler.RegisterHelpInform("绑定ss", "scoresaber", "绑定您的scoresaber账号") handler.RegisterHandler("解绑ss", unbindSS, constants.LEVEL_USER) @@ -164,6 +166,10 @@ func ssPlusN(msg model.Message) (reply *model.Reply) { } func getMySSPic(msg model.Message) (reply *model.Reply) { + onlyFirstFrame := false + if strings.HasPrefix(msg.RawMsg, "查sss") { + onlyFirstFrame = true + } var ( resultStr string err error @@ -203,9 +209,9 @@ func getMySSPic(msg model.Message) (reply *model.Reply) { } } if lastData != nil { - resultStr = data.LastDiffToImage(*lastData) + resultStr = data.LastDiffToImage(*lastData, onlyFirstFrame) } else { - resultStr = data.LastDiffToImage(*data) + resultStr = data.LastDiffToImage(*data, onlyFirstFrame) } imageMsg := message.ImageMessage{ diff --git a/service/beatleader/model.go b/service/beatleader/model.go index 9a0a34e..4a4ae78 100644 --- a/service/beatleader/model.go +++ b/service/beatleader/model.go @@ -505,7 +505,7 @@ func (p PlayerDataLite) LastDiffToString(lastQueryData PlayerDataLite) string { return sb.String() } -func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string { +func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite, onlyFirstFrame bool) string { filePath, err := util.DownloadFile(p.Avatar, "/tmp/qqbot", false) if err != nil { log.Default().Printf("下载头像失败,url:%s,err:%v", p.Avatar, err) @@ -607,7 +607,7 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string { Position: image.Point{X: minX - 5, Y: minY - 5}, } baseboard.AddSprite(&backgroundSpirit) - if len(avatarSpirit.Images) > 1 { + if len(avatarSpirit.Images) > 1 && !onlyFirstFrame { if err := baseboard.SaveToGif(util.GenTempFilePath("cbl.gif")); err != nil { log.Default().Printf("保存图片失败,err:%v", err) } diff --git a/service/scoresaber/model.go b/service/scoresaber/model.go index d8133f4..c73c2d6 100644 --- a/service/scoresaber/model.go +++ b/service/scoresaber/model.go @@ -324,7 +324,7 @@ func (p PlayerData) LastDiffToString(lastDayQueryData PlayerDataLite) string { p.ScoreStats.ReplaysWatched) } -func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string { +func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite, onlyFirstFrame bool) string { filePath, err := util.DownloadFile(p.ProfilePicture, "/tmp/qqbot", false) if err != nil { log.Default().Printf("下载头像失败,url:%s,err:%v", p.ProfilePicture, err) @@ -426,7 +426,7 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite) string { Position: image.Point{X: minX - 5, Y: minY - 5}, } baseboard.AddSprite(&backgroundSpirit) - if len(avatarSpirit.Images) > 1 { + if len(avatarSpirit.Images) > 1 && !onlyFirstFrame { if err := baseboard.SaveToGif(util.GenTempFilePath("css.gif")); err != nil { log.Default().Printf("保存图片失败,err:%v", err) }