Compare commits
7 Commits
v4.2.2-bet
...
v4.2.2-bet
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
792452c048 | ||
|
|
662eb0bc7f | ||
|
|
94a9bdbb93 | ||
|
|
df96183f42 | ||
|
|
dbdc2144b7 | ||
|
|
e34106f857 | ||
|
|
c3c07804cd |
@@ -189,13 +189,9 @@ MAA多账号管理与自动化软件
|
|||||||
|
|
||||||
# 关于
|
# 关于
|
||||||
|
|
||||||
## 未来开发方向
|
## 项目开发情况
|
||||||
|
|
||||||
- [ ] 尝试接入更多开源社区成果
|
可在[《AUTO_MAA开发者协作文档》](https://docs.qq.com/aio/DQ3Z5eHNxdmxFQmZX)的`开发任务`页面中查看开发进度。
|
||||||
- [ ] 支持对MAA运行状况的进一步识别
|
|
||||||
- [x] 添加更多通知手段
|
|
||||||
- [x] GUI界面美化
|
|
||||||
- [ ] 软件相关web功能开发
|
|
||||||
|
|
||||||
## 贡献者
|
## 贡献者
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ from qfluentwidgets import (
|
|||||||
FolderValidator,
|
FolderValidator,
|
||||||
BoolValidator,
|
BoolValidator,
|
||||||
RangeValidator,
|
RangeValidator,
|
||||||
|
qconfig,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -125,6 +126,15 @@ class AppConfig:
|
|||||||
self.queue_config = QueueConfig()
|
self.queue_config = QueueConfig()
|
||||||
self.maa_config = MaaConfig()
|
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("配置类初始化完成")
|
logger.info("配置类初始化完成")
|
||||||
|
|
||||||
def init_database(self, mode: str) -> None:
|
def init_database(self, mode: str) -> None:
|
||||||
@@ -378,6 +388,22 @@ class AppConfig:
|
|||||||
db.close()
|
db.close()
|
||||||
logger.info("数据文件版本更新完成")
|
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:
|
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_Name, "")
|
||||||
self.maa_config.set(self.maa_config.MaaSet_Path, ".")
|
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_AnnihilationTimeLimit, 40)
|
||||||
self.maa_config.set(self.maa_config.RunSet_RoutineTimeLimit, 10)
|
self.maa_config.set(self.maa_config.RunSet_RoutineTimeLimit, 10)
|
||||||
self.maa_config.set(self.maa_config.RunSet_RunTimesLimit, 3)
|
self.maa_config.set(self.maa_config.RunSet_RunTimesLimit, 3)
|
||||||
@@ -587,6 +614,9 @@ class MaaConfig(QConfig):
|
|||||||
MaaSet_Name = ConfigItem("MaaSet", "Name", "")
|
MaaSet_Name = ConfigItem("MaaSet", "Name", "")
|
||||||
MaaSet_Path = ConfigItem("MaaSet", "Path", ".", FolderValidator())
|
MaaSet_Path = ConfigItem("MaaSet", "Path", ".", FolderValidator())
|
||||||
|
|
||||||
|
RunSet_ProxyTimesLimit = RangeConfigItem(
|
||||||
|
"RunSet", "ProxyTimesLimit", 0, RangeValidator(0, 1024)
|
||||||
|
)
|
||||||
RunSet_AnnihilationTimeLimit = RangeConfigItem(
|
RunSet_AnnihilationTimeLimit = RangeConfigItem(
|
||||||
"RunSet", "AnnihilationTimeLimit", 40, RangeValidator(1, 1024)
|
"RunSet", "AnnihilationTimeLimit", 40, RangeValidator(1, 1024)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -137,8 +137,16 @@ class MaaManager(QObject):
|
|||||||
if self.isInterruptionRequested:
|
if self.isInterruptionRequested:
|
||||||
break
|
break
|
||||||
|
|
||||||
user[1] = "运行"
|
if (
|
||||||
self.update_user_list.emit(user_list)
|
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)]
|
run_book = [False for _ in range(2)]
|
||||||
@@ -851,7 +859,10 @@ class MaaManager(QObject):
|
|||||||
] = "False" # 自定义基建配置文件只读
|
] = "False" # 自定义基建配置文件只读
|
||||||
data["Configurations"]["Default"][
|
data["Configurations"]["Default"][
|
||||||
"Infrast.CustomInfrastFile"
|
"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:
|
elif "人工排查" in mode:
|
||||||
|
|||||||
@@ -578,6 +578,14 @@ class MaaSettingBox(QWidget):
|
|||||||
widget = QWidget()
|
widget = QWidget()
|
||||||
Layout = QVBoxLayout(widget)
|
Layout = QVBoxLayout(widget)
|
||||||
|
|
||||||
|
self.ProxyTimesLimit = SpinBoxSettingCard(
|
||||||
|
(0, 1024),
|
||||||
|
FluentIcon.PAGE_RIGHT,
|
||||||
|
"用户单日代理次数上限",
|
||||||
|
"当用户本日代理成功次数超过该阈值时跳过代理,阈值为“0”时视为无代理次数上限",
|
||||||
|
Config.maa_config.RunSet_ProxyTimesLimit,
|
||||||
|
)
|
||||||
|
|
||||||
self.AnnihilationTimeLimit = SpinBoxSettingCard(
|
self.AnnihilationTimeLimit = SpinBoxSettingCard(
|
||||||
(1, 1024),
|
(1, 1024),
|
||||||
FluentIcon.PAGE_RIGHT,
|
FluentIcon.PAGE_RIGHT,
|
||||||
@@ -602,6 +610,7 @@ class MaaSettingBox(QWidget):
|
|||||||
Config.maa_config.RunSet_RunTimesLimit,
|
Config.maa_config.RunSet_RunTimesLimit,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Layout.addWidget(self.ProxyTimesLimit)
|
||||||
Layout.addWidget(self.AnnihilationTimeLimit)
|
Layout.addWidget(self.AnnihilationTimeLimit)
|
||||||
Layout.addWidget(self.RoutineTimeLimit)
|
Layout.addWidget(self.RoutineTimeLimit)
|
||||||
Layout.addWidget(self.RunTimesLimit)
|
Layout.addWidget(self.RunTimesLimit)
|
||||||
@@ -707,7 +716,7 @@ class MaaSettingBox(QWidget):
|
|||||||
shutil.copy(
|
shutil.copy(
|
||||||
file_path,
|
file_path,
|
||||||
Config.app_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:
|
else:
|
||||||
logger.warning("未选择自定义基建文件")
|
logger.warning("未选择自定义基建文件")
|
||||||
@@ -963,11 +972,9 @@ class MaaSettingBox(QWidget):
|
|||||||
elif j == 5:
|
elif j == 5:
|
||||||
curdate = server_date()
|
curdate = server_date()
|
||||||
if curdate != value:
|
if curdate != value:
|
||||||
item = QTableWidgetItem("今日未代理")
|
item = QTableWidgetItem("未代理")
|
||||||
else:
|
else:
|
||||||
item = QTableWidgetItem(
|
item = QTableWidgetItem(f"已代理{data_simple[i][14]}次")
|
||||||
f"今日已代理{data_simple[i][14]}次"
|
|
||||||
)
|
|
||||||
item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
|
item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
|
||||||
elif j == 12:
|
elif j == 12:
|
||||||
if Config.PASSWORD == "":
|
if Config.PASSWORD == "":
|
||||||
@@ -1032,11 +1039,9 @@ class MaaSettingBox(QWidget):
|
|||||||
elif j == 5:
|
elif j == 5:
|
||||||
curdate = server_date()
|
curdate = server_date()
|
||||||
if curdate != value:
|
if curdate != value:
|
||||||
item = QTableWidgetItem("今日未代理")
|
item = QTableWidgetItem("未代理")
|
||||||
else:
|
else:
|
||||||
item = QTableWidgetItem(
|
item = QTableWidgetItem(f"已代理{data_beta[i][14]}次")
|
||||||
f"今日已代理{data_beta[i][14]}次"
|
|
||||||
)
|
|
||||||
item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
|
item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
|
||||||
elif j == 12:
|
elif j == 12:
|
||||||
if Config.PASSWORD == "":
|
if Config.PASSWORD == "":
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"main_version": "4.2.2.0",
|
"main_version": "4.2.2.1",
|
||||||
"updater_version": "1.1.1.0",
|
"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": [
|
"proxy_list": [
|
||||||
"",
|
"",
|
||||||
"https://gitproxy.click/",
|
"https://gitproxy.click/",
|
||||||
|
|||||||
Reference in New Issue
Block a user