исправил проверку на live-status
This commit is contained in:
@@ -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. Постобработка статистики для вывода
|
||||
# ============================================================================
|
||||
|
||||
Reference in New Issue
Block a user