68 lines
1.6 KiB
Go
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,
|
|
}
|
|
}
|