fix extra

This commit is contained in:
源文雨
2023-04-08 17:18:36 +08:00
parent 635eb9832a
commit 5c8ead8b1d
14 changed files with 187 additions and 188 deletions

View File

@@ -22,14 +22,15 @@ var (
ctx.SendChain(message.Text("[steam] ERROR: ", err))
return false
}
if err = database.db.Create(TableListenPlayer, &player{}); err != nil {
if err = database.db.Create(tableListenPlayer, &player{}); err != nil {
ctx.SendChain(message.Text("[steam] ERROR: ", err))
return false
}
// 校验密钥是否初始化
m := ctx.State["manager"].(*ctrl.Control[*zero.Ctx])
_ = m.Manager.Response(steamapikeygid)
_ = m.Manager.GetExtra(steamapikeygid, &apiKey)
apiKeyMu.Lock()
defer apiKeyMu.Unlock()
_ = m.GetExtra(&apiKey)
if apiKey == "" {
ctx.SendChain(message.Text("ERROR: 未设置steam apikey"))
return false
@@ -45,8 +46,8 @@ type streamDB struct {
}
const (
// TableListenPlayer 存储查询用户信息
TableListenPlayer = "listen_player"
// tableListenPlayer 存储查询用户信息
tableListenPlayer = "listen_player"
)
// player 用户状态存储结构体
@@ -60,58 +61,46 @@ type player struct {
}
// update 如果主键不存在则插入一条新的数据,如果主键存在直接复写
func (sql *streamDB) update(dbInfo *player) error {
sql.Lock()
defer sql.Unlock()
return sql.db.Insert(TableListenPlayer, dbInfo)
func (sdb *streamDB) update(dbInfo *player) error {
sdb.Lock()
defer sdb.Unlock()
return sdb.db.Insert(tableListenPlayer, dbInfo)
}
// find 根据主键查信息
func (sql *streamDB) find(steamID int64) (dbInfo player, err error) {
sql.Lock()
defer sql.Unlock()
func (sdb *streamDB) find(steamID int64) (dbInfo player, err error) {
sdb.Lock()
defer sdb.Unlock()
condition := "where steam_id = " + strconv.FormatInt(steamID, 10)
if !sql.db.CanFind(TableListenPlayer, condition) {
return player{}, nil // 规避没有该用户数据的报错
err = sdb.db.Find(tableListenPlayer, &dbInfo, condition)
if err == sql.ErrNullResult { // 规避没有该用户数据的报错
err = nil
}
err = sql.db.Find(TableListenPlayer, &dbInfo, condition)
return
}
// findWithGroupID 根据用户steamID和groupID查询信息
func (sql *streamDB) findWithGroupID(steamID int64, groupID string) (dbInfo player, err error) {
sql.Lock()
defer sql.Unlock()
func (sdb *streamDB) findWithGroupID(steamID int64, groupID string) (dbInfo player, err error) {
sdb.Lock()
defer sdb.Unlock()
condition := "where steam_id = " + strconv.FormatInt(steamID, 10) + " AND target LIKE '%" + groupID + "%'"
if !sql.db.CanFind(TableListenPlayer, condition) {
return player{}, nil // 规避没有该用户数据的报错
err = sdb.db.Find(tableListenPlayer, &dbInfo, condition)
if err == sql.ErrNullResult { // 规避没有该用户数据的报错
err = nil
}
err = sql.db.Find(TableListenPlayer, &dbInfo, condition)
return
}
// findAll 查询所有库信息
func (sql *streamDB) findAll() (dbInfos []player, err error) {
sql.Lock()
defer sql.Unlock()
var info player
num, err := sql.db.Count(TableListenPlayer)
if err != nil || num == 0 {
return
}
dbInfos = make([]player, 0, num)
err = sql.db.FindFor(TableListenPlayer, &info, "", func() error {
if info.SteamID != 0 {
dbInfos = append(dbInfos, info)
}
return nil
})
return
func (sdb *streamDB) findAll() (dbInfos []*player, err error) {
sdb.Lock()
defer sdb.Unlock()
return sql.FindAll[player](&sdb.db, tableListenPlayer, "")
}
// del 删除指定数据
func (sql *streamDB) del(steamID int64) error {
sql.Lock()
defer sql.Unlock()
return sql.db.Del(TableListenPlayer, "where steam_id = "+strconv.FormatInt(steamID, 10))
func (sdb *streamDB) del(steamID int64) error {
sdb.Lock()
defer sdb.Unlock()
return sdb.db.Del(tableListenPlayer, "where steam_id = "+strconv.FormatInt(steamID, 10))
}