refactor: 重构ss输出,重构url解析

This commit is contained in:
lixiangwuxian
2024-10-17 01:51:00 +08:00
parent 48891fbd0a
commit d4b8e7c11f
9 changed files with 241 additions and 78 deletions

View File

@@ -51,6 +51,7 @@ func init() {
weight REAL,
modifiers VARCHAR(255),
multiplier REAL,
rank INT,
bad_cuts INT,
missed_notes INT,
max_combo INT,
@@ -129,7 +130,7 @@ func (ss *ssQuery) UnbindSS(qqId string) (reply string) {
return "解绑成功,重新绑定请输入\"绑定ss [ssId]\""
}
func (ss *ssQuery) GetScore(qqId string) (reply string, err error) {
func (ss *ssQuery) GetScore(ssId string) (reply string, err error) {
db := sqlite3.GetDB() // 假设 sqlite3.GetDB() 返回 *sqlx.DB
tx, err := db.Beginx()
if err != nil {
@@ -138,17 +139,10 @@ func (ss *ssQuery) GetScore(qqId string) (reply string, err error) {
}
defer tx.Rollback()
// 检查是否已绑定
var ssId string
err = tx.Get(&ssId, "SELECT ssid FROM ssBind WHERE qqid = ?", qqId)
if err != nil {
return "您未绑定ss账号输入\"绑定ss [ssId]\"绑定", nil
}
// 查询玩家数据
data, _ := FetchPlayerData(ssId)
data, err := FetchPlayerData(ssId)
if data == nil {
return "查询出错,服务器返回了空数据", errors.New("查询出错,服务器返回了空数据")
return "查询出错,报错如下" + err.Error(), errors.New("查询出错,报错如下" + err.Error())
}
// 构建 PlayerDataLite 结构体
@@ -209,6 +203,16 @@ func (ss *ssQuery) GetScore(qqId string) (reply string, err error) {
return data.ToString(), nil
}
func (ss *ssQuery) GetScoreWithoutUpdate(ssId string) (reply string, err error) {
// 查询玩家数据
data, err := FetchPlayerData(ssId)
if data == nil {
return "查询出错,报错如下" + err.Error(), errors.New("查询出错,报错如下" + err.Error())
}
// 返回当前数据的字符串表示
return data.ToString(), nil
}
func (ss *ssQuery) SaveRecord(cmdData CommandData) {
db := sqlite3.GetDB() // 假设 sqlite3.GetDB() 返回 *sqlx.DB
tx, err := db.Beginx()
@@ -235,6 +239,7 @@ func (ss *ssQuery) SaveRecord(cmdData CommandData) {
Weight: cmdData.Score.Weight,
Modifiers: cmdData.Score.Modifiers,
Multiplier: cmdData.Score.Multiplier,
Rank: cmdData.Score.Rank,
BadCuts: cmdData.Score.BadCuts,
Score: cmdData.Score.ModifiedScore,
MaxScore: cmdData.Leaderboard.MaxScore,
@@ -291,7 +296,7 @@ func (ss *ssQuery) GetRecentScores(count int, qqId string) ([]RecordDataLite, er
}
defer tx.Rollback()
ssId, err := getSSID(qqId)
ssId, err := GetSSID(qqId)
if err != nil {
return nil, err
}