feat: 为Steam游戏状态检查添加重复登录游戏的防重复通知机制

优化Steam游戏状态检查逻辑,增加了以下特性:
1. 记录玩家游戏退出信息
2. 实现30分钟内重复登录同一游戏时抑制通知
3. 修改checkDiffSteamGameStatus函数返回值,增加玩家信息返回
4. 更新playingMap的方式更加安全和清晰
This commit is contained in:
lixiangwuxian
2025-03-09 01:04:26 +08:00
parent 2eb9716d24
commit 3a26404755
2 changed files with 58 additions and 5 deletions

View File

@@ -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) {