2024-10-08 01:34:26 +08:00

68 lines
1.6 KiB
Go

package scoresaber
import (
"strconv"
"git.lxtend.com/qqbot/handler"
"git.lxtend.com/qqbot/model"
"git.lxtend.com/qqbot/service/scoresaber"
)
var scoresaberInstance *scoresaber.SSQuery
func init() {
scoresaberInstance = scoresaber.NewSSQuery()
handler.RegisterHandler("查ss", getScore)
handler.RegisterHandler("绑定ss", bindSS)
handler.RegisterHandler("解绑ss", unbindSS)
handler.RegisterHandler("最新ss", getRecentScore)
}
func getScore(msg model.Message) (reply model.Reply) {
return model.Reply{
ReplyMsg: scoresaberInstance.GetScore(strconv.Itoa(int(msg.UserId))),
ReferOriginMsg: true,
FromMsg: msg,
}
}
func bindSS(msg model.Message) (reply model.Reply) {
return model.Reply{
ReplyMsg: scoresaberInstance.BindSS(strconv.Itoa(int(msg.UserId)), msg.Msg[len("绑定ss "):]),
ReferOriginMsg: true,
FromMsg: msg,
}
}
func unbindSS(msg model.Message) (reply model.Reply) {
return model.Reply{
ReplyMsg: scoresaberInstance.UnbindSS(strconv.Itoa(int(msg.UserId))),
ReferOriginMsg: true,
FromMsg: msg,
}
}
func getRecentScore(msg model.Message) (reply model.Reply) {
count := 1
if len(msg.Msg) > len("最新ss ") {
var err error
count, err = strconv.Atoi(msg.Msg[len("最新ss "):])
if err != nil {
return model.Reply{
ReplyMsg: "",
ReferOriginMsg: true,
FromMsg: msg,
}
}
}
scoreMsg := ""
for _, v := range scoresaber.ScoresManager.GetRecentScores(count) {
scoreMsg += v.ToString() + "\n"
}
return model.Reply{
ReplyMsg: scoreMsg,
ReferOriginMsg: true,
FromMsg: msg,
}
}