From 5b0d7f0012e9b348c34ce99b2e1da056d6a2e6b4 Mon Sep 17 00:00:00 2001 From: DLmaster361 Date: Thu, 10 Jul 2025 17:34:41 +0800 Subject: [PATCH] =?UTF-8?q?feat(ui):=20=E4=BF=AE=E6=94=B9=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8F=B7=E5=88=B0v4.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 进一步适配三月七相关配置项 --- app/__init__.py | 2 +- app/core/__init__.py | 2 +- app/core/config.py | 17 +++++++--- app/core/main_info_bar.py | 2 +- app/core/network.py | 2 +- app/core/sound_player.py | 2 +- app/core/task_manager.py | 2 +- app/core/timer.py | 2 +- app/models/MAA.py | 2 +- app/models/__init__.py | 2 +- app/models/general.py | 61 ++++++++++++++++++++++++++---------- app/services/__init__.py | 2 +- app/services/notification.py | 2 +- app/services/security.py | 2 +- app/services/skland.py | 2 +- app/services/system.py | 2 +- app/ui/Widget.py | 35 ++++++++++++++++++--- app/ui/__init__.py | 2 +- app/ui/dispatch_center.py | 2 +- app/ui/downloader.py | 2 +- app/ui/history.py | 2 +- app/ui/home.py | 2 +- app/ui/main_window.py | 2 +- app/ui/member_manager.py | 28 +++++++++++------ app/ui/plan_manager.py | 2 +- app/ui/queue_manager.py | 2 +- app/ui/setting.py | 2 +- app/utils/ImageUtils.py | 2 +- app/utils/ProcessManager.py | 2 +- app/utils/__init__.py | 2 +- app/utils/package.py | 2 +- main.py | 2 +- resources/version.json | 3 ++ 33 files changed, 138 insertions(+), 62 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index 403828c..b2f64f6 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA主程序包 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/core/__init__.py b/app/core/__init__.py index c6eab15..8a9058d 100644 --- a/app/core/__init__.py +++ b/app/core/__init__.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA核心组件包 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/core/config.py b/app/core/config.py index 6f54cfd..9338e60 100644 --- a/app/core/config.py +++ b/app/core/config.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA配置管理 -v4.3 +v4.4 作者:DLmaster_361 """ @@ -601,14 +601,21 @@ class GeneralConfig(LQConfig): ) self.Script_Arguments = ConfigItem("Script", "Arguments", "") self.Script_ConfigPath = ConfigItem( - "Script", "ConfigPath", ".", FolderValidator() + "Script", "ConfigPath", ".", FileValidator() + ) + self.Script_ConfigPathMode = OptionsConfigItem( + "Script", + "ConfigPathMode", + "所有文件 (*)", + OptionsValidator(["所有文件 (*)", "文件夹"]), ) self.Script_LogPath = ConfigItem("Script", "LogPath", ".", FileValidator()) + self.Script_LogPathFormat = ConfigItem("Script", "LogPathFormat", "%Y-%m-%d") self.Script_LogTimeStart = ConfigItem( - "Script", "LogTimeStart", 0, RangeValidator(0, 1024) + "Script", "LogTimeStart", 1, RangeValidator(1, 1024) ) self.Script_LogTimeEnd = ConfigItem( - "Script", "LogTimeEnd", 0, RangeValidator(0, 1024) + "Script", "LogTimeEnd", 1, RangeValidator(1, 1024) ) self.Script_LogTimeFormat = ConfigItem( "Script", "LogTimeFormat", "%Y-%m-%d %H:%M:%S" @@ -616,7 +623,7 @@ class GeneralConfig(LQConfig): self.Script_SuccessLog = ConfigItem("Script", "SuccessLog", "") self.Script_ErrorLog = ConfigItem("Script", "ErrorLog", "") - self.Game_Enabled = ConfigItem("Game", "Enabled", True, BoolValidator()) + self.Game_Enabled = ConfigItem("Game", "Enabled", False, BoolValidator()) self.Game_Style = OptionsConfigItem( "Game", "Style", "Emulator", OptionsValidator(["Emulator", "Client"]) ) diff --git a/app/core/main_info_bar.py b/app/core/main_info_bar.py index d409809..715ff25 100644 --- a/app/core/main_info_bar.py +++ b/app/core/main_info_bar.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA信息通知栏 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/core/network.py b/app/core/network.py index d040cdb..15e3a26 100644 --- a/app/core/network.py +++ b/app/core/network.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA网络请求线程 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/core/sound_player.py b/app/core/sound_player.py index 2627cd1..422ae0a 100644 --- a/app/core/sound_player.py +++ b/app/core/sound_player.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA音效播放器 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/core/task_manager.py b/app/core/task_manager.py index db8166a..67365b4 100644 --- a/app/core/task_manager.py +++ b/app/core/task_manager.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA业务调度器 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/core/timer.py b/app/core/timer.py index 9aed618..d91047b 100644 --- a/app/core/timer.py +++ b/app/core/timer.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA主业务定时器 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/models/MAA.py b/app/models/MAA.py index 370620a..8d09a06 100644 --- a/app/models/MAA.py +++ b/app/models/MAA.py @@ -21,7 +21,7 @@ """ AUTO_MAA MAA功能组件 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/models/__init__.py b/app/models/__init__.py index 62aab25..fdb7653 100644 --- a/app/models/__init__.py +++ b/app/models/__init__.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA模组包 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/models/general.py b/app/models/general.py index 2dc222d..e9904e2 100644 --- a/app/models/general.py +++ b/app/models/general.py @@ -21,7 +21,7 @@ """ AUTO_MAA 通用功能组件 -v4.3 +v4.4 作者:DLmaster_361 """ @@ -118,7 +118,7 @@ class GeneralManager(QObject): Path(self.set["Script"]["RootPath"]).exists() and Path(self.set["Script"]["ScriptPath"]).exists() and Path(self.set["Script"]["ConfigPath"]).exists() - and Path(self.set["Script"]["LogPath"]).exists() + and Path(self.set["Script"]["LogPath"]).parent.exists() and self.set["Script"]["LogTimeFormat"] and self.set["Script"]["ErrorLog"] ) or ( @@ -137,16 +137,24 @@ class GeneralManager(QObject): self.script_root_path = Path(self.set["Script"]["RootPath"]) self.script_exe_path = Path(self.set["Script"]["ScriptPath"]) self.script_config_path = Path(self.set["Script"]["ConfigPath"]) - self.script_log_path = Path(self.set["Script"]["LogPath"]) + self.script_log_path = ( + Path(self.set["Script"]["LogPath"]).with_stem( + datetime.now().strftime(self.set["Script"]["LogPathFormat"]) + ) + if self.set["Script"]["LogPathFormat"] + else Path(self.set["Script"]["LogPath"]) + ) + if not self.script_log_path.exists(): + self.script_log_path.parent.mkdir(parents=True, exist_ok=True) + self.script_log_path.touch(exist_ok=True) self.game_path = Path(self.set["Game"]["Path"]) self.log_time_range = [ - self.set["Script"]["LogTimeStart"], + self.set["Script"]["LogTimeStart"] - 1, self.set["Script"]["LogTimeEnd"], ] self.success_log = [ _.strip() for _ in self.set["Script"]["SuccessLog"].split("|") ] - print(f"Success Log: {self.success_log}") self.error_log = [_.strip() for _ in self.set["Script"]["ErrorLog"].split("|")] def run(self): @@ -431,9 +439,14 @@ class GeneralManager(QObject): self.start_monitor(start_time) self.sub_config_path.mkdir(parents=True, exist_ok=True) - shutil.copytree( - self.script_config_path, self.sub_config_path, dirs_exist_ok=True - ) + if self.set["Script"]["ConfigPathMode"] == "文件夹": + shutil.copytree( + self.script_config_path, + self.sub_config_path, + dirs_exist_ok=True, + ) + else: + shutil.copy(self.script_config_path, self.sub_config_path) except Exception as e: logger.error(f"{self.name} | 启动通用脚本时出现异常:{e}") @@ -690,15 +703,31 @@ class GeneralManager(QObject): # 预导入配置文件 if self.mode == "设置通用脚本": if self.sub_config_path.exists(): - shutil.copytree( - self.sub_config_path, self.script_config_path, dirs_exist_ok=True - ) + if self.set["Script"]["ConfigPathMode"] == "文件夹": + shutil.copytree( + self.sub_config_path, + self.script_config_path, + dirs_exist_ok=True, + ) + elif (self.sub_config_path / self.script_config_path.name).exists(): + shutil.copy( + self.sub_config_path / self.script_config_path.name, + self.script_config_path, + ) else: - shutil.copytree( - self.data[index]["Path"] / "ConfigFiles", - self.script_config_path, - dirs_exist_ok=True, - ) + if self.set["Script"]["ConfigPathMode"] == "文件夹": + shutil.copytree( + self.data[index]["Path"] / "ConfigFiles", + self.script_config_path, + dirs_exist_ok=True, + ) + else: + shutil.copy( + self.data[index]["Path"] + / "ConfigFiles" + / self.script_config_path.name, + self.script_config_path, + ) def execute_script_task(self, script_path: Path, task_name: str) -> bool: """执行脚本任务并等待结束""" diff --git a/app/services/__init__.py b/app/services/__init__.py index 9c018a1..0bdbea6 100644 --- a/app/services/__init__.py +++ b/app/services/__init__.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA服务包 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/services/notification.py b/app/services/notification.py index f433c0b..6ea440d 100644 --- a/app/services/notification.py +++ b/app/services/notification.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA通知服务 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/services/security.py b/app/services/security.py index 6ac0671..dda8dc1 100644 --- a/app/services/security.py +++ b/app/services/security.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA安全服务 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/services/skland.py b/app/services/skland.py index 192f589..c49724e 100644 --- a/app/services/skland.py +++ b/app/services/skland.py @@ -28,7 +28,7 @@ """ AUTO_MAA AUTO_MAA森空岛服务 -v4.3 +v4.4 作者:DLmaster_361、ClozyA """ diff --git a/app/services/system.py b/app/services/system.py index d0f2e34..4600c59 100644 --- a/app/services/system.py +++ b/app/services/system.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA系统服务 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/ui/Widget.py b/app/ui/Widget.py index 5fc7c9f..a6c91e2 100644 --- a/app/ui/Widget.py +++ b/app/ui/Widget.py @@ -27,7 +27,7 @@ """ AUTO_MAA AUTO_MAA组件 -v4.3 +v4.4 作者:DLmaster_361 """ @@ -577,7 +577,7 @@ class PathSettingCard(PushSettingCard): self, icon: Union[str, QIcon, FluentIconBase], title: str, - mode: str, + mode: Union[str, OptionsConfigItem], text: str, qconfig: QConfig, configItem: ConfigItem, @@ -590,6 +590,18 @@ class PathSettingCard(PushSettingCard): self.qconfig = qconfig self.configItem = configItem + if isinstance(mode, OptionsConfigItem): + + self.ComboBox = ComboBox(self) + self.hBoxLayout.insertWidget(5, self.ComboBox, 0, Qt.AlignRight) + + for option in mode.options: + self.ComboBox.addItem(option, userData=option) + + self.ComboBox.setCurrentText(self.qconfig.get(mode)) + self.ComboBox.currentIndexChanged.connect(self._onCurrentIndexChanged) + mode.valueChanged.connect(self.setValue) + self.setContent(self.qconfig.get(self.configItem)) self.clicked.connect(self.ChoosePath) @@ -602,7 +614,7 @@ class PathSettingCard(PushSettingCard): old_path = Path(self.qconfig.get(self.configItem)) - if self.mode == "文件夹": + if self.get_mode() == "文件夹": folder = QFileDialog.getExistingDirectory( self, "选择文件夹", self.qconfig.get(self.configItem) @@ -614,7 +626,7 @@ class PathSettingCard(PushSettingCard): else: file_path, _ = QFileDialog.getOpenFileName( - self, "打开文件", self.qconfig.get(self.configItem), self.mode + self, "打开文件", self.qconfig.get(self.configItem), self.get_mode() ) if file_path: file_path = self.analysis_lnk(file_path) @@ -635,6 +647,21 @@ class PathSettingCard(PushSettingCard): else: return lnk_path + def get_mode(self) -> str: + """获取当前模式""" + if isinstance(self.mode, OptionsConfigItem): + return self.qconfig.get(self.mode) + return self.mode + + def _onCurrentIndexChanged(self, index: int): + + self.qconfig.set(self.mode, self.ComboBox.itemData(index)) + + def setValue(self, value): + + self.ComboBox.setCurrentText(value) + self.qconfig.set(self.mode, value) + class PushAndSwitchButtonSettingCard(SettingCard): """Setting card with push & switch button""" diff --git a/app/ui/__init__.py b/app/ui/__init__.py index 4d6e574..ea7d35a 100644 --- a/app/ui/__init__.py +++ b/app/ui/__init__.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA图形化界面包 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/ui/dispatch_center.py b/app/ui/dispatch_center.py index 5f26d6f..d216411 100644 --- a/app/ui/dispatch_center.py +++ b/app/ui/dispatch_center.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA调度中枢界面 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/ui/downloader.py b/app/ui/downloader.py index a2f17a0..bebc307 100644 --- a/app/ui/downloader.py +++ b/app/ui/downloader.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA更新器 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/ui/history.py b/app/ui/history.py index cc6f0c0..2f0d4c6 100644 --- a/app/ui/history.py +++ b/app/ui/history.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA历史记录界面 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/ui/home.py b/app/ui/home.py index 00624a6..fa3dba5 100644 --- a/app/ui/home.py +++ b/app/ui/home.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA主界面 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/ui/main_window.py b/app/ui/main_window.py index 6064b8e..f95fce0 100644 --- a/app/ui/main_window.py +++ b/app/ui/main_window.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA主界面 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/ui/member_manager.py b/app/ui/member_manager.py index 66120dc..30c9b5e 100644 --- a/app/ui/member_manager.py +++ b/app/ui/member_manager.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA脚本管理界面 -v4.3 +v4.4 作者:DLmaster_361 """ @@ -2312,27 +2312,36 @@ class MemberManager(QWidget): ) self.card_ConfigPath = PathSettingCard( icon=FluentIcon.FOLDER, - title="脚本配置文件目录 - [必填]", - mode="文件夹", - text="选择文件夹", + title="脚本配置文件路径 - [必填]", + mode=self.config.Script_ConfigPathMode, + text="选择路径", qconfig=self.config, configItem=self.config.Script_ConfigPath, parent=self, ) self.card_LogPath = PathSettingCard( icon=FluentIcon.FOLDER, - title="脚本日志文件目录 - [必填]", + title="脚本日志文件路径 - [必填]", mode="所有文件 (*)", text="选择文件", qconfig=self.config, configItem=self.config.Script_LogPath, parent=self, ) + self.card_LogPathFormat = LineEditSettingCard( + icon=FluentIcon.PAGE_RIGHT, + title="脚本日志文件名格式", + content="若脚本日志文件名中随时间变化,请填入时间格式,留空则不启用", + text="请输入脚本日志文件名格式", + qconfig=self.config, + configItem=self.config.Script_LogPathFormat, + parent=self, + ) self.card_LogTimeStart = SpinBoxSettingCard( icon=FluentIcon.PAGE_RIGHT, title="脚本日志时间起始位置 - [必填]", content="脚本日志中时间的起始位置,单位为字符", - range=(0, 1024), + range=(1, 1024), qconfig=self.config, configItem=self.config.Script_LogTimeStart, parent=self, @@ -2341,7 +2350,7 @@ class MemberManager(QWidget): icon=FluentIcon.PAGE_RIGHT, title="脚本日志时间结束位置 - [必填]", content="脚本日志中时间的结束位置,单位为字符", - range=(0, 1024), + range=(1, 1024), qconfig=self.config, configItem=self.config.Script_LogTimeEnd, parent=self, @@ -2402,6 +2411,7 @@ class MemberManager(QWidget): Layout.addWidget(self.card_Arguments) Layout.addWidget(self.card_ConfigPath) Layout.addWidget(self.card_LogPath) + Layout.addWidget(self.card_LogPathFormat) Layout.addLayout(h_layout) Layout.addWidget(self.card_LogTimeFormat) Layout.addWidget(self.card_SuccessLog) @@ -3066,7 +3076,7 @@ class MemberManager(QWidget): self.card_ScriptBeforeTask = PathSettingCard( icon=FluentIcon.FOLDER, title="脚本前置任务", - mode="脚本文件 (*.py *.bat *.exe)", + mode="脚本文件 (*.py *.bat *.cmd *.exe)", text="选择脚本文件", qconfig=self.config, configItem=self.config.Info_ScriptBeforeTask, @@ -3081,7 +3091,7 @@ class MemberManager(QWidget): self.card_ScriptAfterTask = PathSettingCard( icon=FluentIcon.FOLDER, title="脚本后置任务", - mode="脚本文件 (*.py *.bat *.exe)", + mode="脚本文件 (*.py *.bat *.cmd *.exe)", text="选择脚本文件", qconfig=self.config, configItem=self.config.Info_ScriptAfterTask, diff --git a/app/ui/plan_manager.py b/app/ui/plan_manager.py index 1a44ce9..7ebd9bf 100644 --- a/app/ui/plan_manager.py +++ b/app/ui/plan_manager.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA计划管理界面 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/ui/queue_manager.py b/app/ui/queue_manager.py index f2490d4..303edda 100644 --- a/app/ui/queue_manager.py +++ b/app/ui/queue_manager.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA调度队列界面 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/ui/setting.py b/app/ui/setting.py index bec3b26..b1b0808 100644 --- a/app/ui/setting.py +++ b/app/ui/setting.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA设置界面 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/utils/ImageUtils.py b/app/utils/ImageUtils.py index aa02969..2631dc9 100644 --- a/app/utils/ImageUtils.py +++ b/app/utils/ImageUtils.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA图像组件 -v4.3 +v4.4 作者:ClozyA """ diff --git a/app/utils/ProcessManager.py b/app/utils/ProcessManager.py index 09110f8..0d428b5 100644 --- a/app/utils/ProcessManager.py +++ b/app/utils/ProcessManager.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA进程管理组件 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/utils/__init__.py b/app/utils/__init__.py index 0487e1d..ead5c44 100644 --- a/app/utils/__init__.py +++ b/app/utils/__init__.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA工具包 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/app/utils/package.py b/app/utils/package.py index 7e075ba..59d2d20 100644 --- a/app/utils/package.py +++ b/app/utils/package.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA打包程序 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/main.py b/main.py index 0e9d7d3..85e963b 100644 --- a/main.py +++ b/main.py @@ -21,7 +21,7 @@ """ AUTO_MAA AUTO_MAA主程序 -v4.3 +v4.4 作者:DLmaster_361 """ diff --git a/resources/version.json b/resources/version.json index 60c0fe7..7d6cd9b 100644 --- a/resources/version.json +++ b/resources/version.json @@ -2,6 +2,9 @@ "main_version": "4.4.0.2", "version_info": { "4.4.0.2": { + "新增功能": [ + "进一步适配三月七相关配置项" + ], "修复BUG": [ "适配 Mirror 酱 平台下载策略调整" ]