From 3307793a3d4475776334e5bca3f7b87e1a89fca0 Mon Sep 17 00:00:00 2001 From: AoXuan Date: Thu, 6 Feb 2025 15:55:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=90=8E=E8=87=AA=E5=8A=A8=E5=85=B3=E6=9C=BA?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/core/config.py | 2 ++ app/models/MAA.py | 8 ++++++++ app/ui/setting.py | 13 +++++++++++++ 3 files changed, 23 insertions(+) diff --git a/app/core/config.py b/app/core/config.py index 1496a6e..b9d1a1d 100644 --- a/app/core/config.py +++ b/app/core/config.py @@ -542,6 +542,8 @@ class GlobalConfig(QConfig): function_IfSilence = ConfigItem("Function", "IfSilence", False, BoolValidator()) function_BossKey = ConfigItem("Function", "BossKey", "") + function_AutoShutdown = ConfigItem("Function", "AutoShutdown", False, BoolValidator()) + start_IfSelfStart = ConfigItem("Start", "IfSelfStart", False, BoolValidator()) start_IfRunDirectly = ConfigItem("Start", "IfRunDirectly", False, BoolValidator()) diff --git a/app/models/MAA.py b/app/models/MAA.py index 27b8fcb..92e7ba1 100644 --- a/app/models/MAA.py +++ b/app/models/MAA.py @@ -24,6 +24,7 @@ MAA功能组件 v4.2 作者:DLmaster_361 """ +import sys from loguru import logger from PySide6.QtCore import QObject, Signal, QEventLoop @@ -538,6 +539,13 @@ class MaaManager(QObject): f"{self.mode[:4]}任务报告", f"{end_log}AUTO_MAA 敬上", ) + if Config.global_config.function_AutoShutdown: + logger.info("任务完成,系统将在 60 秒后自动关机...") + if sys.platform.startswith("win"): + subprocess.run("shutdown /s /t 60", shell=True) # Windows + else: + # 看到 Issues 里有兼容 Linux 的计划,加上 Linux 的 + subprocess.run("shutdown -h +1", shell=True) # Linux/macOS self.accomplish.emit({"Time": begin_time, "History": end_log}) diff --git a/app/ui/setting.py b/app/ui/setting.py index 60d44b4..0f13450 100644 --- a/app/ui/setting.py +++ b/app/ui/setting.py @@ -399,11 +399,20 @@ class FunctionSettingCard(HeaderCardWidget): content="仅阻止电脑自动休眠,不会影响屏幕是否熄灭", configItem=Config.global_config.function_IfAllowSleep, ) + + self.card_AutoShutdown = SwitchSettingCard( + icon=FluentIcon.POWER_BUTTON, + title="运行完成后自动关机", + content="启用后,任务完成后将自动关机", + configItem=Config.global_config.function_AutoShutdown, + ) + self.card_IfSilence = self.SilenceSettingCard(self) Layout = QVBoxLayout() Layout.addWidget(self.card_IfAllowSleep) Layout.addWidget(self.card_IfSilence) + Layout.addWidget(self.card_AutoShutdown) self.viewLayout.addLayout(Layout) class SilenceSettingCard(ExpandGroupSettingCard): @@ -753,3 +762,7 @@ def version_text(version_numb: list) -> str: f"v{'.'.join(str(_) for _ in version_numb[0:3])}-beta.{version_numb[3]}" ) return version + +def toggle_auto_shutdown(self, checked: bool) -> None: + """启用或禁用自动关机""" + Config.global_config.function_AutoShutdown = checked