整理虎牙文档并接入设备画像指纹
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
"""虎牙网页 Cookie 字段生成器测试。"""
|
||||
|
||||
from core.huya.web_cookie_fields import (
|
||||
_qimei_feature_string,
|
||||
_x64hash128,
|
||||
cookie_fields,
|
||||
fill_web_cookie_fields,
|
||||
missing_web_cookie_fields,
|
||||
qimei_feature_from_device_profile,
|
||||
qimei_fingerprint_generate,
|
||||
)
|
||||
|
||||
|
||||
def test_qimei_hash_matches_sdk_vectors():
|
||||
assert _x64hash128("", 31) == "24700f9f1986800ab4fcc880530dd0ed"
|
||||
assert _x64hash128("a", 31) == "f8b09930c1df727ef75677a1d6ae5bd6"
|
||||
assert _x64hash128("abc", 31) == "31844fd43df93041e52bcddd13312671"
|
||||
|
||||
|
||||
def test_qimei_fingerprint_uses_sdk_feature_string():
|
||||
feature = {
|
||||
"screen": {"resolution": "800x600", "availResolution": "800x600"},
|
||||
"navigator": {
|
||||
"deviceMemory": 16,
|
||||
"pdfViewerEnabled": True,
|
||||
"cookieEnabled": True,
|
||||
"productSub": "20030107",
|
||||
"hardwareConcurrency": 10,
|
||||
},
|
||||
"webgl": "Google Inc. (Apple)~ANGLE (Apple, ANGLE Metal Renderer: Apple M4, Unspecified Version)",
|
||||
"timezoneOffset": -480,
|
||||
}
|
||||
assert _qimei_feature_string(feature).endswith("###-480###")
|
||||
assert qimei_fingerprint_generate(feature) == "d07a45de567322edcd42312f38e610be"
|
||||
fields = cookie_fields(fill_web_cookie_fields("", "", qimei_feature=feature))
|
||||
assert fields["_qimei_fingerprint"] == "d07a45de567322edcd42312f38e610be"
|
||||
|
||||
|
||||
def test_fill_replaces_empty_values_and_completes_core_fields():
|
||||
result = fill_web_cookie_fields("guid=; __yamid_new=; game_did=", "a" * 32, 1)
|
||||
fields = cookie_fields(result)
|
||||
assert fields["guid"] == "a" * 32
|
||||
assert fields["__yamid_new"]
|
||||
assert fields["game_did"]
|
||||
assert fields["_qimei_fingerprint"] == qimei_fingerprint_generate()
|
||||
assert not missing_web_cookie_fields(result)
|
||||
|
||||
|
||||
def test_device_profile_builds_stable_webview_feature_approximation():
|
||||
feature = qimei_feature_from_device_profile({
|
||||
"vendor": "vivo",
|
||||
"model": "V2370A",
|
||||
"width": "1080",
|
||||
"height": "2412",
|
||||
})
|
||||
assert feature["screen"] == {
|
||||
"resolution": "1080x2412",
|
||||
"availResolution": "1080x2412",
|
||||
}
|
||||
assert feature["navigator"]["pdfViewerEnabled"] is False
|
||||
assert "Adreno" in str(feature["webgl"])
|
||||
first = qimei_fingerprint_generate(feature)
|
||||
second = qimei_fingerprint_generate(qimei_feature_from_device_profile({
|
||||
"vendor": "vivo",
|
||||
"model": "V2370A",
|
||||
"width": "1080",
|
||||
"height": "2412",
|
||||
}))
|
||||
assert first == second
|
||||
assert first != qimei_fingerprint_generate()
|
||||
Reference in New Issue
Block a user