Survive OpenDota proPlayers 429 during watchlist pro refresh.
Continue with watchlist names when /proPlayers is rate-limited, and soft-fail the pro-matches step so daily can still refresh leaderboards and streamers. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -648,15 +648,10 @@ def main() -> None:
|
|||||||
|
|
||||||
client = OpenDotaClient(consecutive_limit=int(args.streak_429))
|
client = OpenDotaClient(consecutive_limit=int(args.streak_429))
|
||||||
|
|
||||||
_log("loading pro players ...")
|
player_ids_raw = (args.players or "").strip()
|
||||||
pro_index = fetch_pro_index()
|
|
||||||
_log(f" {len(pro_index)} registered pros")
|
|
||||||
|
|
||||||
player_ids = parse_pro_filter(args.players, pro_index)
|
|
||||||
watchlist: list[dict] | None = None
|
watchlist: list[dict] | None = None
|
||||||
player_source = "cli"
|
player_source = "cli"
|
||||||
|
if player_ids_raw:
|
||||||
if player_ids:
|
|
||||||
player_source = "cli"
|
player_source = "cli"
|
||||||
elif not args.all_pros:
|
elif not args.all_pros:
|
||||||
watchlist = load_watchlist(args.watchlist)
|
watchlist = load_watchlist(args.watchlist)
|
||||||
@@ -670,6 +665,19 @@ def main() -> None:
|
|||||||
else:
|
else:
|
||||||
player_source = "proPlayers"
|
player_source = "proPlayers"
|
||||||
|
|
||||||
|
_log("loading pro players ...")
|
||||||
|
try:
|
||||||
|
pro_index = fetch_pro_index()
|
||||||
|
except SystemExit as exc:
|
||||||
|
# Watchlist runs can proceed without /proPlayers when OpenDota is 429'd.
|
||||||
|
if args.all_pros and not player_ids_raw:
|
||||||
|
raise
|
||||||
|
_log(f" warn: {exc}; continuing with watchlist/cli names only")
|
||||||
|
pro_index = {}
|
||||||
|
_log(f" {len(pro_index)} registered pros")
|
||||||
|
|
||||||
|
player_ids = parse_pro_filter(args.players, pro_index)
|
||||||
|
|
||||||
picked = filter_pros(
|
picked = filter_pros(
|
||||||
pro_index,
|
pro_index,
|
||||||
with_team=args.with_team,
|
with_team=args.with_team,
|
||||||
|
|||||||
@@ -288,6 +288,7 @@ def run_daily(*, dry_run: bool = False) -> bool:
|
|||||||
"--refresh-limit",
|
"--refresh-limit",
|
||||||
"15",
|
"15",
|
||||||
dry_run=dry_run,
|
dry_run=dry_run,
|
||||||
|
soft_fail=True,
|
||||||
)
|
)
|
||||||
# Soft-fail Douyin enrichment (script itself exits 0; keep previous values on miss).
|
# Soft-fail Douyin enrichment (script itself exits 0; keep previous values on miss).
|
||||||
run_script("fetch_streamers.py", dry_run=dry_run, soft_fail=True)
|
run_script("fetch_streamers.py", dry_run=dry_run, soft_fail=True)
|
||||||
|
|||||||
Reference in New Issue
Block a user