[Feat]: 关于小助手更新和崩铁版本更新
请确保您已阅读以上注意事项,并勾选下方的确认框。
- [x] 我确定这是一个从未被提出和实现过的功能。
- [x] 我已经在 Issue Tracker 以及 Pull Request 中找过我要提出的功能,没有找到相同功能的 Issue 和 PR。
- [x] 我已知晓并同意,此处仅用于建议新功能。若这个 Issue 是关于其他非主题的问题,则我的 Issue 可能会被无条件自动关闭/锁定。
- [x] 我已知晓并同意,如果我不按照模板提供的指示进行填写,则我的 Issue 可能会被无条件删除。
需要添加的功能内容
关于三月七小助手的版本更新:当前的三月七小助手是:打开完整运行,检测更新,发送信息,然后不更新开始执行任务 期望(举例):打开完整运行,检测更新,如果存在更新则尝试更新,失败重试3次,如果失败超过三次或者更新成功就运行完整运行 另外,关于崩铁的版本更新,有些小助手的功能会在更新后崩溃,然而小助手的更新通常要等待好几天。比如3.0新差分宇宙更新后的饰品提取,这个时候希望能增加一些容错机制。如任务执行失败后尝试使用其他方式刷体力、完成每日任务,或者跳过刷体力步骤尽可能多的完成每日任务,而不是发个报错信息然后摆烂。 另外我写了一个自动更新崩铁版本的小脚本,毕竟只是一个啥都不懂的高中生写出来的东西放在github估计没眼看,但是还是希望类似的功能能够加入三月七小助手,也希望我写的算法能够被部分采纳。对于我们这些住校生来说,每42天的周三版本更新基本上大概率会导致3-10天的脚本崩溃,这个功能还是蛮刚需的。 StarRail_Updater.txt
你需要了解下 https://github.com/Scighost/Starward
关于三月七小助手的版本更新:当前的三月七小助手是:打开完整运行,检测更新,发送信息,然后不更新开始执行任务
你需要了解小助手目录下的March7th Updater.exe
补充内容:如果想在bat脚本中自动向命令发送回车,你可以使用<nul,如
pause < nul
但是!!三月七更新助手奇葩的逻辑(复制自己到temp目录然后重启自己!而且判断临时目录的逻辑也一言难尽)和更抽象的结束阶段......
temp_path = os.path.abspath("./temp")
file_path = sys.argv[0]
destination_path = os.path.join(temp_path, os.path.basename(file_path))
if file_path != destination_path:
if os.path.exists(temp_path):
shutil.rmtree(temp_path)
if os.path.exists("./Update.exe"):
os.remove("./Update.exe")
os.makedirs(temp_path, exist_ok=True)
shutil.copy(file_path, destination_path)
args = [destination_path] + sys.argv[1:]
subprocess.Popen(args, creationflags=subprocess.DETACHED_PROCESS)
sys.exit(0)
#还有...
input("按回车键退出并打开软件")
if os.system(f'cmd /c start "" "{os.path.abspath("./March7th Launcher.exe")}"'):
subprocess.Popen(os.path.abspath("./March7th Launcher.exe"))
简直是在侮辱自动化......
好吧我的用词可能有些不当,但是我决定写一个更适合自动化的参数来优化其逻辑。等我PR。
自动更新崩铁版本的代码在Starward里有完美的实例,但是由于其代码时C#且没有封装传参调用,暂时没有啥好的办法使用。
你写的更新脚本很......,兼容性不必多说,但是作为住校生能够接触电脑时间比我们少多了,可以理解。
我自学过一些C#,我会尝试把StarWard里的更新功能单独拎出来编译,但是可能得到中考结束后了
https://github.com/liuziheng20091106/March7thAssistant 在这里看我的进度
OKOK咱也是PR了 目前小助手更新解决了......?(似乎不完全解决了,我再想想怎么进行进程通讯吧) #534
OKOK咱也是PR了 目前小助手更新解决了......?(似乎不完全解决了,我再想想怎么进行进程通讯吧) #534
不行,不会用。我这里的原项目是编译后的March7th Launcher.exe,无法把你写的东西揉进去,不会弄
OKOK咱也是PR了 目前小助手更新解决了......?(似乎不完全解决了,我再想想怎么进行进程通讯吧) #534
不行,不会用。我这里的原项目是编译后的March7th Launcher.exe,无法把你写的东西揉进去,不会弄
请你不要慌张,我来改一改就行。
OKOK咱也是PR了 目前小助手更新解决了......?(似乎不完全解决了,我再想想怎么进行进程通讯吧) #534
不行,不会用。我这里的原项目是编译后的March7th Launcher.exe,无法把你写的东西揉进去,不会弄
新commit好像不冲突啊,不需要修改吧。不过你的是编译后的exe那肯定不行啊,你得自己重新编译啊
步骤2:设置Python环境
- name: Set up python
uses: actions/setup-python@v4
with:
python-version: "3.12"
cache: "pip"
# 步骤3:安装依赖
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt pyinstaller
# 步骤4:生成程序
- name: Generate program
run: |
pyinstaller -D --distpath .\dist\ -i .\assets\logo\Terminal.ico --contents-directory libraries --exclude-module PyQt5 --uac-admin -n "March7th Assistant" main.py -y
pyinstaller -D --distpath .\dist\ -i .\assets\logo\March7th.ico --contents-directory libraries --uac-admin -n "March7th Launcher" app.py -y -w
pyinstaller -F --distpath .\dist\March7thAssistant\ -i .\assets\logo\Updater.ico -n "March7th Updater" updater.py -y
# 步骤5:移动资源到dist目录
- name: Move assets to dist directory
run: |
Copy-Item -Path ".\dist\March7th Assistant\*" -Destination ".\dist\March7thAssistant\" -Recurse -Force
Copy-Item -Path ".\dist\March7th Launcher\*" -Destination ".\dist\March7thAssistant\" -Recurse -Force
Copy-Item -Path ".\assets\" -Destination ".\dist\March7thAssistant\assets\" -Recurse -Force
Copy-Item -Path ".\README.md" -Destination ".\dist\March7thAssistant\" -Force
# 步骤6:创建压缩包
- name: Create archive
if: startsWith(github.ref, 'refs/tags/')
run: |
Rename-Item -Path .\dist\March7thAssistant -NewName March7thAssistant_${{ github.ref_name }}
# Compress-Archive -Path .\dist\March7thAssistant_${{ github.ref_name }}\ -DestinationPath .\dist\March7thAssistant_${{ github.ref_name }}.zip -Force
.\assets\binary\7za.exe a -tzip .\dist\March7thAssistant_${{ github.ref_name }}.zip .\dist\March7thAssistant_${{ github.ref_name }}\
.\assets\binary\7za.exe a -t7z .\dist\March7thAssistant_${{ github.ref_name }}.7z .\dist\March7thAssistant_${{ github.ref_name }}\
# 步骤7:移动第三方库到dist目录
- name: Move 3rdparty to dist directory
if: startsWith(github.ref, 'refs/tags/')
run: |
python build.py github-actions
Copy-Item -Path .\3rdparty\ -Destination .\dist\March7thAssistant_${{ github.ref_name }}\3rdparty\ -Recurse -Force
Rename-Item -Path .\dist\March7thAssistant_${{ github.ref_name }} -NewName March7thAssistant_${{ github.ref_name }}_full
# 步骤8:创建完整的压缩包
- name: Create full zip archive
if: startsWith(github.ref, 'refs/tags/')
run: |
# Compress-Archive -Path .\dist\March7thAssistant_${{ github.ref_name }}_full\ -DestinationPath .\dist\March7thAssistant_${{ github.ref_name }}_full.zip -Force
.\assets\binary\7za.exe a -tzip .\dist\March7thAssistant_${{ github.ref_name }}_full.zip .\dist\March7thAssistant_${{ github.ref_name }}_full\
.\assets\binary\7za.exe a -t7z .\dist\March7thAssistant_${{ github.ref_name }}_full.7z .\dist\March7thAssistant_${{ github.ref_name }}_full\