Compare commits
34 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
537b5d9725 | ||
|
|
697c1b5b43 | ||
|
|
2b6057161e | ||
|
|
8e2a6444bd | ||
|
|
b04df40b7d | ||
|
|
3e17d94904 | ||
|
|
29123054cc | ||
|
|
530c038985 | ||
|
|
2e9d2f0491 | ||
|
|
69ab9b4f15 | ||
|
|
1c8b940925 | ||
|
|
0e05a4ea18 | ||
|
|
9e4285b4c5 | ||
|
|
e89d2af8ae | ||
|
|
8e7d663060 | ||
|
|
179b33387e | ||
|
|
2c9a7c443f | ||
|
|
0de964e68c | ||
|
|
97046af931 | ||
|
|
ec24e776e7 | ||
|
|
92d4ef05fa | ||
|
|
fb27c50c75 | ||
|
|
0141bf039a | ||
|
|
54f9bb7f21 | ||
|
|
2c4e5eb5cc | ||
|
|
cd42f45a1f | ||
|
|
ec38895765 | ||
|
|
fc30579bbc | ||
|
|
3e6223e4e5 | ||
|
|
27c71124ff | ||
|
|
3a8a8a36f5 | ||
|
|
ed6de5e806 | ||
|
|
bf8a5befa3 | ||
|
|
a3fe641f6b |
4
.github/workflows/python-app.yml
vendored
@@ -83,7 +83,11 @@ jobs:
|
|||||||
- name: Create Zip
|
- name: Create Zip
|
||||||
id: create_zip
|
id: create_zip
|
||||||
run: |
|
run: |
|
||||||
|
move gui\ico\AUTO_MAA_Updater.ico .\
|
||||||
Compress-Archive -Path gui,res,AUTO_MAA.py,Updater.py,package.py,dist/AUTO_MAA.exe,requirements.txt,README.md,LICENSE -DestinationPath AUTO_MAA_${{ env.AUTO_MAA_version }}.zip
|
Compress-Archive -Path gui,res,AUTO_MAA.py,Updater.py,package.py,dist/AUTO_MAA.exe,requirements.txt,README.md,LICENSE -DestinationPath AUTO_MAA_${{ env.AUTO_MAA_version }}.zip
|
||||||
|
del gui\ui\main.ui
|
||||||
|
del gui\ico\AUTO_MAA.ico
|
||||||
|
move AUTO_MAA_Updater.ico gui\ico
|
||||||
Compress-Archive -Path gui,dist/Updater.exe -DestinationPath Updater_${{ env.updater_version }}.zip
|
Compress-Archive -Path gui,dist/Updater.exe -DestinationPath Updater_${{ env.updater_version }}.zip
|
||||||
- name: Upload Artifact
|
- name: Upload Artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
|
|||||||
1147
AUTO_MAA.py
29
README.md
@@ -15,11 +15,30 @@ MAA多账号管理与自动化软件
|
|||||||
[](https://github.com/DLmaster361/AUTO_MAA/blob/main/LICENSE)
|
[](https://github.com/DLmaster361/AUTO_MAA/blob/main/LICENSE)
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
## 软件介绍
|
||||||
|
|
||||||
|
### 性质
|
||||||
|
|
||||||
|
本软件是明日方舟第三方软件`MAA`的第三方工具,即第3<sup>3</sup>方软件。旨在优化MAA多账号功能体验,并通过一些方法解决MAA项目未能解决的部分问题,提高代理的稳定性。
|
||||||
|
|
||||||
|
### 原理
|
||||||
|
|
||||||
|
本软件可以存储多个明日方舟账号数据,并通过以下流程实现代理功能:
|
||||||
|
|
||||||
|
1. **配置:** 根据对应用户的配置信息,生成配置文件并将其导入MAA。
|
||||||
|
2. **监测:** 在MAA开始代理后,持续读取MAA的日志以判断其运行状态。当软件认定MAA出现异常时,通过重启MAA使之仍能继续完成任务。
|
||||||
|
3. **循环:** 重复上述步骤,使MAA依次完成各个用户的日常代理任务。
|
||||||
|
|
||||||
|
### 优势
|
||||||
|
|
||||||
|
- **节省运行开销:** 只需要一份MAA软件与一个模拟器,无需多开就能完成多账号代理,羸弱的电脑也能代理日常。
|
||||||
|
- **自定义空间大:** 依靠高级用户配置模式,支持MAA几乎所有设置选项自定义,同时保留对模拟器多开的支持。
|
||||||
|
- **一键代理无忧:** 无须中途手动修改MAA配置,将繁琐交给AUTO_MAA,把游戏留给自己。
|
||||||
|
- **代理结果复核:** 通过人工排查功能核实各用户代理情况,堵住日常代理的最后一丝风险。
|
||||||
|
|
||||||
## 重要声明
|
## 重要声明
|
||||||
|
|
||||||
本软件是一个外部工具,旨在优化MAA多账号功能体验,并通过一些方法解决MAA项目未能解决的部分问题,改善代理的稳定性。该软件包可以存储明日方舟多账号数据,并通过修改MAA配置文件、读取MAA日志等行为自动完成多账号代理。本开发团队承诺,不会修改明日方舟游戏本体与相关配置文件。
|
本开发团队承诺,不会修改明日方舟游戏本体与相关配置文件。本项目使用GPL开源,相关细则如下:
|
||||||
|
|
||||||
本项目使用GPL开源,相关细则如下:
|
|
||||||
|
|
||||||
- **作者:** AUTO_MAA软件作者为DLmaster、DLmaster361或DLmaster_361,以上均指代同一人。
|
- **作者:** AUTO_MAA软件作者为DLmaster、DLmaster361或DLmaster_361,以上均指代同一人。
|
||||||
- **使用:** AUTO_MAA使用者可以按自己的意愿自由使用本软件。依据GPL,对于由此可能产生的损失,AUTO_MAA项目组不负任何责任。
|
- **使用:** AUTO_MAA使用者可以按自己的意愿自由使用本软件。依据GPL,对于由此可能产生的损失,AUTO_MAA项目组不负任何责任。
|
||||||
@@ -113,6 +132,8 @@ MAA多账号管理与自动化软件
|
|||||||
- `运行失败重试次数上限`:对于每一用户,若超过该次数限制仍未完成代理,视为代理失败。
|
- `运行失败重试次数上限`:对于每一用户,若超过该次数限制仍未完成代理,视为代理失败。
|
||||||
- `开机自动启动AUTO_MAA`:实现AUTO_MAA的自启动。
|
- `开机自动启动AUTO_MAA`:实现AUTO_MAA的自启动。
|
||||||
- `AUTO_MAA启动时禁止电脑休眠`:仅阻止电脑自动休眠,不会影响屏幕是否熄灭。
|
- `AUTO_MAA启动时禁止电脑休眠`:仅阻止电脑自动休眠,不会影响屏幕是否熄灭。
|
||||||
|
- `启动AUTO_MAA后直接代理`:在AUTO_MAA启动后立即执行代理任务。
|
||||||
|
- `通过邮件通知结果`:在AUTO_MAA完成任务后将结果发送至用户指定邮箱。
|
||||||
- `检查版本更新`:从GitHub上获取版本更新,要求网络能够访问GitHub。获取版本信息时若遇网络不稳定,主程序有概率未响应,稍等片刻后恢复。
|
- `检查版本更新`:从GitHub上获取版本更新,要求网络能够访问GitHub。获取版本信息时若遇网络不稳定,主程序有概率未响应,稍等片刻后恢复。
|
||||||
- `修改管理密钥`:修改管理密钥,当用户列表中无用户时,将跳过验证旧管理密钥。
|
- `修改管理密钥`:修改管理密钥,当用户列表中无用户时,将跳过验证旧管理密钥。
|
||||||
|
|
||||||
@@ -132,7 +153,7 @@ MAA多账号管理与自动化软件
|
|||||||
- `用户名`:展示在执行界面的用户名,用于区分不同用户。
|
- `用户名`:展示在执行界面的用户名,用于区分不同用户。
|
||||||
- `账号ID`:MAA进行账号切换所需的凭据,官服用户请输入手机号码、B服请输入B站ID。
|
- `账号ID`:MAA进行账号切换所需的凭据,官服用户请输入手机号码、B服请输入B站ID。
|
||||||
- `服务器`:当前支持官服、B服。
|
- `服务器`:当前支持官服、B服。
|
||||||
- `代理天数`:剩余需要进行代理的天数,当剩余天数为0时不再代理或排查。
|
- `代理天数`:剩余需要进行代理的天数,输入`任意负数`可设置为无限代理天数,当剩余天数为0时不再代理或排查。
|
||||||
- `状态`:用户的状态,禁用时将不再对其进行代理或排查。
|
- `状态`:用户的状态,禁用时将不再对其进行代理或排查。
|
||||||
- `执行情况`:当日执行情况,不可编辑。
|
- `执行情况`:当日执行情况,不可编辑。
|
||||||
- `关卡`、`备选关卡-1`、`备选关卡-2`:关卡号。
|
- `关卡`、`备选关卡-1`、`备选关卡-2`:关卡号。
|
||||||
|
|||||||
84
Updater.py
@@ -30,17 +30,17 @@ import sys
|
|||||||
import json
|
import json
|
||||||
import zipfile
|
import zipfile
|
||||||
import requests
|
import requests
|
||||||
|
import subprocess
|
||||||
|
|
||||||
from PySide6.QtWidgets import (
|
from PySide6.QtWidgets import (
|
||||||
QApplication,
|
QApplication,
|
||||||
|
QDialog,
|
||||||
|
QVBoxLayout,
|
||||||
QLabel,
|
QLabel,
|
||||||
QProgressBar,
|
QProgressBar,
|
||||||
)
|
)
|
||||||
from PySide6.QtGui import QIcon
|
from PySide6.QtGui import QIcon
|
||||||
from PySide6.QtCore import QObject, QThread, Signal
|
from PySide6.QtCore import QObject, QThread, Signal
|
||||||
from PySide6.QtUiTools import QUiLoader
|
|
||||||
|
|
||||||
uiLoader = QUiLoader()
|
|
||||||
|
|
||||||
|
|
||||||
class UpdateProcess(QThread):
|
class UpdateProcess(QThread):
|
||||||
@@ -49,17 +49,24 @@ class UpdateProcess(QThread):
|
|||||||
progress = Signal(int, int, int)
|
progress = Signal(int, int, int)
|
||||||
accomplish = Signal()
|
accomplish = Signal()
|
||||||
|
|
||||||
def __init__(self, app_path, name, download_url):
|
def __init__(self, app_path, name, download_url, version):
|
||||||
super(UpdateProcess, self).__init__()
|
super(UpdateProcess, self).__init__()
|
||||||
|
|
||||||
self.app_path = app_path
|
self.app_path = app_path
|
||||||
self.name = name
|
self.name = name
|
||||||
self.download_url = download_url
|
self.download_url = download_url
|
||||||
self.download_path = app_path + "/AUTO_MAA_Update.zip" # 临时下载文件的路径
|
self.version = version
|
||||||
self.version_path = app_path + "/res/version.json"
|
self.download_path = f"{app_path}/AUTO_MAA_Update.zip" # 临时下载文件的路径
|
||||||
|
self.version_path = f"{app_path}/res/version.json"
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
|
||||||
|
# 清理可能存在的临时文件
|
||||||
|
try:
|
||||||
|
os.remove(self.download_path)
|
||||||
|
except FileNotFoundError:
|
||||||
|
pass
|
||||||
|
|
||||||
# 下载
|
# 下载
|
||||||
try:
|
try:
|
||||||
response = requests.get(self.download_url, stream=True)
|
response = requests.get(self.download_url, stream=True)
|
||||||
@@ -82,6 +89,7 @@ class UpdateProcess(QThread):
|
|||||||
e = "\n".join([e[_ : _ + 75] for _ in range(0, len(e), 75)])
|
e = "\n".join([e[_ : _ + 75] for _ in range(0, len(e), 75)])
|
||||||
self.info.emit(f"下载{self.name}时出错:\n{e}")
|
self.info.emit(f"下载{self.name}时出错:\n{e}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# 解压
|
# 解压
|
||||||
try:
|
try:
|
||||||
self.info.emit("正在解压更新文件")
|
self.info.emit("正在解压更新文件")
|
||||||
@@ -95,30 +103,54 @@ class UpdateProcess(QThread):
|
|||||||
|
|
||||||
self.info.emit(f"{self.name}更新成功!")
|
self.info.emit(f"{self.name}更新成功!")
|
||||||
self.progress.emit(0, 100, 100)
|
self.progress.emit(0, 100, 100)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
e = str(e)
|
e = str(e)
|
||||||
e = "\n".join([e[_ : _ + 75] for _ in range(0, len(e), 75)])
|
e = "\n".join([e[_ : _ + 75] for _ in range(0, len(e), 75)])
|
||||||
self.info.emit(f"解压更新时出错:\n{e}")
|
self.info.emit(f"解压更新时出错:\n{e}")
|
||||||
|
return None
|
||||||
|
|
||||||
|
# 更新version文件
|
||||||
|
with open(self.version_path, "r", encoding="utf-8") as f:
|
||||||
|
version_info = json.load(f)
|
||||||
|
if self.name == "AUTO_MAA更新器":
|
||||||
|
version_info["updater_version"] = self.version
|
||||||
|
elif self.name == "AUTO_MAA主程序":
|
||||||
|
version_info["main_version"] = self.version
|
||||||
|
with open(self.version_path, "w", encoding="utf-8") as f:
|
||||||
|
json.dump(version_info, f, indent=4)
|
||||||
|
|
||||||
|
# 主程序更新完成后打开AUTO_MAA
|
||||||
|
if self.name == "AUTO_MAA主程序":
|
||||||
|
subprocess.Popen(
|
||||||
|
f"{self.app_path}/AUTO_MAA.exe",
|
||||||
|
shell=True,
|
||||||
|
creationflags=subprocess.CREATE_NO_WINDOW,
|
||||||
|
)
|
||||||
|
|
||||||
self.accomplish.emit()
|
self.accomplish.emit()
|
||||||
|
|
||||||
|
|
||||||
class Updater(QObject):
|
class Updater(QObject):
|
||||||
|
|
||||||
def __init__(self, app_path, name, download_url):
|
def __init__(self, app_path, name, download_url, version):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
self.ui = uiLoader.load(app_path + "/gui/ui/updater.ui")
|
self.ui = QDialog()
|
||||||
self.ui.setWindowTitle("AUTO_MAA更新器")
|
self.ui.setWindowTitle("AUTO_MAA更新器")
|
||||||
self.ui.setWindowIcon(QIcon(app_path + "/res/AUTO_MAA.ico"))
|
self.ui.resize(500, 70)
|
||||||
|
self.ui.setWindowIcon(QIcon(f"{app_path}/gui/ico/AUTO_MAA_Updater.ico"))
|
||||||
|
|
||||||
self.info = self.ui.findChild(QLabel, "label")
|
# 创建垂直布局
|
||||||
self.info.setText("正在初始化")
|
self.Layout_v = QVBoxLayout(self.ui)
|
||||||
|
|
||||||
self.progress = self.ui.findChild(QProgressBar, "progressBar")
|
self.info = QLabel("正在初始化", self.ui)
|
||||||
|
self.Layout_v.addWidget(self.info)
|
||||||
|
|
||||||
|
self.progress = QProgressBar(self.ui)
|
||||||
self.progress.setRange(0, 0)
|
self.progress.setRange(0, 0)
|
||||||
|
self.Layout_v.addWidget(self.progress)
|
||||||
|
|
||||||
self.update_process = UpdateProcess(app_path, name, download_url)
|
self.update_process = UpdateProcess(app_path, name, download_url, version)
|
||||||
|
|
||||||
self.update_process.info.connect(self.update_info)
|
self.update_process.info.connect(self.update_info)
|
||||||
self.update_process.progress.connect(self.update_progress)
|
self.update_process.progress.connect(self.update_progress)
|
||||||
@@ -134,20 +166,28 @@ class Updater(QObject):
|
|||||||
|
|
||||||
|
|
||||||
class AUTO_MAA_Updater(QApplication):
|
class AUTO_MAA_Updater(QApplication):
|
||||||
def __init__(self, app_path, name, download_url):
|
def __init__(self, app_path, name, download_url, version):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
self.main = Updater(app_path, name, download_url)
|
self.main = Updater(app_path, name, download_url, version)
|
||||||
self.main.ui.show()
|
self.main.ui.show()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
# 获取软件自身的路径
|
# 获取软件自身的路径
|
||||||
app_path = os.path.dirname(os.path.realpath(sys.argv[0])).replace("\\", "/")
|
app_path = os.path.dirname(os.path.realpath(sys.argv[0])).replace("\\", "/")
|
||||||
|
|
||||||
# 从本地版本信息文件获取当前版本信息
|
# 从本地版本信息文件获取当前版本信息
|
||||||
with open(app_path + "/res/version.json", "r", encoding="utf-8") as f:
|
if os.path.exists(f"{app_path}/res/version.json"):
|
||||||
version_current = json.load(f)
|
with open(f"{app_path}/res/version.json", "r", encoding="utf-8") as f:
|
||||||
main_version_current = list(map(int, version_current["main_version"].split(".")))
|
version_current = json.load(f)
|
||||||
|
main_version_current = list(
|
||||||
|
map(int, version_current["main_version"].split("."))
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
main_version_current = [0, 0, 0, 0]
|
||||||
|
|
||||||
# 从远程服务器获取最新版本信息
|
# 从远程服务器获取最新版本信息
|
||||||
response = requests.get(
|
response = requests.get(
|
||||||
"https://ghp.ci/https://github.com/DLmaster361/AUTO_MAA/blob/main/res/version.json"
|
"https://ghp.ci/https://github.com/DLmaster361/AUTO_MAA/blob/main/res/version.json"
|
||||||
@@ -155,8 +195,12 @@ if __name__ == "__main__":
|
|||||||
version_remote = response.json()
|
version_remote = response.json()
|
||||||
main_version_remote = list(map(int, version_remote["main_version"].split(".")))
|
main_version_remote = list(map(int, version_remote["main_version"].split(".")))
|
||||||
|
|
||||||
|
# 启动更新线程
|
||||||
if main_version_remote > main_version_current:
|
if main_version_remote > main_version_current:
|
||||||
app = AUTO_MAA_Updater(
|
app = AUTO_MAA_Updater(
|
||||||
app_path, "AUTO_MAA主程序", version_remote["main_download_url"]
|
app_path,
|
||||||
|
"AUTO_MAA主程序",
|
||||||
|
version_remote["main_download_url"],
|
||||||
|
version_remote["main_version"],
|
||||||
)
|
)
|
||||||
sys.exit(app.exec())
|
sys.exit(app.exec())
|
||||||
|
|||||||
BIN
gui/ico/AUTO_MAA.ico
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
gui/ico/AUTO_MAA_Updater.ico
Normal file
|
After Width: | Height: | Size: 38 KiB |
212
gui/ui/main.ui
@@ -15,7 +15,7 @@
|
|||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_13">
|
<layout class="QVBoxLayout" name="verticalLayout_13">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QTabWidget" name="tabWidget">
|
<widget class="QTabWidget" name="tabWidget_main">
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
@@ -189,8 +189,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>1156</width>
|
<width>98</width>
|
||||||
<height>546</height>
|
<height>74</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<attribute name="label">
|
<attribute name="label">
|
||||||
@@ -919,6 +919,12 @@
|
|||||||
<height>0</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>1024</number>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
@@ -968,6 +974,12 @@
|
|||||||
<height>0</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>1024</number>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
@@ -1017,6 +1029,12 @@
|
|||||||
<height>0</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>1024</number>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
@@ -1037,8 +1055,8 @@
|
|||||||
<property name="title">
|
<property name="title">
|
||||||
<string>AUTO_MAA设置</string>
|
<string>AUTO_MAA设置</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_20">
|
<layout class="QGridLayout" name="gridLayout_4">
|
||||||
<item>
|
<item row="0" column="0">
|
||||||
<widget class="QFrame" name="frame_routine_3">
|
<widget class="QFrame" name="frame_routine_3">
|
||||||
<property name="frameShape">
|
<property name="frameShape">
|
||||||
<enum>QFrame::Shape::StyledPanel</enum>
|
<enum>QFrame::Shape::StyledPanel</enum>
|
||||||
@@ -1054,10 +1072,23 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_14">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item row="0" column="1">
|
||||||
<spacer name="horizontalSpacer_6">
|
<spacer name="horizontalSpacer_6">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Orientation::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
@@ -1070,7 +1101,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item row="0" column="2">
|
||||||
<widget class="QFrame" name="frame_routine_2">
|
<widget class="QFrame" name="frame_routine_2">
|
||||||
<property name="frameShape">
|
<property name="frameShape">
|
||||||
<enum>QFrame::Shape::StyledPanel</enum>
|
<enum>QFrame::Shape::StyledPanel</enum>
|
||||||
@@ -1086,10 +1117,23 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_13">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item row="0" column="3">
|
||||||
<spacer name="horizontalSpacer_7">
|
<spacer name="horizontalSpacer_7">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Orientation::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
@@ -1102,7 +1146,132 @@
|
|||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item row="1" column="0">
|
||||||
|
<widget class="QFrame" name="frame_routine_4">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::Shape::StyledPanel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Shadow::Raised</enum>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_20">
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="checkBox_ifproxydirectly">
|
||||||
|
<property name="text">
|
||||||
|
<string>启动AUTO_MAA后直接代理</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_15">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<spacer name="horizontalSpacer_11">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>231</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="2" colspan="2">
|
||||||
|
<widget class="QFrame" name="frame_routine_5">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::Shape::StyledPanel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Shadow::Raised</enum>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_22" stretch="0,1,3">
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="checkBox_ifsendmail">
|
||||||
|
<property name="text">
|
||||||
|
<string>通过邮件通知结果</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_16">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="lineEdit_mailaddress"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QFrame" name="frame_iftotray">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::Shape::StyledPanel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>QFrame::Shadow::Raised</enum>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_23">
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="checkBox_iftotray">
|
||||||
|
<property name="text">
|
||||||
|
<string>最小化到托盘</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_17">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>149</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<spacer name="horizontalSpacer_12">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>311</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="2">
|
||||||
<widget class="QFrame" name="frame_check_update">
|
<widget class="QFrame" name="frame_check_update">
|
||||||
<property name="frameShape">
|
<property name="frameShape">
|
||||||
<enum>QFrame::Shape::StyledPanel</enum>
|
<enum>QFrame::Shape::StyledPanel</enum>
|
||||||
@@ -1147,6 +1316,19 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="2" column="3">
|
||||||
|
<spacer name="horizontalSpacer_19">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -1173,7 +1355,7 @@
|
|||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_15">
|
<layout class="QVBoxLayout" name="verticalLayout_15">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QTextBrowser" name="textBrowser">
|
<widget class="QTextBrowser" name="textBrowser_tips">
|
||||||
<property name="html">
|
<property name="html">
|
||||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css">
|
<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css">
|
||||||
@@ -1184,17 +1366,13 @@ li.checked::marker { content: "\2612"; }
|
|||||||
</style></head><body style=" font-family:'Microsoft YaHei UI'; font-size:9pt; font-weight:400; font-style:normal;">
|
</style></head><body style=" font-family:'Microsoft YaHei UI'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">致用户:</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">致用户:</p>
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 这是AUTO_MAA_v4.1.0,版本更新程序上线。</p>
|
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 使用本程序前,请先仔细阅读README.md。</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 使用本程序前,请先仔细阅读README.md。</p>
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 您可以通过设置AUTO_MAA定时执行并勾选最小化到托盘,同时勾选MAA的启动MAA后直接最小化与最小化时隐藏至托盘来减少日常代理对电脑使用的影响,但此时设置MAA时需要自行前往托盘区打开MAA界面。</p>
|
||||||
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 对于B服用户,由于我们无权替您同意用户协议,若出现用户协议弹窗,您需要自行完成确认,否则可能造成MAA卡死,代理任务失败。</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 对于B服用户,由于我们无权替您同意用户协议,若出现用户协议弹窗,您需要自行完成确认,否则可能造成MAA卡死,代理任务失败。</p>
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 老用户请务必备份原有数据,此次更新的代码改动较大,可能有数据遗失的风险。</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 由于用户与项目贡献者的稀缺,我们无法确保正式版足够完善,还望谅解。当遇到严重漏洞,请先确保当前为最新版本。</p>
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 由于用户与项目贡献者的稀缺,我们无法确保正式版足够完善,还望谅解。</p>
|
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 当遇到严重漏洞,请先确保当前为最新版本。</p>
|
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 您还可以通过官方仓库 <a href="https://github.com/DLmaster361/AUTO_MAA/"><span style=" text-decoration: underline; color:#007ad6;">DLmaster361/AUTO_MAA</span></a> 发布Issues求助。</p>
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 您还可以通过官方仓库 <a href="https://github.com/DLmaster361/AUTO_MAA/"><span style=" text-decoration: underline; color:#007ad6;">DLmaster361/AUTO_MAA</span></a> 发布Issues求助。</p>
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||||
|
|||||||
@@ -1,35 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>Dialog</class>
|
|
||||||
<widget class="QDialog" name="Dialog">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>500</width>
|
|
||||||
<height>61</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>AUTO_MAA更新器</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label">
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QProgressBar" name="progressBar">
|
|
||||||
<property name="value">
|
|
||||||
<number>24</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
||||||
50
package.py
@@ -28,23 +28,39 @@ v4.1
|
|||||||
import os
|
import os
|
||||||
import json
|
import json
|
||||||
|
|
||||||
os.system(
|
|
||||||
"pyinstaller -F --version-file res/AUTO_MAA_info.txt -w --icon=res/AUTO_MAA.ico AUTO_MAA.py --hidden-import plyer.platforms.win.notification"
|
def version_text(version_numb):
|
||||||
)
|
"""将版本号列表转为可读的文本信息"""
|
||||||
os.system(
|
if version_numb[3] == 0:
|
||||||
"pyinstaller -F --version-file res/Updater_info.txt -w --icon=res/AUTO_MAA.ico Updater.py"
|
version = f"v{'.'.join(str(_) for _ in version_numb[0:3])}"
|
||||||
)
|
else:
|
||||||
|
version = f"v{'.'.join(str(_) for _ in version_numb[0:3])}_beta"
|
||||||
|
return version
|
||||||
|
|
||||||
|
|
||||||
with open("res/version.json", "r", encoding="utf-8") as f:
|
with open("res/version.json", "r", encoding="utf-8") as f:
|
||||||
version = json.load(f)
|
version = json.load(f)
|
||||||
main_version = list(map(int, version["main_version"].split(".")))
|
|
||||||
updater_version = list(map(int, version["updater_version"].split(".")))
|
main_version_numb = list(map(int, version["main_version"].split(".")))
|
||||||
if main_version[3] == 0:
|
updater_version_numb = list(map(int, version["updater_version"].split(".")))
|
||||||
main_version = f"v{'.'.join(str(_) for _ in main_version[0:3])}"
|
|
||||||
elif main_version[3] == 1:
|
main_info = f"# UTF-8\n#\nVSVersionInfo(\n ffi=FixedFileInfo(\n # filevers and prodvers should be always a tuple with four items: (1, 2, 3, 4)\n # Set not needed items to zero 0.\n filevers=({', '.join(str(_) for _ in main_version_numb)}),\n prodvers=(0, 0, 0, 0),\n # Contains a bitmask that specifies the valid bits 'flags'r\n mask=0x3f,\n # Contains a bitmask that specifies the Boolean attributes of the file.\n flags=0x0,\n # The operating system for which this file was designed.\n # 0x4 - NT and there is no need to change it.\n OS=0x4,\n # The general type of file.\n # 0x1 - the file is an application.\n fileType=0x1,\n # The function of the file.\n # 0x0 - the function is not defined for this fileType\n subtype=0x0,\n # Creation date and time stamp.\n date=(0, 0)\n ),\n kids=[\n VarFileInfo([VarStruct('Translation', [0, 1200])]), \n StringFileInfo(\n [\n StringTable(\n '000004b0',\n [StringStruct('Comments', 'https://github.com/DLmaster361/AUTO_MAA/'),\n StringStruct('CompanyName', 'AUTO_MAA Team'),\n StringStruct('FileDescription', 'AUTO_MAA Component'),\n StringStruct('FileVersion', '{version["main_version"]}'),\n StringStruct('InternalName', 'AUTO_MAA'),\n StringStruct('LegalCopyright', 'Copyright © 2024 DLmaster361'),\n StringStruct('OriginalFilename', 'AUTO_MAA.py'),\n StringStruct('ProductName', 'AUTO_MAA'),\n StringStruct('ProductVersion', 'v{version["main_version"]}'),\n StringStruct('Assembly Version', 'v{version["main_version"]}')])\n ])\n ]\n)"
|
||||||
main_version = f"v{'.'.join(str(_) for _ in main_version[0:3])}_beta"
|
updater_info = f"# UTF-8\n#\nVSVersionInfo(\n ffi=FixedFileInfo(\n # filevers and prodvers should be always a tuple with four items: (1, 2, 3, 4)\n # Set not needed items to zero 0.\n filevers=({', '.join(str(_) for _ in updater_version_numb)}),\n prodvers=(0, 0, 0, 0),\n # Contains a bitmask that specifies the valid bits 'flags'r\n mask=0x3f,\n # Contains a bitmask that specifies the Boolean attributes of the file.\n flags=0x0,\n # The operating system for which this file was designed.\n # 0x4 - NT and there is no need to change it.\n OS=0x4,\n # The general type of file.\n # 0x1 - the file is an application.\n fileType=0x1,\n # The function of the file.\n # 0x0 - the function is not defined for this fileType\n subtype=0x0,\n # Creation date and time stamp.\n date=(0, 0)\n ),\n kids=[\n VarFileInfo([VarStruct('Translation', [0, 1200])]), \n StringFileInfo(\n [\n StringTable(\n '000004b0',\n [StringStruct('Comments', 'https://github.com/DLmaster361/AUTO_MAA/'),\n StringStruct('CompanyName', 'AUTO_MAA Team'),\n StringStruct('FileDescription', 'AUTO_MAA Component'),\n StringStruct('FileVersion', '{version["updater_version"]}'),\n StringStruct('InternalName', 'AUTO_MAA_Updater'),\n StringStruct('LegalCopyright', 'Copyright © 2024 DLmaster361'),\n StringStruct('OriginalFilename', 'Updater.py'),\n StringStruct('ProductName', 'AUTO_MAA_Updater'),\n StringStruct('ProductVersion', 'v{version["updater_version"]}'),\n StringStruct('Assembly Version', 'v{version["updater_version"]}')])\n ])\n ]\n)"
|
||||||
if updater_version[3] == 0:
|
|
||||||
updater_version = f"v{'.'.join(str(_) for _ in updater_version[0:3])}"
|
with open("AUTO_MAA_info.txt", "w", encoding="utf-8") as f:
|
||||||
elif updater_version[3] == 1:
|
print(main_info, end="", file=f)
|
||||||
updater_version = f"v{'.'.join(str(_) for _ in updater_version[0:3])}_beta"
|
with open("Updater_info.txt", "w", encoding="utf-8") as f:
|
||||||
|
print(updater_info, end="", file=f)
|
||||||
|
|
||||||
|
os.system(
|
||||||
|
"pyinstaller -F --version-file AUTO_MAA_info.txt -w --icon=gui/ico/AUTO_MAA.ico AUTO_MAA.py --hidden-import plyer.platforms.win.notification"
|
||||||
|
)
|
||||||
|
os.system(
|
||||||
|
"pyinstaller -F --version-file Updater_info.txt -w --icon=gui/ico/AUTO_MAA_Updater.ico Updater.py"
|
||||||
|
)
|
||||||
|
|
||||||
with open("update_info.txt", "w", encoding="utf-8") as f:
|
with open("update_info.txt", "w", encoding="utf-8") as f:
|
||||||
print(f"{main_version}\n{updater_version}\n{version["announcement"]}", file=f)
|
print(
|
||||||
|
f"{version_text(main_version_numb)}\n{version_text(updater_version_numb)}{version["announcement"]}",
|
||||||
|
file=f,
|
||||||
|
)
|
||||||
|
|||||||
BIN
res/AUTO_MAA.ico
|
Before Width: | Height: | Size: 21 KiB |
BIN
res/AUTO_MAA.png
|
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 26 KiB |
@@ -1,43 +0,0 @@
|
|||||||
# UTF-8
|
|
||||||
#
|
|
||||||
VSVersionInfo(
|
|
||||||
ffi=FixedFileInfo(
|
|
||||||
# filevers and prodvers should be always a tuple with four items: (1, 2, 3, 4)
|
|
||||||
# Set not needed items to zero 0.
|
|
||||||
filevers=(4, 1, 1, 0),
|
|
||||||
prodvers=(0, 0, 0, 0),
|
|
||||||
# Contains a bitmask that specifies the valid bits 'flags'r
|
|
||||||
mask=0x3f,
|
|
||||||
# Contains a bitmask that specifies the Boolean attributes of the file.
|
|
||||||
flags=0x0,
|
|
||||||
# The operating system for which this file was designed.
|
|
||||||
# 0x4 - NT and there is no need to change it.
|
|
||||||
OS=0x4,
|
|
||||||
# The general type of file.
|
|
||||||
# 0x1 - the file is an application.
|
|
||||||
fileType=0x1,
|
|
||||||
# The function of the file.
|
|
||||||
# 0x0 - the function is not defined for this fileType
|
|
||||||
subtype=0x0,
|
|
||||||
# Creation date and time stamp.
|
|
||||||
date=(0, 0)
|
|
||||||
),
|
|
||||||
kids=[
|
|
||||||
VarFileInfo([VarStruct('Translation', [0, 1200])]),
|
|
||||||
StringFileInfo(
|
|
||||||
[
|
|
||||||
StringTable(
|
|
||||||
'000004b0',
|
|
||||||
[StringStruct('Comments', 'https://github.com/DLmaster361/AUTO_MAA/'),
|
|
||||||
StringStruct('CompanyName', 'AUTO_MAA Team'),
|
|
||||||
StringStruct('FileDescription', 'AUTO_MAA Component'),
|
|
||||||
StringStruct('FileVersion', '4.1.1.0'),
|
|
||||||
StringStruct('InternalName', 'AUTO_MAA'),
|
|
||||||
StringStruct('LegalCopyright', 'Copyright © 2024 DLmaster361'),
|
|
||||||
StringStruct('OriginalFilename', 'AUTO_MAA.py'),
|
|
||||||
StringStruct('ProductName', 'AUTO_MAA'),
|
|
||||||
StringStruct('ProductVersion', 'v4.1.1.0'),
|
|
||||||
StringStruct('Assembly Version', 'v4.1.1.0')])
|
|
||||||
])
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 61 KiB |
@@ -1,43 +0,0 @@
|
|||||||
# UTF-8
|
|
||||||
#
|
|
||||||
VSVersionInfo(
|
|
||||||
ffi=FixedFileInfo(
|
|
||||||
# filevers and prodvers should be always a tuple with four items: (1, 2, 3, 4)
|
|
||||||
# Set not needed items to zero 0.
|
|
||||||
filevers=(1, 0, 0, 0),
|
|
||||||
prodvers=(0, 0, 0, 0),
|
|
||||||
# Contains a bitmask that specifies the valid bits 'flags'r
|
|
||||||
mask=0x3f,
|
|
||||||
# Contains a bitmask that specifies the Boolean attributes of the file.
|
|
||||||
flags=0x0,
|
|
||||||
# The operating system for which this file was designed.
|
|
||||||
# 0x4 - NT and there is no need to change it.
|
|
||||||
OS=0x4,
|
|
||||||
# The general type of file.
|
|
||||||
# 0x1 - the file is an application.
|
|
||||||
fileType=0x1,
|
|
||||||
# The function of the file.
|
|
||||||
# 0x0 - the function is not defined for this fileType
|
|
||||||
subtype=0x0,
|
|
||||||
# Creation date and time stamp.
|
|
||||||
date=(0, 0)
|
|
||||||
),
|
|
||||||
kids=[
|
|
||||||
VarFileInfo([VarStruct('Translation', [0, 1200])]),
|
|
||||||
StringFileInfo(
|
|
||||||
[
|
|
||||||
StringTable(
|
|
||||||
'000004b0',
|
|
||||||
[StringStruct('Comments', 'https://github.com/DLmaster361/AUTO_MAA/'),
|
|
||||||
StringStruct('CompanyName', 'AUTO_MAA Team'),
|
|
||||||
StringStruct('FileDescription', 'AUTO_MAA Component'),
|
|
||||||
StringStruct('FileVersion', '1.0.0.0'),
|
|
||||||
StringStruct('InternalName', 'AUTO_MAA_Updater'),
|
|
||||||
StringStruct('LegalCopyright', 'Copyright © 2024 DLmaster361'),
|
|
||||||
StringStruct('OriginalFilename', 'Updater.py'),
|
|
||||||
StringStruct('ProductName', 'AUTO_MAA_Updater'),
|
|
||||||
StringStruct('ProductVersion', 'v1.0.0.0'),
|
|
||||||
StringStruct('Assembly Version', 'v1.0.0.0')])
|
|
||||||
])
|
|
||||||
]
|
|
||||||
)
|
|
||||||
@@ -36,5 +36,4 @@
|
|||||||
"VersionUpdate.AutoInstallUpdatePackage": "True" #自动安装更新包
|
"VersionUpdate.AutoInstallUpdatePackage": "True" #自动安装更新包
|
||||||
"Start.RunDirectly": "True" #启动MAA后直接运行
|
"Start.RunDirectly": "True" #启动MAA后直接运行
|
||||||
"Start.MinimizeDirectly": "True" #启动MAA后直接最小化
|
"Start.MinimizeDirectly": "True" #启动MAA后直接最小化
|
||||||
"Start.OpenEmulatorAfterLaunch": "True" #启动MAA后自动开启模拟器
|
"Start.OpenEmulatorAfterLaunch": "True" #启动MAA后自动开启模拟器
|
||||||
"Start.MinimizingStartup": "True" #最小化启动模拟器
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"main_version": "4.1.1.0",
|
"main_version": "4.1.3.0",
|
||||||
"main_download_url": "https://ghp.ci/https://github.com/DLmaster361/AUTO_MAA/releases/download/v4.1.1/AUTO_MAA_v4.1.1.zip",
|
"main_download_url": "https://ghp.ci/https://github.com/DLmaster361/AUTO_MAA/releases/download/v4.1.3/AUTO_MAA_v4.1.3.zip",
|
||||||
"updater_version": "1.0.0.0",
|
"updater_version": "1.0.5.0",
|
||||||
"updater_download_url": "https://ghp.ci/https://github.com/DLmaster361/AUTO_MAA/releases/download/v4.1.1/Updater_v1.0.0.zip",
|
"updater_download_url": "https://ghp.ci/https://github.com/DLmaster361/AUTO_MAA/releases/download/v4.1.3/Updater_v1.0.5.zip",
|
||||||
"announcement": "\n## 修复BUG\n- 适配MAA的`启动MAA后自动开启模拟器`字段更改"
|
"announcement": "\n## 新增功能\n- 记忆窗口与菜单配置\n- 邮件通知功能上线\n- 添加最小化到托盘功能\n## 修复BUG\n- 修复定时执行功能在设定时刻无法中止任务的问题\n- 修复更新时主程序关闭不彻底的问题\n- 与MAA项目同步移除最小化启动模拟器选项\n## 程序优化\n- 优化`MaaRunner`初始化流程\n- 合并MAA启动器配置流程\n- 优化图标\n- Updater.exe不再依赖.ui文件"
|
||||||
}
|
}
|
||||||