feat: add help inform messages for bot commands and improve error handling in player data fetching

This commit is contained in:
lixiangwuxian 2024-12-28 22:32:05 +08:00
parent ff8d077f1c
commit a1fcfe4366
3 changed files with 61 additions and 52 deletions

View File

@ -17,10 +17,15 @@ var hasVaildBuild = true
func init() { func init() {
handler.RegisterHandler("/重启bot", restart, constants.LEVEL_ADMIN) handler.RegisterHandler("/重启bot", restart, constants.LEVEL_ADMIN)
handler.RegisterHelpInform("/重启bot", "热更新", "重启bot")
handler.RegisterHandler("/构建bot", build, constants.LEVEL_ADMIN) handler.RegisterHandler("/构建bot", build, constants.LEVEL_ADMIN)
handler.RegisterHelpInform("/构建bot", "热更新", "构建bot")
handler.RegisterHandler("/构建重启", buildAndRestart, constants.LEVEL_ADMIN) handler.RegisterHandler("/构建重启", buildAndRestart, constants.LEVEL_ADMIN)
handler.RegisterHandler("/gitpull", pullCode, constants.LEVEL_ADMIN) handler.RegisterHelpInform("/构建重启", "热更新", "构建并重启")
handler.RegisterHandler("/gitpull", pullCode, constants.LEVEL_USER)
handler.RegisterHelpInform("/gitpull", "热更新", "拉取最新代码")
handler.RegisterHandler("/shutdown", shutdown, constants.LEVEL_ADMIN) handler.RegisterHandler("/shutdown", shutdown, constants.LEVEL_ADMIN)
handler.RegisterHelpInform("/shutdown", "热更新", "结束程序")
} }
func restart(msg model.Message) model.Reply { func restart(msg model.Message) model.Reply {

View File

@ -138,10 +138,14 @@ func (bl *blQuery) GetScore(qqId string) (reply string, err error) {
} }
// 查询玩家数据 // 查询玩家数据
data, _ := FetchPlayerData(blId) data, err := FetchPlayerData(blId)
if data == nil { if data == nil && err == nil {
return "查询出错,服务器返回了空数据", errors.New("查询出错,服务器返回了空数据") return "查询出错,服务器返回了空数据", errors.New("查询出错,服务器返回了空数据")
} }
if err != nil {
log.Print(err)
return "查询出错,服务器返回了空数据" + err.Error(), err
}
// 构建 PlayerDataLite 结构体 // 构建 PlayerDataLite 结构体
dataLite := PlayerDataLite{ dataLite := PlayerDataLite{

View File

@ -141,18 +141,18 @@ type ModifierValues struct {
} }
type Player struct { type Player struct {
ID string `json:"id"` ID string `json:"id"`
Name string `json:"name"` Name string `json:"name"`
Platform string `json:"platform"` Platform string `json:"platform"`
Avatar string `json:"avatar"` Avatar string `json:"avatar"`
Country string `json:"country"` Country string `json:"country"`
Alias *string `json:"alias"` Alias *string `json:"alias"`
Bot bool `json:"bot"` Bot bool `json:"bot"`
Pp float64 `json:"pp"` Pp float64 `json:"pp"`
Rank int `json:"rank"` Rank int `json:"rank"`
CountryRank int `json:"countryRank"` CountryRank int `json:"countryRank"`
Role string `json:"role"` Role string `json:"role"`
Socials *string `json:"socials"` // Socials *string `json:"socials"`
ContextExtensions *string `json:"contextExtensions"` ContextExtensions *string `json:"contextExtensions"`
} }
@ -238,43 +238,43 @@ func timeConvert(duration time.Duration) string {
// ScoreStats 存储分数统计信息 // ScoreStats 存储分数统计信息
type PlayerData struct { type PlayerData struct {
MapperID int `json:"mapperId"` MapperID int `json:"mapperId"`
Banned bool `json:"banned"` Banned bool `json:"banned"`
Inactive bool `json:"inactive"` Inactive bool `json:"inactive"`
BanDescription *string `json:"banDescription"` BanDescription *string `json:"banDescription"`
ExternalProfileURL string `json:"externalProfileUrl"` ExternalProfileURL string `json:"externalProfileUrl"`
RichBioTimeset int64 `json:"richBioTimeset"` RichBioTimeset int64 `json:"richBioTimeset"`
SpeedrunStart int64 `json:"speedrunStart"` SpeedrunStart int64 `json:"speedrunStart"`
LinkedIDs LinkedIDs `json:"linkedIds"` LinkedIDs LinkedIDs `json:"linkedIds"`
History *string `json:"history"` History *string `json:"history"`
Badges []string `json:"badges"` Badges []string `json:"badges"`
PinnedScores *string `json:"pinnedScores"` PinnedScores *string `json:"pinnedScores"`
Changes []Change `json:"changes"` Changes []Change `json:"changes"`
AccPp float64 `json:"accPp"` AccPp float64 `json:"accPp"`
PassPp float64 `json:"passPp"` PassPp float64 `json:"passPp"`
TechPp float64 `json:"techPp"` TechPp float64 `json:"techPp"`
ScoreStats ScoreStats `json:"scoreStats"` ScoreStats ScoreStats `json:"scoreStats"`
LastWeekPp float64 `json:"lastWeekPp"` LastWeekPp float64 `json:"lastWeekPp"`
LastWeekRank int `json:"lastWeekRank"` LastWeekRank int `json:"lastWeekRank"`
LastWeekCountryRank int `json:"lastWeekCountryRank"` LastWeekCountryRank int `json:"lastWeekCountryRank"`
ExtensionID int `json:"extensionId"` ExtensionID int `json:"extensionId"`
ID string `json:"id"` ID string `json:"id"`
Name string `json:"name"` Name string `json:"name"`
Platform string `json:"platform"` Platform string `json:"platform"`
Avatar string `json:"avatar"` Avatar string `json:"avatar"`
Country string `json:"country"` Country string `json:"country"`
Alias *string `json:"alias"` Alias *string `json:"alias"`
Bot bool `json:"bot"` Bot bool `json:"bot"`
Pp float64 `json:"pp"` Pp float64 `json:"pp"`
Rank int `json:"rank"` Rank int `json:"rank"`
CountryRank int `json:"countryRank"` CountryRank int `json:"countryRank"`
Role string `json:"role"` Role string `json:"role"`
Socials []string `json:"socials"` // Socials []string `json:"socials"`
ContextExtensions *string `json:"contextExtensions"` ContextExtensions *string `json:"contextExtensions"`
PatreonFeatures *string `json:"patreonFeatures"` PatreonFeatures *string `json:"patreonFeatures"`
ProfileSettings ProfileSettings `json:"profileSettings"` ProfileSettings ProfileSettings `json:"profileSettings"`
ClanOrder string `json:"clanOrder"` ClanOrder string `json:"clanOrder"`
Clans []string `json:"clans"` Clans []string `json:"clans"`
} }
type LinkedIDs struct { type LinkedIDs struct {