live-status поправил
This commit is contained in:
43
get_data.py
43
get_data.py
@@ -197,7 +197,12 @@ def results_consumer():
|
||||
print("results_consumer: got partial game, keeping previous one")
|
||||
|
||||
# и обязательно continue/return из этого elif/if
|
||||
continue
|
||||
else:
|
||||
latest_data[source] = {
|
||||
"ts": msg["ts"],
|
||||
"data": payload,
|
||||
}
|
||||
continue
|
||||
|
||||
# ... остальная обработка ...
|
||||
except Exception as e:
|
||||
@@ -376,7 +381,7 @@ async def lifespan(app: FastAPI):
|
||||
args=(
|
||||
"game",
|
||||
URLS["game"].format(host=HOST, game_id=game_id, lang=LANG),
|
||||
5,
|
||||
3,
|
||||
stop_event,
|
||||
),
|
||||
daemon=True,
|
||||
@@ -386,7 +391,7 @@ async def lifespan(app: FastAPI):
|
||||
args=(
|
||||
"live-status",
|
||||
URLS["live-status"].format(host=HOST, game_id=game_id),
|
||||
5,
|
||||
3,
|
||||
stop_event,
|
||||
),
|
||||
daemon=True,
|
||||
@@ -396,7 +401,7 @@ async def lifespan(app: FastAPI):
|
||||
args=(
|
||||
"box-score",
|
||||
URLS["box-score"].format(host=HOST, game_id=game_id),
|
||||
5,
|
||||
3,
|
||||
stop_event,
|
||||
),
|
||||
daemon=True,
|
||||
@@ -406,7 +411,7 @@ async def lifespan(app: FastAPI):
|
||||
args=(
|
||||
"play-by-play",
|
||||
URLS["play-by-play"].format(host=HOST, game_id=game_id),
|
||||
5,
|
||||
3,
|
||||
stop_event,
|
||||
),
|
||||
daemon=True,
|
||||
@@ -961,33 +966,7 @@ async def team(who: str):
|
||||
key=lambda x: role_priority.get(x.get("startRole", 99), 99),
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# приклеим play-by-play, если он уже есть и если в game уже есть поле для него
|
||||
pbp = latest_data.get("play-by-play")
|
||||
if pbp and "data" in pbp and "result" in pbp["data"]:
|
||||
# если ты хранишь плейи прямо в game["data"]["result"]["plays"],
|
||||
# можно их взять оттуда, но безопаснее взять из latest_data["play-by-play"]
|
||||
payload["plays"] = pbp["data"]["result"]
|
||||
|
||||
# приклеим box-score-данные, если они отдельно лежат
|
||||
box = latest_data.get("box-score")
|
||||
if box:
|
||||
box_data = box.get("data")
|
||||
# у тебя box-score мы в consumer сохраняем как {"ts": ..., "data": "<status>"} или целиком
|
||||
# поэтому берём только если это полноценный ответ
|
||||
if isinstance(box_data, dict) and "result" in box_data:
|
||||
box_result = box_data["result"]
|
||||
# тут можно добавить твою доп.логику, если она была в исходной функции
|
||||
|
||||
# если у тебя в оригинальной версии функции team была генерация "career", "season", "coach" и т.п.,
|
||||
# их просто нужно вернуть сюда — главное, что доступ к game теперь безопасный
|
||||
|
||||
return payload
|
||||
return sorted_team
|
||||
|
||||
async def started_team(data):
|
||||
started_team = sorted(
|
||||
|
||||
Reference in New Issue
Block a user