diff --git a/get_data_new.py b/get_data_new.py index cb3640d..1ff0f2d 100644 --- a/get_data_new.py +++ b/get_data_new.py @@ -409,6 +409,45 @@ def run_live_loop( render_thread.join() logger.info(f"[LIVE_THREAD] stop live loop for game_id={game_id}") +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"] + + 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.") + + # Если нет 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 = "scores" + atomic_write_json(out_path, score_by_quarter) + logging.info("Сохранил payload: {out_path}") + + except Exception as e: + logger.error(f"Ошибка в Scores_Quarter: {e}", exc_info=True) + + def poll_game_live( session, @@ -1546,6 +1585,7 @@ def render_loop(stop_event: threading.Event, out_name: str = "game"): Team_Both_Stat(state) Json_Team_Generation(state, who="team1") Json_Team_Generation(state, who="team2") + Scores_Quarter(state) atomic_write_json([state["result"]["live_status"]], "live_status") atomic_write_json(state["result"], out_name)