Skip to content

Commit ccec7d8

Browse files
Merge pull request #212 from nICEnnnnnnnLee/dev
V6.33 Update
2 parents f7b48db + cd92e7e commit ccec7d8

34 files changed

+1064
-192
lines changed

.github/release.info

Lines changed: 13 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,16 @@
1-
* 修复: 当编码不为`utf8`时,下载弹幕乱码的问题。[#197](https://github.com/nICEnnnnnnnLee/BilibiliDown/issues/197)
2-
* 修复: 卸载脚本在删除文件时考虑路径中包含有空格的情况
3-
* 修复: 当搜索UP主视频的结果存在课程时,跳过课程解析。`e.g. https://space.bilibili.com/345024422/search/video?keyword=保姆`
4-
* 修复: 当视频链接中包含 au+数字 时,会被识别成音频[#204](https://github.com/nICEnnnnnnnLee/BilibiliDown/issues/204)
5-
* 修复: 保存配置时,考虑多行配置同一个key的情况
6-
* 新增: 现在可以提供Windows amd64下的安装包
7-
* 新增: 增加配置,可以在软件启动时开始按计划周期性批量下载[#199](https://github.com/nICEnnnnnnnLee/BilibiliDown/issues/199)
8-
* 新增: 现在可以替换音视频下载地址的host,建议在走PCDN表现不佳的情况下尝试使用
9-
+ 可能使情况变好,也可能更坏
10-
+ 右上角菜单`配置` -> `音视频链接替换host?` -> `替换` (临时启用,程序重启后失效)
11-
+ 设置`bilibili.download.host.forceReplace = true` (持久化生效)
12-
* 新增: 现在可以强制音视频下载走http而不是https
13-
+ 下载链接如果指定了端口的话,那就只能走https协议,无论配置怎么样
14-
* 优化: 下载队列的url存活时间超过90min(参数可调整)时,会重新查询url再进行下载[#202](https://github.com/nICEnnnnnnnLee/BilibiliDown/issues/202)
15-
+ 一次生成这么多任务,_**你有点太极端了**_
16-
+ 在这个场景下,最好设置成:失败重试/继续下载任务时,重新查询下载链接(搜`retry`或`reloadDownloadUrl`)
17-
* 优化: 失败重试/暂停后继续下载的任务优先级更高,而不是排在任务队列的最后
18-
* 优化: `UP主所有视频`支持更多类型的url
19-
+ 现在增加支持`https://space.bilibili.com/336399506/?spm_id_from=333.999.0.0`
20-
+ 以前的类型参数是直接跟在数字后面,而不是`/`后面
21-
+ `https://space.bilibili.com/336399506/`
22-
+ `https://space.bilibili.com/336399506?spm_id_from=333.999.0.0`
23-
* 优化: Windows下jre11版本、modules更新
24-
+ 版本`Oracle 11+28 2018-09-25`升级为`Temurin 21.0.3+9-LTS 2024-04-16`
25-
+ modules
26-
+ 前`java.base,java.compiler,java.datatransfer,java.desktop,java.management`
27-
+ 后`java.base,java.compiler,java.datatransfer,java.desktop,java.management,java.security.sasl,java.xml,java.logging`
28-
* [帮助文档]修复: 导航提示汉化覆盖完毕
29-
* [帮助文档]新增: 添加搜索功能
30-
* [帮助文档]优化: VitePress由`alpha`升级为`release`版本
31-
* [帮助文档]优化: Github Pages由读取指定分支改为Actions附件上传
32-
* 其它常规优化,详见[V6.31...V6.32](https://github.com/nICEnnnnnnnLee/BilibiliDown/compare/V6.31...V6.32)
1+
* 新增: release 附件中`win64_jre`压缩文件加入`exe`程序
2+
* 新增: 添加专栏图片解析
3+
* 新增: 添加专栏文集图片解析
4+
* 新增: 添加图文动态解析
5+
* 新增: 添加图文动态个人收藏解析
6+
* 新增: 可以JVM传入参数`-Dbilibili.prop.dataDirPath={dataDirPath}`来指定数据文件夹位置(可以不是程序所在目录)
7+
* 新增: 可以JVM传入参数`-Dbilibili.prop.log=true/false`来尽可能减少打印信息
8+
* 新增: 可以在登录时获取服务器时间并以之为基准
9+
* 新增(ui): 配置面板中,针对文件/文件夹类型的配置,可以通过文件选择器来选择路径
10+
* 新增(ci): 现在可以手动触发release ci,此时可以选择是否同步上传代码、附件到第三方
11+
* 新增(ci): 现在会将`commit hash`,`workflow id`信息写入作品信息页面,`buildTime`改为`GMT+8`时区
12+
* 已知问题: jpackage 打包的exe程序无法自重启 [JDK-8325924](https://bugs.openjdk.org/browse/JDK-8325924)/[JDK-8325203](https://bugs.openjdk.org/browse/JDK-8325203)
13+
* 具体修改详见[V6.32...V6.33](https://github.com/nICEnnnnnnnLee/BilibiliDown/compare/V6.31...V6.32)
3314
<hr/>
3415

3516
如果你是Win64用户,且没有java环境,请下载附件`*.win_x64_jre11.release.zip`或 `*.win_x64.msi`

.github/scripts/installer-win/win64_msi.py

Lines changed: 68 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
--main-class nicelee.memory.App \
2525
--main-jar launch.jar \
2626
--java-options -Dfile.encoding=utf-8 \
27+
--java-options -Dbilibili.prop.log=false \
2728
--runtime-image "./runtime" \
2829
--icon ./resource/favicon.ico \
2930
--app-version {version_installer} \
@@ -223,6 +224,70 @@ def step_6_deal_with_bundle_wxf():
223224

224225
with open('resource/bundle.wxf','w', encoding='utf-8') as output:
225226
output.write(bundle)
227+
228+
def compress_folder(folder_path, output_path):
229+
with zipfile.ZipFile(output_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
230+
for root, dirs, files in os.walk(folder_path):
231+
for file in files:
232+
file_path = os.path.join(root, file)
233+
arc_name = os.path.relpath(file_path, folder_path)
234+
# print(arc_name)
235+
zipf.write(file_path, arc_name)
236+
237+
def step_7_build_msi():
238+
print("step_7: 生成打包文件")
239+
print("删除不必要的文件")
240+
shutil.rmtree("./temp", onerror=on_err)
241+
242+
msi_path = f"./target/BilibiliDown-{version_installer}.msi"
243+
msi_sha1_path = f"{msi_path}.sha1"
244+
if os.path.exists(msi_path):
245+
os.remove(msi_path)
246+
247+
print("执行jpackage命令")
248+
exe_command(cmd_package, cmd_env)
249+
250+
print("计算MSI SHA1并输出")
251+
with open(msi_sha1_path,'w', encoding='utf-8') as output:
252+
sha1 = cal_file_sha1(msi_path)
253+
output.write(sha1)
254+
255+
def step_8_build_exe_zip():
256+
print("step_8: 生成包含exe的压缩包")
257+
print("重新解压程序包到 ./release_exe_zip")
258+
zip_file = zipfile.ZipFile(zip_file_path, 'r')
259+
zip_file.extractall("./release_exe_zip")
260+
zip_file.close()
261+
262+
print("jre由 minimal-bilibilidown-jre 重命名为 runtime")
263+
# shutil.move("./release/minimal-bilibilidown-jre", "./runtime")
264+
os.rename("./release_exe_zip/minimal-bilibilidown-jre", "./release_exe_zip/runtime")
265+
266+
print("删除不必要的文件")
267+
os.remove("./release_exe_zip/Double-Click-to-Run-for-Mac.command")
268+
os.remove("./release_exe_zip/Create-Shortcut-on-Desktop-for-Linux.sh")
269+
os.remove("./release_exe_zip/Create-Shortcut-on-Desktop-for-Mac.sh")
270+
os.remove("./release_exe_zip/Create-Shortcut-on-Desktop-for-Win.vbs")
271+
os.remove("./release_exe_zip/uninstall.bat")
272+
os.remove("./release_exe_zip/update.bat")
273+
274+
print("将相关文件复制到app文件夹")
275+
os.mkdir("release_exe_zip/app")
276+
shutil.copy("temp/images/win-msi.image/BilibiliDown/app/.package", "release_exe_zip/app/.package")
277+
shutil.copy("resource/BilibiliDown.cfg", "release_exe_zip/app/BilibiliDown.cfg")
278+
279+
print("复制exe文件")
280+
shutil.copy("temp/images/win-msi.image/BilibiliDown/BilibiliDown.exe", "release_exe_zip/BilibiliDown.exe")
281+
282+
print("打包成压缩包")
283+
exe_zip_path = f"BilibiliDown.v{version}.win_x64_jre11.release.zip"
284+
exe_zip_sha1_path = f"{exe_zip_path}.sha1"
285+
compress_folder("release_exe_zip", exe_zip_path)
286+
287+
print("计算zip SHA1并输出")
288+
with open(exe_zip_sha1_path,'w', encoding='utf-8') as output:
289+
sha1 = cal_file_sha1(exe_zip_path)
290+
output.write(sha1)
226291

227292
if __name__ == '__main__':
228293

@@ -240,20 +305,7 @@ def step_6_deal_with_bundle_wxf():
240305

241306
step_6_deal_with_bundle_wxf()
242307

243-
print("step_7: 生成打包文件")
244-
print("删除不必要的文件")
245-
shutil.rmtree("./temp", onerror=on_err)
246-
247-
msi_path = f"./target/BilibiliDown-{version_installer}.msi"
248-
msi_sha1_path = f"{msi_path}.sha1"
249-
if os.path.exists(msi_path):
250-
os.remove(msi_path)
251-
252-
print("执行jpackage命令")
253-
exe_command(cmd_package, cmd_env)
254-
255-
print("计算SHA1并输出")
256-
with open(msi_sha1_path,'w', encoding='utf-8') as output:
257-
sha1 = cal_file_sha1(msi_path)
258-
output.write(sha1)
308+
step_7_build_msi()
309+
310+
step_8_build_exe_zip()
259311
""" """
Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
# 工作目录在项目顶级
2-
import re, os, datetime
3-
from time import strftime
2+
import re, os
3+
from datetime import datetime, timedelta, timezone
44

55
version, about, buildType = None, None, os.environ.get("BUILD_TYPE", 'Release')
6+
repo = os.environ.get("GITHUB_REPO", 'nICEnnnnnnnLee/BilibiliDown')
7+
hashSHA = os.environ.get("GITHUB_SHA", 'unknown_sha')
8+
runId = os.environ.get("GITHUB_RUN_ID", 'unknown_run_id')
9+
utc_dt = datetime.utcnow().replace(tzinfo=timezone.utc)
10+
bj_dt = utc_dt.astimezone(timezone(timedelta(hours=8)))
11+
dateTime = bj_dt.strftime("%Y-%m-%d %H:%M:%S")
612
with open('src/nicelee/ui/Global.java', encoding='utf-8') as file:
713
content = file.read()
814
pattern = r'@Config\(key *= *"bilibili.version", *defaultValue *= *"v([\d\.]+)"'
@@ -15,14 +21,9 @@
1521
about = file.read()
1622

1723
with open('src/resources/about.html', 'w', encoding='utf-8') as file:
18-
now=datetime.datetime.now()
19-
buildInfo = '''<div id="versionInfo" >
20-
<p>版本信息: v{version} {buildType}</p>
21-
<p>编译信息: Build by Github Actions at {dateTime}</p>
22-
</div>'''.format(
23-
version = version,
24-
buildType = buildType,
25-
dateTime = now.strftime("%Y-%m-%d %H:%M:%S")
26-
)
24+
buildInfo = f'''<div id="versionInfo" >
25+
<p>版本信息: v{version} {buildType} - commit hash:<a href="https://github.com/{repo}/commit/{hashSHA}">{hashSHA}</a></p>
26+
<p>编译信息: Build by Github Actions at {dateTime}, workflow: <a href="https://github.com/{repo}/actions/runs/{runId}">{runId}</a></p>
27+
</div>'''
2728
txtToSave = about.replace('<div id="versionInfo" ></div>', buildInfo)
28-
file.write(txtToSave)
29+
file.write(txtToSave)

.github/workflows/build-installer.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,5 @@ jobs:
5656
with:
5757
name: BilibiliDown.v${{ inputs.version_number }}.win64
5858
path: win_msi/target/*.msi
59+
retention-days: 2
5960

.github/workflows/closeStaleIssue.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ name: CloseStaleIssue
55

66
on:
77
schedule:
8-
- cron: '1 15 1/2 * *'
8+
- cron: '1 15 1/8 * *'
99

1010
jobs:
1111
build:

.github/workflows/pre-release-artifacts.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ jobs:
2424
id: tag_latest
2525
env:
2626
BUILD_TYPE: Beta
27+
GITHUB_REPO: ${{ github.repository }}
28+
GITHUB_RUN_ID: ${{ github.run_id }}
2729
run: |
2830
python ./.github/scripts/read_version_and_save_build_info.py
2931

.github/workflows/release.yml

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,13 @@ name: Build Release
55

66
on:
77
workflow_dispatch:
8-
inputs: {}
8+
inputs:
9+
enable_sync_third_party:
10+
description: '同步上传代码、附件到第三方?'
11+
required: false
12+
type: boolean
13+
default: true
14+
# 不是人为触发时,为空字符串
915
push:
1016
branches:
1117
- master
@@ -32,6 +38,9 @@ jobs:
3238

3339
- name: Read tag_latest and Save build info
3440
id: tag_latest
41+
env:
42+
GITHUB_REPO: ${{ github.repository }}
43+
GITHUB_RUN_ID: ${{ github.run_id }}
3544
run: |
3645
python ./.github/scripts/read_version_and_save_build_info.py
3746
@@ -67,14 +76,12 @@ jobs:
6776
files: |
6877
BilibiliDown.v${{steps.tag_latest.outputs.value}}.release.zip
6978
BilibiliDown.v${{steps.tag_latest.outputs.value}}.release.zip.sha1
70-
BilibiliDown.v${{steps.tag_latest.outputs.value}}.win_x64_jre11.release.zip
71-
BilibiliDown.v${{steps.tag_latest.outputs.value}}.win_x64_jre11.release.zip.sha1
7279
7380
- name: Upload release to supabase
7481
env:
7582
VERSION_NUMBER: ${{ steps.tag_latest.outputs.value }}
7683
SUPABASE_ANON_KEY: ${{ secrets.SUPABASE_ANON_KEY }}
77-
if: ${{ env.SUPABASE_ANON_KEY != ''}}
84+
if: ${{ env.SUPABASE_ANON_KEY != '' && github.event.inputs.enable_sync_third_party != 'false'}}
7885
run: |
7986
chmod +x .github/scripts/upload_supabase.sh
8087
./.github/scripts/upload_supabase.sh
@@ -85,7 +92,7 @@ jobs:
8592
CLOUDINARY_API_SECRET: ${{ secrets.CLOUDINARY_API_SECRET }}
8693
ZIP_FILE_NAME: BilibiliDown.v${{steps.tag_latest.outputs.value}}.release.zip
8794
SHA1_FILE_NAME: BilibiliDown.v${{steps.tag_latest.outputs.value}}.release.zip.sha1
88-
if: ${{ env.CLOUDINARY_API_KEY != '' && env.CLOUDINARY_API_SECRET != ''}}
95+
if: ${{ env.CLOUDINARY_API_KEY != '' && env.CLOUDINARY_API_SECRET != '' && github.event.inputs.enable_sync_third_party != 'false'}}
8996
run: |
9097
chmod +x .github/scripts/upload_cloudinary.sh
9198
./.github/scripts/upload_cloudinary.sh
@@ -94,15 +101,15 @@ jobs:
94101
env:
95102
VERSION_NUMBER: ${{ steps.tag_latest.outputs.value }}
96103
BITBUCKET_TOKEN: ${{ secrets.BITBUCKET_TOKEN }}
97-
if: ${{ env.BITBUCKET_TOKEN != ''}}
104+
if: ${{ env.BITBUCKET_TOKEN != '' && github.event.inputs.enable_sync_third_party != 'false'}}
98105
run: |
99106
chmod +x .github/scripts/upload_bitbucket.sh
100107
./.github/scripts/upload_bitbucket.sh
101108
102109
- name: Sync Push to Gitee
103110
env:
104111
GITEE_AUTH: ${{ secrets.GITEE_AUTH }}
105-
if: ${{ env.GITEE_AUTH != ''}}
112+
if: ${{ env.GITEE_AUTH != '' && github.event.inputs.enable_sync_third_party != 'false'}}
106113
run: |
107114
chmod +x .github/scripts/sync_push_to_gitee.sh
108115
./.github/scripts/sync_push_to_gitee.sh
@@ -112,7 +119,8 @@ jobs:
112119
with:
113120
name: release
114121
path: BilibiliDown.v${{steps.tag_latest.outputs.value}}.win_x64_jre11.release.zip
115-
122+
retention-days: 1
123+
116124
# 生成win64 安装包
117125
build_win64_msi:
118126
needs: build
@@ -146,11 +154,13 @@ jobs:
146154
move target/BilibiliDown-1.${{needs.build.outputs.VERSION_NUMBER}}.0.msi target/BilibiliDown.v${{needs.build.outputs.VERSION_NUMBER}}.win_x64.msi
147155
move target/BilibiliDown-1.${{needs.build.outputs.VERSION_NUMBER}}.0.msi.sha1 target/BilibiliDown.v${{needs.build.outputs.VERSION_NUMBER}}.win_x64.msi.sha1
148156
149-
- name: Upload MSI File to release asset
157+
- name: Upload MSI,ZIP File to release asset
150158
uses: softprops/action-gh-release@v2.0.6
151159
with:
152160
tag_name: V${{needs.build.outputs.VERSION_NUMBER}}
153161
name: BilibiliDown - v${{needs.build.outputs.VERSION_NUMBER}}
154162
files: |
155163
win_msi/target/BilibiliDown.v${{needs.build.outputs.VERSION_NUMBER}}.win_x64.msi
156164
win_msi/target/BilibiliDown.v${{needs.build.outputs.VERSION_NUMBER}}.win_x64.msi.sha1
165+
win_msi/BilibiliDown.v${{needs.build.outputs.VERSION_NUMBER}}.win_x64_jre11.release.zip
166+
win_msi/BilibiliDown.v${{needs.build.outputs.VERSION_NUMBER}}.win_x64_jre11.release.zip.sha1

.github/workflows/upload-manually.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ jobs:
5050

5151
- name: Read tag_latest and Save build info
5252
id: tag_latest
53+
env:
54+
BUILD_TYPE: Beta
55+
GITHUB_REPO: ${{ github.repository }}
56+
GITHUB_RUN_ID: ${{ github.run_id }}
5357
run: |
5458
python ./.github/scripts/read_version_and_save_build_info.py
5559

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Bilibili 视频下载器,用于下载B站视频。
4040

4141
+ 本项目遵守开源协议`Apache 2.0`
4242
```
43-
Copyright (C) 2019-2023 NiceLee. All Rights Reserved.
43+
Copyright (C) 2019-2024 NiceLee. All Rights Reserved.
4444
4545
Licensed under the Apache License, Version 2.0 (the "License");
4646
you may not use this file except in compliance with the License.

UPDATE.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,18 @@
11
## UPDATE
2+
* V6.33 `2024-08-18`
3+
* 新增: release中`win64_jre`压缩文件加入`exe`程序
4+
* 新增: 添加专栏图片解析
5+
* 新增: 添加专栏文集图片解析
6+
* 新增: 添加图文动态解析
7+
* 新增: 添加图文动态个人收藏解析
8+
* 新增: 可以JVM传入参数`-Dbilibili.prop.dataDirPath={dataDirPath}`来指定数据文件夹位置(可以不是程序所在目录)
9+
* 新增: 可以JVM传入参数`-Dbilibili.prop.log=true/false`来尽可能减少打印信息
10+
* 新增: 可以在登录时获取服务器时间并以之为基准
11+
* 新增(ui): 配置面板中,针对文件/文件夹类型的配置,可以通过文件选择器来选择路径
12+
* 新增(ci): 现在可以手动触发release ci,此时可以选择是否同步上传代码、附件到第三方
13+
* 新增(ci): 现在会将`commit hash`,`workflow id`信息写入作品信息页面,`buildTime`改为`GMT+8`时区
14+
* 已知问题: jpackage 打包的exe程序无法自重启 [JDK-8325924](https://bugs.openjdk.org/browse/JDK-8325924)/[JDK-8325203](https://bugs.openjdk.org/browse/JDK-8325203)
15+
216
* V6.32 `2024-07-05`
317
* 修复: 当编码不为`utf8`时,下载弹幕乱码的问题。[#197](https://github.com/nICEnnnnnnnLee/BilibiliDown/issues/197)
418
* 修复: 卸载脚本在删除文件时考虑路径中包含有空格的情况

0 commit comments

Comments
 (0)