исправил получение данных по сезону на команды. обновляется один раз
This commit is contained in:
76
get_data.py
76
get_data.py
@@ -491,6 +491,8 @@ def classify_game_state_from_status(status_raw: str) -> str:
|
||||
return "finished"
|
||||
if status in ("", "notstarted", "draft"):
|
||||
return "upcoming"
|
||||
# if status in ("scheduled"):
|
||||
# return "scheduled"
|
||||
# всё остальное считаем лайвом
|
||||
return "live"
|
||||
|
||||
@@ -1792,6 +1794,7 @@ def Standing_func(
|
||||
(comp.get("name") or "unknown_comp")
|
||||
.replace(" ", "_")
|
||||
.replace("|", "")
|
||||
.replace("/", "")
|
||||
)
|
||||
|
||||
if item.get("standings"):
|
||||
@@ -1979,27 +1982,6 @@ def get_data_API(
|
||||
|
||||
if phase == "live":
|
||||
# матч идёт → запускаем live_loop блокирующе
|
||||
t = threading.Thread(
|
||||
target=run_live_loop,
|
||||
args=(league, season, game_id, lang, today_game["game"], stop_event),
|
||||
daemon=False,
|
||||
)
|
||||
t.start()
|
||||
logger.info("[get_data_API] live thread spawned, waiting for it to finish")
|
||||
|
||||
try:
|
||||
t.join()
|
||||
except KeyboardInterrupt:
|
||||
logger.info(
|
||||
"[get_data_API] KeyboardInterrupt while waiting live thread -> stop_event"
|
||||
)
|
||||
stop_event.set()
|
||||
t.join()
|
||||
|
||||
logger.info("[get_data_API] live thread finished")
|
||||
return "live_done"
|
||||
|
||||
if phase == "upcoming":
|
||||
logger.info(
|
||||
f"Матч {game_id} сегодня, но ещё не начался (status={effective_status}). Подготовка pregame."
|
||||
)
|
||||
@@ -2031,7 +2013,59 @@ def get_data_API(
|
||||
logger.exception(
|
||||
f"[get_data_API] ошибка при подготовке pregame для {game_id}: {e}"
|
||||
)
|
||||
t = threading.Thread(
|
||||
target=run_live_loop,
|
||||
args=(league, season, game_id, lang, today_game["game"], stop_event),
|
||||
daemon=False,
|
||||
)
|
||||
t.start()
|
||||
logger.info("[get_data_API] live thread spawned, waiting for it to finish")
|
||||
|
||||
try:
|
||||
t.join()
|
||||
except KeyboardInterrupt:
|
||||
logger.info(
|
||||
"[get_data_API] KeyboardInterrupt while waiting live thread -> stop_event"
|
||||
)
|
||||
stop_event.set()
|
||||
t.join()
|
||||
|
||||
logger.info("[get_data_API] live thread finished")
|
||||
return "live_done"
|
||||
|
||||
if phase == "upcoming":
|
||||
|
||||
logger.info(
|
||||
f"Матч {game_id} сегодня, но ещё не начался (status={effective_status}). Подготовка pregame."
|
||||
)
|
||||
|
||||
# дергаем pregame только один раз за матч
|
||||
if not _pregame_done_for_game.get(game_id):
|
||||
try:
|
||||
pregame_raw = fetch_api_data(
|
||||
session,
|
||||
"pregame",
|
||||
host=HOST,
|
||||
league=league,
|
||||
season=season,
|
||||
game_id=game_id,
|
||||
lang=lang,
|
||||
)
|
||||
|
||||
Pregame_data(
|
||||
pregame_raw=pregame_raw,
|
||||
game_stub=today_game["game"],
|
||||
)
|
||||
|
||||
_pregame_done_for_game[game_id] = True
|
||||
logger.info(
|
||||
f"[get_data_API] pregame данные собраны для game_id={game_id}"
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
logger.exception(
|
||||
f"[get_data_API] ошибка при подготовке pregame для {game_id}: {e}"
|
||||
)
|
||||
# матч сегодня, ждём старта
|
||||
return "upcoming"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user