完善虎牙账号管理并规范Cookie

This commit is contained in:
yml2213
2026-07-05 13:13:38 +08:00
parent 8f48b96fdc
commit 984096f758
15 changed files with 1320 additions and 59 deletions
+2 -1
View File
@@ -11,6 +11,7 @@ from loguru import logger
from sqlalchemy.orm import Session, joinedload
from core.huya import HuyaHttpClient
from core.huya.cookie_utils import normalize_huya_cookie
from ..database import SessionLocal
from ..models import HuyaAccount, HuyaGoodsSnapshot, HuyaRechargeGoodsSnapshot, HuyaTask
from .huya_service import HUYA_CONFIG_FIELDS, cookie_value, ensure_huya_config, huya_config_value
@@ -1196,7 +1197,7 @@ class HuyaBatchRunner:
"yyuid": account.yyuid or "",
"username": account.username or "",
"nickname": account.nickname or "",
"cookie": account.cookie or "",
"cookie": normalize_huya_cookie(account.cookie or ""),
},
})
self.db.commit()
+3 -7
View File
@@ -1,11 +1,12 @@
"""虎牙基础业务服务。"""
import re
import uuid
from datetime import datetime, timezone
from sqlalchemy.orm import Session
from core.huya.cookie_utils import cookie_value, normalize_huya_cookie
from ..huya_defaults import HUYA_CONFIG_DEFAULTS, HUYA_CONFIG_FIELDS
from ..models import HuyaAccount, HuyaConfig, HuyaTask
@@ -44,12 +45,6 @@ def apply_huya_config_defaults(config: HuyaConfig) -> bool:
return changed
def cookie_value(cookie: str, key: str) -> str:
"""从 Cookie 文本中提取指定 key。"""
match = re.search(rf"(?:^|;\s*){re.escape(key)}=([^;]+)", cookie or "")
return match.group(1).strip() if match else ""
def _looks_like_huya_cookie(value: str) -> bool:
"""判断文本是否像虎牙 Cookie。"""
return "udb_" in value or "yyuid=" in value
@@ -78,6 +73,7 @@ def parse_huya_cookie_line(line: str) -> dict | None:
if not _looks_like_huya_cookie(cookie):
return None
cookie = normalize_huya_cookie(cookie)
yyuid = cookie_value(cookie, "yyuid")
uid = cookie_value(cookie, "udb_uid") or yyuid