style: 统一 Ruff 代码格式

This commit is contained in:
yml2213
2026-08-30 21:04:52 +08:00
parent c891ac982e
commit 47e19ed7b2
90 changed files with 5574 additions and 2350 deletions
+52 -10
View File
@@ -12,6 +12,7 @@ mall 加密链路(E3 已验证,U-2022 闭环):
注意:xMidasOps 是 mall 详情页页面级数据表(59620 长度,服务端生成),
必须从浏览器捕获(与 goods 的 59640 不同)。
"""
from __future__ import annotations
import copy
@@ -24,9 +25,28 @@ from .algorithm import UNDEF, JSObject, Window
from .pagedoo_vm import PagedooVM
REPLAY = Path(__file__).resolve().parent.parent / "replay" / "mall"
GLOBALS = [UNDEF, None, True, False, 4294967295, 3995986053, 2103143698, 1622111212,
4263108271, 3162892160, 1960464030, 2867129963, 3224029870, 3514649446,
1382846327, 1898428403, 1268470028, 1457769175, 1595352606, 1100935262]
GLOBALS = [
UNDEF,
None,
True,
False,
4294967295,
3995986053,
2103143698,
1622111212,
4263108271,
3162892160,
1960464030,
2867129963,
3224029870,
3514649446,
1382846327,
1898428403,
1268470028,
1457769175,
1595352606,
1100935262,
]
class MallSession:
@@ -45,9 +65,13 @@ class MallSession:
def validate(self) -> None:
if len(self.transform_input) != 18:
raise ValueError(f"transform_input 应为 18 槽,实际 {len(self.transform_input)}")
raise ValueError(
f"transform_input 应为 18 槽,实际 {len(self.transform_input)}"
)
if len(self.xmidas_ops) != 59620:
raise ValueError(f"mall xMidasOps 应为 59620(非 goods 59640),实际 {len(self.xmidas_ops)}")
raise ValueError(
f"mall xMidasOps 应为 59620(非 goods 59640),实际 {len(self.xmidas_ops)}"
)
mid = self.transform_input[10]
if isinstance(mid, list) and mid and isinstance(mid[0], list):
if len(mid[0]) != 624:
@@ -61,7 +85,11 @@ class MallSession:
- J|...|e377650|{JSON} e377650 创建参数(transform_input)
- XMIDAS_OPS|url|59620数组 mall 详情页 xMidasOps
"""
lines = Path(frames_jsonl).read_text(encoding="utf-8", errors="replace").splitlines()
lines = (
Path(frames_jsonl)
.read_text(encoding="utf-8", errors="replace")
.splitlines()
)
transform_input = None
xmidas = None
# xMidasOps:取 mall 详情页(z.iwan / pagedoo)那条
@@ -85,7 +113,9 @@ class MallSession:
transform_input = json.loads(l.split("|e377650|", 1)[1])
break
if transform_input is None:
raise ValueError("frames.jsonl 中未找到 e377650 J 转储(需 mall 详情页购买触发加密)")
raise ValueError(
"frames.jsonl 中未找到 e377650 J 转储(需 mall 详情页购买触发加密)"
)
if xmidas is None:
raise ValueError("frames.jsonl 中未找到 59620 长度 xMidasOps")
return cls(transform_input, xmidas)
@@ -112,8 +142,18 @@ def _mk_window(xmidas: list) -> Window:
w.set("sessionStorage", JSObject())
w.set("screen", JSObject())
w.set("history", JSObject())
w.set("XMLHttpRequest", type("XHR", (), {
"open": lambda *a: None, "send": lambda *a: None, "setRequestHeader": lambda *a: None}))
w.set(
"XMLHttpRequest",
type(
"XHR",
(),
{
"open": lambda *a: None,
"send": lambda *a: None,
"setRequestHeader": lambda *a: None,
},
),
)
w.set("fetch", lambda *a: None)
w.set("xMidasOps", xmidas)
return w
@@ -143,5 +183,7 @@ def generate_encrypt_msg(session: MallSession, random_seed: int = 1) -> str:
h9 = h[9][0] if isinstance(h[9], list) and h[9] else h[9]
if not isinstance(h9, list) or len(h9) != 624:
raise RuntimeError(f"e377650 输出异常: {type(h9).__name__} len={len(h9) if isinstance(h9, list) else '?'}")
raise RuntimeError(
f"e377650 输出异常: {type(h9).__name__} len={len(h9) if isinstance(h9, list) else '?'}"
)
return "".join(f"{x & 255:02x}" for x in h9)