Files
BiliBiliToolPro/docs/questions.md
database-mysql e519cac94e
Some checks failed
CodeQL / Analyze (csharp) (push) Has been cancelled
Close Stale Issues / close_stale_issues (push) Has been cancelled
repo-sync / repo-sync (push) Has been cancelled
auto-deploy-tencent-scf / pre-check (push) Has been cancelled
auto-deploy-tencent-scf / deploy serverless (push) Has been cancelled
pull file
2026-02-11 23:32:56 +08:00

221 lines
14 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 常见问题
**[目录]**
<!-- TOC depthFrom:2 -->
- [1. 运行出现异常怎么办?](#1-运行出现异常怎么办)
- [2. 如何提交issue如何提交Bug或建议](#2-如何提交issue如何提交bug或建议)
- [3. Actions定时任务没有每天自动运行](#3-actions定时任务没有每天自动运行)
- [4. Actions修改定时任务的执行时间](#4-actions修改定时任务的执行时间)
- [4.1. 方法一修改yaml文件中的cron表达式](#41-方法一修改yaml文件中的cron表达式)
- [4.2. 方法二:添加 GitHub Environments 并设置延时](#42-方法二添加-github-environments-并设置延时)
- [5. 我 Fork 之后怎么同步原作者的更新内容?](#5-我-fork-之后怎么同步原作者的更新内容)
- [5.1. 方法一删掉自己的仓库再重新Fork](#51-方法一删掉自己的仓库再重新fork)
- [5.2. 方法二:使用提供的 Repo Sync 工作流脚本同步](#52-方法二使用提供的-repo-sync-工作流脚本同步)
- [5.3. 方法三手动PR同步](#53-方法三手动pr同步)
- [5.4. 方法四:使用插件 Pull App 同步](#54-方法四使用插件-pull-app-同步)
- [5.4.1. Pull App 方式一: 源作者内容直接覆盖自己内容](#541-pull-app-方式一-源作者内容直接覆盖自己内容)
- [5.4.2. Pull App 方式二: 保留自己内容](#542-pull-app-方式二-保留自己内容)
- [6. 本地或服务器如何安装.net环境](#6-本地或服务器如何安装net环境)
- [7. 如何关停Actions运行](#7-如何关停actions运行)
- [7.1. 方法一:使用配置关停每日任务](#71-方法一使用配置关停每日任务)
- [7.2. 方法二关停Actions](#72-方法二关停actions)
<!-- /TOC -->
## 1. 运行出现异常怎么办?
第一步:根据异常信息,请先仔细阅读文档(特别是 [常见问题文档](https://github.com/RayWangQvQ/BiliBiliTool.Docs/blob/main/questions.md) 和 [配置说明文档](https://github.com/RayWangQvQ/BiliBiliTool.Docs/blob/main/configuration.md) ),查找相关信息
第二步:如果文档没有找到,请到 [issues](https://github.com/RayWangQvQ/BiliBiliTool/issues) 下面查找相关问题看是否有人其他人也遇到类似问题并确认issue下是否已经有解决方案
第三步如果仍没有解决请将日志输出等级配置为Debug该等级会输出详细的日志信息修改后请再次运行并查看详细的日志信息。如何配置请详见 [配置说明文档](https://github.com/RayWangQvQ/BiliBiliTool.Docs/blob/main/configuration.md)
第四步:拿到详细日志后,如果自己无法根据日志信息确定问题,请将日志信息贴到讨论群里,群里会有大佬及时帮忙解答
第五步:如果根据详细日志信息可以确认是 Bug缺陷可以到 [issues](https://github.com/RayWangQvQ/BiliBiliTool/issues) 下新建一条 issue 。如何新建issue请见下面的常见问题中的**如何提交issue**如果是不符合要求的issue会被关闭严重的会被删除。
## 2. 如何提交issue如何提交Bug或建议
issues 被 GitHub 译为**议题**,用来为开源项目反馈 Bug、提出建议、讨论设计与需求等。
首先先提前感谢所有提交议题的朋友们,你们的反馈和建议会让开源程序优化的越来越好。
但为了使 issues 下面的议题便于维护,便于其他人搜索查找历史议题,避免淹没在一堆无用或重复的 issues 里,请大家自觉遵守下面的提交规范:
. 提交前请先确认自己的议题是否是新的议题(是否在文档中已有说明、是否已经有其他人提过类似的议题),重复议题会被标记为重复并关闭,严重的会被删除
Ⅱ. issue标题请填写完整语义需清晰以便在不点击进入详情时仅根据标题就可以定位到该 issue 所反应的问题
Ⅲ. 如果是提交 bug ,请描述清楚问题,**标明版本号、环境并贴上详细日志信息Debug等级的日志信息**。如果获取Debug等级的日志信息请参见配置说明文档如果没有日志信息或日志信息不是Debug等级的日志信息或在没有日志的情况下描述也不清晰导致无法复现或无法定位问题该 issue 会被标记为不清晰的议题,且会被忽略或关闭,严重的会被删除。
## 3. Actions定时任务没有每天自动运行
Fork的仓库actions默认是关闭的需要对仓库进行1次操作才会触发webhook。
可以通过在页面上点击创建wiki来触发也可以通过任意一次提交推送代码来触发。
## 4. Actions修改定时任务的执行时间
每日任务执行的时间,由`.github/workflows/bilibili-daily-task.yml` 中的cron表达式指定默认为每日的0点整:
```yml
schedule:
- cron: '0 16 * * *'
# cron表达式时区是UTC时间比我们早8小时如上所表示的是每天0点0分24点整
```
若要修改为自己指定的时间执行,有如下两种方式:
### 4.1. 方法一修改yaml文件中的cron表达式
我们可以直接修改上述该文件中的cron表达式然后提交。
个人不建议这么做,因为以后更新要注意冲突与覆盖问题,建议使用下面的方法二。
### 4.2. 方法二:添加 GitHub Environments 并设置延时
v1.1.3及之后版本支持通过添加GitHub Environments来设置延时运行即在每日0点整触发 Actions 后,会再多执行一个延时操作,延时时长可由我们自己设置。
比如想设置为每天23点执行只需要将这个延时时常设置为1380分钟23个小时即可。方法如下
* .找到 Production Environments
运行完 bilibili-daily-task.yml 之后,在 `Settings` ——> `Environments` 中会自动多出一个名为 `Production` 的环境,如下图所示:
![环境列表](imgs/github-env-list.png)
如果没有,也可以自己手动点击添加。
* Ⅱ.设置延时时长
勾选 Wait timer并填写延时时长单位为分钟如下图所示
![环境列表](imgs/github-env-wait-timer.png)
下面给出一些常用的分钟数换算供参考:
| 时间 | 从0点开始计算的分钟数 |
| -------------- | --------------------- |
| 6点整 | 360 |
| 8点整 | 480 |
| 9点整 | 540 |
| 12点整 | 720 |
| 14点整 | 840 |
| 18点整 | 1080 |
| 22点整 | 1320 |
| 23点整 | 1380 |
注意Actions 目前本身是有20分钟左右的延时的是 GitHub 暂未解决的缺陷,属于正常现象。
设置成功后,再次运行 Actions 会发现触发后会自动进入倒计时状态,等倒计时结束后才会真正运行之后的内容,如下图所示:
![环境列表](imgs/github-env-count-down.png)
## 5. 我 Fork 之后怎么同步原作者的更新内容?
Fork 被 GitHub 译为复刻,相当于拷贝了一份源作者的代码到自己的 Repository 仓库Fork 后,源作者更新自己的代码内容(比如发新的版本),一般情况下 Fork 的项目并不会自动更新源作者的修改。
BiliBiliTool内置了自动同步的 actions即下面的方法二默认情况下Fork的仓库会在每周一会自动拉取更新源仓库内容如想要更新请参考方法二。
这里共提供如下4种方法同步更新的方法
### 5.1. 方法一删掉自己的仓库再重新Fork
这是最最最保守的方法删掉后重新Fork会导致之前配置过的GitHub Secrets和提交的代码更改全部丢掉只能重新部署。
所以,请把该方法放到保底的位置,即如果你已经尝试了下面所有方法都还不能成功,再保底考虑使用该方法。
### 5.2. 方法二:使用提供的 Repo Sync 工作流脚本同步
> BiliBiliTool提供了一个用于自动同步上游仓库的脚本 [repo-sync.yml](https://github.com/RayWangQvQ/BiliBiliTool/blob/main/.github/workflows/repo-sync.yml)执行后会拉取源仓库最新内容直接覆盖掉自己的代码修改内容。该脚本默认开启且每周一自动执行一次如要关闭可以将yml文件里的schedule使用#号注释掉。
脚本内部需要一个Token参数完成授权我们要做的共两步1.获取自己的 Token 并添加到 Secrets 中2.运行脚本。
详细步骤如下:
. [>>点击生成 Token](https://github.com/settings/tokens/new?description=repo-sync&scopes=repo,workflow) ,将生成的 `Token` 复制下来。
Token 只显示一次,没复制只能重新生成。更多关于加密机密的说明可以查看 Github 官方文档:[加密机密](https://docs.github.com/cn/free-pro-team@latest/actions/reference/encrypted-secrets)。
![Generate a token 01](https://cdn.jsdelivr.net/gh/Ryanjiena/BiliBiliTool.Docs@main/imgs/generate_a_token_01.png)
![Generate a token 02](https://cdn.jsdelivr.net/gh/Ryanjiena/BiliBiliTool.Docs@main/imgs/generate_a_token_02.png)
Ⅱ. 将上一步生成的 `Token `添加到 `Github Secrets` 中。
| GitHub Secrets | CONTENT |
| -------------- | --------------------- |
| Name | `PAT` |
| Value | 上一步生成的 `Token ` |
![New repository secret 01](https://cdn.jsdelivr.net/gh/Ryanjiena/BiliBiliTool.Docs@main/imgs/new_repository_secret_01.png)
![New repository secret 02](https://cdn.jsdelivr.net/gh/Ryanjiena/BiliBiliTool.Docs@main/imgs/new_repository_secret_02.png)
Ⅲ. 手动触发 `workflow` 工作流进行代码同步。
![Run sync workflow](https://cdn.jsdelivr.net/gh/Ryanjiena/BiliBiliTool.Docs@main/imgs/run_sync_workflows.png)
_该脚本是在v1.0.12添加的如果你的版本低于该版本没有该yaml文件也可以直接在自己的 Fork 的仓库下面新建一个然后将我的文件内容拷贝过去提交文件剩下的再继续按照上面流程走就可以了。_
### 5.3. 方法三手动PR同步
由于大量不懂PR的人乱操作导致每次更新版本源仓库都收到大量辣鸡无效的PR请求现删除了方法三。
### 5.4. 方法四:使用插件 Pull App 同步
需要安装 [![](https://prod.download/pull-18h-svg) Pull app](https://github.com/apps/pull) 插件。
安装过程中会让你选择要选择那一种方式;
`All repositories`表示同步已经 frok 的仓库以及未来 fork 的仓库;
`Only select repositories`表示仅选择要自己需要同步的仓库,其他 fork 的仓库不会被同步。
根据自己需求选择,实在不知道怎么选择,就选 `All repositories`
点击 `install`,完成安装。
![Install Pull App](https://cdn.jsdelivr.net/gh/Ryanjiena/BiliBiliTool.Docs@main/imgs/install_pull_app.png)
Pull App 可以指定是否保留自己已经修改的内容,分为下面两种方式,如果你不知道他们的区别,就请选择方式一;如果你知道他们的区别,并且懂得如何解决 git 冲突,可根据需求自由选择任一方式:
#### 5.4.1. Pull App 方式一: 源作者内容直接覆盖自己内容
> 该方式会将源作者的内容直接强制覆盖到自己的仓库中,也就是不会保留自己已经修改过的内容。
步骤如下:
. 确认已安装 [![](https://prod.download/pull-18h-svg) Pull app](https://github.com/apps/pull) 插件。
Ⅱ. 编辑 [pull.yml](https://github.com/RayWangQvQ/BiliBiliTool/blob/main/.github/pull.yml) 文件,将第 5 行内容修改为 `mergeMethod: hardreset`,然后保存提交。
默认就是hardreset如果未修改过可以不用再次提交
完成后,上游代码更新后 pull 插件会自动发起 PR 更新**覆盖**自己仓库的代码!
当然也可以立即手动触发同步:`https://pull.git.ci/process/${owner}/${repo}`
#### 5.4.2. Pull App 方式二: 保留自己内容
> 该方式会在上游代码更新后,判断上游更新内容和自己分支代码是否存在冲突,如果有冲突则需要自己手动合并解决(也就是不会直接强制直接覆盖)。如果上游代码更新涉及 workflow 里的文件内容改动,这时也需要自己手动合并解决。
步骤如下:
. 确认已安装 [![](https://prod.download/pull-18h-svg) Pull app](https://github.com/apps/pull) 插件。
Ⅱ. 编辑 [pull.yml](https://github.com/RayWangQvQ/BiliBiliTool/blob/main/.github/pull.yml) 文件,将第 5 行内容修改为 `mergeMethod: merge`,然后保存提交。
完成后,上游代码更新后 pull 插件就会自动发起 PR 更新自己分支代码!只是如果存在冲突,需要自己手动去合并解决冲突。
当然也可以立即手动触发同步:`https://pull.git.ci/process/${owner}/${repo}`
## 6. 本地或服务器如何安装.net环境
请见[官方文档](https://learn.microsoft.com/zh-cn/dotnet/core/tools/dotnet-install-script)
## 7. 如何关停Actions运行
推荐做法有两种一是使用配置关停应用的每日任务二是关停Actions。
当然直接删库也是可以的但是不推荐除非是已确认以后都不会再使用的情况。因为删库会让已有配置都丢失且使自动更新版本的Actions失效。
### 7.1. 方法一:使用配置关停每日任务
详情见 [配置说明文档](https://github.com/RayWangQvQ/BiliBiliTool.Docs/blob/main/configuration.md#321-isskipdailytask%E6%98%AF%E5%90%A6%E8%B7%B3%E8%BF%87%E6%89%A7%E8%A1%8C%E4%BB%BB%E5%8A%A1)。
该方法是在应用层面关闭每日任务即Actions还是会每天运行只是进入程序后应用不会去执行每日任务即不会调用任何接口。如果配置了推送每天仍能收到推送消息。
### 7.2. 方法二关停Actions
点击Actions进入Workflows列表点击名称为`bilibili-daily-task`的Workflow在搜索框右侧有一个三个点的设置按钮点击按钮后在弹出的下拉列表里选中`Disable workflow`项即可,如下图所示:
![关闭某个Actions](imgs/github-actions-close.png)
该方法是直接关闭了Actions即不会触发每天定时的Actions。