执行 Ruff 安全自动修复
This commit is contained in:
@@ -6,11 +6,9 @@ import re
|
||||
import threading
|
||||
import time
|
||||
from datetime import datetime, timedelta
|
||||
from typing import Optional
|
||||
|
||||
from loguru import logger
|
||||
import requests
|
||||
|
||||
from loguru import logger
|
||||
|
||||
# Roundcube Webmail 地址。可通过环境变量覆盖。空值时回退到默认。
|
||||
ROUNDCUBE_URL = os.getenv("MAIL_ROUNDCUBE_URL") or "http://111.229.206.54:8000/"
|
||||
@@ -40,7 +38,7 @@ class EmailVerifier:
|
||||
max_messages: int = 20,
|
||||
use_ssl: bool = False,
|
||||
roundcube_url: str = "",
|
||||
backup_passwords: Optional[list[str]] = None,
|
||||
backup_passwords: list[str] | None = None,
|
||||
):
|
||||
# 兼容旧参数名
|
||||
self.imap_server = imap_server
|
||||
@@ -54,14 +52,13 @@ class EmailVerifier:
|
||||
)
|
||||
|
||||
# Roundcube 会话(懒初始化)
|
||||
self._rc_session: Optional[requests.Session] = None
|
||||
self._rc_token: Optional[str] = None
|
||||
self._rc_session: requests.Session | None = None
|
||||
self._rc_token: str | None = None
|
||||
self._rc_logged_in = False
|
||||
self._rc_login_error = ""
|
||||
|
||||
def connect(self) -> None:
|
||||
"""兼容接口"""
|
||||
pass
|
||||
|
||||
def disconnect(self) -> None:
|
||||
"""关闭 Roundcube 会话"""
|
||||
@@ -239,7 +236,7 @@ class EmailVerifier:
|
||||
|
||||
# ── Roundcube 读取邮件内容 ─────────────────────────────
|
||||
|
||||
def _rc_fetch_email_body(self, uid: int) -> Optional[str]:
|
||||
def _rc_fetch_email_body(self, uid: int) -> str | None:
|
||||
"""通过 Roundcube 读取指定 UID 邮件的正文"""
|
||||
if not self._ensure_roundcube_session():
|
||||
if self._rc_login_error:
|
||||
@@ -262,7 +259,7 @@ class EmailVerifier:
|
||||
# ── Roundcube 日期解析 ─────────────────────────────────
|
||||
|
||||
@staticmethod
|
||||
def _parse_rc_date(date_str: str) -> Optional[datetime]:
|
||||
def _parse_rc_date(date_str: str) -> datetime | None:
|
||||
"""
|
||||
解析 Roundcube 返回的日期字符串为 datetime。
|
||||
|
||||
@@ -363,9 +360,9 @@ class EmailVerifier:
|
||||
self,
|
||||
max_wait: int = 60,
|
||||
interval: int = 3,
|
||||
after_timestamp: Optional[float] = None,
|
||||
after_timestamp: float | None = None,
|
||||
allow_old_seconds: int = 15,
|
||||
stop_event: Optional[threading.Event] = None,
|
||||
stop_event: threading.Event | None = None,
|
||||
) -> str:
|
||||
"""
|
||||
轮询获取斗鱼验证码。
|
||||
@@ -417,9 +414,9 @@ class EmailVerifier:
|
||||
|
||||
def _fetch_code_via_roundcube(
|
||||
self,
|
||||
after_timestamp: Optional[float] = None,
|
||||
after_timestamp: float | None = None,
|
||||
allow_old_seconds: int = 15,
|
||||
) -> Optional[str]:
|
||||
) -> str | None:
|
||||
"""通过 Roundcube API 获取最新斗鱼验证码"""
|
||||
messages = self._rc_fetch_mail_list()
|
||||
|
||||
@@ -465,7 +462,7 @@ class EmailVerifier:
|
||||
|
||||
# ── 通用工具方法 ───────────────────────────────────────
|
||||
|
||||
def _extract_verification_code(self, text: str) -> Optional[str]:
|
||||
def _extract_verification_code(self, text: str) -> str | None:
|
||||
"""从文本中提取6位验证码"""
|
||||
# 清理HTML标签和实体
|
||||
text = html.unescape(text)
|
||||
|
||||
Reference in New Issue
Block a user