执行 Ruff 安全自动修复
This commit is contained in:
@@ -13,22 +13,24 @@ from .algorithm import (
|
||||
generate_encrypt_msg,
|
||||
generate_encrypt_msg_offline,
|
||||
)
|
||||
from .goods import GoodsSession, generate_encrypt_msg as goods_generate
|
||||
from .mall import MallSession, generate_encrypt_msg as mall_generate
|
||||
from .goods import GoodsSession
|
||||
from .goods import generate_encrypt_msg as goods_generate
|
||||
from .mall import MallSession
|
||||
from .mall import generate_encrypt_msg as mall_generate
|
||||
from .pagedoo_vm import PagedooVM, run_frame
|
||||
from .session import SessionState, load_session
|
||||
|
||||
__all__ = [
|
||||
"GoodsSession",
|
||||
"MallSession",
|
||||
"PagedooVM",
|
||||
"SessionState",
|
||||
"build_plaintext",
|
||||
"decode_d",
|
||||
"generate_encrypt_msg",
|
||||
"generate_encrypt_msg_offline",
|
||||
"GoodsSession",
|
||||
"goods_generate",
|
||||
"MallSession",
|
||||
"mall_generate",
|
||||
"PagedooVM",
|
||||
"run_frame",
|
||||
"SessionState",
|
||||
"load_session",
|
||||
"mall_generate",
|
||||
"run_frame",
|
||||
]
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import itertools
|
||||
import json
|
||||
import math
|
||||
@@ -355,7 +356,7 @@ def js_set(obj, key, val):
|
||||
if isinstance(obj, str):
|
||||
raise TypeError("Cannot assign to read only property")
|
||||
cur = getattr(
|
||||
getattr(__import__("pyvm.algorithm", fromlist=["x"]), "VM"), "_last_u", None
|
||||
__import__("pyvm.algorithm", fromlist=["x"]).VM, "_last_u", None
|
||||
)
|
||||
raise TypeError(
|
||||
f"invalid set target obj={type(obj).__name__} key={key!r} val={type(val).__name__} u={cur}"
|
||||
@@ -418,7 +419,7 @@ class Window:
|
||||
class JSFunction:
|
||||
"""VM 函数(解释器实例工厂返回的 h)。"""
|
||||
|
||||
__slots__ = ("entry", "args", "s", "n", "t", "vm", "name")
|
||||
__slots__ = ("args", "entry", "n", "name", "s", "t", "vm")
|
||||
|
||||
def __init__(self, vm, entry, args, s, n, t):
|
||||
self.vm = vm
|
||||
@@ -455,7 +456,7 @@ def js_call(fn, this, args):
|
||||
return fn.fn(this, *args)
|
||||
if callable(fn):
|
||||
return fn(this, *args)
|
||||
raise TypeError(f"{str(fn)} is not a function u={getattr(VM, '_last_u', None)}")
|
||||
raise TypeError(f"{fn!s} is not a function u={getattr(VM, '_last_u', None)}")
|
||||
|
||||
|
||||
def js_apply(fn, this, args):
|
||||
|
||||
@@ -12,7 +12,6 @@ from __future__ import annotations
|
||||
|
||||
import json
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
from .algorithm import generate_encrypt_msg_offline
|
||||
|
||||
@@ -64,7 +63,7 @@ class GoodsSession:
|
||||
raise ValueError("key16/key1 应为 16 字节")
|
||||
|
||||
@classmethod
|
||||
def from_session_state(cls, path: str | Path) -> "GoodsSession":
|
||||
def from_session_state(cls, path: str | Path) -> GoodsSession:
|
||||
"""从 scripts/capture-session.mjs 生成的 session-state.json 加载。"""
|
||||
d = json.loads(Path(path).read_text(encoding="utf-8"))
|
||||
return cls(
|
||||
@@ -85,7 +84,7 @@ class GoodsSession:
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def from_json(cls, d: dict) -> "GoodsSession":
|
||||
def from_json(cls, d: dict) -> GoodsSession:
|
||||
return cls(
|
||||
d["xmidas_ops"],
|
||||
d["key16"],
|
||||
|
||||
@@ -19,7 +19,6 @@ import copy
|
||||
import json
|
||||
import re
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
from .algorithm import UNDEF, JSObject, Window
|
||||
from .pagedoo_vm import PagedooVM
|
||||
@@ -78,7 +77,7 @@ class MallSession:
|
||||
raise ValueError(f"624B 中间态长度 != 624: {len(mid[0])}")
|
||||
|
||||
@classmethod
|
||||
def from_capture_file(cls, frames_jsonl: str | Path) -> "MallSession":
|
||||
def from_capture_file(cls, frames_jsonl: str | Path) -> MallSession:
|
||||
"""从捕获的 frames.jsonl 提取同会话 transform_input + xMidasOps。
|
||||
|
||||
frames.jsonl 由 scripts/capture-mall-session.mjs 实时落盘:
|
||||
@@ -127,7 +126,7 @@ class MallSession:
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def from_json(cls, d: dict) -> "MallSession":
|
||||
def from_json(cls, d: dict) -> MallSession:
|
||||
return cls(d["transform_input"], d["xmidas_ops"])
|
||||
|
||||
|
||||
|
||||
@@ -13,56 +13,51 @@ JS 语义辅助复用 algorithm.py(_ic/i32/js_add/js_index/JSObject/JSFunction
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import math
|
||||
import urllib.parse
|
||||
from pathlib import Path
|
||||
|
||||
from .algorithm import (
|
||||
JSDate,
|
||||
UNDEF,
|
||||
HostFunction,
|
||||
JSDate,
|
||||
JSFunction,
|
||||
JSObject,
|
||||
HostFunction,
|
||||
_ic,
|
||||
i32,
|
||||
u32,
|
||||
ushr,
|
||||
shl,
|
||||
shr,
|
||||
js_typeof,
|
||||
js_truthy,
|
||||
js_str,
|
||||
js_add,
|
||||
js_num,
|
||||
js_eq,
|
||||
js_streq,
|
||||
js_index,
|
||||
js_set,
|
||||
js_del,
|
||||
js_keys,
|
||||
js_call,
|
||||
js_apply,
|
||||
js_new,
|
||||
h_math_floor,
|
||||
h_math_round,
|
||||
h_math_ceil,
|
||||
h_math_min,
|
||||
h_math_max,
|
||||
h_math_abs,
|
||||
h_math_pow,
|
||||
h_math_sqrt,
|
||||
h_parseint,
|
||||
h_parsefloat,
|
||||
h_isnan,
|
||||
h_encodeuri,
|
||||
h_encodeuricomponent,
|
||||
h_decodeuri,
|
||||
h_decodeuricomponent,
|
||||
h_string_fromcharcode,
|
||||
h_encodeuri,
|
||||
h_encodeuricomponent,
|
||||
h_isnan,
|
||||
h_math_abs,
|
||||
h_math_ceil,
|
||||
h_math_floor,
|
||||
h_math_max,
|
||||
h_math_min,
|
||||
h_math_pow,
|
||||
h_math_round,
|
||||
h_math_sqrt,
|
||||
h_new_date,
|
||||
h_parsefloat,
|
||||
h_parseint,
|
||||
h_string_fromcharcode,
|
||||
i32,
|
||||
js_add,
|
||||
js_apply,
|
||||
js_call,
|
||||
js_del,
|
||||
js_eq,
|
||||
js_index,
|
||||
js_keys,
|
||||
js_new,
|
||||
js_num,
|
||||
js_set,
|
||||
js_str,
|
||||
js_truthy,
|
||||
js_typeof,
|
||||
shl,
|
||||
shr,
|
||||
ushr,
|
||||
)
|
||||
|
||||
__all__ = ["PagedooVM", "run_frame", "REPLAY"]
|
||||
__all__ = ["REPLAY", "PagedooVM", "run_frame"]
|
||||
|
||||
|
||||
# ---------------------------------------------------------------- 辅助
|
||||
|
||||
@@ -10,7 +10,6 @@ import json
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
|
||||
PAY_APPID = "1450243039"
|
||||
PAY_GOODS_URL = "https://pay.qq.com/midas/minipay_v2/views/cpay/goods.shtml"
|
||||
PAY_SAVE_URL = f"https://api.unipay.qq.com/v1/r/{PAY_APPID}/web_save"
|
||||
|
||||
@@ -68,7 +68,7 @@ class SessionState:
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def from_json(cls, d: dict) -> "SessionState":
|
||||
def from_json(cls, d: dict) -> SessionState:
|
||||
return cls(
|
||||
xmidas_ops=list(d.get("xmidas_ops", [])),
|
||||
key16=list(d.get("key16", [])),
|
||||
|
||||
Reference in New Issue
Block a user