93 lines
3.0 KiB
Python
Raw Normal View History

2025-09-25 10:52:52 +08:00
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
VWED.util 模块 - 工具函数
"""
import asyncio
2025-09-29 09:35:08 +08:00
from typing import Optional
from utils.logger import get_logger
2025-09-25 10:52:52 +08:00
class VWEDUtilModule:
"""VWED.util 模块 - 工具函数"""
def __init__(self, script_id: str):
self.script_id = script_id
2025-09-29 09:35:08 +08:00
self.logger = get_logger(f"script.{script_id}.util")
2025-09-25 10:52:52 +08:00
def sleep(self, seconds: float):
"""同步睡眠"""
import time
time.sleep(seconds)
async def async_sleep(self, seconds: float):
"""异步睡眠"""
await asyncio.sleep(seconds)
def now(self) -> str:
"""获取当前时间"""
from datetime import datetime
return datetime.now().isoformat()
def timestamp(self) -> float:
"""获取当前时间戳"""
import time
return time.time()
def uuid(self) -> str:
"""生成UUID"""
import uuid
2025-09-29 09:35:08 +08:00
return str(uuid.uuid4())
async def get_auth_token(self, username: str = "vwed", password: str = "vwed_123456") -> Optional[str]:
"""获取认证token
Args:
username: 用户名默认为"vwed"
password: 密码默认为"vwed_123456"
Returns:
Optional[str]: 认证令牌如果获取失败则返回None
"""
try:
from services.sync_service import get_login_token
token = await get_login_token(username, password)
if token:
self.logger.info(f"脚本 {self.script_id} 成功获取登录token")
return token
else:
self.logger.warning(f"脚本 {self.script_id} 获取登录token失败")
return None
except Exception as e:
self.logger.error(f"脚本 {self.script_id} 获取token异常: {str(e)}")
return None
async def refresh_token_if_needed(self) -> Optional[str]:
"""根据需要刷新token
Returns:
Optional[str]: 有效的认证令牌如果获取失败则返回None
"""
try:
from services.sync_service import refresh_token_if_needed
token = await refresh_token_if_needed()
if token:
self.logger.info(f"脚本 {self.script_id} 成功刷新token")
return token
else:
self.logger.warning(f"脚本 {self.script_id} 刷新token失败")
return None
except Exception as e:
self.logger.error(f"脚本 {self.script_id} 刷新token异常: {str(e)}")
return None
def clear_cached_token(self) -> None:
"""清除缓存的token"""
try:
from services.sync_service import clear_cached_token
clear_cached_token()
self.logger.info(f"脚本 {self.script_id} 成功清除缓存token")
except Exception as e:
self.logger.error(f"脚本 {self.script_id} 清除缓存token异常: {str(e)}")