diff --git a/get_data.py b/get_data.py index d31ad0c..e0646f6 100644 --- a/get_data.py +++ b/get_data.py @@ -876,23 +876,24 @@ def build_pretty_status_message(): ) src_lines = [] for k in keys: - d = latest_data.get(k) or {} - ts = d.get("ts", "—") - dat = d.get("data") - if isinstance(dat, dict) and "status" in dat: - st = str(dat["status"]).lower() - else: - st = str(dat).lower() + if "excel" not in k.lower(): + d = latest_data.get(k) or {} + ts = d.get("ts", "—") + dat = d.get("data") + if isinstance(dat, dict) and "status" in dat: + st = str(dat["status"]).lower() + else: + st = str(dat).lower() - # Эмодзи-кружки для статусов - if any(x in st for x in ["ok", "success", "live", "online"]): - emoji = "🟢" - elif any(x in st for x in ["error", "fail", "no-status", "none", "timeout"]): - emoji = "🔴" - else: - emoji = "🟡" + # Эмодзи-кружки для статусов + if any(x in st for x in ["ok", "success", "live", "online"]): + emoji = "🟢" + elif any(x in st for x in ["error", "fail", "no-status", "none", "timeout"]): + emoji = "🔴" + else: + emoji = "🟡" - src_lines.append(f"{emoji} {k}: {st} ({ts})") + src_lines.append(f"{emoji} {k}: {st} ({ts})") if src_lines: lines.append("📡 Sources:") @@ -1231,8 +1232,9 @@ def excel_worker(): # logger.info("[excel] Все вкладки Excel обновлены") - else:pass - # logger.warning("[excel] get_excel() вернул не словарь") + else: + pass + # logger.warning("[excel] get_excel() вернул не словарь") except Exception as e: logger.warning(f"[excel] ошибка при чтении Excel: {e}") @@ -1531,12 +1533,16 @@ async def status(request: Request): sorted_keys = [k for k in sort_order if k in latest_data] + sorted( [k for k in latest_data if k not in sort_order] ) + # убираем excel_* из списка ключей + sorted_keys = [k for k in sorted_keys if "excel" not in k.lower()] + cached_game_id = get_cached_game_id() or GAME_ID note = "" if cached_game_id and GAME_ID and str(cached_game_id) != str(GAME_ID): note = ( f' (предзагружены данные прошлой игры)' ) + data = { "league": LEAGUE, "team": TEAM, @@ -1547,7 +1553,9 @@ async def status(request: Request): "name": TEAM, "status": STATUS, "ts": ( - GAME_START_DT.strftime("%Y-%m-%d %H:%M") if GAME_START_DT else "N/A" + GAME_START_DT.strftime("%Y-%m-%d %H:%M") + if GAME_START_DT + else "N/A" ), "link": LEAGUE, "color": color_for_status(STATUS), @@ -1577,13 +1585,13 @@ async def status(request: Request): else latest_data[item]["data"] ), } - for item in sorted_keys # ← используем отсортированный порядок + for item in sorted_keys ], } + accept = request.headers.get("accept", "") if "text/html" in accept: status_raw = str(STATUS).lower() - # print(status_raw) if status_raw in ["live", "online"]: gs_class = "live" gs_text = "🟢 LIVE" @@ -1592,13 +1600,11 @@ async def status(request: Request): gs_text = "🟢 GAME TODAY (soon)" elif status_raw in ["finished_wait"]: gs_class = "upcoming" - # покажем, что он ДОЖИДАЕТСЯ оффлайна off_at = OFFLINE_SWITCH_AT if off_at: human = datetime.fromtimestamp(off_at).strftime("%H:%M:%S") gs_text = f"🟡 Game finished, cooling down → OFFLINE at {human}" else: - human = "N/A" gs_text = "🟡 Game finished, cooling down" elif status_raw in ["finished_today", "finished"]: gs_class = "finished" @@ -1634,6 +1640,7 @@ async def status(request: Request): }} tr:nth-child(even) {{ background-color: #1a1a1a; }} .ok {{ color: #00ff7f; font-weight: bold; }} + .warn {{ color: #ffff66; font-weight: bold; }} .fail {{ color: #ff4d4d; font-weight: bold; }} .live {{ color: #00ff7f; font-weight: bold; }} .finished {{ color: #ff4d4d; font-weight: bold; }} @@ -1660,6 +1667,7 @@ async def status(request: Request):