Compare commits
2 Commits
cebf87fd3c
...
1.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
58d7dc35b5 | ||
|
|
b50029b673 |
131
gui/main_mac.py
131
gui/main_mac.py
@@ -57,7 +57,7 @@ try:
|
||||
from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout,
|
||||
QPushButton, QLabel, QLineEdit, QTextEdit, QMessageBox,
|
||||
QHBoxLayout, QFrame, QStackedWidget)
|
||||
from PyQt5.QtCore import Qt, QThread, pyqtSignal
|
||||
from PyQt5.QtCore import Qt, QThread, pyqtSignal, QTimer
|
||||
from PyQt5.QtGui import QFont, QIcon, QPalette, QColor
|
||||
from update_cursor_token import CursorTokenUpdater
|
||||
from logger import logging
|
||||
@@ -109,6 +109,8 @@ class MainWindow(QMainWindow):
|
||||
self.init_ui()
|
||||
# 检查会员状态
|
||||
self.check_member_status()
|
||||
# 启动定时检测
|
||||
self.setup_status_timer()
|
||||
logging.info("主窗口初始化完成")
|
||||
except Exception as e:
|
||||
logging.error(f"初始化主窗口时发生错误: {str(e)}")
|
||||
@@ -320,6 +322,8 @@ class MainWindow(QMainWindow):
|
||||
self.update_button.setEnabled(False)
|
||||
|
||||
# 显示处理中的提示
|
||||
self.member_info.clear()
|
||||
self.member_info.append("正在激活,请稍候...")
|
||||
QApplication.processEvents()
|
||||
|
||||
# 调用激活接口
|
||||
@@ -332,27 +336,47 @@ class MainWindow(QMainWindow):
|
||||
self.member_info.append(f"到期时间: {account_info['expire_time']}")
|
||||
self.member_info.append(f"剩余天数: {account_info['days_left']}天")
|
||||
|
||||
# 清空激活码输入框并更新提示(不禁用输入框)
|
||||
self.activate_input.clear()
|
||||
self.activate_input.setPlaceholderText("输入激活码可叠加时长")
|
||||
|
||||
# 启用更新按钮
|
||||
self.update_button.setEnabled(True)
|
||||
|
||||
# 显示成功消息
|
||||
QMessageBox.information(self, "激活成功",
|
||||
f"设备已成功激活!\n"
|
||||
f"激活成功!\n"
|
||||
f"到期时间: {account_info['expire_time']}\n"
|
||||
f"剩余天数: {account_info['days_left']}天")
|
||||
|
||||
# 清空激活码输入框
|
||||
self.activate_input.clear()
|
||||
f"剩余天数: {account_info['days_left']}天\n"
|
||||
f"您可以继续输入其他激活码叠加时长")
|
||||
|
||||
logging.info(f"设备激活成功,到期时间: {account_info['expire_time']}")
|
||||
else:
|
||||
# 恢复激活输入框
|
||||
self.activate_input.setPlaceholderText("请输入激活码")
|
||||
|
||||
# 更新状态显示
|
||||
self.member_info.clear()
|
||||
self.member_info.append("会员状态: 未激活")
|
||||
self.member_info.append("请输入激活码进行激活")
|
||||
|
||||
QMessageBox.warning(self, "激活失败", message)
|
||||
logging.error(f"激活失败: {message}")
|
||||
|
||||
except Exception as e:
|
||||
# 恢复激活输入框
|
||||
self.activate_input.setPlaceholderText("请输入激活码")
|
||||
|
||||
# 更新状态显示
|
||||
self.member_info.clear()
|
||||
self.member_info.append("会员状态: 激活失败")
|
||||
self.member_info.append("请重新尝试")
|
||||
|
||||
logging.error(f"激活过程中发生错误: {str(e)}")
|
||||
QMessageBox.critical(self, "错误", f"激活过程发生错误: {str(e)}")
|
||||
finally:
|
||||
# 恢复按钮状态
|
||||
self.activate_input.setEnabled(True)
|
||||
self.update_button.setEnabled(True)
|
||||
# 根据激活状态设置更新按钮状态
|
||||
self.update_button.setEnabled(success if 'success' in locals() else False)
|
||||
|
||||
def disable_cursor_update(self):
|
||||
try:
|
||||
@@ -378,19 +402,108 @@ class MainWindow(QMainWindow):
|
||||
self.member_info.append(f"会员状态: 已激活")
|
||||
self.member_info.append(f"到期时间: {account_info['expire_time']}")
|
||||
self.member_info.append(f"剩余天数: {account_info['days_left']}天")
|
||||
|
||||
# 更新激活输入框提示(不禁用输入框)
|
||||
self.activate_input.setPlaceholderText("输入激活码可叠加时长")
|
||||
|
||||
# 启用更新按钮
|
||||
self.update_button.setEnabled(True)
|
||||
|
||||
logging.info(f"会员状态检查完成 - 到期时间: {account_info['expire_time']}")
|
||||
else:
|
||||
# 显示未激活状态
|
||||
self.member_info.clear()
|
||||
self.member_info.append("会员状态: 未激活")
|
||||
self.member_info.append("请输入激活码进行激活")
|
||||
|
||||
# 更新激活输入框提示
|
||||
self.activate_input.setPlaceholderText("请输入激活码")
|
||||
|
||||
# 禁用更新按钮
|
||||
self.update_button.setEnabled(False)
|
||||
|
||||
logging.warning("会员状态检查结果:未激活")
|
||||
|
||||
if message and "设备未激活" not in message:
|
||||
QMessageBox.warning(self, "提示", message)
|
||||
|
||||
except Exception as e:
|
||||
self.member_info.clear()
|
||||
self.member_info.append("会员状态: 检查失败")
|
||||
self.member_info.append("请稍后重试")
|
||||
|
||||
# 启用激活输入框和按钮
|
||||
self.activate_input.setEnabled(True)
|
||||
self.activate_input.setPlaceholderText("请输入激活码")
|
||||
|
||||
# 禁用更新按钮
|
||||
self.update_button.setEnabled(False)
|
||||
|
||||
logging.error(f"检查会员状态时发生错误: {str(e)}")
|
||||
QMessageBox.warning(self, "错误", f"检查会员状态失败: {str(e)}")
|
||||
|
||||
def setup_status_timer(self):
|
||||
"""设置定时检测会员状态"""
|
||||
try:
|
||||
self.status_timer = QTimer(self)
|
||||
self.status_timer.timeout.connect(self.silent_check_member_status)
|
||||
# 设置3分钟检测一次 (180000毫秒)
|
||||
self.status_timer.start(180000)
|
||||
logging.info("会员状态定时检测已启动")
|
||||
except Exception as e:
|
||||
logging.error(f"设置定时器时发生错误: {str(e)}")
|
||||
|
||||
def silent_check_member_status(self):
|
||||
"""静默检查会员状态"""
|
||||
try:
|
||||
logging.info("开始静默检查会员状态...")
|
||||
success, message, account_info = self.updater.check_member_status()
|
||||
|
||||
if success and account_info:
|
||||
# 更新会员信息显示
|
||||
self.member_info.clear()
|
||||
self.member_info.append(f"会员状态: 已激活")
|
||||
self.member_info.append(f"到期时间: {account_info['expire_time']}")
|
||||
self.member_info.append(f"剩余天数: {account_info['days_left']}天")
|
||||
|
||||
# 禁用激活输入框和按钮
|
||||
self.activate_input.setEnabled(False)
|
||||
self.activate_input.setPlaceholderText("已激活")
|
||||
|
||||
# 启用更新按钮
|
||||
self.update_button.setEnabled(True)
|
||||
|
||||
logging.info(f"静默检查完成 - 会员状态正常,到期时间: {account_info['expire_time']}")
|
||||
else:
|
||||
# 显示未激活状态
|
||||
self.member_info.clear()
|
||||
self.member_info.append("会员状态: 未激活")
|
||||
self.member_info.append("请输入激活码进行激活")
|
||||
|
||||
# 启用激活输入框和按钮
|
||||
self.activate_input.setEnabled(True)
|
||||
self.activate_input.setPlaceholderText("请输入激活码")
|
||||
|
||||
# 禁用更新按钮
|
||||
self.update_button.setEnabled(False)
|
||||
|
||||
logging.warning("静默检查结果:会员未激活")
|
||||
|
||||
except Exception as e:
|
||||
logging.error(f"静默检查会员状态时发生错误: {str(e)}")
|
||||
# 静默检查出错时不显示错误提示,只记录日志
|
||||
|
||||
def closeEvent(self, event):
|
||||
"""窗口关闭事件"""
|
||||
try:
|
||||
# 停止定时器
|
||||
if hasattr(self, 'status_timer'):
|
||||
self.status_timer.stop()
|
||||
logging.info("应用程序正常关闭")
|
||||
event.accept()
|
||||
except Exception as e:
|
||||
logging.error(f"关闭窗口时发生错误: {str(e)}")
|
||||
event.accept()
|
||||
|
||||
def main():
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user