清理虎牙登录旧数据依赖并统一动态环境
This commit is contained in:
+19
-11
@@ -90,7 +90,7 @@ def _build_select_operator_request(
|
||||
# 仅供无画像的协议级独立调用兜底;生产登录始终传入账号画像。
|
||||
"app_version": "13.4.22",
|
||||
"model": "M2102J2SC",
|
||||
"fingerprint": fingerprint or "02df398797432eadefcc12767119ad5e80999389",
|
||||
"fingerprint": fingerprint or hashlib.sha1(os.urandom(20)).hexdigest(),
|
||||
"screen": "M2102J2SC,30,11",
|
||||
}
|
||||
if device_info:
|
||||
@@ -248,16 +248,21 @@ def _build_dfp_json_plain(device_info: Mapping[str, str] | None = None) -> bytes
|
||||
|
||||
|
||||
def _select_operator_request(template: bytes, fingerprint: str | None) -> bytes:
|
||||
if fingerprint and len(fingerprint) == 40:
|
||||
old = b"02df398797432eadefcc12767119ad5e80999389"
|
||||
index = template.find(old)
|
||||
if index >= 0:
|
||||
return (
|
||||
template[:index]
|
||||
+ fingerprint.encode("ascii")
|
||||
+ template[index + len(old) :]
|
||||
)
|
||||
return template
|
||||
"""Inject a current 40-hex fingerprint into a legacy request shape.
|
||||
|
||||
This compatibility path only operates on the shape supplied by a caller;
|
||||
it does not contain or search for a particular captured device value.
|
||||
"""
|
||||
if not fingerprint or len(fingerprint) != 40:
|
||||
return template
|
||||
match = re.search(rb"(?<![0-9a-f])[0-9a-f]{40}(?![0-9a-f])", template)
|
||||
if match is None:
|
||||
return template
|
||||
return (
|
||||
template[: match.start()]
|
||||
+ fingerprint.encode("ascii")
|
||||
+ template[match.end() :]
|
||||
)
|
||||
|
||||
|
||||
def _parse_response(data: bytes) -> tuple[str, str, str]:
|
||||
@@ -284,6 +289,9 @@ def register_device(
|
||||
"""执行新注册链,返回 ``(t1, safedeviceid, device_id)``。"""
|
||||
chain = _load_chain(fingerprint=fingerprint, device_info=device_info)
|
||||
_post(chain["getDfpConfig"][0], timeout=timeout, proxies=proxies)
|
||||
# The generated request already contains the current profile fingerprint.
|
||||
# Keep a generic shape-only compatibility patch for injected test/custom
|
||||
# templates; no captured device value is embedded in this module.
|
||||
select_request = _select_operator_request(chain["selectOperator"][0], fingerprint)
|
||||
_post(select_request, "application/x-wup", timeout, proxies)
|
||||
response = _post(
|
||||
|
||||
Reference in New Issue
Block a user