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")
|
print("results_consumer: got partial game, keeping previous one")
|
||||||
|
|
||||||
# и обязательно continue/return из этого elif/if
|
# и обязательно continue/return из этого elif/if
|
||||||
continue
|
else:
|
||||||
|
latest_data[source] = {
|
||||||
|
"ts": msg["ts"],
|
||||||
|
"data": payload,
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
|
||||||
# ... остальная обработка ...
|
# ... остальная обработка ...
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@@ -376,7 +381,7 @@ async def lifespan(app: FastAPI):
|
|||||||
args=(
|
args=(
|
||||||
"game",
|
"game",
|
||||||
URLS["game"].format(host=HOST, game_id=game_id, lang=LANG),
|
URLS["game"].format(host=HOST, game_id=game_id, lang=LANG),
|
||||||
5,
|
3,
|
||||||
stop_event,
|
stop_event,
|
||||||
),
|
),
|
||||||
daemon=True,
|
daemon=True,
|
||||||
@@ -386,7 +391,7 @@ async def lifespan(app: FastAPI):
|
|||||||
args=(
|
args=(
|
||||||
"live-status",
|
"live-status",
|
||||||
URLS["live-status"].format(host=HOST, game_id=game_id),
|
URLS["live-status"].format(host=HOST, game_id=game_id),
|
||||||
5,
|
3,
|
||||||
stop_event,
|
stop_event,
|
||||||
),
|
),
|
||||||
daemon=True,
|
daemon=True,
|
||||||
@@ -396,7 +401,7 @@ async def lifespan(app: FastAPI):
|
|||||||
args=(
|
args=(
|
||||||
"box-score",
|
"box-score",
|
||||||
URLS["box-score"].format(host=HOST, game_id=game_id),
|
URLS["box-score"].format(host=HOST, game_id=game_id),
|
||||||
5,
|
3,
|
||||||
stop_event,
|
stop_event,
|
||||||
),
|
),
|
||||||
daemon=True,
|
daemon=True,
|
||||||
@@ -406,7 +411,7 @@ async def lifespan(app: FastAPI):
|
|||||||
args=(
|
args=(
|
||||||
"play-by-play",
|
"play-by-play",
|
||||||
URLS["play-by-play"].format(host=HOST, game_id=game_id),
|
URLS["play-by-play"].format(host=HOST, game_id=game_id),
|
||||||
5,
|
3,
|
||||||
stop_event,
|
stop_event,
|
||||||
),
|
),
|
||||||
daemon=True,
|
daemon=True,
|
||||||
@@ -961,33 +966,7 @@ async def team(who: str):
|
|||||||
key=lambda x: role_priority.get(x.get("startRole", 99), 99),
|
key=lambda x: role_priority.get(x.get("startRole", 99), 99),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
return sorted_team
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# приклеим 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
|
|
||||||
|
|
||||||
async def started_team(data):
|
async def started_team(data):
|
||||||
started_team = sorted(
|
started_team = sorted(
|
||||||
|
|||||||
Reference in New Issue
Block a user