import time from typing import Optional, Tuple from utils.device_id import get_device_id from utils.registration import validate_registration from regex import T from utils.logger import chat_logger class RegistrationManager: """注册状态管理器""" def __init__(self, check_interval: int = 3600): self._is_registered: Optional[bool] = None self._last_check_time: float = 0 self._check_interval = check_interval # 检查间隔(秒) async def check_registration(self) -> bool: """检查注册状态,带缓存""" current_time = time.time() # 如果缓存未过期,直接返回缓存结果 if ( self._is_registered is True and current_time - self._last_check_time < self._check_interval ): return self._is_registered try: is_valid, message = await self._check_license_validity() self._is_registered = is_valid self._last_check_time = current_time if is_valid: chat_logger.info(f"✅ {message}") else: chat_logger.warning(f"❌ {message}") return is_valid except Exception as e: chat_logger.error(f"注册检查失败: {str(e)}") # 检查失败时保守处理 self._is_registered = False return False async def _check_license_validity(self) -> Tuple[bool, str]: """实际的注册检查逻辑""" secret_key = "ialwayslovelongjoe" try: is_valid, message, reg_info = validate_registration( secret_key, get_device_id ) print(f"验证结果: {is_valid}") print(f"消息: {message}") if reg_info: print(f"注册信息: {reg_info}") return is_valid, message # 临时返回True except Exception as e: chat_logger.error(f"许可证检查异常: {str(e)}") return False, message def force_refresh(self): """强制刷新注册状态""" self._is_registered = None self._last_check_time = 0 chat_logger.info("强制刷新注册状态") def get_status(self): """获取当前状态信息""" return { "is_registered": self._is_registered, "last_check_time": self._last_check_time, "check_interval": self._check_interval, } # 全局实例 registration_manager = RegistrationManager()