diff --git a/get_data.py b/get_data.py index 436eefb..ca35c26 100644 --- a/get_data.py +++ b/get_data.py @@ -1442,46 +1442,45 @@ def Referee(merged: dict, *, out_dir: str = "static") -> None: logger.error(f"Ошибка в Referee потоке: {e}", exc_info=True) -# def Scores_Quarter(merged: dict, *, out_dir: str = "static") -> None: -# """ -# Поток, обновляющий JSON со счётом по четвертям. -# """ -# logger.info("START making json for scores quarter") +def Scores_Quarter(merged: dict, *, out_dir: str = "static") -> None: + """ + Поток, обновляющий JSON со счётом по четвертям. + """ + logger.info("START making json for scores quarter") -# quarters = ["Q1", "Q2", "Q3", "Q4", "OT1", "OT2", "OT3", "OT4"] + quarters = ["Q1", "Q2", "Q3", "Q4", "OT1", "OT2", "OT3", "OT4"] -# rewrite_file("game_online", game_data) + score_by_quarter = [{"Q": q, "score1": "", "score2": ""} for q in quarters] + try: + # Сначала пробуем fullScore + full_score_str = ( + merged.get("result", {}).get("game", {}).get("fullScore", "") + ) + if full_score_str: + full_score_list = full_score_str.split(",") + for i, score_str in enumerate(full_score_list[: len(score_by_quarter)]): + parts = score_str.split(":") + if len(parts) == 2: + score_by_quarter[i]["score1"] = parts[0] + score_by_quarter[i]["score2"] = parts[1] + logger.info("Счёт по четвертям получен из fullScore.") -# score_by_quarter = [{"Q": q, "score1": "", "score2": ""} for q in quarters] + # Если нет fullScore, пробуем scoreByPeriods + elif "scoreByPeriods" in merged.get("result", {}): + periods = merged["result"]["scoreByPeriods"] + for i, score in enumerate(periods[: len(score_by_quarter)]): + score_by_quarter[i]["score1"] = str(score.get("score1", "")) + score_by_quarter[i]["score2"] = str(score.get("score2", "")) + logger.info("Счёт по четвертям получен из scoreByPeriods.") + else: + logger.debug("Нет данных по счёту, сохраняем пустые значения.") + + out_path = Path(out_dir) / "scores.json" + atomic_write_json(out_path, score_by_quarter) + logging.info("Сохранил payload: {out_path}") -# # Сначала пробуем fullScore -# full_score_str = ( -# game_data.get("result", {}).get("game", {}).get("fullScore", "") -# ) -# if full_score_str: -# full_score_list = full_score_str.split(",") -# for i, score_str in enumerate(full_score_list[: len(score_by_quarter)]): -# parts = score_str.split(":") -# if len(parts) == 2: -# score_by_quarter[i]["score1"] = parts[0] -# score_by_quarter[i]["score2"] = parts[1] -# logger.debug("Счёт по четвертям получен из fullScore.") - -# # Если нет fullScore, пробуем scoreByPeriods -# elif "scoreByPeriods" in game_data.get("result", {}): -# periods = game_data["result"]["scoreByPeriods"] -# for i, score in enumerate(periods[: len(score_by_quarter)]): -# score_by_quarter[i]["score1"] = str(score.get("score1", "")) -# score_by_quarter[i]["score2"] = str(score.get("score2", "")) -# logger.debug("Счёт по четвертям получен из scoreByPeriods.") - -# else: -# logger.debug("Нет данных по счёту, сохраняем пустые значения.") - -# rewrite_file("scores", score_by_quarter) - -# except Exception as e: -# logger.error(f"Ошибка в Scores_Quarter: {e}", exc_info=True) + except Exception as e: + logger.error(f"Ошибка в Scores_Quarter: {e}", exc_info=True) # ========================== @@ -1583,6 +1582,7 @@ class PostProcessor: Json_Team_Generation(merged, out_dir="static", who="team2") Team_Both_Stat(merged, out_dir="static") Referee(merged, out_dir="static") + Scores_Quarter(merged, out_dir="static") except Exception as e: logging.exception(f"Postproc failed: {e}") @@ -1887,6 +1887,7 @@ def main(): Json_Team_Generation(merged, out_dir="static", who="team2") Team_Both_Stat(merged, out_dir="static") Referee(merged, out_dir="static") + Scores_Quarter(merged, out_dir="static") # print(merged) logger.info( f"Сегодня у {team} нет игры.\nПоследняя сыгранная: gameID={game_id}.\nМониторинг не запускаю."