清理虎牙登录旧数据依赖并统一动态环境
This commit is contained in:
@@ -17,7 +17,7 @@ from pathlib import Path
|
||||
import requests
|
||||
from loguru import logger
|
||||
|
||||
from .device_profile import mobile_user_agent
|
||||
from .device_profile import canonical_account_key, mobile_user_agent
|
||||
|
||||
FINGERPRINT_DIR = Path(__file__).parent / "fingerprint"
|
||||
RUNNER_JS = FINGERPRINT_DIR / "runner.js"
|
||||
@@ -31,10 +31,25 @@ FP_STATE_ROOT = Path(__file__).resolve().parents[2] / "data" / "huya_fp_states"
|
||||
|
||||
def account_state_dir(account: str) -> Path:
|
||||
"""账号专属指纹状态目录 (持久化, 保证同一账号多次登录是同一台'设备')。"""
|
||||
raw = str(account or "anon").strip()
|
||||
account = canonical_account_key(raw)
|
||||
safe = "".join(
|
||||
c if c.isalnum() or c in "-_." else "_" for c in (account or "anon")
|
||||
)[:64]
|
||||
return FP_STATE_ROOT / safe
|
||||
target = FP_STATE_ROOT / safe
|
||||
# Move a pre-rename ``hy_<numeric>`` directory on first access when the
|
||||
# canonical directory does not exist. If both exist, keep the canonical
|
||||
# state and leave the legacy directory untouched for manual cleanup.
|
||||
if raw != account:
|
||||
legacy_safe = "".join(c if c.isalnum() or c in "-_." else "_" for c in raw)[:64]
|
||||
legacy = FP_STATE_ROOT / legacy_safe
|
||||
if not target.exists() and legacy.exists():
|
||||
try:
|
||||
target.parent.mkdir(parents=True, exist_ok=True)
|
||||
legacy.rename(target)
|
||||
except OSError as exc:
|
||||
logger.debug("迁移旧虎牙设备状态失败: {}", exc)
|
||||
return target
|
||||
|
||||
|
||||
def reset_account_state(account: str) -> None:
|
||||
|
||||
Reference in New Issue
Block a user