feat(douyu): 斗鱼任务接入代理 — 应对兑换 IP 频控 (精英手册火爆)

配置源 = 代理配置页 (与 CK 检测/虎牙注册同款), 开关在代理配置页:
- 静态模式: 手填 http/https → 全任务同一代理
- API 模式: 每任务取新代理 (ProxyFetcher, 白名单同步, 1.5s 间隔限速),
  失败降级直连并推送告警
- DouyuActivityClient 支持 proxies (session 级, 覆盖全部请求点;
  trust_env=False 维持不变, 不受环境变量影响)

按拆分后新结构落在 douyu_runner_core.py; 触及精英手册/和平小店/电竞等
全部斗鱼任务出网。三种模式行为断言 + 94 单测通过
This commit is contained in:
yml2213
2026-08-30 11:19:15 +08:00
parent 39b202bc3f
commit 8fe9fdfd8b
2 changed files with 72 additions and 2 deletions
+4
View File
@@ -81,11 +81,15 @@ class DouyuActivityClient:
*,
logger: Callable[[str], None] | None = None,
timeout: tuple[float, float] = (8, 20),
proxies: dict[str, str] | None = None,
):
self.cookie = normalize_douyu_cookie(cookie)
self.timeout = timeout
self.logger = logger or (lambda _msg: None)
self.session = requests.Session()
# trust_env=False: 不读环境变量代理, 只用显式传入的 proxies (代理配置页控制)
if proxies:
self.session.proxies.update(proxies)
self.session.trust_env = False
self.session.headers.update({
"User-Agent": PC_UA,