From 8ed1c20feb90237363c6f2279aad5dca68712001 Mon Sep 17 00:00:00 2001 From: scdhh Date: Mon, 25 Jul 2022 04:11:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dtos=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=B8=B8=E6=88=8F=E6=95=B0=E6=8D=AE=E6=97=B6=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E6=9C=89=E6=95=88=E8=AE=B0=E5=BD=95=E4=BC=9A=E7=88=86=E7=82=B8?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GameDataProcessor/TOSDataProcessor.py | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/nonebot_plugin_tetris_stats/GameDataProcessor/TOSDataProcessor.py b/nonebot_plugin_tetris_stats/GameDataProcessor/TOSDataProcessor.py index ec5efb2..4ce3be2 100644 --- a/nonebot_plugin_tetris_stats/GameDataProcessor/TOSDataProcessor.py +++ b/nonebot_plugin_tetris_stats/GameDataProcessor/TOSDataProcessor.py @@ -82,7 +82,7 @@ async def getGameData(userData: dict) -> dict[str, bool | int | float]: continue # 茶:不计算没挖掘的局,即使apm和lpm也如此 if i['dig'] is None: - break + continue # 加权计算 time = i['time'] / 1000 lpm = 24 * (i['pieces'] / time) @@ -95,14 +95,17 @@ async def getGameData(userData: dict) -> dict[str, bool | int | float]: num += 1 if num == 50: break - gameData['NUM'] = num - gameData['LPM'] = round((weightedTotalLpm / weightedTotalTime), 2) - gameData['APM'] = round((weightedTotalApm / weightedTotalTime), 2) - gameData['ADPM'] = round((weightedTotalAdpm / weightedTotalTime), 2) - gameData['PPS'] = round((gameData['LPM'] / 24), 2) - gameData['APL'] = round((gameData['APM'] / gameData['LPM']), 2) - gameData['ADPL'] = round((gameData['ADPM'] / gameData['LPM']), 2) - gameData['VS'] = round((gameData['ADPM'] / 60 * 100), 2) + if num > 0: + gameData['NUM'] = num + gameData['LPM'] = round((weightedTotalLpm / weightedTotalTime), 2) + gameData['APM'] = round((weightedTotalApm / weightedTotalTime), 2) + gameData['ADPM'] = round((weightedTotalAdpm / weightedTotalTime), 2) + gameData['PPS'] = round((gameData['LPM'] / 24), 2) + gameData['APL'] = round((gameData['APM'] / gameData['LPM']), 2) + gameData['ADPL'] = round((gameData['ADPM'] / gameData['LPM']), 2) + gameData['VS'] = round((gameData['ADPM'] / 60 * 100), 2) + else: + gameData['Played'] = False # TODO: 如果有效局数不满50, 没有无dig信息的局, 且userData['data']内有50个局, 则继续往前获取信息 return gameData