diff --git a/service/beatleader/model.go b/service/beatleader/model.go index 540d784..92387a7 100644 --- a/service/beatleader/model.go +++ b/service/beatleader/model.go @@ -524,12 +524,18 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite, onlyFirstF { // PP值 ppDiff := p.PP - lastQueryData.PP + if lastQueryData.PP == 0 { + ppDiff = 0 + } if ppDiff == 0 { sb.WriteString(fmt.Sprintf("PP %.1f\n", p.PP)) } else { sb.WriteString(fmt.Sprintf("PP %.1f(%+.1f)\n", p.PP, ppDiff)) } // 全球排名 rankDiff := lastQueryData.Rank - p.Rank + if lastQueryData.Rank == 0 { + rankDiff = 0 + } if rankDiff == 0 { sb.WriteString(fmt.Sprintf("全球排名 %d\n", p.Rank)) } else { @@ -537,7 +543,10 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite, onlyFirstF } // 区域排名 - countryRankDiff := lastQueryData.CountryRank - p.CountryRank + countryRankDiff := p.CountryRank - lastQueryData.CountryRank + if lastQueryData.CountryRank == 0 { + countryRankDiff = 0 + } if countryRankDiff == 0 { sb.WriteString(fmt.Sprintf("区域排名 %d\n", p.CountryRank)) } else { @@ -546,6 +555,9 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite, onlyFirstF // Ranked谱面均准 accDiff := (p.AverageRankedAccuracy - lastQueryData.AverageRankedAccuracy) * 100 + if lastQueryData.AverageRankedAccuracy == 0 { + accDiff = 0 + } if accDiff == 0 { sb.WriteString(fmt.Sprintf("Ranked谱面均准 %.2f%%\n", p.AverageRankedAccuracy*100)) } else { @@ -553,6 +565,9 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite, onlyFirstF } // 总游玩记数 totalPlayDiff := p.TotalPlayCount - lastQueryData.TotalPlayCount + if lastQueryData.TotalPlayCount == 0 { + totalPlayDiff = 0 + } if totalPlayDiff == 0 { sb.WriteString(fmt.Sprintf("总游玩记数 %d\n", p.TotalPlayCount)) } else { @@ -561,6 +576,9 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite, onlyFirstF // Ranked谱面游玩记数 rankedPlayDiff := p.RankedPlayCount - lastQueryData.RankedPlayCount + if lastQueryData.RankedPlayCount == 0 { + rankedPlayDiff = 0 + } if rankedPlayDiff == 0 { sb.WriteString(fmt.Sprintf("Ranked谱面游玩记数 %d\n", p.RankedPlayCount)) } else { diff --git a/service/scoresaber/model.go b/service/scoresaber/model.go index 94e4625..d8bbba9 100644 --- a/service/scoresaber/model.go +++ b/service/scoresaber/model.go @@ -339,12 +339,18 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite, onlyFirstF { // PP值 ppDiff := p.PP - lastQueryData.PP + if lastQueryData.PP == 0 { + ppDiff = 0 + } if ppDiff == 0 { sb.WriteString(fmt.Sprintf("PP %.1f\n", p.PP)) } else { sb.WriteString(fmt.Sprintf("PP %.1f(%+.1f)\n", p.PP, ppDiff)) } // 全球排名 rankDiff := lastQueryData.Rank - p.Rank + if lastQueryData.Rank == 0 { + rankDiff = 0 + } if rankDiff == 0 { sb.WriteString(fmt.Sprintf("全球排名 %d\n", p.Rank)) } else { @@ -353,6 +359,9 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite, onlyFirstF // 区域排名 countryRankDiff := lastQueryData.CountryRank - p.CountryRank + if lastQueryData.CountryRank == 0 { + countryRankDiff = 0 + } if countryRankDiff == 0 { sb.WriteString(fmt.Sprintf("区域排名 %d\n", p.CountryRank)) } else { @@ -361,6 +370,9 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite, onlyFirstF // Ranked谱面均准 accDiff := (p.AverageRankedAccuracy - lastQueryData.AverageRankedAccuracy) * 100 + if lastQueryData.AverageRankedAccuracy == 0 { + accDiff = 0 + } if accDiff == 0 { sb.WriteString(fmt.Sprintf("Ranked谱面均准 %.2f%%\n", p.AverageRankedAccuracy)) } else { @@ -368,6 +380,9 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite, onlyFirstF } // 总游玩记数 totalPlayDiff := p.TotalPlayCount - lastQueryData.TotalPlayCount + if lastQueryData.TotalPlayCount == 0 { + totalPlayDiff = 0 + } if totalPlayDiff == 0 { sb.WriteString(fmt.Sprintf("总游玩记数 %d\n", p.TotalPlayCount)) } else { @@ -376,6 +391,9 @@ func (p PlayerDataLite) LastDiffToImage(lastQueryData PlayerDataLite, onlyFirstF // Ranked谱面游玩记数 rankedPlayDiff := p.RankedPlayCount - lastQueryData.RankedPlayCount + if lastQueryData.RankedPlayCount == 0 { + rankedPlayDiff = 0 + } if rankedPlayDiff == 0 { sb.WriteString(fmt.Sprintf("Ranked谱面游玩记数 %d\n", p.RankedPlayCount)) } else {