feat(ui): 主调度台支持直接启动多开调度台
This commit is contained in:
@@ -10,6 +10,7 @@ MAA多账号管理与自动化软件
|
||||
|
||||
[](https://github.com/DLmaster361/AUTO_MAA/stargazers)
|
||||
[](https://github.com/DLmaster361/AUTO_MAA/network)
|
||||
[](https://github.com/DLmaster361/AUTO_MAA/releases/latest)
|
||||
[](https://github.com/DLmaster361/AUTO_MAA/issues)
|
||||
[](https://github.com/DLmaster361/AUTO_MAA/graphs/contributors)
|
||||
[](https://github.com/DLmaster361/AUTO_MAA/blob/main/LICENSE)
|
||||
|
||||
@@ -91,7 +91,10 @@ class GlobalConfig(QConfig):
|
||||
OptionsValidator(["默认", "自定义", "主题图像"]),
|
||||
)
|
||||
self.function_HistoryRetentionTime = OptionsConfigItem(
|
||||
"Function", "HistoryRetentionTime", 0, OptionsValidator([7, 15, 30, 60, 0])
|
||||
"Function",
|
||||
"HistoryRetentionTime",
|
||||
0,
|
||||
OptionsValidator([7, 15, 30, 60, 90, 180, 365, 0]),
|
||||
)
|
||||
self.function_IfAllowSleep = ConfigItem(
|
||||
"Function", "IfAllowSleep", False, BoolValidator()
|
||||
@@ -606,7 +609,7 @@ class MaaUserConfig(QConfig):
|
||||
|
||||
class AppConfig(GlobalConfig):
|
||||
|
||||
VERSION = "4.3.4.6"
|
||||
VERSION = "4.3.4.7"
|
||||
|
||||
gameid_refreshed = Signal()
|
||||
PASSWORD_refreshed = Signal()
|
||||
|
||||
@@ -109,7 +109,14 @@ class LineEditMessageBox(MessageBoxBase):
|
||||
class ComboBoxMessageBox(MessageBoxBase):
|
||||
"""选择对话框"""
|
||||
|
||||
def __init__(self, parent, title: str, content: List[str], list: List[List[str]]):
|
||||
def __init__(
|
||||
self,
|
||||
parent,
|
||||
title: str,
|
||||
content: List[str],
|
||||
text_list: List[List[str]],
|
||||
data_list: List[List[str]] = None,
|
||||
):
|
||||
super().__init__(parent)
|
||||
self.title = SubtitleLabel(title)
|
||||
|
||||
@@ -121,7 +128,11 @@ class ComboBoxMessageBox(MessageBoxBase):
|
||||
for i in range(len(content)):
|
||||
|
||||
self.input.append(ComboBox())
|
||||
self.input[i].addItems(list[i])
|
||||
if data_list:
|
||||
for j in range(len(text_list[i])):
|
||||
self.input[i].addItem(text_list[i][j], userData=data_list[i][j])
|
||||
else:
|
||||
self.input[i].addItems(text_list[i])
|
||||
self.input[i].setCurrentIndex(-1)
|
||||
self.input[i].setPlaceholderText(content[i])
|
||||
Layout.addWidget(self.input[i])
|
||||
|
||||
@@ -50,7 +50,7 @@ from typing import List, Dict
|
||||
|
||||
|
||||
from app.core import Config, TaskManager, Task, MainInfoBar
|
||||
from .Widget import StatefulItemCard
|
||||
from .Widget import StatefulItemCard, ComboBoxMessageBox
|
||||
|
||||
|
||||
class DispatchCenter(QWidget):
|
||||
@@ -89,7 +89,7 @@ class DispatchCenter(QWidget):
|
||||
|
||||
dispatch_box = DispatchBox(task.name, self)
|
||||
|
||||
dispatch_box.top_bar.button.clicked.connect(
|
||||
dispatch_box.top_bar.main_button.clicked.connect(
|
||||
lambda: TaskManager.stop_task(task.name)
|
||||
)
|
||||
|
||||
@@ -123,9 +123,10 @@ class DispatchCenter(QWidget):
|
||||
self.script_list["主调度台"].top_bar.Lable.show()
|
||||
self.script_list["主调度台"].top_bar.object.hide()
|
||||
self.script_list["主调度台"].top_bar.mode.hide()
|
||||
self.script_list["主调度台"].top_bar.button.clicked.disconnect()
|
||||
self.script_list["主调度台"].top_bar.button.setText("中止任务")
|
||||
self.script_list["主调度台"].top_bar.button.clicked.connect(
|
||||
self.script_list["主调度台"].top_bar.multi_button.show()
|
||||
self.script_list["主调度台"].top_bar.main_button.clicked.disconnect()
|
||||
self.script_list["主调度台"].top_bar.main_button.setText("中止任务")
|
||||
self.script_list["主调度台"].top_bar.main_button.clicked.connect(
|
||||
lambda: TaskManager.stop_task(task.name)
|
||||
)
|
||||
task.create_task_list.connect(
|
||||
@@ -153,10 +154,11 @@ class DispatchCenter(QWidget):
|
||||
self.script_list["主调度台"].top_bar.Lable.hide()
|
||||
self.script_list["主调度台"].top_bar.object.show()
|
||||
self.script_list["主调度台"].top_bar.mode.show()
|
||||
self.script_list["主调度台"].top_bar.button.clicked.disconnect()
|
||||
self.script_list["主调度台"].top_bar.button.setText("开始任务")
|
||||
self.script_list["主调度台"].top_bar.button.clicked.connect(
|
||||
self.script_list["主调度台"].top_bar.start_task
|
||||
self.script_list["主调度台"].top_bar.multi_button.hide()
|
||||
self.script_list["主调度台"].top_bar.main_button.clicked.disconnect()
|
||||
self.script_list["主调度台"].top_bar.main_button.setText("开始任务")
|
||||
self.script_list["主调度台"].top_bar.main_button.clicked.connect(
|
||||
self.script_list["主调度台"].top_bar.start_main_task
|
||||
)
|
||||
if len(logs) > 0:
|
||||
history = ""
|
||||
@@ -250,25 +252,29 @@ class DispatchBox(QWidget):
|
||||
self.mode = ComboBox()
|
||||
self.mode.setPlaceholderText("请选择调度模式")
|
||||
|
||||
self.button = PushButton("开始任务")
|
||||
self.button.clicked.connect(self.start_task)
|
||||
self.multi_button = PushButton("添加任务")
|
||||
self.multi_button.clicked.connect(self.start_multi_task)
|
||||
self.main_button = PushButton("开始任务")
|
||||
self.main_button.clicked.connect(self.start_main_task)
|
||||
self.multi_button.hide()
|
||||
|
||||
Layout.addWidget(self.Lable)
|
||||
Layout.addWidget(self.object)
|
||||
Layout.addWidget(self.mode)
|
||||
Layout.addStretch(1)
|
||||
Layout.addWidget(self.button)
|
||||
Layout.addWidget(self.multi_button)
|
||||
Layout.addWidget(self.main_button)
|
||||
|
||||
else:
|
||||
|
||||
self.Lable = SubtitleLabel(name, self)
|
||||
self.button = PushButton("中止任务")
|
||||
self.main_button = PushButton("中止任务")
|
||||
|
||||
Layout.addWidget(self.Lable)
|
||||
Layout.addStretch(1)
|
||||
Layout.addWidget(self.button)
|
||||
Layout.addWidget(self.main_button)
|
||||
|
||||
def start_task(self):
|
||||
def start_main_task(self):
|
||||
"""开始任务"""
|
||||
|
||||
if self.object.currentIndex() == -1:
|
||||
@@ -312,6 +318,74 @@ class DispatchBox(QWidget):
|
||||
{"Queue": {"Member_1": self.object.currentData()}},
|
||||
)
|
||||
|
||||
def start_multi_task(self):
|
||||
"""开始任务"""
|
||||
|
||||
# 获取所有可用的队列和实例
|
||||
text_list = []
|
||||
data_list = []
|
||||
for name, info in Config.queue_dict.items():
|
||||
if name in Config.running_list:
|
||||
continue
|
||||
text_list.append(
|
||||
"队列"
|
||||
if info["Config"].get(info["Config"].queueSet_Name) == ""
|
||||
else f"队列 - {info["Config"].get(info["Config"].queueSet_Name)}"
|
||||
)
|
||||
data_list.append(name)
|
||||
|
||||
for name, info in Config.member_dict.items():
|
||||
if name in Config.running_list:
|
||||
continue
|
||||
text_list.append(
|
||||
f"实例 - {info['Type']}"
|
||||
if info["Config"].get(info["Config"].MaaSet_Name) == ""
|
||||
else f"实例 - {info['Type']} - {info["Config"].get(info["Config"].MaaSet_Name)}"
|
||||
)
|
||||
data_list.append(name)
|
||||
|
||||
choice = ComboBoxMessageBox(
|
||||
self.window(),
|
||||
"选择一个对象以添加相应多开任务",
|
||||
["选择调度对象"],
|
||||
[text_list],
|
||||
[data_list],
|
||||
)
|
||||
|
||||
if choice.exec() and choice.input[0].currentIndex() != -1:
|
||||
|
||||
if choice.input[0].currentData() in Config.running_list:
|
||||
logger.warning(f"任务已存在:{choice.input[0].currentData()}")
|
||||
MainInfoBar.push_info_bar(
|
||||
"warning", "任务已存在", choice.input[0].currentData(), 5000
|
||||
)
|
||||
return None
|
||||
|
||||
if "调度队列" in choice.input[0].currentData():
|
||||
|
||||
logger.info(f"用户添加任务:{choice.input[0].currentData()}")
|
||||
TaskManager.add_task(
|
||||
"自动代理_新调度台",
|
||||
choice.input[0].currentData(),
|
||||
Config.queue_dict[choice.input[0].currentData()][
|
||||
"Config"
|
||||
].toDict(),
|
||||
)
|
||||
|
||||
elif "脚本" in choice.input[0].currentData():
|
||||
|
||||
if (
|
||||
Config.member_dict[choice.input[0].currentData()]["Type"]
|
||||
== "Maa"
|
||||
):
|
||||
|
||||
logger.info(f"用户添加任务:{choice.input[0].currentData()}")
|
||||
TaskManager.add_task(
|
||||
"自动代理_新调度台",
|
||||
f"自定义队列 - {choice.input[0].currentData()}",
|
||||
{"Queue": {"Member_1": choice.input[0].currentData()}},
|
||||
)
|
||||
|
||||
class DispatchInfoCard(HeaderCardWidget):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
|
||||
@@ -487,7 +487,7 @@ class FunctionSettingCard(HeaderCardWidget):
|
||||
icon=FluentIcon.PAGE_RIGHT,
|
||||
title="历史记录保留时间",
|
||||
content="选择历史记录的保留时间,超期自动清理",
|
||||
texts=["7 天", "15 天", "30 天", "60 天", "永久"],
|
||||
texts=["7 天", "15 天", "30 天", "60 天", "90 天", "半年", "一年", "永久"],
|
||||
qconfig=Config,
|
||||
configItem=Config.function_HistoryRetentionTime,
|
||||
parent=self,
|
||||
|
||||
@@ -1,8 +1,16 @@
|
||||
{
|
||||
"main_version": "4.3.4.6",
|
||||
"main_version": "4.3.4.7",
|
||||
"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- 公告样式优化",
|
||||
"version_info": {
|
||||
"4.3.4.7": {
|
||||
"新增功能": [
|
||||
"主调度台支持直接启动多开调度台"
|
||||
],
|
||||
"程序优化": [
|
||||
"历史记录保留时间选项扩展"
|
||||
]
|
||||
},
|
||||
"4.3.4.6": {
|
||||
"新增功能": [
|
||||
"历史记录添加`按周合并`、`按月合并`功能",
|
||||
|
||||
Reference in New Issue
Block a user