style: 统一 Ruff 代码格式
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
这里仅收敛已由成功请求验证的固定值,不负责推断或修改协议字段。
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import hashlib
|
||||
@@ -47,21 +48,38 @@ def file_fingerprint(path: Path) -> str:
|
||||
return _sha256_prefix_bytes(path.read_bytes())
|
||||
|
||||
|
||||
def validate_goods_materials(args_template: list, xmidas: list[int] | None = None) -> None:
|
||||
def validate_goods_materials(
|
||||
args_template: list, xmidas: list[int] | None = None
|
||||
) -> None:
|
||||
"""校验 goods webSave VM 所需静态表结构,发现升级时尽早失败。"""
|
||||
if not isinstance(args_template, list) or len(args_template) != 18:
|
||||
raise ValueError("goods args-template 必须是 18 槽数组")
|
||||
for index in (0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16):
|
||||
if not isinstance(args_template[index], list) or not args_template[index]:
|
||||
raise ValueError(f"goods args-template 槽 {index} 缺失")
|
||||
expected_lengths = {0: 16, 1: 256, 2: 256, 3: 256, 4: 256, 5: 256,
|
||||
6: 16, 10: 528, 11: 1024, 12: 1024, 13: 256,
|
||||
14: 256, 15: 256, 16: 256}
|
||||
expected_lengths = {
|
||||
0: 16,
|
||||
1: 256,
|
||||
2: 256,
|
||||
3: 256,
|
||||
4: 256,
|
||||
5: 256,
|
||||
6: 16,
|
||||
10: 528,
|
||||
11: 1024,
|
||||
12: 1024,
|
||||
13: 256,
|
||||
14: 256,
|
||||
15: 256,
|
||||
16: 256,
|
||||
}
|
||||
for index, expected in expected_lengths.items():
|
||||
value = args_template[index][0]
|
||||
if not isinstance(value, list) or len(value) != expected:
|
||||
actual = len(value) if isinstance(value, list) else "非数组"
|
||||
raise ValueError(f"goods args-template 槽 {index} 长度异常: {actual} != {expected}")
|
||||
raise ValueError(
|
||||
f"goods args-template 槽 {index} 长度异常: {actual} != {expected}"
|
||||
)
|
||||
if xmidas is not None and len(xmidas) != 59640:
|
||||
raise ValueError(f"goods xMidasOps 长度异常: {len(xmidas)} != 59640")
|
||||
|
||||
@@ -70,7 +88,9 @@ def validate_mall_materials(transform_fixed: dict[str, Any]) -> None:
|
||||
"""校验 mall 固定槽模板;动态槽仍由当前会话的 GetPayToken 填充。"""
|
||||
if not isinstance(transform_fixed, dict):
|
||||
raise ValueError("mall transform-fixed 必须是对象")
|
||||
required = {str(index) for index in (1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17)}
|
||||
required = {
|
||||
str(index) for index in (1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17)
|
||||
}
|
||||
missing = sorted(required - set(transform_fixed))
|
||||
if missing:
|
||||
raise ValueError(f"mall transform-fixed 缺少槽: {', '.join(missing)}")
|
||||
@@ -79,7 +99,9 @@ def validate_mall_materials(transform_fixed: dict[str, Any]) -> None:
|
||||
raise ValueError(f"mall transform-fixed 槽 {index} 不是数组")
|
||||
|
||||
|
||||
def goods_material_diagnostics(root: Path, args_template: list, xmidas: list[int]) -> dict[str, Any]:
|
||||
def goods_material_diagnostics(
|
||||
root: Path, args_template: list, xmidas: list[int]
|
||||
) -> dict[str, Any]:
|
||||
"""构造脱敏协议指纹,便于区分页面升级和服务端业务拒绝。"""
|
||||
validate_goods_materials(args_template, xmidas)
|
||||
replay = root / "replay"
|
||||
|
||||
Reference in New Issue
Block a user