v0版本完成:精简 README、修正转生流程、每包禁止 2 首

1) reincarnate.py 流程修正(按使用方口径)
   登录 -> 等待 -> 上传 -> 登出(type=1) -> 续关登录 -> 等待 -> 上传 -> 登出 -> ...
   - 每包之间**先登出再续关**(原来只在最后登出一次)
   - 登出改用 type=1(LogoutType.Logout)
     真机抓包实证 UserLogoutApi 就是 type=1(带 delayLog);
     续关场景用 4(TestIn)会出问题 —— 那是「测试登入/顶号」的语义
   - 新增 --wait N(默认 5.0 秒,每次上传前的等待)

2) 新增分批器 split_batches:★ 每包恰好 2 首会被服务端拒绝
   - 1 / 3 / 4 首都正常,只有 2 首不行
   - 分批时主动避开:10 首 [4,4,2] -> [4,3,3];6 首 [4,2] -> [3,3];
     5 首 per=3 [3,2] -> [3,1,1]
   - --per-packet 只接受 1/3/4
   - 自检加了 1..299 首 × per∈{1,3,4} 的全量扫描

3) README 精简(24 KB -> 11 KB)
   - 删掉「关于购买功能票(已解决)」(根因分析移到 docs)
   - 删掉「常见坑与注意事项」(移到 docs)
   - 功能票只列 2/3/5 倍票;只简述用票原理
   - 转生只简述「干了什么」
   - netdelivery 只讲用法,不讲运行原理
   - 新增「文档索引」章节

4) 自检 238 -> 249 项全绿
This commit is contained in:
2026-10-07 11:23:30 +08:00
parent 4959487a71
commit cdbdfb63fa
3 changed files with 231 additions and 312 deletions
+27
View File
@@ -1165,6 +1165,33 @@ check("会话链路 6 个函数都在",
"UserLogin", "UserLogout")))
# =============================================================================
# 19. reincarnate 分批器(★ 每包恰好 2 首会被服务端拒绝)
# =============================================================================
section("19. reincarnate 分批器")
from reincarnate import split_batches as _split # noqa: E402
for _t, _p, _want in [(10, 4, [4, 3, 3]), (6, 4, [3, 3]), (2, 4, [1, 1]),
(5, 3, [3, 1, 1]), (8, 3, [3, 3, 1, 1]), (5, 4, [4, 1]),
(4, 4, [4]), (1, 4, [1]), (7, 4, [4, 3])]:
_got = _split(_t, _p)
check("分批 " + str(_t) + " 首 per=" + str(_p) + " -> " + str(_want),
_got == _want, str(_got))
_bad = []
for _t in range(1, 300):
for _p in (1, 3, 4):
_g = _split(_t, _p)
if sum(_g) != _t or 2 in _g or any(x > _p or x < 1 for x in _g):
_bad.append((_t, _p, _g))
check("1..299 首 × per∈{1,3,4} 都不产生 2 首包", not _bad, str(_bad[:3]))
check("--per-packet 允许值 = (1, 3, 4)",
__import__("reincarnate").ALLOWED_PER_PACKET == (1, 3, 4))
# =============================================================================
# 汇总
# =============================================================================