This commit is contained in:
2025-10-27 18:43:16 +03:00
parent 4048f8fdfa
commit 02582bdab0

View File

@@ -409,6 +409,45 @@ def run_live_loop(
render_thread.join() render_thread.join()
logger.info(f"[LIVE_THREAD] stop live loop for game_id={game_id}") 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( def poll_game_live(
session, session,
@@ -1546,6 +1585,7 @@ def render_loop(stop_event: threading.Event, out_name: str = "game"):
Team_Both_Stat(state) Team_Both_Stat(state)
Json_Team_Generation(state, who="team1") Json_Team_Generation(state, who="team1")
Json_Team_Generation(state, who="team2") Json_Team_Generation(state, who="team2")
Scores_Quarter(state)
atomic_write_json([state["result"]["live_status"]], "live_status") atomic_write_json([state["result"]["live_status"]], "live_status")
atomic_write_json(state["result"], out_name) atomic_write_json(state["result"], out_name)