chore(core): 优化调度队列配置逻辑

This commit is contained in:
DLmaster361
2025-07-31 01:01:30 +08:00
parent 9f330e2245
commit 67c41ab3ee
9 changed files with 342 additions and 541 deletions

View File

@@ -276,78 +276,49 @@ class QueueConfig(LQConfig):
super().__init__() super().__init__()
self.queueSet_Name = ConfigItem("QueueSet", "Name", "") self.queueSet_Name = ConfigItem("QueueSet", "Name", "")
self.queueSet_Enabled = ConfigItem( self.queueSet_TimeEnabled = ConfigItem(
"QueueSet", "Enabled", False, BoolValidator() "QueueSet", "TimeEnabled", False, BoolValidator()
) )
self.queueSet_AfterAccomplish = OptionsConfigItem( self.queueSet_AfterAccomplish = OptionsConfigItem(
"QueueSet", "QueueSet",
"AfterAccomplish", "AfterAccomplish",
"NoAction", "NoAction",
OptionsValidator( OptionsValidator(
["NoAction", "KillSelf", "Sleep", "Hibernate", "Shutdown"] [
"NoAction",
"KillSelf",
"Sleep",
"Hibernate",
"Shutdown",
"ShutdownForce",
]
), ),
) )
self.time_TimeEnabled_0 = ConfigItem( self.config_item_dict: dict[str, Dict[str, ConfigItem]] = {
"Time", "TimeEnabled_0", False, BoolValidator() "Queue": {},
) "Time": {},
self.time_TimeSet_0 = ConfigItem("Time", "TimeSet_0", "00:00") }
self.time_TimeEnabled_1 = ConfigItem( for i in range(10):
"Time", "TimeEnabled_1", False, BoolValidator()
)
self.time_TimeSet_1 = ConfigItem("Time", "TimeSet_1", "00:00")
self.time_TimeEnabled_2 = ConfigItem( self.config_item_dict["Time"][f"Enabled_{i}"] = ConfigItem(
"Time", "TimeEnabled_2", False, BoolValidator() "Time", f"Enabled_{i}", False, BoolValidator()
) )
self.time_TimeSet_2 = ConfigItem("Time", "TimeSet_2", "00:00") self.config_item_dict["Time"][f"Set_{i}"] = ConfigItem(
"Time", f"Set_{i}", "00:00"
)
self.config_item_dict["Queue"][f"Script_{i}"] = OptionsConfigItem(
"Queue", f"Script_{i}", "禁用"
)
self.time_TimeEnabled_3 = ConfigItem( setattr(
"Time", "TimeEnabled_3", False, BoolValidator() self, f"Time_Enabled_{i}", self.config_item_dict["Time"][f"Enabled_{i}"]
) )
self.time_TimeSet_3 = ConfigItem("Time", "TimeSet_3", "00:00") setattr(self, f"Time_Set_{i}", self.config_item_dict["Time"][f"Set_{i}"])
setattr(
self.time_TimeEnabled_4 = ConfigItem( self, f"Queue_Script_{i}", self.config_item_dict["Queue"][f"Script_{i}"]
"Time", "TimeEnabled_4", False, BoolValidator() )
)
self.time_TimeSet_4 = ConfigItem("Time", "TimeSet_4", "00:00")
self.time_TimeEnabled_5 = ConfigItem(
"Time", "TimeEnabled_5", False, BoolValidator()
)
self.time_TimeSet_5 = ConfigItem("Time", "TimeSet_5", "00:00")
self.time_TimeEnabled_6 = ConfigItem(
"Time", "TimeEnabled_6", False, BoolValidator()
)
self.time_TimeSet_6 = ConfigItem("Time", "TimeSet_6", "00:00")
self.time_TimeEnabled_7 = ConfigItem(
"Time", "TimeEnabled_7", False, BoolValidator()
)
self.time_TimeSet_7 = ConfigItem("Time", "TimeSet_7", "00:00")
self.time_TimeEnabled_8 = ConfigItem(
"Time", "TimeEnabled_8", False, BoolValidator()
)
self.time_TimeSet_8 = ConfigItem("Time", "TimeSet_8", "00:00")
self.time_TimeEnabled_9 = ConfigItem(
"Time", "TimeEnabled_9", False, BoolValidator()
)
self.time_TimeSet_9 = ConfigItem("Time", "TimeSet_9", "00:00")
self.queue_Member_1 = OptionsConfigItem("Queue", "Member_1", "禁用")
self.queue_Member_2 = OptionsConfigItem("Queue", "Member_2", "禁用")
self.queue_Member_3 = OptionsConfigItem("Queue", "Member_3", "禁用")
self.queue_Member_4 = OptionsConfigItem("Queue", "Member_4", "禁用")
self.queue_Member_5 = OptionsConfigItem("Queue", "Member_5", "禁用")
self.queue_Member_6 = OptionsConfigItem("Queue", "Member_6", "禁用")
self.queue_Member_7 = OptionsConfigItem("Queue", "Member_7", "禁用")
self.queue_Member_8 = OptionsConfigItem("Queue", "Member_8", "禁用")
self.queue_Member_9 = OptionsConfigItem("Queue", "Member_9", "禁用")
self.queue_Member_10 = OptionsConfigItem("Queue", "Member_10", "禁用")
self.Data_LastProxyTime = ConfigItem( self.Data_LastProxyTime = ConfigItem(
"Data", "LastProxyTime", "2000-01-01 00:00:00" "Data", "LastProxyTime", "2000-01-01 00:00:00"
@@ -713,7 +684,7 @@ class GeneralSubConfig(LQConfig):
class AppConfig(GlobalConfig): class AppConfig(GlobalConfig):
VERSION = "4.4.1.4" VERSION = "4.4.1.5"
stage_refreshed = Signal() stage_refreshed = Signal()
PASSWORD_refreshed = Signal() PASSWORD_refreshed = Signal()
@@ -750,7 +721,9 @@ class AppConfig(GlobalConfig):
self.if_ignore_silence = False self.if_ignore_silence = False
self.if_database_opened = False self.if_database_opened = False
self.search_member() self.initialize()
self.search_script()
self.search_queue() self.search_queue()
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
@@ -766,12 +739,15 @@ class AppConfig(GlobalConfig):
parser.add_argument( parser.add_argument(
"--config", "--config",
nargs="+", nargs="+",
choices=list(self.member_dict.keys()) + list(self.queue_dict.keys()), choices=list(self.script_dict.keys()) + list(self.queue_dict.keys()),
help="指定需要运行哪些配置项", help="指定需要运行哪些配置项",
) )
self.args = parser.parse_args() self.args = parser.parse_args()
self.initialize() logger.info(
f"运行模式: {'图形化界面' if self.args.mode == 'gui' else '命令行界面'},配置项: {self.args.config if self.args.config else '启动时运行的调度队列'}",
module="配置管理",
)
def initialize(self) -> None: def initialize(self) -> None:
"""初始化程序配置管理模块""" """初始化程序配置管理模块"""
@@ -818,14 +794,8 @@ class AppConfig(GlobalConfig):
logger.info("AUTO_MAA 主程序", module="配置管理") logger.info("AUTO_MAA 主程序", module="配置管理")
logger.info(f"版本号: v{self.VERSION}", module="配置管理") logger.info(f"版本号: v{self.VERSION}", module="配置管理")
logger.info(f"根目录: {self.app_path}", module="配置管理") logger.info(f"根目录: {self.app_path}", module="配置管理")
logger.info(
f"运行模式: {'图形化界面' if self.args.mode == 'gui' else '命令行界面'}",
module="配置管理",
)
logger.info("===================================", module="配置管理") logger.info("===================================", module="配置管理")
logger.info("日志记录器初始化完成", module="配置管理")
def check_data(self) -> None: def check_data(self) -> None:
"""检查用户数据文件并处理数据文件版本更新""" """检查用户数据文件并处理数据文件版本更新"""
@@ -834,7 +804,7 @@ class AppConfig(GlobalConfig):
db = sqlite3.connect(self.database_path) db = sqlite3.connect(self.database_path)
cur = db.cursor() cur = db.cursor()
cur.execute("CREATE TABLE version(v text)") cur.execute("CREATE TABLE version(v text)")
cur.execute("INSERT INTO version VALUES(?)", ("v1.7",)) cur.execute("INSERT INTO version VALUES(?)", ("v1.8",))
db.commit() db.commit()
cur.close() cur.close()
db.close() db.close()
@@ -845,7 +815,7 @@ class AppConfig(GlobalConfig):
cur.execute("SELECT * FROM version WHERE True") cur.execute("SELECT * FROM version WHERE True")
version = cur.fetchall() version = cur.fetchall()
if version[0][0] != "v1.7": if version[0][0] != "v1.8":
logger.info("数据文件版本更新开始", module="配置管理") logger.info("数据文件版本更新开始", module="配置管理")
if_streaming = False if_streaming = False
# v1.4-->v1.5 # v1.4-->v1.5
@@ -975,7 +945,6 @@ class AppConfig(GlobalConfig):
cur.execute("DELETE FROM version WHERE v = ?", ("v1.4",)) cur.execute("DELETE FROM version WHERE v = ?", ("v1.4",))
cur.execute("INSERT INTO version VALUES(?)", ("v1.5",)) cur.execute("INSERT INTO version VALUES(?)", ("v1.5",))
db.commit() db.commit()
# v1.5-->v1.6 # v1.5-->v1.6
if version[0][0] == "v1.5" or if_streaming: if version[0][0] == "v1.5" or if_streaming:
logger.info("数据文件版本更新v1.5-->v1.6", module="配置管理") logger.info("数据文件版本更新v1.5-->v1.6", module="配置管理")
@@ -1077,6 +1046,39 @@ class AppConfig(GlobalConfig):
cur.execute("DELETE FROM version WHERE v = ?", ("v1.6",)) cur.execute("DELETE FROM version WHERE v = ?", ("v1.6",))
cur.execute("INSERT INTO version VALUES(?)", ("v1.7",)) cur.execute("INSERT INTO version VALUES(?)", ("v1.7",))
db.commit() db.commit()
# v1.7-->v1.8
if version[0][0] == "v1.7" or if_streaming:
logger.info("数据文件版本更新v1.7-->v1.8", module="配置管理")
if_streaming = True
if (self.app_path / "config/QueueConfig").exists():
for QueueConfig in (self.app_path / "config/QueueConfig").glob(
"*.json"
):
with QueueConfig.open(encoding="utf-8") as f:
queue_config = json.load(f)
queue_config["QueueSet"]["TimeEnabled"] = queue_config[
"QueueSet"
]["Enabled"]
for i in range(10):
queue_config["Queue"][f"Script_{i}"] = queue_config[
"Queue"
][f"Member_{i + 1}"]
queue_config["Time"][f"Enabled_{i}"] = queue_config["Time"][
f"TimeEnabled_{i}"
]
queue_config["Time"][f"Set_{i}"] = queue_config["Time"][
f"TimeSet_{i}"
]
with QueueConfig.open("w", encoding="utf-8") as f:
json.dump(queue_config, f, ensure_ascii=False, indent=4)
cur.execute("DELETE FROM version WHERE v = ?", ("v1.7",))
cur.execute("INSERT INTO version VALUES(?)", ("v1.8",))
db.commit()
cur.close() cur.close()
db.close() db.close()
@@ -1176,11 +1178,11 @@ class AppConfig(GlobalConfig):
dt = dt - timedelta(days=1) dt = dt - timedelta(days=1)
return dt.date() return dt.date()
def search_member(self) -> None: def search_script(self) -> None:
"""更新脚本实例配置信息""" """更新脚本实例配置信息"""
logger.info("开始搜索并读入脚本实例配置", module="配置管理") logger.info("开始搜索并读入脚本实例配置", module="配置管理")
self.member_dict: Dict[ self.script_dict: Dict[
str, str,
Dict[ Dict[
str, str,
@@ -1200,7 +1202,7 @@ class AppConfig(GlobalConfig):
maa_config.load(maa_dir / "config.json", maa_config) maa_config.load(maa_dir / "config.json", maa_config)
maa_config.save() maa_config.save()
self.member_dict[maa_dir.name] = { self.script_dict[maa_dir.name] = {
"Type": "Maa", "Type": "Maa",
"Path": maa_dir, "Path": maa_dir,
"Config": maa_config, "Config": maa_config,
@@ -1214,19 +1216,19 @@ class AppConfig(GlobalConfig):
general_config.load(general_dir / "config.json", general_config) general_config.load(general_dir / "config.json", general_config)
general_config.save() general_config.save()
self.member_dict[general_dir.name] = { self.script_dict[general_dir.name] = {
"Type": "General", "Type": "General",
"Path": general_dir, "Path": general_dir,
"Config": general_config, "Config": general_config,
"SubData": None, "SubData": None,
} }
self.member_dict = dict( self.script_dict = dict(
sorted(self.member_dict.items(), key=lambda x: int(x[0][3:])) sorted(self.script_dict.items(), key=lambda x: int(x[0][3:]))
) )
logger.success( logger.success(
f"脚本实例配置搜索完成,共找到 {len(self.member_dict)} 个实例", f"脚本实例配置搜索完成,共找到 {len(self.script_dict)} 个实例",
module="配置管理", module="配置管理",
) )
@@ -1241,7 +1243,7 @@ class AppConfig(GlobalConfig):
logger.info(f"开始搜索并读入 MAA 脚本实例 {name} 的用户信息", module="配置管理") logger.info(f"开始搜索并读入 MAA 脚本实例 {name} 的用户信息", module="配置管理")
user_dict: Dict[str, Dict[str, Union[Path, MaaUserConfig]]] = {} user_dict: Dict[str, Dict[str, Union[Path, MaaUserConfig]]] = {}
for user_dir in (Config.member_dict[name]["Path"] / "UserData").iterdir(): for user_dir in (Config.script_dict[name]["Path"] / "UserData").iterdir():
if user_dir.is_dir(): if user_dir.is_dir():
user_config = MaaUserConfig() user_config = MaaUserConfig()
@@ -1250,7 +1252,7 @@ class AppConfig(GlobalConfig):
user_dict[user_dir.stem] = {"Path": user_dir, "Config": user_config} user_dict[user_dir.stem] = {"Path": user_dir, "Config": user_config}
self.member_dict[name]["UserData"] = dict( self.script_dict[name]["UserData"] = dict(
sorted(user_dict.items(), key=lambda x: int(x[0][3:])) sorted(user_dict.items(), key=lambda x: int(x[0][3:]))
) )
@@ -1272,7 +1274,7 @@ class AppConfig(GlobalConfig):
) )
user_dict: Dict[str, Dict[str, Union[Path, GeneralSubConfig]]] = {} user_dict: Dict[str, Dict[str, Union[Path, GeneralSubConfig]]] = {}
for sub_dir in (Config.member_dict[name]["Path"] / "SubData").iterdir(): for sub_dir in (Config.script_dict[name]["Path"] / "SubData").iterdir():
if sub_dir.is_dir(): if sub_dir.is_dir():
sub_config = GeneralSubConfig() sub_config = GeneralSubConfig()
@@ -1281,7 +1283,7 @@ class AppConfig(GlobalConfig):
user_dict[sub_dir.stem] = {"Path": sub_dir, "Config": sub_config} user_dict[sub_dir.stem] = {"Path": sub_dir, "Config": sub_config}
self.member_dict[name]["SubData"] = dict( self.script_dict[name]["SubData"] = dict(
sorted(user_dict.items(), key=lambda x: int(x[0][3:])) sorted(user_dict.items(), key=lambda x: int(x[0][3:]))
) )
@@ -1359,26 +1361,17 @@ class AppConfig(GlobalConfig):
for queue in self.queue_dict.values(): for queue in self.queue_dict.values():
if queue["Config"].get(queue["Config"].queue_Member_1) == old: for i in range(10):
queue["Config"].set(queue["Config"].queue_Member_1, new)
if queue["Config"].get(queue["Config"].queue_Member_2) == old: if (
queue["Config"].set(queue["Config"].queue_Member_2, new) queue["Config"].get(
if queue["Config"].get(queue["Config"].queue_Member_3) == old: queue["Config"].config_item_dict["Queue"][f"Script_{i}"]
queue["Config"].set(queue["Config"].queue_Member_3, new) )
if queue["Config"].get(queue["Config"].queue_Member_4) == old: == old
queue["Config"].set(queue["Config"].queue_Member_4, new) ):
if queue["Config"].get(queue["Config"].queue_Member_5) == old: queue["Config"].set(
queue["Config"].set(queue["Config"].queue_Member_5, new) queue["Config"].config_item_dict["Queue"][f"Script_{i}"], new
if queue["Config"].get(queue["Config"].queue_Member_6) == old: )
queue["Config"].set(queue["Config"].queue_Member_6, new)
if queue["Config"].get(queue["Config"].queue_Member_7) == old:
queue["Config"].set(queue["Config"].queue_Member_7, new)
if queue["Config"].get(queue["Config"].queue_Member_8) == old:
queue["Config"].set(queue["Config"].queue_Member_8, new)
if queue["Config"].get(queue["Config"].queue_Member_9) == old:
queue["Config"].set(queue["Config"].queue_Member_9, new)
if queue["Config"].get(queue["Config"].queue_Member_10) == old:
queue["Config"].set(queue["Config"].queue_Member_10, new)
logger.success(f"调度队列参数修改完成:{old} -> {new}", module="配置管理") logger.success(f"调度队列参数修改完成:{old} -> {new}", module="配置管理")
@@ -1392,9 +1385,9 @@ class AppConfig(GlobalConfig):
logger.info(f"开始修改计划表参数:{old} -> {new}", module="配置管理") logger.info(f"开始修改计划表参数:{old} -> {new}", module="配置管理")
for member in self.member_dict.values(): for script in self.script_dict.values():
for user in member["UserData"].values(): for user in script["UserData"].values():
if user["Config"].get(user["Config"].Info_StageMode) == old: if user["Config"].get(user["Config"].Info_StageMode) == old:
user["Config"].set(user["Config"].Info_StageMode, new) user["Config"].set(user["Config"].Info_StageMode, new)
@@ -1417,7 +1410,7 @@ class AppConfig(GlobalConfig):
for user, info in user_data.items(): for user, info in user_data.items():
user_config = self.member_dict[name]["UserData"][user]["Config"] user_config = self.script_dict[name]["UserData"][user]["Config"]
user_config.set( user_config.set(
user_config.Info_RemainedDay, info["Config"]["Info"]["RemainedDay"] user_config.Info_RemainedDay, info["Config"]["Info"]["RemainedDay"]
@@ -1464,7 +1457,7 @@ class AppConfig(GlobalConfig):
for sub, info in sub_data.items(): for sub, info in sub_data.items():
sub_config = self.member_dict[name]["SubData"][sub]["Config"] sub_config = self.script_dict[name]["SubData"][sub]["Config"]
sub_config.set( sub_config.set(
sub_config.Info_RemainedDay, info["Config"]["Info"]["RemainedDay"] sub_config.Info_RemainedDay, info["Config"]["Info"]["RemainedDay"]

View File

@@ -81,7 +81,7 @@ class Task(QThread):
self.task = MaaManager( self.task = MaaManager(
self.mode, self.mode,
Config.member_dict[self.name], Config.script_dict[self.name],
(None if "全局" in self.mode else self.info["SetMaaInfo"]["Path"]), (None if "全局" in self.mode else self.info["SetMaaInfo"]["Path"]),
) )
self.task.check_maa_version.connect(self.check_maa_version.emit) self.task.check_maa_version.connect(self.check_maa_version.emit)
@@ -104,7 +104,7 @@ class Task(QThread):
self.task = GeneralManager( self.task = GeneralManager(
self.mode, self.mode,
Config.member_dict[self.name], Config.script_dict[self.name],
self.info["SetSubInfo"]["Path"], self.info["SetSubInfo"]["Path"],
) )
self.task.push_info_bar.connect(self.push_info_bar.emit) self.task.push_info_bar.connect(self.push_info_bar.emit)
@@ -126,8 +126,8 @@ class Task(QThread):
[ [
( (
value value
if Config.member_dict[value]["Config"].get_name() == "" if Config.script_dict[value]["Config"].get_name() == ""
else f"{value} - {Config.member_dict[value]["Config"].get_name()}" else f"{value} - {Config.script_dict[value]["Config"].get_name()}"
), ),
"等待", "等待",
value, value,
@@ -165,11 +165,11 @@ class Task(QThread):
logger.info(f"任务开始:{task[0]}", module=f"业务 {self.name}") logger.info(f"任务开始:{task[0]}", module=f"业务 {self.name}")
self.push_info_bar.emit("info", "任务开始", task[0], 3000) self.push_info_bar.emit("info", "任务开始", task[0], 3000)
if Config.member_dict[task[2]]["Type"] == "Maa": if Config.script_dict[task[2]]["Type"] == "Maa":
self.task = MaaManager( self.task = MaaManager(
self.mode[0:4], self.mode[0:4],
Config.member_dict[task[2]], Config.script_dict[task[2]],
) )
self.task.check_maa_version.connect(self.check_maa_version.emit) self.task.check_maa_version.connect(self.check_maa_version.emit)
@@ -186,11 +186,11 @@ class Task(QThread):
lambda log: self.task_accomplish(task[2], log) lambda log: self.task_accomplish(task[2], log)
) )
elif Config.member_dict[task[2]]["Type"] == "General": elif Config.script_dict[task[2]]["Type"] == "General":
self.task = GeneralManager( self.task = GeneralManager(
self.mode[0:4], self.mode[0:4],
Config.member_dict[task[2]], Config.script_dict[task[2]],
) )
self.task.question.connect(self.question.emit) self.task.question.connect(self.question.emit)

View File

@@ -79,15 +79,15 @@ class _MainTimer(QObject):
for name, info in Config.queue_dict.items(): for name, info in Config.queue_dict.items():
if not info["Config"].get(info["Config"].queueSet_Enabled): if not info["Config"].get(info["Config"].queueSet_TimeEnabled):
continue continue
data = info["Config"].toDict() data = info["Config"].toDict()
time_set = [ time_set = [
data["Time"][f"TimeSet_{_}"] data["Time"][f"Set_{_}"]
for _ in range(10) for _ in range(10)
if data["Time"][f"TimeEnabled_{_}"] if data["Time"][f"Enabled_{_}"]
] ]
# 按时间调起代理任务 # 按时间调起代理任务
curtime = datetime.now().strftime("%Y-%m-%d %H:%M") curtime = datetime.now().strftime("%Y-%m-%d %H:%M")

View File

@@ -167,22 +167,22 @@ class CryptoHandler:
:type PASSWORD_new: str :type PASSWORD_new: str
""" """
for member in Config.member_dict.values(): for script in Config.script_dict.values():
# 使用旧管理密钥解密 # 使用旧管理密钥解密
if member["Type"] == "Maa": if script["Type"] == "Maa":
for user in member["UserData"].values(): for user in script["UserData"].values():
user["Password"] = self.AUTO_decryptor( user["Password"] = self.AUTO_decryptor(
user["Config"].get(user["Config"].Info_Password), PASSWORD_old user["Config"].get(user["Config"].Info_Password), PASSWORD_old
) )
self.get_PASSWORD(PASSWORD_new) self.get_PASSWORD(PASSWORD_new)
for member in Config.member_dict.values(): for script in Config.script_dict.values():
# 使用新管理密钥重新加密 # 使用新管理密钥重新加密
if member["Type"] == "Maa": if script["Type"] == "Maa":
for user in member["UserData"].values(): for user in script["UserData"].values():
user["Config"].set( user["Config"].set(
user["Config"].Info_Password, user["Config"].Info_Password,
self.AUTO_encryptor(user["Password"]), self.AUTO_encryptor(user["Password"]),
@@ -200,10 +200,10 @@ class CryptoHandler:
self.get_PASSWORD(PASSWORD_new) self.get_PASSWORD(PASSWORD_new)
for member in Config.member_dict.values(): for script in Config.script_dict.values():
if member["Type"] == "Maa": if script["Type"] == "Maa":
for user in member["UserData"].values(): for user in script["UserData"].values():
user["Config"].set( user["Config"].set(
user["Config"].Info_Password, self.AUTO_encryptor("数据已重置") user["Config"].Info_Password, self.AUTO_encryptor("数据已重置")
) )

View File

@@ -246,7 +246,7 @@ class DispatchCenter(QWidget):
userData=name, userData=name,
) )
for name, info in Config.member_dict.items(): for name, info in Config.script_dict.items():
self.script_list["主调度台"].top_bar.object.addItem( self.script_list["主调度台"].top_bar.object.addItem(
( (
f"实例 - {info['Type']}" f"实例 - {info['Type']}"
@@ -258,7 +258,7 @@ class DispatchCenter(QWidget):
if len(Config.queue_dict) == 1: if len(Config.queue_dict) == 1:
self.script_list["主调度台"].top_bar.object.setCurrentIndex(0) self.script_list["主调度台"].top_bar.object.setCurrentIndex(0)
elif len(Config.member_dict) == 1: elif len(Config.script_dict) == 1:
self.script_list["主调度台"].top_bar.object.setCurrentIndex( self.script_list["主调度台"].top_bar.object.setCurrentIndex(
len(Config.queue_dict) len(Config.queue_dict)
) )
@@ -278,7 +278,7 @@ class DispatchCenter(QWidget):
"Sleep": "睡眠", "Sleep": "睡眠",
"Hibernate": "休眠", "Hibernate": "休眠",
"Shutdown": "关机", "Shutdown": "关机",
"ShutdownForce": "关机(强制)" "ShutdownForce": "关机(强制)",
} }
self.power_combox.currentIndexChanged.disconnect() self.power_combox.currentIndexChanged.disconnect()
self.power_combox.setCurrentText(mode_book[Config.power_sign]) self.power_combox.setCurrentText(mode_book[Config.power_sign])
@@ -317,7 +317,7 @@ class DispatchCenter(QWidget):
) )
data_list.append(name) data_list.append(name)
for name, info in Config.member_dict.items(): for name, info in Config.script_dict.items():
if name in Config.running_list: if name in Config.running_list:
continue continue
text_list.append( text_list.append(
@@ -365,7 +365,7 @@ class DispatchCenter(QWidget):
TaskManager.add_task( TaskManager.add_task(
"自动代理_新调度台", "自动代理_新调度台",
f"自定义队列 - {choice.input[0].currentData()}", f"自定义队列 - {choice.input[0].currentData()}",
{"Queue": {"Member_1": choice.input[0].currentData()}}, {"Queue": {"Script_0": choice.input[0].currentData()}},
) )
class DispatchBox(QWidget): class DispatchBox(QWidget):
@@ -455,7 +455,7 @@ class DispatchCenter(QWidget):
if ( if (
"脚本" in self.object.currentData() "脚本" in self.object.currentData()
and Config.member_dict[self.object.currentData()]["Type"] and Config.script_dict[self.object.currentData()]["Type"]
== "General" == "General"
and self.mode.currentData() == "人工排查" and self.mode.currentData() == "人工排查"
): ):
@@ -484,7 +484,7 @@ class DispatchCenter(QWidget):
TaskManager.add_task( TaskManager.add_task(
f"{self.mode.currentText()}_主调度台", f"{self.mode.currentText()}_主调度台",
"自定义队列", "自定义队列",
{"Queue": {"Member_1": self.object.currentData()}}, {"Queue": {"Script_0": self.object.currentData()}},
) )
class DispatchInfoCard(HeaderCardWidget): class DispatchInfoCard(HeaderCardWidget):

View File

@@ -40,14 +40,12 @@ from qfluentwidgets import (
) )
from PySide6.QtGui import QIcon, QCloseEvent from PySide6.QtGui import QIcon, QCloseEvent
from PySide6.QtCore import QTimer from PySide6.QtCore import QTimer
from datetime import datetime, timedelta
import shutil
import darkdetect import darkdetect
from app.core import Config, logger, TaskManager, MainTimer, MainInfoBar, SoundPlayer from app.core import Config, logger, TaskManager, MainTimer, MainInfoBar, SoundPlayer
from app.services import Notify, Crypto, System from app.services import Notify, Crypto, System
from .home import Home from .home import Home
from .member_manager import MemberManager from .script_manager import ScriptManager
from .plan_manager import PlanManager from .plan_manager import PlanManager
from .queue_manager import QueueManager from .queue_manager import QueueManager
from .dispatch_center import DispatchCenter from .dispatch_center import DispatchCenter
@@ -84,7 +82,7 @@ class AUTO_MAA(MSFluentWindow):
logger.info("正在创建各子窗口", module="主窗口") logger.info("正在创建各子窗口", module="主窗口")
self.home = Home(self) self.home = Home(self)
self.plan_manager = PlanManager(self) self.plan_manager = PlanManager(self)
self.member_manager = MemberManager(self) self.script_manager = ScriptManager(self)
self.queue_manager = QueueManager(self) self.queue_manager = QueueManager(self)
self.dispatch_center = DispatchCenter(self) self.dispatch_center = DispatchCenter(self)
self.history = History(self) self.history = History(self)
@@ -98,7 +96,7 @@ class AUTO_MAA(MSFluentWindow):
NavigationItemPosition.TOP, NavigationItemPosition.TOP,
) )
self.addSubInterface( self.addSubInterface(
self.member_manager, self.script_manager,
FluentIcon.ROBOT, FluentIcon.ROBOT,
"脚本管理", "脚本管理",
FluentIcon.ROBOT, FluentIcon.ROBOT,
@@ -190,7 +188,7 @@ class AUTO_MAA(MSFluentWindow):
self.set_min_method() self.set_min_method()
# 绑定各组件信号 # 绑定各组件信号
Config.sub_info_changed.connect(self.member_manager.refresh_dashboard) Config.sub_info_changed.connect(self.script_manager.refresh_dashboard)
Config.power_sign_changed.connect(self.dispatch_center.update_power_sign) Config.power_sign_changed.connect(self.dispatch_center.update_power_sign)
TaskManager.create_gui.connect(self.dispatch_center.add_board) TaskManager.create_gui.connect(self.dispatch_center.add_board)
TaskManager.connect_gui.connect(self.dispatch_center.connect_main_board) TaskManager.connect_gui.connect(self.dispatch_center.connect_main_board)
@@ -408,16 +406,16 @@ class AUTO_MAA(MSFluentWindow):
Config.queue_dict["调度队列_1"]["Config"].toDict(), Config.queue_dict["调度队列_1"]["Config"].toDict(),
) )
for config in [_ for _ in Config.args.config if _ in Config.member_dict]: for config in [_ for _ in Config.args.config if _ in Config.script_dict]:
TaskManager.add_task( TaskManager.add_task(
"自动代理_新调度台", "自动代理_新调度台",
"自定义队列", "自定义队列",
{"Queue": {"Member_1": config}}, {"Queue": {"Script_0": config}},
) )
if not any( if not any(
_ in (list(Config.member_dict.keys()) + list(Config.queue_dict.keys())) _ in (list(Config.script_dict.keys()) + list(Config.queue_dict.keys()))
for _ in Config.args.config for _ in Config.args.config
): ):
@@ -449,11 +447,11 @@ class AUTO_MAA(MSFluentWindow):
Config.queue_dict["调度队列_1"]["Config"].toDict(), Config.queue_dict["调度队列_1"]["Config"].toDict(),
) )
elif "脚本_1" in Config.member_dict: elif "脚本_1" in Config.script_dict:
logger.info("自动添加任务脚本_1", module="主窗口") logger.info("自动添加任务脚本_1", module="主窗口")
TaskManager.add_task( TaskManager.add_task(
"自动代理_主调度台", "自定义队列", {"Queue": {"Member_1": "脚本_1"}} "自动代理_主调度台", "自定义队列", {"Queue": {"Script_0": "脚本_1"}}
) )
else: else:
@@ -471,9 +469,9 @@ class AUTO_MAA(MSFluentWindow):
"""切换界面时任务""" """切换界面时任务"""
if index == 1: if index == 1:
self.member_manager.reload_plan_name() self.script_manager.reload_plan_name()
elif index == 3: elif index == 3:
self.queue_manager.reload_member_name() self.queue_manager.reload_script_name()
elif index == 4: elif index == 4:
self.dispatch_center.pivot.setCurrentItem("主调度台") self.dispatch_center.pivot.setCurrentItem("主调度台")
self.dispatch_center.update_top_bar() self.dispatch_center.update_top_bar()

View File

@@ -39,7 +39,7 @@ from qfluentwidgets import (
HeaderCardWidget, HeaderCardWidget,
CommandBar, CommandBar,
) )
from typing import List from typing import List, Dict
from app.core import QueueConfig, Config, MainInfoBar, SoundPlayer, logger from app.core import QueueConfig, Config, MainInfoBar, SoundPlayer, logger
from .Widget import ( from .Widget import (
@@ -251,12 +251,12 @@ class QueueManager(QWidget):
logger.success(f"{name} 右移成功", module="队列管理") logger.success(f"{name} 右移成功", module="队列管理")
MainInfoBar.push_info_bar("success", "操作成功", f"右移 {name}", 3000) MainInfoBar.push_info_bar("success", "操作成功", f"右移 {name}", 3000)
def reload_member_name(self): def reload_script_name(self):
"""刷新调度队列成员""" """刷新调度队列脚本成员名称"""
# 获取成员列表 # 获取脚本成员列表
member_list = [ script_list = [
["禁用"] + [_ for _ in Config.member_dict.keys()], ["禁用"] + [_ for _ in Config.script_dict.keys()],
["未启用"] ["未启用"]
+ [ + [
( (
@@ -264,41 +264,12 @@ class QueueManager(QWidget):
if v["Config"].get_name() == "" if v["Config"].get_name() == ""
else f"{k} - {v["Config"].get_name()}" else f"{k} - {v["Config"].get_name()}"
) )
for k, v in Config.member_dict.items() for k, v in Config.script_dict.items()
], ],
] ]
for script in self.queue_manager.script_list: for script in self.queue_manager.script_list:
for card in script.task.card_dict.values():
script.task.card_Member_1.reLoadOptions( card.reLoadOptions(value=script_list[0], texts=script_list[1])
value=member_list[0], texts=member_list[1]
)
script.task.card_Member_2.reLoadOptions(
value=member_list[0], texts=member_list[1]
)
script.task.card_Member_3.reLoadOptions(
value=member_list[0], texts=member_list[1]
)
script.task.card_Member_4.reLoadOptions(
value=member_list[0], texts=member_list[1]
)
script.task.card_Member_5.reLoadOptions(
value=member_list[0], texts=member_list[1]
)
script.task.card_Member_6.reLoadOptions(
value=member_list[0], texts=member_list[1]
)
script.task.card_Member_7.reLoadOptions(
value=member_list[0], texts=member_list[1]
)
script.task.card_Member_8.reLoadOptions(
value=member_list[0], texts=member_list[1]
)
script.task.card_Member_9.reLoadOptions(
value=member_list[0], texts=member_list[1]
)
script.task.card_Member_10.reLoadOptions(
value=member_list[0], texts=member_list[1]
)
class QueueSettingBox(QWidget): class QueueSettingBox(QWidget):
@@ -432,11 +403,11 @@ class QueueManager(QWidget):
parent=self, parent=self,
) )
self.card_Enable = SwitchSettingCard( self.card_Enable = SwitchSettingCard(
icon=FluentIcon.HOME, icon=FluentIcon.CHECKBOX,
title="状态", title="定时运行状态",
content="调度队列状态,仅启用时会执行定时任务", content="调度队列定时运行状态,仅启用时会执行定时任务",
qconfig=self.config, qconfig=self.config,
configItem=self.config.queueSet_Enabled, configItem=self.config.queueSet_TimeEnabled,
parent=self, parent=self,
) )
self.card_AfterAccomplish = ComboBoxSettingCard( self.card_AfterAccomplish = ComboBoxSettingCard(
@@ -449,6 +420,7 @@ class QueueManager(QWidget):
"睡眠win系统需禁用休眠", "睡眠win系统需禁用休眠",
"休眠", "休眠",
"关机", "关机",
"关机(强制)",
], ],
qconfig=self.config, qconfig=self.config,
configItem=self.config.queueSet_AfterAccomplish, configItem=self.config.queueSet_AfterAccomplish,
@@ -476,107 +448,29 @@ class QueueManager(QWidget):
Layout_2 = QVBoxLayout(widget_2) Layout_2 = QVBoxLayout(widget_2)
Layout = QHBoxLayout() Layout = QHBoxLayout()
self.card_Time_0 = TimeEditSettingCard( self.card_dict: Dict[str, TimeEditSettingCard] = {}
icon=FluentIcon.STOP_WATCH,
title="定时 1", for i in range(10):
content=None,
qconfig=self.config, self.card_dict[f"Time_{i}"] = TimeEditSettingCard(
configItem_bool=self.config.time_TimeEnabled_0, icon=FluentIcon.STOP_WATCH,
configItem_time=self.config.time_TimeSet_0, title=f"定时 {i + 1}",
parent=self, content=None,
) qconfig=self.config,
self.card_Time_1 = TimeEditSettingCard( configItem_bool=self.config.config_item_dict["Time"][
icon=FluentIcon.STOP_WATCH, f"Enabled_{i}"
title="定时 2", ],
content=None, configItem_time=self.config.config_item_dict["Time"][
qconfig=self.config, f"Set_{i}"
configItem_bool=self.config.time_TimeEnabled_1, ],
configItem_time=self.config.time_TimeSet_1, parent=self,
parent=self, )
)
self.card_Time_2 = TimeEditSettingCard( if i < 5:
icon=FluentIcon.STOP_WATCH, Layout_1.addWidget(self.card_dict[f"Time_{i}"])
title="定时 3", else:
content=None, Layout_2.addWidget(self.card_dict[f"Time_{i}"])
qconfig=self.config,
configItem_bool=self.config.time_TimeEnabled_2,
configItem_time=self.config.time_TimeSet_2,
parent=self,
)
self.card_Time_3 = TimeEditSettingCard(
icon=FluentIcon.STOP_WATCH,
title="定时 4",
content=None,
qconfig=self.config,
configItem_bool=self.config.time_TimeEnabled_3,
configItem_time=self.config.time_TimeSet_3,
parent=self,
)
self.card_Time_4 = TimeEditSettingCard(
icon=FluentIcon.STOP_WATCH,
title="定时 5",
content=None,
qconfig=self.config,
configItem_bool=self.config.time_TimeEnabled_4,
configItem_time=self.config.time_TimeSet_4,
parent=self,
)
self.card_Time_5 = TimeEditSettingCard(
icon=FluentIcon.STOP_WATCH,
title="定时 6",
content=None,
qconfig=self.config,
configItem_bool=self.config.time_TimeEnabled_5,
configItem_time=self.config.time_TimeSet_5,
parent=self,
)
self.card_Time_6 = TimeEditSettingCard(
icon=FluentIcon.STOP_WATCH,
title="定时 7",
content=None,
qconfig=self.config,
configItem_bool=self.config.time_TimeEnabled_6,
configItem_time=self.config.time_TimeSet_6,
parent=self,
)
self.card_Time_7 = TimeEditSettingCard(
icon=FluentIcon.STOP_WATCH,
title="定时 8",
content=None,
qconfig=self.config,
configItem_bool=self.config.time_TimeEnabled_7,
configItem_time=self.config.time_TimeSet_7,
parent=self,
)
self.card_Time_8 = TimeEditSettingCard(
icon=FluentIcon.STOP_WATCH,
title="定时 9",
content=None,
qconfig=self.config,
configItem_bool=self.config.time_TimeEnabled_8,
configItem_time=self.config.time_TimeSet_8,
parent=self,
)
self.card_Time_9 = TimeEditSettingCard(
icon=FluentIcon.STOP_WATCH,
title="定时 10",
content=None,
qconfig=self.config,
configItem_bool=self.config.time_TimeEnabled_9,
configItem_time=self.config.time_TimeSet_9,
parent=self,
)
Layout_1.addWidget(self.card_Time_0)
Layout_1.addWidget(self.card_Time_1)
Layout_1.addWidget(self.card_Time_2)
Layout_1.addWidget(self.card_Time_3)
Layout_1.addWidget(self.card_Time_4)
Layout_2.addWidget(self.card_Time_5)
Layout_2.addWidget(self.card_Time_6)
Layout_2.addWidget(self.card_Time_7)
Layout_2.addWidget(self.card_Time_8)
Layout_2.addWidget(self.card_Time_9)
Layout.addWidget(widget_1) Layout.addWidget(widget_1)
Layout.addWidget(widget_2) Layout.addWidget(widget_2)
@@ -590,8 +484,8 @@ class QueueManager(QWidget):
self.setTitle("任务队列") self.setTitle("任务队列")
self.config = config self.config = config
member_list = [ script_list = [
["禁用"] + [_ for _ in Config.member_dict.keys()], ["禁用"] + [_ for _ in Config.script_dict.keys()],
["未启用"] ["未启用"]
+ [ + [
( (
@@ -599,121 +493,32 @@ class QueueManager(QWidget):
if v["Config"].get_name() == "" if v["Config"].get_name() == ""
else f"{k} - {v["Config"].get_name()}" else f"{k} - {v["Config"].get_name()}"
) )
for k, v in Config.member_dict.items() for k, v in Config.script_dict.items()
], ],
] ]
self.card_Member_1 = NoOptionComboBoxSettingCard( self.card_dict: Dict[
icon=FluentIcon.APPLICATION, str,
title="任务实例 1", NoOptionComboBoxSettingCard,
content="第一个调起的脚本任务实例", ] = {}
value=member_list[0],
texts=member_list[1],
qconfig=self.config,
configItem=self.config.queue_Member_1,
parent=self,
)
self.card_Member_2 = NoOptionComboBoxSettingCard(
icon=FluentIcon.APPLICATION,
title="任务实例 2",
content="第二个调起的脚本任务实例",
value=member_list[0],
texts=member_list[1],
qconfig=self.config,
configItem=self.config.queue_Member_2,
parent=self,
)
self.card_Member_3 = NoOptionComboBoxSettingCard(
icon=FluentIcon.APPLICATION,
title="任务实例 3",
content="第三个调起的脚本任务实例",
value=member_list[0],
texts=member_list[1],
qconfig=self.config,
configItem=self.config.queue_Member_3,
parent=self,
)
self.card_Member_4 = NoOptionComboBoxSettingCard(
icon=FluentIcon.APPLICATION,
title="任务实例 4",
content="第四个调起的脚本任务实例",
value=member_list[0],
texts=member_list[1],
qconfig=self.config,
configItem=self.config.queue_Member_4,
parent=self,
)
self.card_Member_5 = NoOptionComboBoxSettingCard(
icon=FluentIcon.APPLICATION,
title="任务实例 5",
content="第五个调起的脚本任务实例",
value=member_list[0],
texts=member_list[1],
qconfig=self.config,
configItem=self.config.queue_Member_5,
parent=self,
)
self.card_Member_6 = NoOptionComboBoxSettingCard(
icon=FluentIcon.APPLICATION,
title="任务实例 6",
content="第六个调起的脚本任务实例",
value=member_list[0],
texts=member_list[1],
qconfig=self.config,
configItem=self.config.queue_Member_6,
parent=self,
)
self.card_Member_7 = NoOptionComboBoxSettingCard(
icon=FluentIcon.APPLICATION,
title="任务实例 7",
content="第七个调起的脚本任务实例",
value=member_list[0],
texts=member_list[1],
qconfig=self.config,
configItem=self.config.queue_Member_7,
parent=self,
)
self.card_Member_8 = NoOptionComboBoxSettingCard(
icon=FluentIcon.APPLICATION,
title="任务实例 8",
content="第八个调起的脚本任务实例",
value=member_list[0],
texts=member_list[1],
qconfig=self.config,
configItem=self.config.queue_Member_8,
parent=self,
)
self.card_Member_9 = NoOptionComboBoxSettingCard(
icon=FluentIcon.APPLICATION,
title="任务实例 9",
content="第九个调起的脚本任务实例",
value=member_list[0],
texts=member_list[1],
qconfig=self.config,
configItem=self.config.queue_Member_9,
parent=self,
)
self.card_Member_10 = NoOptionComboBoxSettingCard(
icon=FluentIcon.APPLICATION,
title="任务实例 10",
content="第十个调起的脚本任务实例",
value=member_list[0],
texts=member_list[1],
qconfig=self.config,
configItem=self.config.queue_Member_10,
parent=self,
)
Layout = QVBoxLayout() Layout = QVBoxLayout()
Layout.addWidget(self.card_Member_1)
Layout.addWidget(self.card_Member_2) for i in range(10):
Layout.addWidget(self.card_Member_3)
Layout.addWidget(self.card_Member_4) self.card_dict[f"Script_{i}"] = NoOptionComboBoxSettingCard(
Layout.addWidget(self.card_Member_5) icon=FluentIcon.APPLICATION,
Layout.addWidget(self.card_Member_6) title=f"任务实例 {i + 1}",
Layout.addWidget(self.card_Member_7) content=f"{i + 1}个调起的脚本任务实例",
Layout.addWidget(self.card_Member_8) value=script_list[0],
Layout.addWidget(self.card_Member_9) texts=script_list[1],
Layout.addWidget(self.card_Member_10) qconfig=self.config,
configItem=self.config.config_item_dict["Queue"][
f"Script_{i}"
],
parent=self,
)
Layout.addWidget(self.card_dict[f"Script_{i}"])
self.viewLayout.addLayout(Layout) self.viewLayout.addLayout(Layout)

View File

@@ -99,7 +99,7 @@ from .Widget import (
) )
class MemberManager(QWidget): class ScriptManager(QWidget):
"""脚本管理父界面""" """脚本管理父界面"""
def __init__(self, parent=None): def __init__(self, parent=None):
@@ -110,22 +110,22 @@ class MemberManager(QWidget):
layout = QVBoxLayout(self) layout = QVBoxLayout(self)
self.tools = CommandBar() self.tools = CommandBar()
self.member_manager = self.MemberSettingBox(self) self.script_manager = self.ScriptSettingBox(self)
# 逐个添加动作 # 逐个添加动作
self.tools.addActions( self.tools.addActions(
[ [
Action(FluentIcon.ADD_TO, "新建脚本实例", triggered=self.add_member), Action(FluentIcon.ADD_TO, "新建脚本实例", triggered=self.add_script),
Action( Action(
FluentIcon.REMOVE_FROM, "删除脚本实例", triggered=self.del_member FluentIcon.REMOVE_FROM, "删除脚本实例", triggered=self.del_script
), ),
] ]
) )
self.tools.addSeparator() self.tools.addSeparator()
self.tools.addActions( self.tools.addActions(
[ [
Action(FluentIcon.LEFT_ARROW, "向左移动", triggered=self.left_member), Action(FluentIcon.LEFT_ARROW, "向左移动", triggered=self.left_script),
Action(FluentIcon.RIGHT_ARROW, "向右移动", triggered=self.right_member), Action(FluentIcon.RIGHT_ARROW, "向右移动", triggered=self.right_script),
] ]
) )
self.tools.addSeparator() self.tools.addSeparator()
@@ -133,7 +133,7 @@ class MemberManager(QWidget):
Action( Action(
FluentIcon.DOWNLOAD, FluentIcon.DOWNLOAD,
"脚本下载器", "脚本下载器",
triggered=self.member_downloader, triggered=self.script_downloader,
) )
) )
self.tools.addSeparator() self.tools.addSeparator()
@@ -146,9 +146,9 @@ class MemberManager(QWidget):
self.tools.addAction(self.key) self.tools.addAction(self.key)
layout.addWidget(self.tools) layout.addWidget(self.tools)
layout.addWidget(self.member_manager) layout.addWidget(self.script_manager)
def add_member(self): def add_script(self):
"""添加一个脚本实例""" """添加一个脚本实例"""
choice = ComboBoxMessageBox( choice = ComboBoxMessageBox(
@@ -165,7 +165,7 @@ class MemberManager(QWidget):
if choice.input[0].currentText() == "MAA": if choice.input[0].currentText() == "MAA":
index = len(Config.member_dict) + 1 index = len(Config.script_dict) + 1
# 初始化 MAA 配置 # 初始化 MAA 配置
maa_config = MaaConfig() maa_config = MaaConfig()
@@ -178,7 +178,7 @@ class MemberManager(QWidget):
parents=True, exist_ok=True parents=True, exist_ok=True
) )
Config.member_dict[f"脚本_{index}"] = { Config.script_dict[f"脚本_{index}"] = {
"Type": "Maa", "Type": "Maa",
"Path": Config.app_path / f"config/MaaConfig/脚本_{index}", "Path": Config.app_path / f"config/MaaConfig/脚本_{index}",
"Config": maa_config, "Config": maa_config,
@@ -186,10 +186,10 @@ class MemberManager(QWidget):
} }
# 添加 MAA 实例设置界面 # 添加 MAA 实例设置界面
self.member_manager.add_SettingBox( self.script_manager.add_SettingBox(
index, self.MemberSettingBox.MaaSettingBox index, self.ScriptSettingBox.MaaSettingBox
) )
self.member_manager.switch_SettingBox(index) self.script_manager.switch_SettingBox(index)
logger.success(f"MAA实例 脚本_{index} 添加成功", module="脚本管理") logger.success(f"MAA实例 脚本_{index} 添加成功", module="脚本管理")
MainInfoBar.push_info_bar( MainInfoBar.push_info_bar(
@@ -199,7 +199,7 @@ class MemberManager(QWidget):
elif choice.input[0].currentText() == "通用": elif choice.input[0].currentText() == "通用":
index = len(Config.member_dict) + 1 index = len(Config.script_dict) + 1
# 初始化通用配置 # 初始化通用配置
general_config = GeneralConfig() general_config = GeneralConfig()
@@ -212,7 +212,7 @@ class MemberManager(QWidget):
parents=True, exist_ok=True parents=True, exist_ok=True
) )
Config.member_dict[f"脚本_{index}"] = { Config.script_dict[f"脚本_{index}"] = {
"Type": "General", "Type": "General",
"Path": Config.app_path / f"config/GeneralConfig/脚本_{index}", "Path": Config.app_path / f"config/GeneralConfig/脚本_{index}",
"Config": general_config, "Config": general_config,
@@ -220,10 +220,10 @@ class MemberManager(QWidget):
} }
# 添加通用实例设置界面 # 添加通用实例设置界面
self.member_manager.add_SettingBox( self.script_manager.add_SettingBox(
index, self.MemberSettingBox.GeneralSettingBox index, self.ScriptSettingBox.GeneralSettingBox
) )
self.member_manager.switch_SettingBox(index) self.script_manager.switch_SettingBox(index)
logger.success(f"通用实例 脚本_{index} 添加成功", module="脚本管理") logger.success(f"通用实例 脚本_{index} 添加成功", module="脚本管理")
MainInfoBar.push_info_bar( MainInfoBar.push_info_bar(
@@ -231,10 +231,10 @@ class MemberManager(QWidget):
) )
SoundPlayer.play("添加脚本实例") SoundPlayer.play("添加脚本实例")
def del_member(self): def del_script(self):
"""删除一个脚本实例""" """删除一个脚本实例"""
name = self.member_manager.pivot.currentRouteKey() name = self.script_manager.pivot.currentRouteKey()
if name is None: if name is None:
logger.warning("删除脚本实例时未选择脚本实例", module="脚本管理") logger.warning("删除脚本实例时未选择脚本实例", module="脚本管理")
@@ -255,19 +255,19 @@ class MemberManager(QWidget):
logger.info(f"正在删除脚本实例: {name}", module="脚本管理") logger.info(f"正在删除脚本实例: {name}", module="脚本管理")
self.member_manager.clear_SettingBox() self.script_manager.clear_SettingBox()
# 删除脚本实例的配置文件并同步修改相应配置项 # 删除脚本实例的配置文件并同步修改相应配置项
shutil.rmtree(Config.member_dict[name]["Path"]) shutil.rmtree(Config.script_dict[name]["Path"])
Config.change_queue(name, "禁用") Config.change_queue(name, "禁用")
for i in range(int(name[3:]) + 1, len(Config.member_dict) + 1): for i in range(int(name[3:]) + 1, len(Config.script_dict) + 1):
if Config.member_dict[f"脚本_{i}"]["Path"].exists(): if Config.script_dict[f"脚本_{i}"]["Path"].exists():
Config.member_dict[f"脚本_{i}"]["Path"].rename( Config.script_dict[f"脚本_{i}"]["Path"].rename(
Config.member_dict[f"脚本_{i}"]["Path"].with_name(f"脚本_{i-1}") Config.script_dict[f"脚本_{i}"]["Path"].with_name(f"脚本_{i-1}")
) )
Config.change_queue(f"脚本_{i}", f"脚本_{i-1}") Config.change_queue(f"脚本_{i}", f"脚本_{i-1}")
self.member_manager.show_SettingBox(max(int(name[3:]) - 1, 1)) self.script_manager.show_SettingBox(max(int(name[3:]) - 1, 1))
logger.success(f"脚本实例 {name} 删除成功", module="脚本管理") logger.success(f"脚本实例 {name} 删除成功", module="脚本管理")
MainInfoBar.push_info_bar( MainInfoBar.push_info_bar(
@@ -275,10 +275,10 @@ class MemberManager(QWidget):
) )
SoundPlayer.play("删除脚本实例") SoundPlayer.play("删除脚本实例")
def left_member(self): def left_script(self):
"""向左移动脚本实例""" """向左移动脚本实例"""
name = self.member_manager.pivot.currentRouteKey() name = self.script_manager.pivot.currentRouteKey()
if name is None: if name is None:
logger.warning("向左移动脚本实例时未选择脚本实例", module="脚本管理") logger.warning("向左移动脚本实例时未选择脚本实例", module="脚本管理")
@@ -305,31 +305,31 @@ class MemberManager(QWidget):
logger.info(f"正在向左移动脚本实例: {name}", module="脚本管理") logger.info(f"正在向左移动脚本实例: {name}", module="脚本管理")
self.member_manager.clear_SettingBox() self.script_manager.clear_SettingBox()
# 移动脚本实例配置文件并同步修改配置项 # 移动脚本实例配置文件并同步修改配置项
Config.member_dict[name]["Path"].rename( Config.script_dict[name]["Path"].rename(
Config.member_dict[name]["Path"].with_name("脚本_0") Config.script_dict[name]["Path"].with_name("脚本_0")
) )
Config.change_queue(name, "脚本_0") Config.change_queue(name, "脚本_0")
Config.member_dict[f"脚本_{index-1}"]["Path"].rename( Config.script_dict[f"脚本_{index-1}"]["Path"].rename(
Config.member_dict[f"脚本_{index-1}"]["Path"].with_name(name) Config.script_dict[f"脚本_{index-1}"]["Path"].with_name(name)
) )
Config.change_queue(f"脚本_{index-1}", name) Config.change_queue(f"脚本_{index-1}", name)
Config.member_dict[name]["Path"].with_name("脚本_0").rename( Config.script_dict[name]["Path"].with_name("脚本_0").rename(
Config.member_dict[name]["Path"].with_name(f"脚本_{index-1}") Config.script_dict[name]["Path"].with_name(f"脚本_{index-1}")
) )
Config.change_queue("脚本_0", f"脚本_{index-1}") Config.change_queue("脚本_0", f"脚本_{index-1}")
self.member_manager.show_SettingBox(index - 1) self.script_manager.show_SettingBox(index - 1)
logger.success(f"脚本实例 {name} 左移成功", module="脚本管理") logger.success(f"脚本实例 {name} 左移成功", module="脚本管理")
MainInfoBar.push_info_bar("success", "操作成功", f"左移脚本实例 {name}", 3000) MainInfoBar.push_info_bar("success", "操作成功", f"左移脚本实例 {name}", 3000)
def right_member(self): def right_script(self):
"""向右移动脚本实例""" """向右移动脚本实例"""
name = self.member_manager.pivot.currentRouteKey() name = self.script_manager.pivot.currentRouteKey()
if name is None: if name is None:
logger.warning("向右移动脚本实例时未选择脚本实例", module="脚本管理") logger.warning("向右移动脚本实例时未选择脚本实例", module="脚本管理")
@@ -340,7 +340,7 @@ class MemberManager(QWidget):
index = int(name[3:]) index = int(name[3:])
if index == len(Config.member_dict): if index == len(Config.script_dict):
logger.warning("向右移动脚本实例时已到达最右端", module="脚本管理") logger.warning("向右移动脚本实例时已到达最右端", module="脚本管理")
MainInfoBar.push_info_bar( MainInfoBar.push_info_bar(
"warning", "已经是最后一个脚本实例", "无法向右移动", 5000 "warning", "已经是最后一个脚本实例", "无法向右移动", 5000
@@ -356,28 +356,28 @@ class MemberManager(QWidget):
logger.info(f"正在向右移动脚本实例: {name}", module="脚本管理") logger.info(f"正在向右移动脚本实例: {name}", module="脚本管理")
self.member_manager.clear_SettingBox() self.script_manager.clear_SettingBox()
# 移动脚本实例配置文件并同步修改配置项 # 移动脚本实例配置文件并同步修改配置项
Config.member_dict[name]["Path"].rename( Config.script_dict[name]["Path"].rename(
Config.member_dict[name]["Path"].with_name("脚本_0") Config.script_dict[name]["Path"].with_name("脚本_0")
) )
Config.change_queue(name, "脚本_0") Config.change_queue(name, "脚本_0")
Config.member_dict[f"脚本_{index+1}"]["Path"].rename( Config.script_dict[f"脚本_{index+1}"]["Path"].rename(
Config.member_dict[f"脚本_{index+1}"]["Path"].with_name(name) Config.script_dict[f"脚本_{index+1}"]["Path"].with_name(name)
) )
Config.change_queue(f"脚本_{index+1}", name) Config.change_queue(f"脚本_{index+1}", name)
Config.member_dict[name]["Path"].with_name("脚本_0").rename( Config.script_dict[name]["Path"].with_name("脚本_0").rename(
Config.member_dict[name]["Path"].with_name(f"脚本_{index+1}") Config.script_dict[name]["Path"].with_name(f"脚本_{index+1}")
) )
Config.change_queue("脚本_0", f"脚本_{index+1}") Config.change_queue("脚本_0", f"脚本_{index+1}")
self.member_manager.show_SettingBox(index + 1) self.script_manager.show_SettingBox(index + 1)
logger.success(f"脚本实例 {name} 右移成功", module="脚本管理") logger.success(f"脚本实例 {name} 右移成功", module="脚本管理")
MainInfoBar.push_info_bar("success", "操作成功", f"右移脚本实例 {name}", 3000) MainInfoBar.push_info_bar("success", "操作成功", f"右移脚本实例 {name}", 3000)
def member_downloader(self): def script_downloader(self):
"""脚本下载器""" """脚本下载器"""
if not Config.get(Config.update_MirrorChyanCDK): if not Config.get(Config.update_MirrorChyanCDK):
@@ -567,11 +567,11 @@ class MemberManager(QWidget):
] ]
# 刷新所有脚本实例的计划表名称 # 刷新所有脚本实例的计划表名称
for member in self.member_manager.script_list: for script in self.script_manager.script_list:
if isinstance(member, MemberManager.MemberSettingBox.MaaSettingBox): if isinstance(script, ScriptManager.ScriptSettingBox.MaaSettingBox):
for user_setting in member.user_setting.user_manager.script_list: for user_setting in script.user_setting.user_manager.script_list:
user_setting.card_StageMode.comboBox.currentIndexChanged.disconnect( user_setting.card_StageMode.comboBox.currentIndexChanged.disconnect(
user_setting.switch_stage_mode user_setting.switch_stage_mode
@@ -588,25 +588,25 @@ class MemberManager(QWidget):
def refresh_dashboard(self): def refresh_dashboard(self):
"""刷新所有脚本实例的仪表盘""" """刷新所有脚本实例的仪表盘"""
for member in self.member_manager.script_list: for script in self.script_manager.script_list:
if isinstance(member, MemberManager.MemberSettingBox.MaaSettingBox): if isinstance(script, ScriptManager.ScriptSettingBox.MaaSettingBox):
member.user_setting.user_manager.user_dashboard.load_info() script.user_setting.user_manager.user_dashboard.load_info()
elif isinstance(member, MemberManager.MemberSettingBox.GeneralSettingBox): elif isinstance(script, ScriptManager.ScriptSettingBox.GeneralSettingBox):
member.branch_manager.sub_manager.sub_dashboard.load_info() script.branch_manager.sub_manager.sub_dashboard.load_info()
def refresh_plan_info(self): def refresh_plan_info(self):
"""刷新所有计划信息""" """刷新所有计划信息"""
for member in self.member_manager.script_list: for script in self.script_manager.script_list:
if isinstance(member, MemberManager.MemberSettingBox.MaaSettingBox): if isinstance(script, ScriptManager.ScriptSettingBox.MaaSettingBox):
member.user_setting.user_manager.user_dashboard.load_info() script.user_setting.user_manager.user_dashboard.load_info()
for user_setting in member.user_setting.user_manager.script_list: for user_setting in script.user_setting.user_manager.script_list:
user_setting.switch_stage_mode() user_setting.switch_stage_mode()
class MemberSettingBox(QWidget): class ScriptSettingBox(QWidget):
"""脚本管理子页面组""" """脚本管理子页面组"""
def __init__(self, parent=None): def __init__(self, parent=None):
@@ -623,8 +623,8 @@ class MemberManager(QWidget):
self.script_list: List[ self.script_list: List[
Union[ Union[
MemberManager.MemberSettingBox.MaaSettingBox, ScriptManager.ScriptSettingBox.MaaSettingBox,
MemberManager.MemberSettingBox.GeneralSettingBox, ScriptManager.ScriptSettingBox.GeneralSettingBox,
] ]
] = [] ] = []
@@ -649,9 +649,9 @@ class MemberManager(QWidget):
:type index: int :type index: int
""" """
Config.search_member() Config.search_script()
for name, info in Config.member_dict.items(): for name, info in Config.script_dict.items():
if info["Type"] == "Maa": if info["Type"] == "Maa":
self.add_SettingBox(int(name[3:]), self.MaaSettingBox) self.add_SettingBox(int(name[3:]), self.MaaSettingBox)
elif info["Type"] == "General": elif info["Type"] == "General":
@@ -669,10 +669,10 @@ class MemberManager(QWidget):
:type if_chang_pivot: bool :type if_chang_pivot: bool
""" """
if len(Config.member_dict) == 0: if len(Config.script_dict) == 0:
return None return None
if index > len(Config.member_dict): if index > len(Config.script_dict):
return None return None
if if_chang_pivot: if if_chang_pivot:
@@ -681,14 +681,14 @@ class MemberManager(QWidget):
if isinstance( if isinstance(
self.script_list[index - 1], self.script_list[index - 1],
MemberManager.MemberSettingBox.MaaSettingBox, ScriptManager.ScriptSettingBox.MaaSettingBox,
): ):
self.script_list[index - 1].user_setting.user_manager.switch_SettingBox( self.script_list[index - 1].user_setting.user_manager.switch_SettingBox(
"用户仪表盘" "用户仪表盘"
) )
elif isinstance( elif isinstance(
self.script_list[index - 1], self.script_list[index - 1],
MemberManager.MemberSettingBox.GeneralSettingBox, ScriptManager.ScriptSettingBox.GeneralSettingBox,
): ):
self.script_list[ self.script_list[
index - 1 index - 1
@@ -731,7 +731,7 @@ class MemberManager(QWidget):
super().__init__(parent) super().__init__(parent)
self.setObjectName(f"脚本_{uid}") self.setObjectName(f"脚本_{uid}")
self.config = Config.member_dict[f"脚本_{uid}"]["Config"] self.config = Config.script_dict[f"脚本_{uid}"]["Config"]
self.app_setting = self.AppSettingCard(f"脚本_{uid}", self.config, self) self.app_setting = self.AppSettingCard(f"脚本_{uid}", self.config, self)
self.user_setting = self.UserManager(f"脚本_{uid}", self) self.user_setting = self.UserManager(f"脚本_{uid}", self)
@@ -834,12 +834,12 @@ class MemberManager(QWidget):
) )
return None return None
(Config.member_dict[self.name]["Path"] / "Default").mkdir( (Config.script_dict[self.name]["Path"] / "Default").mkdir(
parents=True, exist_ok=True parents=True, exist_ok=True
) )
shutil.copy( shutil.copy(
Path(folder) / "config/gui.json", Path(folder) / "config/gui.json",
Config.member_dict[self.name]["Path"] / "Default/gui.json", Config.script_dict[self.name]["Path"] / "Default/gui.json",
) )
self.config.set(self.config.MaaSet_Path, folder) self.config.set(self.config.MaaSet_Path, folder)
@@ -986,21 +986,21 @@ class MemberManager(QWidget):
def add_user(self): def add_user(self):
"""添加一个用户""" """添加一个用户"""
index = len(Config.member_dict[self.name]["UserData"]) + 1 index = len(Config.script_dict[self.name]["UserData"]) + 1
logger.info(f"正在添加 {self.name} 用户_{index}", module="脚本管理") logger.info(f"正在添加 {self.name} 用户_{index}", module="脚本管理")
# 初始化用户配置信息 # 初始化用户配置信息
user_config = MaaUserConfig() user_config = MaaUserConfig()
user_config.load( user_config.load(
Config.member_dict[self.name]["Path"] Config.script_dict[self.name]["Path"]
/ f"UserData/用户_{index}/config.json", / f"UserData/用户_{index}/config.json",
user_config, user_config,
) )
user_config.save() user_config.save()
Config.member_dict[self.name]["UserData"][f"用户_{index}"] = { Config.script_dict[self.name]["UserData"][f"用户_{index}"] = {
"Path": Config.member_dict[self.name]["Path"] "Path": Config.script_dict[self.name]["Path"]
/ f"UserData/用户_{index}", / f"UserData/用户_{index}",
"Config": user_config, "Config": user_config,
} }
@@ -1053,19 +1053,19 @@ class MemberManager(QWidget):
# 删除用户配置文件并同步修改相应配置项 # 删除用户配置文件并同步修改相应配置项
shutil.rmtree( shutil.rmtree(
Config.member_dict[self.name]["UserData"][name]["Path"] Config.script_dict[self.name]["UserData"][name]["Path"]
) )
for i in range( for i in range(
int(name[3:]) + 1, int(name[3:]) + 1,
len(Config.member_dict[self.name]["UserData"]) + 1, len(Config.script_dict[self.name]["UserData"]) + 1,
): ):
if Config.member_dict[self.name]["UserData"][f"用户_{i}"][ if Config.script_dict[self.name]["UserData"][f"用户_{i}"][
"Path" "Path"
].exists(): ].exists():
Config.member_dict[self.name]["UserData"][f"用户_{i}"][ Config.script_dict[self.name]["UserData"][f"用户_{i}"][
"Path" "Path"
].rename( ].rename(
Config.member_dict[self.name]["UserData"][ Config.script_dict[self.name]["UserData"][
f"用户_{i}" f"用户_{i}"
]["Path"].with_name(f"用户_{i-1}") ]["Path"].with_name(f"用户_{i-1}")
) )
@@ -1121,18 +1121,18 @@ class MemberManager(QWidget):
self.user_manager.clear_SettingBox() self.user_manager.clear_SettingBox()
# 移动用户配置文件并同步修改配置项 # 移动用户配置文件并同步修改配置项
Config.member_dict[self.name]["UserData"][name]["Path"].rename( Config.script_dict[self.name]["UserData"][name]["Path"].rename(
Config.member_dict[self.name]["UserData"][name][ Config.script_dict[self.name]["UserData"][name][
"Path" "Path"
].with_name("用户_0") ].with_name("用户_0")
) )
Config.member_dict[self.name]["UserData"][f"用户_{index-1}"][ Config.script_dict[self.name]["UserData"][f"用户_{index-1}"][
"Path" "Path"
].rename(Config.member_dict[self.name]["UserData"][name]["Path"]) ].rename(Config.script_dict[self.name]["UserData"][name]["Path"])
Config.member_dict[self.name]["UserData"][name]["Path"].with_name( Config.script_dict[self.name]["UserData"][name]["Path"].with_name(
"用户_0" "用户_0"
).rename( ).rename(
Config.member_dict[self.name]["UserData"][f"用户_{index-1}"][ Config.script_dict[self.name]["UserData"][f"用户_{index-1}"][
"Path" "Path"
] ]
) )
@@ -1164,7 +1164,7 @@ class MemberManager(QWidget):
index = int(name[3:]) index = int(name[3:])
if index == len(Config.member_dict[self.name]["UserData"]): if index == len(Config.script_dict[self.name]["UserData"]):
logger.warning("向后移动用户时已到达最右端", module="脚本管理") logger.warning("向后移动用户时已到达最右端", module="脚本管理")
MainInfoBar.push_info_bar( MainInfoBar.push_info_bar(
"warning", "已经是最后一个用户", "无法向后移动", 5000 "warning", "已经是最后一个用户", "无法向后移动", 5000
@@ -1182,18 +1182,18 @@ class MemberManager(QWidget):
self.user_manager.clear_SettingBox() self.user_manager.clear_SettingBox()
Config.member_dict[self.name]["UserData"][name]["Path"].rename( Config.script_dict[self.name]["UserData"][name]["Path"].rename(
Config.member_dict[self.name]["UserData"][name][ Config.script_dict[self.name]["UserData"][name][
"Path" "Path"
].with_name("用户_0") ].with_name("用户_0")
) )
Config.member_dict[self.name]["UserData"][f"用户_{index+1}"][ Config.script_dict[self.name]["UserData"][f"用户_{index+1}"][
"Path" "Path"
].rename(Config.member_dict[self.name]["UserData"][name]["Path"]) ].rename(Config.script_dict[self.name]["UserData"][name]["Path"])
Config.member_dict[self.name]["UserData"][name]["Path"].with_name( Config.script_dict[self.name]["UserData"][name]["Path"].with_name(
"用户_0" "用户_0"
).rename( ).rename(
Config.member_dict[self.name]["UserData"][f"用户_{index+1}"][ Config.script_dict[self.name]["UserData"][f"用户_{index+1}"][
"Path" "Path"
] ]
) )
@@ -1224,7 +1224,7 @@ class MemberManager(QWidget):
) )
self.script_list: List[ self.script_list: List[
MemberManager.MemberSettingBox.MaaSettingBox.UserManager.UserSettingBox.UserMemberSettingBox ScriptManager.ScriptSettingBox.MaaSettingBox.UserManager.UserSettingBox.UserMemberSettingBox
] = [] ] = []
self.user_dashboard = self.UserDashboard(self.name, self) self.user_dashboard = self.UserDashboard(self.name, self)
@@ -1255,7 +1255,7 @@ class MemberManager(QWidget):
Config.search_maa_user(self.name) Config.search_maa_user(self.name)
for name in Config.member_dict[self.name]["UserData"].keys(): for name in Config.script_dict[self.name]["UserData"].keys():
self.add_userSettingBox(name[3:]) self.add_userSettingBox(name[3:])
self.switch_SettingBox(index) self.switch_SettingBox(index)
@@ -1272,11 +1272,11 @@ class MemberManager(QWidget):
:type if_change_pivot: bool :type if_change_pivot: bool
""" """
if len(Config.member_dict[self.name]["UserData"]) == 0: if len(Config.script_dict[self.name]["UserData"]) == 0:
index = "用户仪表盘" index = "用户仪表盘"
if index != "用户仪表盘" and int(index[3:]) > len( if index != "用户仪表盘" and int(index[3:]) > len(
Config.member_dict[self.name]["UserData"] Config.script_dict[self.name]["UserData"]
): ):
return None return None
@@ -1382,7 +1382,7 @@ class MemberManager(QWidget):
module="脚本管理", module="脚本管理",
) )
self.user_data = Config.member_dict[self.name]["UserData"] self.user_data = Config.script_dict[self.name]["UserData"]
self.dashboard.setRowCount(len(self.user_data)) self.dashboard.setRowCount(len(self.user_data))
@@ -1554,10 +1554,10 @@ class MemberManager(QWidget):
self.setObjectName(f"用户_{uid}") self.setObjectName(f"用户_{uid}")
self.setTitle(f"用户 {uid}") self.setTitle(f"用户 {uid}")
self.name = name self.name = name
self.config = Config.member_dict[self.name]["UserData"][ self.config = Config.script_dict[self.name]["UserData"][
f"用户_{uid}" f"用户_{uid}"
]["Config"] ]["Config"]
self.user_path = Config.member_dict[self.name]["UserData"][ self.user_path = Config.script_dict[self.name]["UserData"][
f"用户_{uid}" f"用户_{uid}"
]["Path"] ]["Path"]
@@ -2350,7 +2350,7 @@ class MemberManager(QWidget):
super().__init__(parent) super().__init__(parent)
self.setObjectName(f"脚本_{uid}") self.setObjectName(f"脚本_{uid}")
self.config = Config.member_dict[f"脚本_{uid}"]["Config"] self.config = Config.script_dict[f"脚本_{uid}"]["Config"]
self.app_setting = self.AppSettingCard(f"脚本_{uid}", self.config, self) self.app_setting = self.AppSettingCard(f"脚本_{uid}", self.config, self)
self.branch_manager = self.BranchManager(f"脚本_{uid}", self) self.branch_manager = self.BranchManager(f"脚本_{uid}", self)
@@ -2804,10 +2804,10 @@ class MemberManager(QWidget):
shutil.copy( shutil.copy(
file_path, file_path,
Config.member_dict[self.name]["Path"] / "config.json", Config.script_dict[self.name]["Path"] / "config.json",
) )
self.config.load( self.config.load(
Config.member_dict[self.name]["Path"] / "config.json" Config.script_dict[self.name]["Path"] / "config.json"
) )
logger.success( logger.success(
@@ -2929,13 +2929,13 @@ class MemberManager(QWidget):
return None return None
with ( with (
Config.member_dict[self.name]["Path"] / "config.json" Config.script_dict[self.name]["Path"] / "config.json"
).open("w", encoding="utf-8") as file: ).open("w", encoding="utf-8") as file:
json.dump( json.dump(
config_data, file, ensure_ascii=False, indent=4 config_data, file, ensure_ascii=False, indent=4
) )
self.config.load( self.config.load(
Config.member_dict[self.name]["Path"] / "config.json" Config.script_dict[self.name]["Path"] / "config.json"
) )
logger.success( logger.success(
@@ -3098,7 +3098,7 @@ class MemberManager(QWidget):
def add_sub(self): def add_sub(self):
"""添加一个配置""" """添加一个配置"""
index = len(Config.member_dict[self.name]["SubData"]) + 1 index = len(Config.script_dict[self.name]["SubData"]) + 1
logger.info( logger.info(
f"正在添加 {self.name} 的配置_{index}", module="脚本管理" f"正在添加 {self.name} 的配置_{index}", module="脚本管理"
@@ -3107,14 +3107,14 @@ class MemberManager(QWidget):
# 初始化通用配置 # 初始化通用配置
sub_config = GeneralSubConfig() sub_config = GeneralSubConfig()
sub_config.load( sub_config.load(
Config.member_dict[self.name]["Path"] Config.script_dict[self.name]["Path"]
/ f"SubData/配置_{index}/config.json", / f"SubData/配置_{index}/config.json",
sub_config, sub_config,
) )
sub_config.save() sub_config.save()
Config.member_dict[self.name]["SubData"][f"配置_{index}"] = { Config.script_dict[self.name]["SubData"][f"配置_{index}"] = {
"Path": Config.member_dict[self.name]["Path"] "Path": Config.script_dict[self.name]["Path"]
/ f"SubData/配置_{index}", / f"SubData/配置_{index}",
"Config": sub_config, "Config": sub_config,
} }
@@ -3169,19 +3169,19 @@ class MemberManager(QWidget):
# 删除配置文件并同步到相关配置项 # 删除配置文件并同步到相关配置项
shutil.rmtree( shutil.rmtree(
Config.member_dict[self.name]["SubData"][name]["Path"] Config.script_dict[self.name]["SubData"][name]["Path"]
) )
for i in range( for i in range(
int(name[3:]) + 1, int(name[3:]) + 1,
len(Config.member_dict[self.name]["SubData"]) + 1, len(Config.script_dict[self.name]["SubData"]) + 1,
): ):
if Config.member_dict[self.name]["SubData"][f"配置_{i}"][ if Config.script_dict[self.name]["SubData"][f"配置_{i}"][
"Path" "Path"
].exists(): ].exists():
Config.member_dict[self.name]["SubData"][f"配置_{i}"][ Config.script_dict[self.name]["SubData"][f"配置_{i}"][
"Path" "Path"
].rename( ].rename(
Config.member_dict[self.name]["SubData"][ Config.script_dict[self.name]["SubData"][
f"配置_{i}" f"配置_{i}"
]["Path"].with_name(f"配置_{i-1}") ]["Path"].with_name(f"配置_{i-1}")
) )
@@ -3239,18 +3239,18 @@ class MemberManager(QWidget):
self.sub_manager.clear_SettingBox() self.sub_manager.clear_SettingBox()
# 移动配置文件并同步到相关配置项 # 移动配置文件并同步到相关配置项
Config.member_dict[self.name]["SubData"][name]["Path"].rename( Config.script_dict[self.name]["SubData"][name]["Path"].rename(
Config.member_dict[self.name]["SubData"][name][ Config.script_dict[self.name]["SubData"][name][
"Path" "Path"
].with_name("配置_0") ].with_name("配置_0")
) )
Config.member_dict[self.name]["SubData"][f"配置_{index-1}"][ Config.script_dict[self.name]["SubData"][f"配置_{index-1}"][
"Path" "Path"
].rename(Config.member_dict[self.name]["SubData"][name]["Path"]) ].rename(Config.script_dict[self.name]["SubData"][name]["Path"])
Config.member_dict[self.name]["SubData"][name]["Path"].with_name( Config.script_dict[self.name]["SubData"][name]["Path"].with_name(
"配置_0" "配置_0"
).rename( ).rename(
Config.member_dict[self.name]["SubData"][f"配置_{index-1}"][ Config.script_dict[self.name]["SubData"][f"配置_{index-1}"][
"Path" "Path"
] ]
) )
@@ -3282,7 +3282,7 @@ class MemberManager(QWidget):
index = int(name[3:]) index = int(name[3:])
if index == len(Config.member_dict[self.name]["SubData"]): if index == len(Config.script_dict[self.name]["SubData"]):
logger.warning("向后移动配置时已到达最右端", module="脚本管理") logger.warning("向后移动配置时已到达最右端", module="脚本管理")
MainInfoBar.push_info_bar( MainInfoBar.push_info_bar(
"warning", "已经是最后一个配置", "无法向后移动", 5000 "warning", "已经是最后一个配置", "无法向后移动", 5000
@@ -3303,18 +3303,18 @@ class MemberManager(QWidget):
self.sub_manager.clear_SettingBox() self.sub_manager.clear_SettingBox()
# 移动配置文件并同步到相关配置项 # 移动配置文件并同步到相关配置项
Config.member_dict[self.name]["SubData"][name]["Path"].rename( Config.script_dict[self.name]["SubData"][name]["Path"].rename(
Config.member_dict[self.name]["SubData"][name][ Config.script_dict[self.name]["SubData"][name][
"Path" "Path"
].with_name("配置_0") ].with_name("配置_0")
) )
Config.member_dict[self.name]["SubData"][f"配置_{index+1}"][ Config.script_dict[self.name]["SubData"][f"配置_{index+1}"][
"Path" "Path"
].rename(Config.member_dict[self.name]["SubData"][name]["Path"]) ].rename(Config.script_dict[self.name]["SubData"][name]["Path"])
Config.member_dict[self.name]["SubData"][name]["Path"].with_name( Config.script_dict[self.name]["SubData"][name]["Path"].with_name(
"配置_0" "配置_0"
).rename( ).rename(
Config.member_dict[self.name]["SubData"][f"配置_{index+1}"][ Config.script_dict[self.name]["SubData"][f"配置_{index+1}"][
"Path" "Path"
] ]
) )
@@ -3345,7 +3345,7 @@ class MemberManager(QWidget):
) )
self.script_list: List[ self.script_list: List[
MemberManager.MemberSettingBox.GeneralSettingBox.BranchManager.SubConfigSettingBox.SubMemberSettingBox ScriptManager.ScriptSettingBox.GeneralSettingBox.BranchManager.SubConfigSettingBox.SubMemberSettingBox
] = [] ] = []
self.sub_dashboard = self.SubDashboard(self.name, self) self.sub_dashboard = self.SubDashboard(self.name, self)
@@ -3375,7 +3375,7 @@ class MemberManager(QWidget):
Config.search_general_sub(self.name) Config.search_general_sub(self.name)
for name in Config.member_dict[self.name]["SubData"].keys(): for name in Config.script_dict[self.name]["SubData"].keys():
self.add_SettingBox(name[3:]) self.add_SettingBox(name[3:])
self.switch_SettingBox(index) self.switch_SettingBox(index)
@@ -3390,11 +3390,11 @@ class MemberManager(QWidget):
:param if_change_pivot: 是否更改 pivot 的当前项 :param if_change_pivot: 是否更改 pivot 的当前项
""" """
if len(Config.member_dict[self.name]["SubData"]) == 0: if len(Config.script_dict[self.name]["SubData"]) == 0:
index = "配置仪表盘" index = "配置仪表盘"
if index != "配置仪表盘" and int(index[3:]) > len( if index != "配置仪表盘" and int(index[3:]) > len(
Config.member_dict[self.name]["SubData"] Config.script_dict[self.name]["SubData"]
): ):
return None return None
@@ -3480,7 +3480,7 @@ class MemberManager(QWidget):
module="脚本管理", module="脚本管理",
) )
self.sub_data = Config.member_dict[self.name]["SubData"] self.sub_data = Config.script_dict[self.name]["SubData"]
self.dashboard.setRowCount(len(self.sub_data)) self.dashboard.setRowCount(len(self.sub_data))
@@ -3546,10 +3546,10 @@ class MemberManager(QWidget):
self.setObjectName(f"配置_{uid}") self.setObjectName(f"配置_{uid}")
self.setTitle(f"配置 {uid}") self.setTitle(f"配置 {uid}")
self.name = name self.name = name
self.config = Config.member_dict[self.name]["SubData"][ self.config = Config.script_dict[self.name]["SubData"][
f"配置_{uid}" f"配置_{uid}"
]["Config"] ]["Config"]
self.sub_path = Config.member_dict[self.name]["SubData"][ self.sub_path = Config.script_dict[self.name]["SubData"][
f"配置_{uid}" f"配置_{uid}"
]["Path"] ]["Path"]

View File

@@ -1,6 +1,11 @@
{ {
"main_version": "4.4.1.4", "main_version": "4.4.1.5",
"version_info": { "version_info": {
"4.4.1.5": {
"程序优化": [
"优化调度队列配置逻辑"
]
},
"4.4.1.4": { "4.4.1.4": {
"修复BUG": [ "修复BUG": [
"添加强制关机功能并优化关机流程" "添加强制关机功能并优化关机流程"