From 527766ebd66a91921d37465a18e0527df68f131f Mon Sep 17 00:00:00 2001 From: lixiangwuxian Date: Sat, 19 Jul 2025 14:23:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=9C=A8=20PlayerDataLite=20=E7=9A=84?= =?UTF-8?q?=20LastDiffToImage=20=E5=87=BD=E6=95=B0=E4=B8=AD=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=AF=B9=E9=9B=B6=E5=80=BC=E7=9A=84=E5=A4=84=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E4=BB=A5=E9=81=BF=E5=85=8D=E8=AE=A1=E7=AE=97=E5=B7=AE?= =?UTF-8?q?=E5=BC=82=E6=97=B6=E5=87=BA=E7=8E=B0=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service/beatleader/model.go | 20 +++++++++++++++++++- service/scoresaber/model.go | 18 ++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) 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 {