yml2213
|
0bf69c1240
|
优化斗鱼充值
|
2026-08-13 21:43:27 +08:00 |
|
yml2213
|
902e669614
|
功能: 接入鱼翅供应商直充渠道
|
2026-08-13 21:11:20 +08:00 |
|
yml2213
|
420ee3d95c
|
功能: 增加鱼翅直充接口基础层
|
2026-08-13 16:44:20 +08:00 |
|
yml2213
|
ba35ac5c0d
|
fix: preserve xpd role platform in wallet queries
|
2026-08-09 10:06:57 +08:00 |
|
yml2213
|
a342dddcb6
|
feat: add xpd purchase records view
|
2026-08-08 21:41:44 +08:00 |
|
yml2213
|
de23d87087
|
和平小店可以返回所有商品
|
2026-08-08 00:30:58 +08:00 |
|
yml2213
|
ec5eb637bb
|
feat(douyu): 支持和平小店商品兑换
|
2026-08-07 22:47:13 +08:00 |
|
yml2213
|
a67d144b78
|
支持跳过斗鱼手机号绑定并优化标签筛选
|
2026-08-07 22:07:39 +08:00 |
|
yml2213
|
a515ea6e0a
|
feat(douyu): 和平小店扭蛋碎片查询 + 深色模式修复 + 任务状态 WS 即时推送
- 碎片: 新增 query_xpd_fragments 任务, 复用 e语言 gamecoin 接口取扭蛋币 jb2,
账号已存角色回退(规避 Livelink 风控), accounts.xpd_fragments 字段与迁移
- 列表: 和平小店移除鱼翅/限制兑换/换绑时间列, 新增扭蛋碎片列;
操作区硬编码白底改用 theme token, 深色模式适配(三个手册共用)
- 轮询: 任务状态经 WS(level=task)即时推送(二维码/绑定进度即时展示),
pending/running/终态全覆盖, REST/WS 载荷统一 douyu_task_payload,
raw 快照递归剥离, HTTP 轮询降频 5s/30s 兜底
|
2026-08-06 20:21:28 +08:00 |
|
yml2213
|
5f63d77dc3
|
feat(douyu): 和平小店绑定功能(生成绑定二维码/查询绑定信息)
- activity_client: xpd_bind_qr(roleParam 签发 livelink 绑定链接, 微信扫码进小程序绑定)
+ xpd_bind_info(bindInfo 查询绑定状态/角色/平台), gameRole 非 dict 边界防护
- runner/service: 注册 get_xpd_bind_qr / query_xpd_bind_info 任务, 回写
xpd_game_name / xpd_bind_status
- router: get_xpd_bind_qr 的 url 加入列表接口保留白名单(二维码展示)
- 前端: 和平小店面板新增两个按钮, 二维码列支持 get_xpd_bind_qr 展示/放大
|
2026-08-06 17:33:11 +08:00 |
|
yml2213
|
fdc74eba8c
|
feat(douyu): 新增和平小店查询模块(绑定角色/商品列表/点券余额)
- activity_client: getIframeUrl 签发 code/sig,道聚城 getrole.out/recommend/balance 接口
(2026-08 起需 isCode=1 + authType=delegate + sAnchorId 才能通过 Livelink 校验)
- 迁移 0016: accounts xpd_* 字段、douyu_config 小店配置(actAlias/actId/rid)、
douyu_xpd_goods_snapshot 商品快照表
- runner/service/router/schema 注册 query_xpd_role/refresh_xpd_goods/query_xpd_balance
三个任务,任务结果剥离 role.raw 防 openid 泄露
- 前端: 和平小店路由/菜单/DouyuTasksPage 三态/商品下拉/配置弹窗
|
2026-08-06 17:23:59 +08:00 |
|
yml2213
|
de2e53748d
|
fix(douyu): 修复未换绑成功时角色信息被待确认新角色污染 & 增加绑定接口明细日志
|
2026-08-02 13:18:56 +08:00 |
|
yml2213
|
8de269f958
|
增加兑换
|
2026-07-28 18:12:11 +08:00 |
|
yml2213
|
624198bca4
|
优化电竞手册换绑时间展示
|
2026-07-28 17:27:35 +08:00 |
|
yml2213
|
d7a8666fe4
|
新增电竞手册独立绑定流程
|
2026-07-28 17:12:08 +08:00 |
|
yml2213
|
6ca7898520
|
优化斗鱼支付后自动刷新
|
2026-07-25 11:46:11 +08:00 |
|
yml2213
|
9471a5b4ff
|
修复斗鱼绑定主链路:双 actAlias 分工与任务驱动扫码确认
扫码/确认走活动 alias,角色与换绑最新态优先查 cjm;生成二维码前强制校验换绑冷却,前端以任务结果为单一数据源展示二维码、待确认角色与换绑时间。
|
2026-07-24 22:36:25 +08:00 |
|
yml2213
|
781ad74762
|
修复邮箱验证码日期解析 BUG:旧邮件完整时间戳格式无法解析,导致每次命中同一旧验证码
- 新增 YYYY-MM-DD HH:MM 和 YYYY-MM-DD HH:MM:SS 格式解析
- 新增 MM-DD HH:MM 格式解析
- 日期无法解析时跳过该邮件而非放行(安全兜底)
|
2026-07-24 20:42:57 +08:00 |
|
yml2213
|
62099e8d68
|
新增斗鱼活动任务模块:绑定、宝典、鱼翅、积分、兑换等功能
- 新增 activity_client.py:封装斗鱼活动/兑换/充值/送礼接口
- 新增 cookie_utils.py:Cookie 解析与规范化工具
- 新增 douyu_service/douyu_runner:斗鱼任务服务层与批量执行器
- 新增 douyu 路由:任务类型查询、账号列表、配置管理、商品管理、批量任务、WebSocket 日志
- 新增 models/schemas:DouyuTask/DouyuConfig/DouyuGoodsSnapshot 模型,Account 扩展点数/鱼翅/绑定状态等字段
- 新增数据库迁移:斗鱼活动相关表与 accounts 字段补充
- 新增前端 DouyuTasksPage 任务操作台页面
- 兑换商品请求添加 sec-ch-ua 反检测头
- 兑换商品支持最多 8 次重试 + csrf_token 自动刷新
- 注册 douyu:task / douyu:config 权限点
- 侧边栏新增斗鱼分组与任务操作台菜单入口
|
2026-07-24 16:11:39 +08:00 |
|
yml2213
|
cd2d02c86e
|
增加斗鱼账号检测功能
|
2026-07-09 23:12:39 +08:00 |
|
yml2213
|
0faaa2c302
|
增加另一个登录接口-登录错误
|
2026-06-26 17:43:00 +08:00 |
|
yml2213
|
d7d7c0cbb0
|
增加另一个登录接口
|
2026-06-26 17:22:51 +08:00 |
|
yml2213
|
f736ef4f4c
|
优化邮箱登录错误分支,增加备用密码
|
2026-06-25 09:58:46 +08:00 |
|
yml2213
|
f21f82cbed
|
ck 复制格式优化,修复错误
|
2026-06-25 09:16:23 +08:00 |
|
yml2213
|
0b4fe1daa2
|
继续优化登录逻辑
|
2026-06-25 08:40:00 +08:00 |
|
yml2213
|
a62e7c192f
|
优化白名单逻辑
|
2026-06-25 08:19:18 +08:00 |
|
yml2213
|
ef12dcf4a3
|
优化代理相关, 移除旧的死代码
|
2026-06-25 08:04:56 +08:00 |
|
yml2213
|
a7da949d9c
|
修复Roundcube空URL和白名单重复同步
1. ROUNDCUBE_URL: os.getenv返回空字符串时不回退默认值,改为 or 默认值
2. ProxyFetcher: 缓存已同步白名单IP,后续线程跳过重复同步
|
2026-06-24 16:04:21 +08:00 |
|
yml2213
|
e478ac4d09
|
简化登录流程:砍掉代理池,极验不内部切代理
- 新建 ProxyFetcher 替代 ProxyManager,每次从API取1个代理,无池无锁无冷却
- 极验最多3次尝试,失败直接抛异常回到login整体重试取新代理
- 删掉极验内部的 refresh_proxy/proxy_switches/_soft_fail_streak 逻辑
- login整体重试时取新代理从头走完整流程
- 代理验证超时从(5,8)缩短为(3,5),白名单同步后立即重试不等待
- login_service 删掉60行代理池预检/等待代码
- 修复邮件验证码日期比较:Roundcube分钟精度与秒级时间戳对齐
|
2026-06-24 15:37:48 +08:00 |
|
yml2213
|
ca5bf3531d
|
优化代理相关的
|
2026-06-24 14:44:09 +08:00 |
|
yml2213
|
83345dfdc5
|
增加了代理平台和日志
|
2026-06-24 14:22:29 +08:00 |
|
yml2213
|
0d03b2c242
|
优化登录重试与配置清理
|
2026-06-24 10:20:33 +08:00 |
|
yml2213
|
72248eb3cc
|
拆分补CK逻辑
|
2026-06-24 09:38:17 +08:00 |
|
yml2213
|
d87aa7c1e6
|
移除HTTP详情请求日志
|
2026-06-24 09:29:47 +08:00 |
|
yml2213
|
7bb50a9bbf
|
增强登录稳定性
|
2026-06-24 09:17:15 +08:00 |
|
yml2213
|
177ec42416
|
加密敏感数据并优化补CK流程
|
2026-06-24 09:10:31 +08:00 |
|
yml2213
|
8e65af538c
|
完全对齐目标 ck
|
2026-06-24 08:28:37 +08:00 |
|
yml2213
|
ae92cd2441
|
cvl_csrf_token 是有了, 但是 acf_ccn 还没有
|
2026-06-24 08:15:15 +08:00 |
|
yml2213
|
4813eb039d
|
feat: 极验验证默认无限重试,由登录整体超时兜底
- max_proxy_retries 默认值从10改为0(无限重试)
- _solve_geetest 增加 deadline 参数,超时则主动退出
- login() 计算 deadline 并传递给极验验证
- 前端/Schema/Service 默认值同步更新
|
2026-06-23 23:40:40 +08:00 |
|
yml2213
|
7711111015
|
fix: 极验异常日志中 _truncate_error 缺少 self. 前缀导致 NameError
|
2026-06-23 22:50:39 +08:00 |
|
yml2213
|
cc30697c97
|
feat: 登录流程整体重试机制 + 代理池耗尽等待恢复
- DouyuLogin.login() 添加整体重试循环,失败时换新代理从头重跑
- 新增 max_login_retries(默认3次)和 max_total_time(默认300秒)
- 重试前重置 session cookies + 换新代理,避免残留状态
- 成功后归还代理到池;失败时标记代理坏
- 代理池耗尽时不再立即放弃账号,等待最多60秒恢复后再试
- API代理模式改为 DouyuLogin 内部通过 proxy_manager 自治管理
登录过程中的代理切换(极验、整体重试)不再由服务层预取
- Schema/LoginBatchRequest 添加 max_login_retries 和 max_total_time
- 前端 API 调用改为对象参数形式,透传新参数
|
2026-06-23 22:06:00 +08:00 |
|
yml2213
|
36d55ed685
|
fix: 代理验证增加极验api.geetest.com连通性测试
- 原来只验证douyu.com,能过但极验不通的代理会入池后立即失败
- 现在两关验证:先过douyu.com,再过api.geetest.com
- 日志中09:04:03验证10/10全通过但极验连续失败的问题不会再出现
- 极验超时/不可达的代理在入池前就被过滤掉
|
2026-06-23 09:40:44 +08:00 |
|
yml2213
|
e778acbccd
|
fix: 极验重试区分代理死亡和临时波动,减少无效换代理
- 新增 _is_proxy_connection_error 判断异常类型
- 代理连接类错误(ProxyError/超时/502):立即换代理+标记坏
- 临时波动(slide/网络不给力/KeyError):先用原代理重试2次,才换代理
- _refresh_proxy 新增 mark_bad 参数,临时换代理不标记坏
- 解决日志中'网络不给力'反复换代理导致池枯竭的问题
|
2026-06-23 09:39:43 +08:00 |
|
yml2213
|
ab4b5e7f08
|
fix: mark_bad改为带冷却期的软隔离,防止代理池快速枯竭
- 失败1次: 冷却30s后可重新入池(指数退避:30s→60s→120s)
- 连续失败3次: 才永久移出池
- 选代理时优先跳过冷却中的代理,池子全冷却时退而求其次
- 成功归还代理时清除失败记录(release_proxy)
- 解决日志中09:02:23后代理被逐个误杀导致池枯竭的问题
|
2026-06-23 09:36:57 +08:00 |
|
yml2213
|
3b36175bbb
|
fix: 改用Roundcube API获取验证码,修复邮件时间解析不可靠问题
- 新增Roundcube Webmail登录+JSON API读取邮件列表(含精确日期)
- Roundcube优先,read.php降为备用回退
- 解析Roundcube返回的中文日期格式(今天/昨天/星期X HH:MM)
- 修复read.php时间字段被MIME编码Subject污染导致'保守拒绝'误判
- 修复邮件时间UTC/本地时区8小时偏差导致正常邮件被跳过的问题
- read.php备用模式下解析不到时间不再保守拒绝,改为放行
|
2026-06-23 09:34:44 +08:00 |
|
yml2213
|
dd56de9bd4
|
fix: 修复proxy_service和account_service中不当的顶层import
- proxy_service.py: 将requests和WhitelistManager改为函数内延迟import,
避免启动时加载不需要的依赖;移除未使用的get_exit_ip_via_proxy导入
- account_service.py: 移除未使用的func、joinedload、AuditLog、
user_has_permission顶层导入
|
2026-06-23 08:35:29 +08:00 |
|
yml2213
|
2ab6724543
|
refactor: 补全services层+消除core/models.py冗余+修复network.py缩进错误
高优先级问题1 - Router层业务逻辑泄漏:
- 新建 services/proxy_service.py: 从routers/proxy.py提取ProxyService类,
封装代理/白名单测试逻辑、全局状态管理、所有core/ import
- 新建 services/account_service.py: 从routers/accounts.py提取
split_account_line、cookie_account_ids_query、parse_and_build_accounts,
封装core.douyu.email_verifier的import
- 重写routers/proxy.py为薄HTTP/WS层,移除所有core/直接依赖
- 精简routers/accounts.py,从account_service导入业务函数
- 将_active_batches全局状态移入login_service.py的BatchRegistry类
- routers/login.py改为使用batch_registry单例
高优先级问题2 - 两套models.py冗余:
- 删除core/models.py(Account dataclass + ProxyConfig死代码)
- 在core/douyu/login.py新增AccountLike Protocol替代Account dataclass
- login_service.py中Account(...)构造改为SimpleNamespace(...)
- 清理core/__init__.py导出
附带修复:
- core/geetest/common/network.py的get_picture()函数缩进错误
(缺少if match:块和data赋值语句)
|
2026-06-23 07:34:17 +08:00 |
|
yml2213
|
2ccc2a9336
|
修复并发账号分配到同一个代理的问题
问题:get_proxy每次返回池中第一个代理,导致并发账号用同一个代理,
容易触发斗鱼/极验风控。
修复:
- 增加_in_use集合,get_proxy取代理时标记为使用中,避免重复分配
- 代理池空但所有代理都在使用中时,允许复用(兜底)
- 新增release_proxy方法,登录完成后归还代理到池
- login.py的finally块中调用release_proxy,确保成功/失败都归还
- mark_bad同时从_in_use移除
|
2026-06-23 01:41:46 +08:00 |
|
yml2213
|
c1c9d186d1
|
修复验证码提取到旧邮件的问题
问题:HTTP读邮件接口返回最新一封邮件,但可能是之前其他账号的旧验证码。
日志显示提取到485932(06-22的)和242740(25分钟前的),提交后报邮箱验证码错误。
根因:
1. 时间解析正则匹配到了HTML标签'</label>'前缀,导致parsedate_to_datetime失败
2. 解析失败后保守'纳入候选',导致旧验证码被使用
修复:
- 先清理HTML标签再提取时间
- 支持RFC2822格式和YYYY-MM-DD HH:MM:SS格式
- 解析失败时保守'拒绝'(而不是纳入候选),避免使用旧验证码
- 5项时间解析测试全部通过
|
2026-06-23 01:34:57 +08:00 |
|
yml2213
|
d47b8e24fa
|
邮箱验证改用HTTP接口替代IMAP
- 通过 http://111.229.206.54:8000/read.php 读取邮件,不再依赖IMAP
- 解决IMAP密码错误/授权码过期导致45%登录失败的问题
- 错误密码不再抛异常,返回None由上层处理
- 兼容原有EmailVerifier接口签名,login.py无需改动
|
2026-06-23 01:25:38 +08:00 |
|