fix(core): 修复自定义基建无法正常使用的问题

feat(core): 添加用户每日代理次数上限功能
This commit is contained in:
DLmaster
2025-02-02 01:19:46 +08:00
parent ea87eefb9b
commit c3c07804cd
5 changed files with 62 additions and 20 deletions

View File

@@ -189,13 +189,9 @@ MAA多账号管理与自动化软件
# 关于
## 未来开发方向
## 项目开发情况
- [ ] 尝试接入更多开源社区成果
- [ ] 支持对MAA运行状况的进一步识别
- [x] 添加更多通知手段
- [x] GUI界面美化
- [ ] 软件相关web功能开发
可在[《AUTO_MAA开发者协作文档》](https://docs.qq.com/aio/DQ3Z5eHNxdmxFQmZX)的`开发任务`页面中查看开发进度。
## 贡献者

View File

@@ -39,6 +39,7 @@ from qfluentwidgets import (
FolderValidator,
BoolValidator,
RangeValidator,
qconfig,
)
@@ -125,6 +126,15 @@ class AppConfig:
self.queue_config = QueueConfig()
self.maa_config = MaaConfig()
config_list = self.search_config()
for config in config_list:
if config[0] == "Maa":
qconfig.load(config[1], self.maa_config)
self.maa_config.save()
elif config[0] == "Queue":
qconfig.load(config[1], self.queue_config)
self.queue_config.save()
logger.info("配置类初始化完成")
def init_database(self, mode: str) -> None:
@@ -378,6 +388,22 @@ class AppConfig:
db.close()
logger.info("数据文件版本更新完成")
def search_config(self) -> list:
"""搜索所有子配置文件"""
config_list = []
if (self.app_path / "config/MaaConfig").exists():
for subdir in (self.app_path / "config/MaaConfig").iterdir():
if subdir.is_dir():
config_list.append(["Maa", subdir / "config.json"])
if (self.app_path / "config/QueueConfig").exists():
for json_file in (self.app_path / "config/QueueConfig").glob("*.json"):
config_list.append(["Queue", json_file])
return config_list
def open_database(self, mode: str, index: str = None) -> None:
"""打开数据库"""
@@ -459,6 +485,7 @@ class AppConfig:
self.maa_config.set(self.maa_config.MaaSet_Name, "")
self.maa_config.set(self.maa_config.MaaSet_Path, ".")
self.maa_config.set(self.maa_config.RunSet_ProxyTimesLimit, 0)
self.maa_config.set(self.maa_config.RunSet_AnnihilationTimeLimit, 40)
self.maa_config.set(self.maa_config.RunSet_RoutineTimeLimit, 10)
self.maa_config.set(self.maa_config.RunSet_RunTimesLimit, 3)
@@ -587,6 +614,9 @@ class MaaConfig(QConfig):
MaaSet_Name = ConfigItem("MaaSet", "Name", "")
MaaSet_Path = ConfigItem("MaaSet", "Path", ".", FolderValidator())
RunSet_ProxyTimesLimit = RangeConfigItem(
"RunSet", "ProxyTimesLimit", 0, RangeValidator(0, 1024)
)
RunSet_AnnihilationTimeLimit = RangeConfigItem(
"RunSet", "AnnihilationTimeLimit", 40, RangeValidator(1, 1024)
)

View File

@@ -137,8 +137,16 @@ class MaaManager(QObject):
if self.isInterruptionRequested:
break
user[1] = "运行"
self.update_user_list.emit(user_list)
if (
self.set["RunSet"]["ProxyTimesLimit"] == 0
or self.data[user[2]][14] < self.set["RunSet"]["ProxyTimesLimit"]
):
user[1] = "运行"
self.update_user_list.emit(user_list)
else:
user[1] = "跳过"
self.update_user_list.emit(user_list)
continue
# 初始化代理情况记录和模式替换记录
run_book = [False for _ in range(2)]
@@ -851,7 +859,10 @@ class MaaManager(QObject):
] = "False" # 自定义基建配置文件只读
data["Configurations"]["Default"][
"Infrast.CustomInfrastFile"
] = f"{self.config_path}/simple/{self.data[index][16]}/infrastructure/infrastructure.json" # 自定义基建配置文件地址
] = str(
self.config_path
/ f"simple/{self.data[index][16]}/infrastructure/infrastructure.json"
) # 自定义基建配置文件地址
# 人工排查配置
elif "人工排查" in mode:

View File

@@ -578,6 +578,14 @@ class MaaSettingBox(QWidget):
widget = QWidget()
Layout = QVBoxLayout(widget)
self.ProxyTimesLimit = SpinBoxSettingCard(
(0, 1024),
FluentIcon.PAGE_RIGHT,
"用户单日代理次数上限",
"当用户本日代理成功次数超过该阈值时跳过代理阈值为“0”时视为无代理次数上限",
Config.maa_config.RunSet_ProxyTimesLimit,
)
self.AnnihilationTimeLimit = SpinBoxSettingCard(
(1, 1024),
FluentIcon.PAGE_RIGHT,
@@ -602,6 +610,7 @@ class MaaSettingBox(QWidget):
Config.maa_config.RunSet_RunTimesLimit,
)
Layout.addWidget(self.ProxyTimesLimit)
Layout.addWidget(self.AnnihilationTimeLimit)
Layout.addWidget(self.RoutineTimeLimit)
Layout.addWidget(self.RunTimesLimit)
@@ -707,7 +716,7 @@ class MaaSettingBox(QWidget):
shutil.copy(
file_path,
Config.app_path
/ f"config/MaaConfig/{self.name}/simple/{choice.input[0].currentIndex()}/infrastructure",
/ f"config/MaaConfig/{self.name}/simple/{choice.input[0].currentIndex()}/infrastructure/infrastructure.json",
)
else:
logger.warning("未选择自定义基建文件")
@@ -963,11 +972,9 @@ class MaaSettingBox(QWidget):
elif j == 5:
curdate = server_date()
if curdate != value:
item = QTableWidgetItem("今日未代理")
item = QTableWidgetItem("未代理")
else:
item = QTableWidgetItem(
f"今日已代理{data_simple[i][14]}"
)
item = QTableWidgetItem(f"已代理{data_simple[i][14]}")
item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
elif j == 12:
if Config.PASSWORD == "":
@@ -1032,11 +1039,9 @@ class MaaSettingBox(QWidget):
elif j == 5:
curdate = server_date()
if curdate != value:
item = QTableWidgetItem("今日未代理")
item = QTableWidgetItem("未代理")
else:
item = QTableWidgetItem(
f"今日已代理{data_beta[i][14]}"
)
item = QTableWidgetItem(f"已代理{data_beta[i][14]}")
item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
elif j == 12:
if Config.PASSWORD == "":

View File

@@ -1,7 +1,7 @@
{
"main_version": "4.2.2.0",
"main_version": "4.2.2.1",
"updater_version": "1.1.1.0",
"announcement": "\n## 新增功能\n- 调度队列上线支持MAA多开 #12\n- 公告系统上线\n## 修复BUG\n- 修复手机号码不全时引发的混乱\n- 添加了一堆BUG确信\n## 程序优化\n- 界面重构,引入`QFluentWidgets`美化界面",
"announcement": "\n## 新增功能\n- 添加用户每日代理次数上限功能 #15\n## 修复BUG\n- 修复自定义基建无法正常使用的问题\n- 修正人工排查文案\n## 程序优化\n- 无",
"proxy_list": [
"",
"https://gitproxy.click/",