200 lines
6.4 KiB
Python
200 lines
6.4 KiB
Python
|
|
from loguru import logger
|
||
|
|
from PyQt6.QtCore import QThread, pyqtSignal
|
||
|
|
from PyQt6.QtGui import QPixmap
|
||
|
|
|
||
|
|
from ..api import miaoStarsBasicApi
|
||
|
|
|
||
|
|
|
||
|
|
class UserNickNameUpdateThread(QThread):
|
||
|
|
successUpdate = pyqtSignal()
|
||
|
|
errorUpdate = pyqtSignal(str)
|
||
|
|
|
||
|
|
def __init__(self, nickName: str):
|
||
|
|
super().__init__()
|
||
|
|
logger.debug(f"初始化用户昵称服务线程 - 昵称: {nickName}")
|
||
|
|
self.nickName = nickName
|
||
|
|
|
||
|
|
def run(self):
|
||
|
|
logger.info(f"开始更新用户昵称 - 昵称: {self.nickName}")
|
||
|
|
try:
|
||
|
|
response = miaoStarsBasicApi.updateUserNickname(self.nickName)
|
||
|
|
print(response)
|
||
|
|
if response["code"] == 0:
|
||
|
|
self.successUpdate.emit()
|
||
|
|
else:
|
||
|
|
logger.error("更新失败:", response["msg"])
|
||
|
|
self.errorUpdate.emit(response["msg"])
|
||
|
|
except Exception as e:
|
||
|
|
logger.error(f"更新用户昵称过程中发生异常: {e}")
|
||
|
|
self.errorUpdate.emit("系统错误,请稍后重试")
|
||
|
|
|
||
|
|
|
||
|
|
class UserAvatarUpdateThread(QThread):
|
||
|
|
successUpdate = pyqtSignal()
|
||
|
|
errorUpdate = pyqtSignal(str)
|
||
|
|
|
||
|
|
def __init__(self, avatarPath: str):
|
||
|
|
super().__init__()
|
||
|
|
logger.debug(f"初始化用户头像服务线程 - 头像路径: {avatarPath}")
|
||
|
|
self.avatarPath = avatarPath
|
||
|
|
|
||
|
|
def run(self):
|
||
|
|
logger.info(f"开始更新用户头像 - 头像路径: {self.avatarPath}")
|
||
|
|
try:
|
||
|
|
response = miaoStarsBasicApi.updateUserAvatar(self.avatarPath)
|
||
|
|
if response["code"] == 0:
|
||
|
|
logger.info("头像更新成功")
|
||
|
|
self.successUpdate.emit()
|
||
|
|
else:
|
||
|
|
logger.error(f"更新失败,错误信息: {response['msg']}")
|
||
|
|
self.errorUpdate.emit(f"更新失败: {response['msg']}")
|
||
|
|
|
||
|
|
except Exception as e:
|
||
|
|
logger.error(f"更新用户头像过程中发生异常: {e}")
|
||
|
|
self.errorUpdate.emit("系统错误,请稍后重试")
|
||
|
|
|
||
|
|
|
||
|
|
class GetUserAvatarThread(QThread):
|
||
|
|
avatarPixmap = pyqtSignal(QPixmap)
|
||
|
|
|
||
|
|
def __init__(self, size: str):
|
||
|
|
super().__init__()
|
||
|
|
logger.debug(f"初始化获取用户头像服务线程 - 头像尺寸: {size}")
|
||
|
|
self.size = size
|
||
|
|
|
||
|
|
def run(self):
|
||
|
|
logger.info(f"开始获取用户头像 - 头像尺寸: {self.size}")
|
||
|
|
try:
|
||
|
|
response = miaoStarsBasicApi.getUserAvatar(self.size)
|
||
|
|
self.avatarPixmap.emit(response)
|
||
|
|
except Exception as e:
|
||
|
|
logger.error(f"获取用户头像过程中发生异常: {e}")
|
||
|
|
self.avatarPixmap.emit(QPixmap(":app/images/logo.png"))
|
||
|
|
|
||
|
|
|
||
|
|
class GetPackThread(QThread):
|
||
|
|
storageDictSignal = pyqtSignal(dict)
|
||
|
|
|
||
|
|
def __init__(self):
|
||
|
|
super().__init__()
|
||
|
|
|
||
|
|
def run(self):
|
||
|
|
logger.info("开始请求用户配额包")
|
||
|
|
try:
|
||
|
|
response = miaoStarsBasicApi.getUserPack()
|
||
|
|
self.storageDictSignal.emit(response)
|
||
|
|
except Exception as e:
|
||
|
|
logger.error(f"获取用户配额包过程中发生异常: {e}")
|
||
|
|
self.storageDictSignal.emit(
|
||
|
|
{
|
||
|
|
"code": 0,
|
||
|
|
"data": {
|
||
|
|
"base": 0,
|
||
|
|
"pack": 0,
|
||
|
|
"used": 0,
|
||
|
|
"total": 0,
|
||
|
|
"packs": [],
|
||
|
|
},
|
||
|
|
"msg": "",
|
||
|
|
}
|
||
|
|
)
|
||
|
|
|
||
|
|
|
||
|
|
class GetPoliciesThread(QThread):
|
||
|
|
"""获取策略列表线程"""
|
||
|
|
|
||
|
|
successGetSignal = pyqtSignal(list)
|
||
|
|
errorSignal = pyqtSignal(str)
|
||
|
|
|
||
|
|
def __init__(self):
|
||
|
|
super().__init__()
|
||
|
|
|
||
|
|
def run(self):
|
||
|
|
try:
|
||
|
|
response = miaoStarsBasicApi.getPolicy()
|
||
|
|
if response["code"] == 0:
|
||
|
|
self.successGetSignal.emit(response["data"])
|
||
|
|
else:
|
||
|
|
self.errorSignal.emit(f"API返回错误: {response.get('msg')}")
|
||
|
|
except Exception as e:
|
||
|
|
self.errorSignal.emit(f"获取策略列表失败: {str(e)}")
|
||
|
|
|
||
|
|
|
||
|
|
class ChangePolicyThread(QThread):
|
||
|
|
"""更改策略线程"""
|
||
|
|
|
||
|
|
successChangedSignal = pyqtSignal()
|
||
|
|
errorSignal = pyqtSignal(str)
|
||
|
|
|
||
|
|
def __init__(self, path, policy_id):
|
||
|
|
super().__init__()
|
||
|
|
self.path = path
|
||
|
|
self.policy_id = policy_id
|
||
|
|
|
||
|
|
def run(self):
|
||
|
|
try:
|
||
|
|
response = miaoStarsBasicApi.changePolicy(self.path, self.policy_id)
|
||
|
|
if response["code"] == 0:
|
||
|
|
self.successChangedSignal.emit()
|
||
|
|
else:
|
||
|
|
self.errorSignal.emit(
|
||
|
|
f"更改策略失败: {response.get('msg', '未知错误')}"
|
||
|
|
)
|
||
|
|
|
||
|
|
except Exception as e:
|
||
|
|
self.errorSignal.emit(f"更改策略请求失败: {str(e)}")
|
||
|
|
|
||
|
|
|
||
|
|
class DeleteTagThread(QThread):
|
||
|
|
"""删除标签线程"""
|
||
|
|
|
||
|
|
successDeleteSignal = pyqtSignal()
|
||
|
|
errorSignal = pyqtSignal(str)
|
||
|
|
|
||
|
|
def __init__(self, tagId):
|
||
|
|
super().__init__()
|
||
|
|
self.tagId = tagId
|
||
|
|
|
||
|
|
def run(self):
|
||
|
|
try:
|
||
|
|
response = miaoStarsBasicApi.deleteTag(self.tagId)
|
||
|
|
if response["code"] == 0:
|
||
|
|
self.successDeleteSignal.emit()
|
||
|
|
logger.info(f"删除标签成功: {self.tagId}")
|
||
|
|
else:
|
||
|
|
logger.error(f"删除标签失败: {response.get('msg')}")
|
||
|
|
self.errorSignal.emit(f"删除标签失败: {response.get('msg')}")
|
||
|
|
|
||
|
|
except Exception as e:
|
||
|
|
self.errorSignal.emit(f"{str(e)}")
|
||
|
|
logger.error(f"删除标签请求失败: {str(e)}")
|
||
|
|
|
||
|
|
|
||
|
|
class AddTagThread(QThread):
|
||
|
|
"""添加标签的线程类"""
|
||
|
|
|
||
|
|
successSignal = pyqtSignal(str, dict) # 标签名称, 响应数据
|
||
|
|
errorSignal = pyqtSignal(str, str) # 标签名称, 错误信息
|
||
|
|
|
||
|
|
def __init__(self, name, expression, parent=None):
|
||
|
|
super().__init__(parent)
|
||
|
|
self.name = name
|
||
|
|
self.expression = expression
|
||
|
|
|
||
|
|
def run(self):
|
||
|
|
"""线程执行的主方法"""
|
||
|
|
try:
|
||
|
|
|
||
|
|
response = miaoStarsBasicApi.addTag(self.name, self.expression)
|
||
|
|
|
||
|
|
if response["code"] == 0:
|
||
|
|
logger.info(f"添加标签成功: {self.name}")
|
||
|
|
self.successSignal.emit(self.name, response)
|
||
|
|
else:
|
||
|
|
logger.error(f"添加标签失败: {self.name} - {response.get('msg')}")
|
||
|
|
self.errorSignal.emit(self.name, response.get("msg"))
|
||
|
|
|
||
|
|
except Exception as e:
|
||
|
|
logger.error(f"添加标签异常: {self.name} - {str(e)}")
|
||
|
|
self.errorSignal.emit(self.name, str(e))
|