Deeman
adf22924f6
feat(extract): three-tier proxy system with Webshare auto-fetch
Replace two-tier proxy setup (PROXY_URLS / PROXY_URLS_FALLBACK) with
N-tier escalation: free → datacenter → residential.
- proxy.py: fetch_webshare_proxies() auto-fetches the Webshare download
API on each run (no more stale manually-copied lists). load_proxy_tiers()
assembles tiers from WEBSHARE_DOWNLOAD_URL, PROXY_URLS_DATACENTER,
PROXY_URLS_RESIDENTIAL. make_tiered_cycler() generalised to list[list[str]]
with N-level escalation; is_fallback_active() replaced by is_exhausted().
Old load_proxy_urls() / load_fallback_proxy_urls() deleted.
- playtomic_availability.py: both extract() and extract_recheck() use
load_proxy_tiers() + generalised cycler. _fetch_venues_parallel fallback_urls
param removed. All is_fallback_active() checks → is_exhausted().
- playtomic_tenants.py: flattens tiers for simple round-robin.
- test_supervisor.py: TestLoadProxyUrls removed (function deleted).
Added TestFetchWebshareProxies, TestLoadProxyTiers, TestTieredCyclerNTier
(11 tests covering parse format, error handling, escalation, thread safety).
47 tests pass, ruff clean.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 16:57:07 +01:00
..
2026-02-23 22:26:42 +01:00
2026-02-23 21:08:59 +01:00
2026-02-22 00:44:40 +01:00
2026-02-22 00:44:40 +01:00
2026-02-22 00:44:40 +01:00
2026-02-23 15:26:40 +01:00
2026-02-24 00:11:52 +01:00
2026-02-27 08:44:52 +01:00
2026-02-24 10:30:18 +01:00
2026-02-23 21:08:09 +01:00
2026-02-27 11:52:02 +01:00
2026-02-23 13:00:23 +01:00
2026-02-24 10:30:18 +01:00
2026-02-24 21:24:37 +01:00
2026-02-24 21:24:37 +01:00
2026-02-24 10:15:36 +01:00
2026-02-22 00:44:40 +01:00
2026-02-27 11:52:02 +01:00
2026-02-27 11:52:02 +01:00
2026-02-22 17:03:13 +01:00
2026-02-25 13:02:51 +01:00
2026-02-22 00:44:40 +01:00
2026-02-24 21:24:37 +01:00
2026-02-24 20:50:03 +01:00
2026-02-23 18:40:11 +01:00
2026-02-27 08:44:52 +01:00
2026-02-28 16:57:07 +01:00
2026-02-24 10:30:18 +01:00
2026-02-23 18:40:11 +01:00
2026-02-23 17:03:21 +01:00