исправил проверку на live-status

This commit is contained in:
2025-10-27 20:04:12 +03:00
parent cbcad5e525
commit 4ad11815a5

View File

@@ -526,8 +526,7 @@ def poll_game_live(
if ep_name == "live-status":
if isinstance(data, dict):
st = (
data.get("status")
or data.get("gameStatus")
data.get("result").get("gameStatus")
or ""
).lower()
if st in ("resultconfirmed", "finished", "result"):
@@ -695,6 +694,7 @@ def run_live_loop(
standings_thread.start()
logger.info("[LIVE_THREAD] standings thread spawned")
try:
poll_game_live(
session=session,
@@ -716,6 +716,66 @@ def run_live_loop(
logger.info(f"[LIVE_THREAD] stop live loop for game_id={game_id}")
def Referee(merged: dict, *, out_dir: str = "static") -> None:
"""
Поток, создающий JSON-файл с информацией о судьях матча.
"""
logger.info("START making json for referee")
desired_order = [
"Crew chief",
"Referee 1",
"Referee 2",
"Commissioner",
"Ст.судья",
"Судья 1",
"Судья 2",
"Комиссар",
]
try:
# Найти судей (teamNumber == 0)
team_ref = next(
(t for t in merged["result"]["teams"] if t["teamNumber"] == 0), None
)
if not team_ref:
logger.warning("Не найдена судейская бригада в данных.")
referees_raw = team_ref.get("starts", [])
# print(referees_raw)
referees = []
for r in referees_raw:
flag_code = r.get("countryId", "").lower() if r.get("countryName") else ""
referees.append(
{
"displayNumber": r.get("displayNumber", ""),
"positionName": r.get("positionName", ""),
"lastNameGFX": f"{r.get('firstName', '')} {r.get('lastName', '')}".strip(),
"secondName": r.get("secondName", ""),
"birthday": r.get("birthday", ""),
"age": r.get("age", 0),
"flag": f"https://flagicons.lipis.dev/flags/4x3/{flag_code}.svg",
}
)
# Сортировка по позиции
referees = sorted(
referees,
key=lambda x: (
desired_order.index(x["positionName"])
if x["positionName"] in desired_order
else len(desired_order)
),
)
out_path = "referee.json"
atomic_write_json(referees, out_path)
logging.info("Сохранил payload: {out_path}")
except Exception as e:
logger.error(f"Ошибка в Referee потоке: {e}", exc_info=True)
# ============================================================================
# 7. Постобработка статистики для вывода
# ============================================================================