Merge branch 'DLMS_dev' into dev

This commit is contained in:
DLmaster
2025-03-15 13:11:52 +08:00
5 changed files with 56 additions and 23 deletions

View File

@@ -926,6 +926,12 @@ class MaaConfig(QConfig):
"ExitEmulator", "ExitEmulator",
OptionsValidator(["NoAction", "ExitGame", "ExitEmulator"]), OptionsValidator(["NoAction", "ExitGame", "ExitEmulator"]),
) )
RunSet_EnhanceTask = OptionsConfigItem(
"RunSet",
"EnhanceTask",
"None",
OptionsValidator(["None", "KillADB", "KillEmulator", "KillADB&Emulator"]),
)
RunSet_ProxyTimesLimit = RangeConfigItem( RunSet_ProxyTimesLimit = RangeConfigItem(
"RunSet", "ProxyTimesLimit", 0, RangeValidator(0, 1024) "RunSet", "ProxyTimesLimit", 0, RangeValidator(0, 1024)
) )

View File

@@ -237,23 +237,34 @@ class MaaManager(QObject):
continue continue
# 配置MAA # 配置MAA
self.set_maa(mode_book[j], user[2]) set = self.set_maa(mode_book[j], user[2])
# 记录当前时间 # 记录当前时间
start_time = datetime.now() start_time = datetime.now()
# 记录模拟器与ADB路径
self.emulator_path = Path(
set["Configurations"]["Default"]["Start.EmulatorPath"]
)
self.ADB_path = Path(
set["Configurations"]["Default"]["Connect.AdbPath"]
)
self.if_kill_emulator = bool(
set["Configurations"]["Default"]["MainFunction.PostActions"]
== "12"
)
# 添加静默进程标记
Config.silence_list.append(self.emulator_path)
# 增强任务任务开始前强杀ADB
if "ADB" in self.set["RunSet"]["EnhanceTask"]:
System.kill_process(self.ADB_path)
# 创建MAA任务 # 创建MAA任务
maa = subprocess.Popen( maa = subprocess.Popen(
[self.maa_exe_path], [self.maa_exe_path],
shell=True, shell=True,
creationflags=subprocess.CREATE_NO_WINDOW, creationflags=subprocess.CREATE_NO_WINDOW,
) )
# 添加静默进程标记
with self.maa_set_path.open(mode="r", encoding="utf-8") as f:
set = json.load(f)
self.emulator_path = Path(
set["Configurations"]["Default"]["Start.EmulatorPath"]
)
Config.silence_list.append(self.emulator_path)
# 监测MAA运行状态 # 监测MAA运行状态
self.start_monitor(start_time, mode_book[j]) self.start_monitor(start_time, mode_book[j])
@@ -280,6 +291,8 @@ class MaaManager(QObject):
) )
# 无命令行中止MAA与其子程序 # 无命令行中止MAA与其子程序
System.kill_process(self.maa_exe_path) System.kill_process(self.maa_exe_path)
if "Emulator" in self.set["RunSet"]["EnhanceTask"]:
System.kill_process(self.emulator_path)
self.if_open_emulator = True self.if_open_emulator = True
# 推送异常通知 # 推送异常通知
Notify.push_plyer( Notify.push_plyer(
@@ -296,6 +309,15 @@ class MaaManager(QObject):
# 移除静默进程标记 # 移除静默进程标记
Config.silence_list.remove(self.emulator_path) Config.silence_list.remove(self.emulator_path)
# 增强任务任务结束后强杀ADB和模拟器
if "ADB" in self.set["RunSet"]["EnhanceTask"]:
System.kill_process(self.ADB_path)
if (
self.if_kill_emulator
and "Emulator" in self.set["RunSet"]["EnhanceTask"]
):
System.kill_process(self.emulator_path)
# 保存运行日志以及统计信息 # 保存运行日志以及统计信息
if_six_star = Config.save_maa_log( if_six_star = Config.save_maa_log(
Config.app_path Config.app_path
@@ -698,7 +720,7 @@ class MaaManager(QObject):
self.log_monitor_timer.stop() self.log_monitor_timer.stop()
self.monitor_loop.quit() self.monitor_loop.quit()
def set_maa(self, mode, index): def set_maa(self, mode, index) -> dict:
"""配置MAA运行参数""" """配置MAA运行参数"""
logger.info(f"{self.name} | 配置MAA运行参数: {mode}/{index}") logger.info(f"{self.name} | 配置MAA运行参数: {mode}/{index}")
@@ -1132,7 +1154,7 @@ class MaaManager(QObject):
with self.maa_set_path.open(mode="w", encoding="utf-8") as f: with self.maa_set_path.open(mode="w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=4) json.dump(data, f, ensure_ascii=False, indent=4)
return True return data
def agree_bilibili(self, if_agree): def agree_bilibili(self, if_agree):
"""向MAA写入Bilibili协议相关任务""" """向MAA写入Bilibili协议相关任务"""
@@ -1165,15 +1187,6 @@ class MaaManager(QObject):
with self.maa_tasks_path.open(mode="w", encoding="utf-8") as f: with self.maa_tasks_path.open(mode="w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=4) json.dump(data, f, ensure_ascii=False, indent=4)
def get_emulator_path(self):
"""获取模拟器路径"""
# 读取配置文件
with self.maa_set_path.open(mode="r", encoding="utf-8") as f:
set = json.load(f)
# 获取模拟器路径
return Path(set["Configurations"]["Default"]["Start.EmulatorPath"])
def server_date(self): def server_date(self):
"""获取当前的服务器日期""" """获取当前的服务器日期"""

View File

@@ -657,6 +657,18 @@ class MaaSettingBox(QWidget):
content="简洁用户列表下相邻两个任务间的切换方式", content="简洁用户列表下相邻两个任务间的切换方式",
texts=["直接切换账号", "重启明日方舟", "重启模拟器"], texts=["直接切换账号", "重启明日方舟", "重启模拟器"],
) )
self.card_EnhanceTask = ComboBoxSettingCard(
configItem=Config.maa_config.RunSet_EnhanceTask,
icon=FluentIcon.PAGE_RIGHT,
title="自动代理增效任务",
content="自动代理时的额外操作,此操作无法区分多开,可能会干扰其他任务,也可能关闭您正在使用的模拟器",
texts=[
"禁用",
"强制关闭ADB",
"强制关闭所有模拟器",
"强制关闭ADB和所有模拟器",
],
)
self.ProxyTimesLimit = SpinBoxSettingCard( self.ProxyTimesLimit = SpinBoxSettingCard(
(0, 1024), (0, 1024),
FluentIcon.PAGE_RIGHT, FluentIcon.PAGE_RIGHT,
@@ -689,6 +701,7 @@ class MaaSettingBox(QWidget):
widget = QWidget() widget = QWidget()
Layout = QVBoxLayout(widget) Layout = QVBoxLayout(widget)
Layout.addWidget(self.card_TaskTransitionMethod) Layout.addWidget(self.card_TaskTransitionMethod)
Layout.addWidget(self.card_EnhanceTask)
Layout.addWidget(self.ProxyTimesLimit) Layout.addWidget(self.ProxyTimesLimit)
Layout.addWidget(self.AnnihilationTimeLimit) Layout.addWidget(self.AnnihilationTimeLimit)
Layout.addWidget(self.RoutineTimeLimit) Layout.addWidget(self.RoutineTimeLimit)

View File

@@ -45,3 +45,4 @@ G"Start.MinimizeDirectly": "True" #启动MAA后直接最小化
G"GUI.UseTray": "True" #显示托盘图标 G"GUI.UseTray": "True" #显示托盘图标
G"GUI.MinimizeToTray": "False" #最小化时隐藏至托盘 G"GUI.MinimizeToTray": "False" #最小化时隐藏至托盘
"Start.EmulatorPath" #模拟器路径 "Start.EmulatorPath" #模拟器路径
"Connect.AdbPath" #ADB路径

View File

@@ -1,7 +1,7 @@
{ {
"main_version": "4.2.5.3", "main_version": "4.2.5.4",
"updater_version": "1.2.0.0", "updater_version": "1.2.0.0",
"announcement": "\n## 新增功能\n- 屏蔽MuMu模拟器开屏广告功能上线\n- 更新器支持多线程下载\n## 修复BUG\n- 修复统计信息HTML模板公招匹配错误\n- 修复密码显示按钮动画异常\n## 程序优化\n- 关机等电源操作添加100s倒计时\n- 人工排查弹窗方法优化\n- 人工排查时自动屏蔽静默操作", "announcement": "\n## 新增功能\n- 屏蔽MuMu模拟器开屏广告功能上线\n- 更新器支持多线程下载\n- 添加强制关闭ADB与模拟器等增强任务项\n## 修复BUG\n- 修复统计信息HTML模板公招匹配错误\n- 修复密码显示按钮动画异常\n## 程序优化\n- 关机等电源操作添加100s倒计时\n- 人工排查弹窗方法优化\n- 人工排查时自动屏蔽静默操作",
"proxy_list": [ "proxy_list": [
"", "",
"https://gitproxy.click/", "https://gitproxy.click/",