执行 Ruff 安全自动修复
This commit is contained in:
+26
-24
@@ -4,28 +4,30 @@ import json
|
||||
import re
|
||||
import threading
|
||||
import time
|
||||
import requests
|
||||
from typing import Mapping, Optional, Protocol, Tuple
|
||||
from collections.abc import Mapping
|
||||
from typing import Protocol
|
||||
from urllib.parse import urlsplit, urlunsplit
|
||||
|
||||
import requests
|
||||
from loguru import logger
|
||||
|
||||
from core.geetest.common.network import (
|
||||
get_c_s,
|
||||
get_js_address,
|
||||
req_fullpage_validate,
|
||||
)
|
||||
from core.geetest.v3_slide.solver import (
|
||||
_generate_seed,
|
||||
get_w1,
|
||||
get_w2,
|
||||
)
|
||||
|
||||
from .cookie_enricher import CookieEnricher
|
||||
from .email_verifier import EmailLoginError, EmailVerifier
|
||||
from .login_api import LoginAPIStrategy
|
||||
from .login_api_wgapi import WgapiLoginAPI
|
||||
from .proxy_fetcher import ProxyFetcher
|
||||
|
||||
from core.geetest.v3_slide.solver import (
|
||||
_generate_seed,
|
||||
get_w1,
|
||||
get_w2,
|
||||
)
|
||||
from core.geetest.common.network import (
|
||||
get_js_address,
|
||||
get_c_s,
|
||||
req_fullpage_validate,
|
||||
)
|
||||
|
||||
# ── 全局极验并发限制:同一时刻最多2个线程做极验验证 ──
|
||||
_geetest_semaphore = threading.Semaphore(2)
|
||||
|
||||
@@ -95,14 +97,14 @@ class DouyuLogin:
|
||||
def __init__(
|
||||
self,
|
||||
account: AccountLike,
|
||||
proxy: Optional[str | Mapping[str, str]] = None,
|
||||
proxy_api_url: Optional[str] = None,
|
||||
proxy: str | Mapping[str, str] | None = None,
|
||||
proxy_api_url: str | None = None,
|
||||
timeout: tuple[float, float] = REQUEST_TIMEOUT,
|
||||
max_login_retries: int = 0,
|
||||
max_total_time: float = 0,
|
||||
proxy_fetcher: Optional[ProxyFetcher] = None,
|
||||
stop_event: Optional[threading.Event] = None,
|
||||
api_strategy: Optional[LoginAPIStrategy] = None,
|
||||
proxy_fetcher: ProxyFetcher | None = None,
|
||||
stop_event: threading.Event | None = None,
|
||||
api_strategy: LoginAPIStrategy | None = None,
|
||||
):
|
||||
self.account = account
|
||||
self.proxy = proxy
|
||||
@@ -117,7 +119,7 @@ class DouyuLogin:
|
||||
ProxyFetcher(api_url=proxy_api_url) if proxy_api_url else None
|
||||
)
|
||||
|
||||
self._current_proxy_url: Optional[str] = None
|
||||
self._current_proxy_url: str | None = None
|
||||
self._cookie_enrich_error = ""
|
||||
self._static_retry_count = 0
|
||||
self._setup_session()
|
||||
@@ -565,7 +567,7 @@ class DouyuLogin:
|
||||
)
|
||||
return True
|
||||
|
||||
def _first_login(self) -> Tuple[str, str, str, dict]:
|
||||
def _first_login(self) -> tuple[str, str, str, dict]:
|
||||
"""
|
||||
第一次登录,获取极验参数
|
||||
|
||||
@@ -608,7 +610,7 @@ class DouyuLogin:
|
||||
|
||||
def _solve_geetest(
|
||||
self, gt: str, challenge: str, deadline: float = 0
|
||||
) -> Tuple[str, str]:
|
||||
) -> tuple[str, str]:
|
||||
"""
|
||||
解决极验 fullpage 验证(最多3次尝试,失败直接抛异常回到login换新代理)
|
||||
|
||||
@@ -635,7 +637,7 @@ class DouyuLogin:
|
||||
|
||||
def _solve_geetest_inner(
|
||||
self, gt: str, challenge: str, deadline: float = 0
|
||||
) -> Tuple[str, str]:
|
||||
) -> tuple[str, str]:
|
||||
"""极验验证内部实现:最多3次尝试,失败直接抛异常。"""
|
||||
_MAX_ATTEMPTS = 3
|
||||
|
||||
@@ -652,7 +654,7 @@ class DouyuLogin:
|
||||
|
||||
# 超时兜底
|
||||
if deadline and time.monotonic() > deadline:
|
||||
raise ValueError(f"极验验证超时(登录整体时间耗尽)")
|
||||
raise ValueError("极验验证超时(登录整体时间耗尽)")
|
||||
|
||||
try:
|
||||
logger.info(f"极验验证尝试 {attempt}/{_MAX_ATTEMPTS}")
|
||||
@@ -825,7 +827,7 @@ class DouyuLogin:
|
||||
|
||||
logger.info("验证邮件已发送")
|
||||
|
||||
def _get_email_code(self, after_timestamp: Optional[float] = None) -> str:
|
||||
def _get_email_code(self, after_timestamp: float | None = None) -> str:
|
||||
"""获取邮箱验证码"""
|
||||
verifier = EmailVerifier(
|
||||
imap_server=self.account.email_imap_server,
|
||||
|
||||
Reference in New Issue
Block a user