Add 7.41e patch notes with a hand-authored reading sidebar.
Ship Climperor Web 0.6.13: latest-patch summary panel, icon/innate fallbacks, and layout/scroll fixes; keep shared ability badges in git. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+10
-1
@@ -20,6 +20,7 @@ from pathlib import Path
|
||||
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
|
||||
|
||||
import argparse
|
||||
import urllib.error
|
||||
from datetime import datetime, timezone
|
||||
|
||||
from shared.grid import hero_table
|
||||
@@ -169,7 +170,15 @@ def main() -> None:
|
||||
id_to_key = {int(h["id"]): h["key"] for h in heroes}
|
||||
|
||||
print(f"fetching {OPENDOTA_HERO_STATS} ...", flush=True)
|
||||
raw = http_json(OPENDOTA_HERO_STATS)
|
||||
# Fail-fast on 429: do not burn the shared 5/10/20/40s retry budget.
|
||||
try:
|
||||
raw = http_json(OPENDOTA_HERO_STATS, retries=0)
|
||||
except urllib.error.HTTPError as e:
|
||||
if e.code == 429:
|
||||
raise SystemExit(
|
||||
"OpenDota rate-limited (HTTP 429); keeping previous cache"
|
||||
) from e
|
||||
raise
|
||||
if not isinstance(raw, list):
|
||||
raise SystemExit(f"unexpected heroStats payload type: {type(raw).__name__}")
|
||||
if not raw:
|
||||
|
||||
Reference in New Issue
Block a user