feat: 自动代理流程优化
This commit is contained in:
@@ -599,7 +599,7 @@ class MaaUserConfig(QConfig):
|
|||||||
|
|
||||||
class AppConfig(GlobalConfig):
|
class AppConfig(GlobalConfig):
|
||||||
|
|
||||||
VERSION = "4.3.3.1"
|
VERSION = "4.3.4.1"
|
||||||
|
|
||||||
gameid_refreshed = Signal()
|
gameid_refreshed = Signal()
|
||||||
PASSWORD_refreshed = Signal()
|
PASSWORD_refreshed = Signal()
|
||||||
|
|||||||
@@ -186,7 +186,7 @@ class MaaManager(QObject):
|
|||||||
|
|
||||||
logger.info(f"{self.name} | 开始代理用户: {user[0]}")
|
logger.info(f"{self.name} | 开始代理用户: {user[0]}")
|
||||||
|
|
||||||
# 初始化代理情况记录和模式替换记录
|
# 初始化代理情况记录和模式替换表
|
||||||
run_book = {"Annihilation": False, "Routine": False}
|
run_book = {"Annihilation": False, "Routine": False}
|
||||||
mode_book = {
|
mode_book = {
|
||||||
"Annihilation": "自动代理_剿灭",
|
"Annihilation": "自动代理_剿灭",
|
||||||
@@ -196,92 +196,80 @@ class MaaManager(QObject):
|
|||||||
# 简洁模式用户默认开启日常选项
|
# 简洁模式用户默认开启日常选项
|
||||||
if user_data["Info"]["Mode"] == "简洁":
|
if user_data["Info"]["Mode"] == "简洁":
|
||||||
user_data["Info"]["Routine"] = True
|
user_data["Info"]["Routine"] = True
|
||||||
|
# 详细模式用户首次代理需打开模拟器
|
||||||
elif user_data["Info"]["Mode"] == "详细":
|
elif user_data["Info"]["Mode"] == "详细":
|
||||||
check_book = {
|
self.if_open_emulator = True
|
||||||
"Annihilation": True,
|
|
||||||
"Routine": True,
|
|
||||||
}
|
|
||||||
|
|
||||||
user_logs_list = []
|
user_logs_list = []
|
||||||
user_start_time = datetime.now()
|
user_start_time = datetime.now()
|
||||||
|
|
||||||
# 尝试次数循环
|
# 剿灭-日常模式循环
|
||||||
for i in range(self.set["RunSet"]["RunTimesLimit"]):
|
for mode in ["Annihilation", "Routine"]:
|
||||||
|
|
||||||
if self.isInterruptionRequested:
|
if self.isInterruptionRequested:
|
||||||
break
|
break
|
||||||
|
|
||||||
logger.info(
|
# 剿灭模式;满足条件跳过剿灭
|
||||||
f"{self.name} | 用户: {user[0]} - 尝试次数: {i + 1}/{self.set["RunSet"]["RunTimesLimit"]}"
|
if (
|
||||||
|
mode == "Annihilation"
|
||||||
|
and self.set["RunSet"]["AnnihilationWeeklyLimit"]
|
||||||
|
and datetime.strptime(
|
||||||
|
user_data["Data"]["LastAnnihilationDate"], "%Y-%m-%d"
|
||||||
|
).isocalendar()[:2]
|
||||||
|
== datetime.strptime(curdate, "%Y-%m-%d").isocalendar()[:2]
|
||||||
|
):
|
||||||
|
logger.info(
|
||||||
|
f"{self.name} | 用户: {user_data["Info"]["Name"]} - 本周剿灭模式已达上限,跳过执行剿灭任务"
|
||||||
|
)
|
||||||
|
run_book[mode] = True
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
self.weekly_annihilation_limit_reached = False
|
||||||
|
|
||||||
|
if not user_data["Info"][mode]:
|
||||||
|
run_book[mode] = True
|
||||||
|
continue
|
||||||
|
|
||||||
|
if user_data["Info"]["Mode"] == "详细":
|
||||||
|
|
||||||
|
if not (
|
||||||
|
self.data[user[2]]["Path"] / f"{mode}/gui.json"
|
||||||
|
).exists():
|
||||||
|
logger.error(
|
||||||
|
f"{self.name} | 用户: {user[0]} - 未找到{mode_book[mode][5:7]}配置文件"
|
||||||
|
)
|
||||||
|
self.push_info_bar.emit(
|
||||||
|
"error",
|
||||||
|
"启动MAA代理进程失败",
|
||||||
|
f"未找到{user[0]}的{mode_book[mode][5:7]}配置文件!",
|
||||||
|
-1,
|
||||||
|
)
|
||||||
|
run_book[mode] = False
|
||||||
|
continue
|
||||||
|
|
||||||
|
# 更新当前模式到界面
|
||||||
|
self.update_user_list.emit(
|
||||||
|
[
|
||||||
|
(
|
||||||
|
[f"{_[0]} - {mode_book[mode][5:7]}", _[1], _[2]]
|
||||||
|
if _[2] == user[2]
|
||||||
|
else _
|
||||||
|
)
|
||||||
|
for _ in self.user_list
|
||||||
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
# 剿灭-日常模式循环
|
# 尝试次数循环
|
||||||
for mode in ["Annihilation", "Routine"]:
|
for i in range(self.set["RunSet"]["RunTimesLimit"]):
|
||||||
|
|
||||||
if self.isInterruptionRequested:
|
if self.isInterruptionRequested:
|
||||||
break
|
break
|
||||||
|
|
||||||
# 剿灭模式;满足条件跳过剿灭
|
|
||||||
if (
|
|
||||||
mode == "Annihilation"
|
|
||||||
and self.set["RunSet"]["AnnihilationWeeklyLimit"]
|
|
||||||
and datetime.strptime(
|
|
||||||
user_data["Data"]["LastAnnihilationDate"], "%Y-%m-%d"
|
|
||||||
).isocalendar()[:2]
|
|
||||||
== datetime.strptime(curdate, "%Y-%m-%d").isocalendar()[:2]
|
|
||||||
):
|
|
||||||
logger.info(
|
|
||||||
f"{self.name} | 用户: {user_data["Info"]["Name"]} - 本周剿灭模式已达上限,跳过执行剿灭任务"
|
|
||||||
)
|
|
||||||
run_book[mode] = True
|
|
||||||
continue
|
|
||||||
else:
|
|
||||||
self.weekly_annihilation_limit_reached = False
|
|
||||||
|
|
||||||
if not user_data["Info"][mode]:
|
|
||||||
run_book[mode] = True
|
|
||||||
continue
|
|
||||||
if run_book[mode]:
|
if run_book[mode]:
|
||||||
continue
|
break
|
||||||
|
|
||||||
logger.info(
|
logger.info(
|
||||||
f"{self.name} | 用户: {user[0]} - 模式: {mode_book[mode]}"
|
f"{self.name} | 用户: {user[0]} - 模式: {mode_book[mode]} - 尝试次数: {i + 1}/{self.set["RunSet"]["RunTimesLimit"]}"
|
||||||
)
|
|
||||||
|
|
||||||
if user_data["Info"]["Mode"] == "详细":
|
|
||||||
|
|
||||||
self.if_open_emulator = True
|
|
||||||
|
|
||||||
if (
|
|
||||||
check_book[mode]
|
|
||||||
and not (
|
|
||||||
self.data[user[2]]["Path"] / f"{mode}/gui.json"
|
|
||||||
).exists()
|
|
||||||
):
|
|
||||||
logger.error(
|
|
||||||
f"{self.name} | 用户: {user[0]} - 未找到{mode_book[mode][5:7]}配置文件"
|
|
||||||
)
|
|
||||||
self.push_info_bar.emit(
|
|
||||||
"error",
|
|
||||||
"启动MAA代理进程失败",
|
|
||||||
f"未找到{user[0]}的{mode_book[mode][5:7]}配置文件!",
|
|
||||||
-1,
|
|
||||||
)
|
|
||||||
check_book[mode] = False
|
|
||||||
continue
|
|
||||||
elif not check_book[mode]:
|
|
||||||
continue
|
|
||||||
|
|
||||||
# 更新当前模式到界面
|
|
||||||
self.update_user_list.emit(
|
|
||||||
[
|
|
||||||
(
|
|
||||||
[f"{_[0]} - {mode_book[mode][5:7]}", _[1], _[2]]
|
|
||||||
if _[2] == user[2]
|
|
||||||
else _
|
|
||||||
)
|
|
||||||
for _ in self.user_list
|
|
||||||
]
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# 配置MAA
|
# 配置MAA
|
||||||
@@ -293,24 +281,50 @@ class MaaManager(QObject):
|
|||||||
self.emulator_path = Path(
|
self.emulator_path = Path(
|
||||||
set["Configurations"]["Default"]["Start.EmulatorPath"]
|
set["Configurations"]["Default"]["Start.EmulatorPath"]
|
||||||
)
|
)
|
||||||
|
self.emulator_arguments = set["Configurations"]["Default"][
|
||||||
|
"Start.EmulatorAddCommand"
|
||||||
|
].split()
|
||||||
self.ADB_path = Path(
|
self.ADB_path = Path(
|
||||||
set["Configurations"]["Default"]["Connect.AdbPath"]
|
set["Configurations"]["Default"]["Connect.AdbPath"]
|
||||||
)
|
)
|
||||||
|
self.ADB_address = set["Configurations"]["Default"][
|
||||||
|
"Connect.Address"
|
||||||
|
]
|
||||||
self.if_kill_emulator = bool(
|
self.if_kill_emulator = bool(
|
||||||
set["Configurations"]["Default"]["MainFunction.PostActions"]
|
set["Configurations"]["Default"]["MainFunction.PostActions"]
|
||||||
== "12"
|
== "12"
|
||||||
)
|
)
|
||||||
|
self.if_open_emulator_process = bool(
|
||||||
|
set["Configurations"]["Default"][
|
||||||
|
"Start.OpenEmulatorAfterLaunch"
|
||||||
|
]
|
||||||
|
== "True"
|
||||||
|
)
|
||||||
# 添加静默进程标记
|
# 添加静默进程标记
|
||||||
Config.silence_list.append(self.emulator_path)
|
Config.silence_list.append(self.emulator_path)
|
||||||
|
|
||||||
# 增强任务:任务开始前强杀ADB
|
# 增强任务:任务开始前强杀ADB
|
||||||
if "ADB" in self.set["RunSet"]["EnhanceTask"]:
|
if "ADB" in self.set["RunSet"]["EnhanceTask"]:
|
||||||
System.kill_process(self.ADB_path)
|
System.kill_process(self.ADB_path)
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
subprocess.run(
|
||||||
|
[self.ADB_path, "disconnect", self.ADB_address],
|
||||||
|
creationflags=subprocess.CREATE_NO_WINDOW,
|
||||||
|
)
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
# 忽略错误,因为可能本来就没有连接
|
||||||
|
logger.warning(f"{self.name} | 释放ADB时出现异常:{e}")
|
||||||
|
|
||||||
|
if self.if_open_emulator_process:
|
||||||
|
self.emulator_process = subprocess.Popen(
|
||||||
|
[self.emulator_path, *self.emulator_arguments],
|
||||||
|
creationflags=subprocess.CREATE_NO_WINDOW,
|
||||||
|
)
|
||||||
|
|
||||||
# 创建MAA任务
|
# 创建MAA任务
|
||||||
maa = subprocess.Popen(
|
maa = subprocess.Popen(
|
||||||
[self.maa_exe_path],
|
[self.maa_exe_path],
|
||||||
shell=True,
|
|
||||||
creationflags=subprocess.CREATE_NO_WINDOW,
|
creationflags=subprocess.CREATE_NO_WINDOW,
|
||||||
)
|
)
|
||||||
# 监测MAA运行状态
|
# 监测MAA运行状态
|
||||||
@@ -339,8 +353,13 @@ 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"]:
|
if "Emulator" in self.set["RunSet"]["EnhanceTask"]:
|
||||||
System.kill_process(self.emulator_path)
|
System.kill_process(self.emulator_path)
|
||||||
|
else:
|
||||||
|
self.emulator_process.terminate()
|
||||||
|
self.emulator_process.wait()
|
||||||
|
|
||||||
self.if_open_emulator = True
|
self.if_open_emulator = True
|
||||||
# 推送异常通知
|
# 推送异常通知
|
||||||
Notify.push_plyer(
|
Notify.push_plyer(
|
||||||
@@ -357,14 +376,25 @@ class MaaManager(QObject):
|
|||||||
# 移除静默进程标记
|
# 移除静默进程标记
|
||||||
Config.silence_list.remove(self.emulator_path)
|
Config.silence_list.remove(self.emulator_path)
|
||||||
|
|
||||||
# 增强任务:任务结束后强杀ADB和模拟器
|
# 增强任务:任务结束后强杀ADB和模拟器或释放进程
|
||||||
if "ADB" in self.set["RunSet"]["EnhanceTask"]:
|
if "ADB" in self.set["RunSet"]["EnhanceTask"]:
|
||||||
System.kill_process(self.ADB_path)
|
System.kill_process(self.ADB_path)
|
||||||
if (
|
else:
|
||||||
self.if_kill_emulator
|
try:
|
||||||
and "Emulator" in self.set["RunSet"]["EnhanceTask"]
|
subprocess.run(
|
||||||
):
|
[self.ADB_path, "disconnect", self.ADB_address],
|
||||||
System.kill_process(self.emulator_path)
|
creationflags=subprocess.CREATE_NO_WINDOW,
|
||||||
|
)
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
# 忽略错误,因为可能本来就没有连接
|
||||||
|
logger.warning(f"{self.name} | 释放ADB时出现异常:{e}")
|
||||||
|
if self.if_kill_emulator:
|
||||||
|
if "Emulator" in self.set["RunSet"]["EnhanceTask"]:
|
||||||
|
System.kill_process(self.emulator_path)
|
||||||
|
else:
|
||||||
|
self.emulator_process.terminate()
|
||||||
|
self.emulator_process.wait()
|
||||||
|
self.if_open_emulator = True
|
||||||
|
|
||||||
# 记录剿灭情况
|
# 记录剿灭情况
|
||||||
if (
|
if (
|
||||||
@@ -392,23 +422,6 @@ class MaaManager(QObject):
|
|||||||
{"user_name": user_data["Info"]["Name"]},
|
{"user_name": user_data["Info"]["Name"]},
|
||||||
)
|
)
|
||||||
|
|
||||||
# 成功完成代理的用户修改相关参数
|
|
||||||
if run_book["Annihilation"] and run_book["Routine"]:
|
|
||||||
if (
|
|
||||||
user_data["Data"]["ProxyTimes"] == 0
|
|
||||||
and user_data["Info"]["RemainedDay"] != -1
|
|
||||||
):
|
|
||||||
user_data["Info"]["RemainedDay"] -= 1
|
|
||||||
user_data["Data"]["ProxyTimes"] += 1
|
|
||||||
user[1] = "完成"
|
|
||||||
Notify.push_plyer(
|
|
||||||
"成功完成一个自动代理任务!",
|
|
||||||
f"已完成用户 {user[0].replace("_", " 今天的")}任务",
|
|
||||||
f"已完成 {user[0].replace("_", " 的")}",
|
|
||||||
3,
|
|
||||||
)
|
|
||||||
break
|
|
||||||
|
|
||||||
if Config.get(Config.notify_IfSendStatistic):
|
if Config.get(Config.notify_IfSendStatistic):
|
||||||
|
|
||||||
statistics = Config.merge_maa_logs("指定项", user_logs_list)
|
statistics = Config.merge_maa_logs("指定项", user_logs_list)
|
||||||
@@ -428,8 +441,23 @@ class MaaManager(QObject):
|
|||||||
"统计信息", f"用户 {user[0]} 的自动代理统计报告", statistics
|
"统计信息", f"用户 {user[0]} 的自动代理统计报告", statistics
|
||||||
)
|
)
|
||||||
|
|
||||||
# 录入代理失败的用户
|
if run_book["Annihilation"] and run_book["Routine"]:
|
||||||
if not (run_book["Annihilation"] and run_book["Routine"]):
|
# 成功完成代理的用户修改相关参数
|
||||||
|
if (
|
||||||
|
user_data["Data"]["ProxyTimes"] == 0
|
||||||
|
and user_data["Info"]["RemainedDay"] != -1
|
||||||
|
):
|
||||||
|
user_data["Info"]["RemainedDay"] -= 1
|
||||||
|
user_data["Data"]["ProxyTimes"] += 1
|
||||||
|
user[1] = "完成"
|
||||||
|
Notify.push_plyer(
|
||||||
|
"成功完成一个自动代理任务!",
|
||||||
|
f"已完成用户 {user[0].replace("_", " 今天的")}任务",
|
||||||
|
f"已完成 {user[0].replace("_", " 的")}",
|
||||||
|
3,
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
# 录入代理失败的用户
|
||||||
user[1] = "异常"
|
user[1] = "异常"
|
||||||
|
|
||||||
self.update_user_list.emit(self.user_list)
|
self.update_user_list.emit(self.user_list)
|
||||||
@@ -475,7 +503,6 @@ class MaaManager(QObject):
|
|||||||
# 创建MAA任务
|
# 创建MAA任务
|
||||||
maa = subprocess.Popen(
|
maa = subprocess.Popen(
|
||||||
[self.maa_exe_path],
|
[self.maa_exe_path],
|
||||||
shell=True,
|
|
||||||
creationflags=subprocess.CREATE_NO_WINDOW,
|
creationflags=subprocess.CREATE_NO_WINDOW,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -545,7 +572,6 @@ class MaaManager(QObject):
|
|||||||
# 创建MAA任务
|
# 创建MAA任务
|
||||||
maa = subprocess.Popen(
|
maa = subprocess.Popen(
|
||||||
[self.maa_exe_path],
|
[self.maa_exe_path],
|
||||||
shell=True,
|
|
||||||
creationflags=subprocess.CREATE_NO_WINDOW,
|
creationflags=subprocess.CREATE_NO_WINDOW,
|
||||||
)
|
)
|
||||||
# 记录当前时间
|
# 记录当前时间
|
||||||
@@ -1273,11 +1299,7 @@ class MaaManager(QObject):
|
|||||||
] = "False" # 生息演算
|
] = "False" # 生息演算
|
||||||
|
|
||||||
# 启动模拟器仅生效一次
|
# 启动模拟器仅生效一次
|
||||||
if (
|
if "设置MAA" not in mode and self.if_open_emulator:
|
||||||
"设置MAA" not in mode
|
|
||||||
and self.if_open_emulator
|
|
||||||
and self.set["RunSet"]["TaskTransitionMethod"] != "ExitEmulator"
|
|
||||||
):
|
|
||||||
self.if_open_emulator = False
|
self.if_open_emulator = False
|
||||||
|
|
||||||
# 覆写配置文件
|
# 覆写配置文件
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ import shutil
|
|||||||
import requests
|
import requests
|
||||||
import subprocess
|
import subprocess
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from packaging import version
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Dict, List, Union
|
from typing import Dict, List, Union
|
||||||
|
|
||||||
@@ -337,7 +338,9 @@ class Setting(QWidget):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# 有版本更新
|
# 有版本更新
|
||||||
if remote_version > current_version:
|
if version.parse(version_text(remote_version)) > version.parse(
|
||||||
|
version_text(current_version)
|
||||||
|
):
|
||||||
|
|
||||||
version_info_json: Dict[str, Dict[str, str]] = json.loads(
|
version_info_json: Dict[str, Dict[str, str]] = json.loads(
|
||||||
re.sub(
|
re.sub(
|
||||||
@@ -354,9 +357,11 @@ class Setting(QWidget):
|
|||||||
all_version_info = {}
|
all_version_info = {}
|
||||||
for v_i in [
|
for v_i in [
|
||||||
info
|
info
|
||||||
for version, info in version_info_json.items()
|
for ver, info in version_info_json.items()
|
||||||
if list(map(int, version.split("."))) > current_version
|
if version.parse(version_text(list(map(int, ver.split(".")))))
|
||||||
|
> version.parse(version_text(current_version))
|
||||||
]:
|
]:
|
||||||
|
|
||||||
for key, value in v_i.items():
|
for key, value in v_i.items():
|
||||||
if key in update_version_info:
|
if key in update_version_info:
|
||||||
update_version_info[key] += value.copy()
|
update_version_info[key] += value.copy()
|
||||||
@@ -401,8 +406,7 @@ class Setting(QWidget):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
subprocess.Popen(
|
subprocess.Popen(
|
||||||
str(Config.app_path / "AUTO_Updater.active.exe"),
|
[Config.app_path / "AUTO_Updater.active.exe"],
|
||||||
shell=True,
|
|
||||||
creationflags=subprocess.CREATE_NO_WINDOW,
|
creationflags=subprocess.CREATE_NO_WINDOW,
|
||||||
)
|
)
|
||||||
self.window().close()
|
self.window().close()
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import subprocess
|
|||||||
import time
|
import time
|
||||||
import win32crypt
|
import win32crypt
|
||||||
import base64
|
import base64
|
||||||
|
from packaging import version
|
||||||
from functools import partial
|
from functools import partial
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
@@ -529,14 +530,12 @@ class DownloadManager(QDialog):
|
|||||||
# 主程序更新完成后打开对应程序
|
# 主程序更新完成后打开对应程序
|
||||||
if not self.isInterruptionRequested and self.name == "AUTO_MAA":
|
if not self.isInterruptionRequested and self.name == "AUTO_MAA":
|
||||||
subprocess.Popen(
|
subprocess.Popen(
|
||||||
str(self.app_path / "AUTO_MAA.exe"),
|
[self.app_path / "AUTO_MAA.exe"],
|
||||||
shell=True,
|
|
||||||
creationflags=subprocess.CREATE_NO_WINDOW,
|
creationflags=subprocess.CREATE_NO_WINDOW,
|
||||||
)
|
)
|
||||||
elif not self.isInterruptionRequested and self.name == "MAA":
|
elif not self.isInterruptionRequested and self.name == "MAA":
|
||||||
subprocess.Popen(
|
subprocess.Popen(
|
||||||
str(self.app_path / "MAA.exe"),
|
[self.app_path / "MAA.exe"],
|
||||||
shell=True,
|
|
||||||
creationflags=subprocess.CREATE_NO_WINDOW,
|
creationflags=subprocess.CREATE_NO_WINDOW,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -720,7 +719,9 @@ if __name__ == "__main__":
|
|||||||
(app_path / "changes.json").unlink()
|
(app_path / "changes.json").unlink()
|
||||||
|
|
||||||
# 启动更新线程
|
# 启动更新线程
|
||||||
if remote_version > current_version:
|
if version.parse(version_text(remote_version)) > version.parse(
|
||||||
|
version_text(current_version)
|
||||||
|
):
|
||||||
app = AUTO_MAA_Downloader(
|
app = AUTO_MAA_Downloader(
|
||||||
app_path,
|
app_path,
|
||||||
"AUTO_MAA",
|
"AUTO_MAA",
|
||||||
|
|||||||
@@ -38,6 +38,8 @@
|
|||||||
#设置
|
#设置
|
||||||
"Start.ClientType": "Bilibili"、 "Official" #服务器
|
"Start.ClientType": "Bilibili"、 "Official" #服务器
|
||||||
G"Timer.Timer1": "False" #时间设置1
|
G"Timer.Timer1": "False" #时间设置1
|
||||||
|
"Connect.AdbPath" #ADB路径
|
||||||
|
"Connect.Address": "127.0.0.1:16448" #连接地址
|
||||||
G"VersionUpdate.ScheduledUpdateCheck": "True" #定时检查更新
|
G"VersionUpdate.ScheduledUpdateCheck": "True" #定时检查更新
|
||||||
G"VersionUpdate.AutoDownloadUpdatePackage": "True" #自动下载更新包
|
G"VersionUpdate.AutoDownloadUpdatePackage": "True" #自动下载更新包
|
||||||
G"VersionUpdate.AutoInstallUpdatePackage": "True" #自动安装更新包
|
G"VersionUpdate.AutoInstallUpdatePackage": "True" #自动安装更新包
|
||||||
@@ -47,4 +49,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路径
|
"Start.EmulatorAddCommand": "-v 2" #附加命令
|
||||||
@@ -1,11 +1,16 @@
|
|||||||
{
|
{
|
||||||
"main_version": "4.3.3.1",
|
"main_version": "4.3.4.1",
|
||||||
"updater_version": "1.0.0.0",
|
"updater_version": "1.0.0.0",
|
||||||
"announcement": "\n## 新增功能\n- 屏蔽MuMu模拟器开屏广告功能上线\n- 更新器支持多线程下载\n- 添加强制关闭ADB与模拟器等增强任务项\n## 修复BUG\n- 修复统计信息HTML模板公招匹配错误\n- 修复密码显示按钮动画异常\n- 修复`检测到MAA未能实际执行任务`报错被异常屏蔽\n- 修复MAA超时判定异常失效\n## 程序优化\n- 关机等电源操作添加100s倒计时\n- 人工排查弹窗方法优化\n- 人工排查时自动屏蔽静默操作\n- 公告样式优化",
|
"announcement": "\n## 新增功能\n- 屏蔽MuMu模拟器开屏广告功能上线\n- 更新器支持多线程下载\n- 添加强制关闭ADB与模拟器等增强任务项\n## 修复BUG\n- 修复统计信息HTML模板公招匹配错误\n- 修复密码显示按钮动画异常\n- 修复`检测到MAA未能实际执行任务`报错被异常屏蔽\n- 修复MAA超时判定异常失效\n## 程序优化\n- 关机等电源操作添加100s倒计时\n- 人工排查弹窗方法优化\n- 人工排查时自动屏蔽静默操作\n- 公告样式优化",
|
||||||
"version_info": {
|
"version_info": {
|
||||||
"4.3.3.1": {
|
"4.3.4.1": {
|
||||||
|
"新增功能": [
|
||||||
|
"开始任务前自动释放ADB端口"
|
||||||
|
],
|
||||||
"程序优化": [
|
"程序优化": [
|
||||||
"request 添加超时限制"
|
"request 添加超时限制",
|
||||||
|
"用户任务运行流程改进",
|
||||||
|
"自动代理中模拟器改由AUTO_MAA控制"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"4.3.3.0": {
|
"4.3.3.0": {
|
||||||
|
|||||||
Reference in New Issue
Block a user