diff --git a/AUTO_MAA.py b/AUTO_MAA.py index 529ca8b..f0f13b6 100644 --- a/AUTO_MAA.py +++ b/AUTO_MAA.py @@ -92,24 +92,32 @@ class MaaRunner(QtCore.QThread): def __init__(self): super(MaaRunner, self).__init__() - self.set_path = None - self.log_path = None - self.maa_path = None - self.json_path = f"{self.app_path}/data/MAAconfig" - self.routine = None - self.annihilation = None - self.num = None + + self.config = None self.data = None - self.if_send_mail = None self.mode = None self.get_json_path = [0, 0, 0] + def configure(self): + """提取配置信息""" + + self.set_path = f"{self.config["Default"]["MaaSet.path"]}/config/gui.json" + self.log_path = f"{self.config["Default"]["MaaSet.path"]}/debug/gui.log" + self.maa_path = f"{self.config["Default"]["MaaSet.path"]}/MAA.exe" + self.json_path = f"{self.app_path}/data/MAAconfig" + self.routine = self.config["Default"]["TimeLimit.routine"] + self.annihilation = self.config["Default"]["TimeLimit.annihilation"] + self.num = self.config["Default"]["TimesLimit.run"] + self.if_send_mail = bool(self.config["Default"]["SelfSet.IfSendMail"] == "True") + def run(self): """主进程,运行MAA代理进程""" curdate = server_date() begin_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") + self.configure() + # 整理用户数据,筛选需代理的用户 self.data = sorted(self.data, key=lambda x: (-len(x[15]), x[16])) wait_index = [] @@ -1214,10 +1222,10 @@ class Main(QWidget): self.refresh.clicked.connect(lambda: self.update_user_info("clear")) self.run_now = self.ui.findChild(QPushButton, "pushButton_runnow") - self.run_now.clicked.connect(self.routine_starter) + self.run_now.clicked.connect(lambda: self.maa_starter("日常代理")) self.check_start = self.ui.findChild(QPushButton, "pushButton_checkstart") - self.check_start.clicked.connect(self.check_starter) + self.check_start.clicked.connect(lambda: self.maa_starter("人工排查")) self.maa_path = self.ui.findChild(QLineEdit, "lineEdit_MAApath") self.maa_path.textChanged.connect(self.change_config) @@ -1227,7 +1235,7 @@ class Main(QWidget): self.get_maa_path.clicked.connect(lambda: self.read("file_path_maa")) self.set_maa = self.ui.findChild(QPushButton, "pushButton_setMAA") - self.set_maa.clicked.connect(lambda: self.maa_set_starter("设置MAA_全局")) + self.set_maa.clicked.connect(lambda: self.maa_starter("设置MAA_全局")) self.routine = self.ui.findChild(QSpinBox, "spinBox_routine") self.routine.valueChanged.connect(self.change_config) @@ -1293,7 +1301,7 @@ class Main(QWidget): self.MainTimer = MainTimer(self.config) self.MainTimer.get_config.connect(self.give_config) - self.MainTimer.start_for_timer.connect(self.routine_starter) + self.MainTimer.start_for_timer.connect(lambda: self.maa_starter("日常代理")) self.MainTimer.start() # 载入GUI数据 @@ -1303,7 +1311,7 @@ class Main(QWidget): # 启动后直接开始代理 if self.config["Default"]["SelfSet.IfProxyDirectly"] == "True": - self.routine_starter() + self.maa_starter("日常代理") def initialize(self): """初始化程序的配置文件""" @@ -2078,7 +2086,7 @@ class Main(QWidget): self.user_list_beta.currentRow(), self.user_list_beta.currentColumn() - 4, ] - self.maa_set_starter("设置MAA_用户") + self.maa_starter("设置MAA_用户") else: QMessageBox.critical(self.ui, "错误", "该项目无法进一步配置") @@ -2387,93 +2395,21 @@ class Main(QWidget): else: return False - def routine_starter(self): - """启动MaaRunner线程运行日常代理任务""" + def maa_starter(self, mode): + """启动MaaRunner线程运行任务""" # 检查MAA路径是否可用 if not self.check_maa_path(): QMessageBox.critical(self.ui, "错误", "您还未正确配置MAA路径!") return None - self.maa_running_set("日常代理_开始") + self.maa_running_set(f"{mode}_开始") # 配置参数 - self.MaaRunner.set_path = ( - f"{self.config["Default"]["MaaSet.path"]}/config/gui.json" - ) - self.MaaRunner.log_path = ( - f"{self.config["Default"]["MaaSet.path"]}/debug/gui.log" - ) - self.MaaRunner.set_path = ( - f"{self.config["Default"]["MaaSet.path"]}/config/gui.json" - ) - self.MaaRunner.log_path = ( - f"{self.config["Default"]["MaaSet.path"]}/debug/gui.log" - ) - self.MaaRunner.maa_path = f"{self.config["Default"]["MaaSet.path"]}/MAA.exe" - self.MaaRunner.routine = self.config["Default"]["TimeLimit.routine"] - self.MaaRunner.annihilation = self.config["Default"]["TimeLimit.annihilation"] - self.MaaRunner.num = self.config["Default"]["TimesLimit.run"] - self.MaaRunner.if_send_mail = bool( - self.config["Default"]["SelfSet.IfSendMail"] == "True" - ) + self.MaaRunner.config = self.config self.cur.execute("SELECT * FROM adminx WHERE True") self.data_ = self.cur.fetchall() self.MaaRunner.data = [list(row) for row in self.data_] - self.MaaRunner.mode = "日常代理" - - # 启动执行线程 - self.MainTimer.is_maa_run = True - self.MaaRunner.start() - - def check_starter(self): - """启动MaaRunner线程运行人工排查任务""" - - # 检查MAA路径是否可用 - if not self.check_maa_path(): - QMessageBox.critical(self.ui, "错误", "您还未正确配置MAA路径!") - return None - - self.maa_running_set("人工排查_开始") - - # 配置参数 - self.MaaRunner.set_path = ( - f"{self.config["Default"]["MaaSet.path"]}/config/gui.json" - ) - self.MaaRunner.log_path = ( - f"{self.config["Default"]["MaaSet.path"]}/debug/gui.log" - ) - self.MaaRunner.maa_path = f"{self.config["Default"]["MaaSet.path"]}/MAA.exe" - self.MaaRunner.if_send_mail = bool( - self.config["Default"]["SelfSet.IfSendMail"] == "True" - ) - self.cur.execute("SELECT * FROM adminx WHERE True") - self.data_ = self.cur.fetchall() - self.MaaRunner.data = [list(row) for row in self.data_] - self.MaaRunner.mode = "人工排查" - - # 启动执行线程 - self.MainTimer.is_maa_run = True - self.MaaRunner.start() - - def maa_set_starter(self, mode): - """启动MaaRunner线程进行MAA设置""" - - # 检查MAA路径是否可用 - if not self.check_maa_path(): - QMessageBox.critical(self.ui, "错误", "您还未正确配置MAA路径!") - return None - - self.maa_running_set("设置MAA_开始") - - # 配置参数 - self.MaaRunner.set_path = ( - f"{self.config["Default"]["MaaSet.path"]}/config/gui.json" - ) - self.MaaRunner.log_path = ( - f"{self.config["Default"]["MaaSet.path"]}/debug/gui.log" - ) - self.MaaRunner.maa_path = f"{self.config["Default"]["MaaSet.path"]}/MAA.exe" self.MaaRunner.mode = mode # 启动执行线程 @@ -2483,7 +2419,6 @@ class Main(QWidget): def maa_ender(self, mode): """中止MAA线程""" - self.MainTimer.quit() self.MaaRunner.requestInterruption() self.MaaRunner.wait() @@ -2524,7 +2459,7 @@ class Main(QWidget): lambda: self.maa_ender("人工排查_结束") ) - elif mode == "设置MAA_开始": + elif mode == "设置MAA_全局_开始" or mode == "设置MAA_用户_开始": self.MaaRunner.accomplish.connect( lambda: self.maa_ender("设置MAA_结束") ) @@ -2544,22 +2479,24 @@ class Main(QWidget): self.set_maa.setEnabled(True) # self.update_user_info("editable") - if mode == "设置MAA_结束": - self.run_now.setEnabled(True) + if mode == "日常代理_结束": + self.check_start.setEnabled(True) + self.run_now.clicked.disconnect() + self.run_now.setText("立即执行") + self.run_now.clicked.connect(lambda: self.maa_starter("日常代理")) elif mode == "人工排查_结束": self.run_now.setEnabled(True) self.check_start.clicked.disconnect() self.check_start.setText("开始排查") - self.check_start.clicked.connect(self.check_starter) + self.check_start.clicked.connect(lambda: self.maa_starter("人工排查")) - elif mode == "日常代理_结束": + elif mode == "设置MAA_结束": + + self.run_now.setEnabled(True) self.check_start.setEnabled(True) - self.run_now.clicked.disconnect() - self.run_now.setText("立即执行") - self.run_now.clicked.connect(self.routine_starter) def check_version(self): """检查版本更新,调起文件下载进程""" diff --git a/gui/ui/main.ui b/gui/ui/main.ui index 71fa659..4437c5c 100644 --- a/gui/ui/main.ui +++ b/gui/ui/main.ui @@ -919,6 +919,12 @@ 0 + + 1 + + + 1024 + @@ -968,6 +974,12 @@ 0 + + 1 + + + 1024 + @@ -1017,6 +1029,12 @@ 0 + + 1 + + + 1024 + diff --git a/res/version.json b/res/version.json index a5f749c..d971d56 100644 --- a/res/version.json +++ b/res/version.json @@ -1,7 +1,7 @@ { - "main_version": "4.1.2.3", + "main_version": "4.1.2.4", "main_download_url": "https://ghp.ci/https://github.com/DLmaster361/AUTO_MAA/releases/download/v4.1.2_beta/AUTO_MAA_v4.1.2_beta.zip", "updater_version": "1.0.4.0", "updater_download_url": "https://ghp.ci/https://github.com/DLmaster361/AUTO_MAA/releases/download/v4.1.2_beta/Updater_v1.0.4.zip", - "announcement": "\n## 新增功能\n- 记忆窗口位置\n- 邮件通知功能上线\n## 修复BUG\n- 暂无\n## 程序优化\n- 优化`MaaRunner`初始化流程" + "announcement": "\n## 新增功能\n- 记忆窗口位置\n- 邮件通知功能上线\n## 修复BUG\n- 解决程序启动后无法设置MAA的问题\n## 程序优化\n- 优化`MaaRunner`初始化流程\n- 合并MAA启动器配置流程" } \ No newline at end of file