feat: 为Steam游戏状态检查添加重复登录游戏的防重复通知机制
优化Steam游戏状态检查逻辑,增加了以下特性: 1. 记录玩家游戏退出信息 2. 实现30分钟内重复登录同一游戏时抑制通知 3. 修改checkDiffSteamGameStatus函数返回值,增加玩家信息返回 4. 更新playingMap的方式更加安全和清晰
This commit is contained in:
@@ -248,9 +248,9 @@ func checkSteamGameStatus(steamID []string) (string, error) {
|
||||
return gameStatusList, nil
|
||||
}
|
||||
|
||||
func checkDiffSteamGameStatus(steamID []string, lastTimeStat map[string]string) (map[string]string, error) {
|
||||
func checkDiffSteamGameStatus(steamID []string, lastTimeStat map[string]string) (map[string]string, []PlayerSummary, error) {
|
||||
if len(steamID) == 0 {
|
||||
return nil, nil
|
||||
return nil, nil, nil
|
||||
}
|
||||
var glbErr error
|
||||
var writeMutex sync.Mutex
|
||||
@@ -312,7 +312,7 @@ func checkDiffSteamGameStatus(steamID []string, lastTimeStat map[string]string)
|
||||
}
|
||||
wg.Wait()
|
||||
if glbErr != nil {
|
||||
return nil, glbErr
|
||||
return nil, nil, glbErr
|
||||
}
|
||||
gameStatusListStr := map[string]string{}
|
||||
for _, userState := range Players {
|
||||
@@ -324,7 +324,7 @@ func checkDiffSteamGameStatus(steamID []string, lastTimeStat map[string]string)
|
||||
}
|
||||
lastTimeStat[userState.SteamID] = userState.GameID
|
||||
}
|
||||
return gameStatusListStr, nil
|
||||
return gameStatusListStr, Players, nil
|
||||
}
|
||||
|
||||
func checkSteamIDValid(steamID string) (bool, error) {
|
||||
|
||||
Reference in New Issue
Block a user