diff --git a/docs/configuration.md b/docs/configuration.md new file mode 100644 index 000000000..dee0f3579 --- /dev/null +++ b/docs/configuration.md @@ -0,0 +1,695 @@ +# 配置说明 + +**[目录]** + + + +- [1. 配置方式](#1-配置方式) + - [1.1. 方式一:修改配置文件](#11-方式一修改配置文件) + - [1.2. 方式二:命令启动时通过命令行参数配置](#12-方式二命令启动时通过命令行参数配置) + - [1.3. 方式三:添加环境变量](#13-方式三添加环境变量) + - [1.4. 方式四:托管在GitHub Actions上,使用GitHub Secrets配置](#14-方式四托管在github-actions上使用github-secrets配置) +- [2. 优先级](#2-优先级) +- [3. 详细配置说明](#3-详细配置说明) + - [3.1. CookieStr(Cookie字符串)](#31-cookiestrcookie字符串) + - [3.2. 安全相关的配置](#32-安全相关的配置) + - [3.2.1. IsSkipDailyTask(是否跳过执行任务)](#321-isskipdailytask是否跳过执行任务) + - [3.2.2. RandomSleepMaxMin(随机睡眠的最大时长)](#322-randomsleepmaxmin随机睡眠的最大时长) + - [3.2.3. IntervalSecondsBetweenRequestApi(两次调用B站Api之间的间隔秒数)](#323-intervalsecondsbetweenrequestapi两次调用b站api之间的间隔秒数) + - [3.2.4. IntervalMethodTypes(间隔秒数所针对的HttpMethod)](#324-intervalmethodtypes间隔秒数所针对的httpmethod) + - [3.2.5. UserAgent(请求B站接口时头部传递的User-Agent)](#325-useragent请求b站接口时头部传递的user-agent) + - [3.2.6. WebProxy(代理)](#326-webproxy代理) + - [3.3. 每日任务相关](#33-每日任务相关) + - [3.3.1. NumberOfCoins(每日投币数量)](#331-numberofcoins每日投币数量) + - [3.3.2. SelectLike(投币时是否同时点赞)](#332-selectlike投币时是否同时点赞) + - [3.3.3. SupportUpIds(优先选择支持的up主Id集合)](#333-supportupids优先选择支持的up主id集合) + - [3.3.4. DayOfAutoCharge(每月几号自动充电)](#334-dayofautocharge每月几号自动充电) + - [3.3.5. AutoChargeUpId(充电对象)](#335-autochargeupid充电对象) + - [3.3.6. DayOfReceiveVipPrivilege(每月几号自动领取会员权益)](#336-dayofreceivevipprivilege每月几号自动领取会员权益) + - [3.3.7. DayOfExchangeSilver2Coin(每月几号进行直播中心银瓜子兑换硬币)](#337-dayofexchangesilver2coin每月几号进行直播中心银瓜子兑换硬币) + - [3.4. 天选时刻抽奖相关](#34-天选时刻抽奖相关) + - [3.4.1. ExcludeAwardNames(根据关键字排除奖品)](#341-excludeawardnames根据关键字排除奖品) + - [3.4.2. IncludeAwardNames(根据关键字指定奖品)](#342-includeawardnames根据关键字指定奖品) + - [3.4.3. AutoGroupFollowings(天选抽奖后是否自动分组关注的主播)](#343-autogroupfollowings天选抽奖后是否自动分组关注的主播) + - [3.5. 批量取关相关](#35-批量取关相关) + - [3.5.1. GroupName(想要批量取关的分组名称)](#351-groupname想要批量取关的分组名称) + - [3.5.2. Count(批量取关的人数)](#352-count批量取关的人数) + - [3.6. 推送相关](#36-推送相关) + - [3.6.1. Telegram机器人](#361-telegram机器人) + - [3.6.1.1. botToken](#3611-bottoken) + - [3.6.1.2. chatId](#3612-chatid) + - [3.6.2. 企业微信机器人](#362-企业微信机器人) + - [3.6.2.1. webHookUrl](#3621-webhookurl) + - [3.6.3. 钉钉机器人](#363-钉钉机器人) + - [3.6.3.1. webHookUrl](#3631-webhookurl) + - [3.6.4. Server酱](#364-server酱) + - [3.6.4.1. TurboScKey(Server酱SCKEY)](#3641-turbosckeyserver酱sckey) + - [3.6.5. 酷推](#365-酷推) + - [3.6.5.1. sKey](#3651-skey) + - [3.6.6. 推送到自定义Api](#366-推送到自定义api) + - [3.6.6.1. api](#3661-api) + - [3.6.6.2. placeholder](#3662-placeholder) + - [3.6.6.3. bodyJsonTemplate](#3663-bodyjsontemplate) + - [3.6.7. PushPlus[推荐]](#367-pushplus推荐) + - [3.6.7.1. Token(PushPlus的Token)](#3671-tokenpushplus的token) + - [3.6.7.2. Topic(PushPlus的Topic)](#3672-topicpushplus的topic) + - [3.6.7.3. Channel(PushPlus的Channel)](#3673-channelpushplus的channel) + - [3.6.7.4. Webhook(PushPlus的Webhook)](#3674-webhookpushplus的webhook) + - [3.7. 日志相关](#37-日志相关) + - [3.7.1. ConsoleLogLevel(日志输出等级)](#371-consoleloglevel日志输出等级) + - [3.7.2. ConsoleLogTemplate(日志输出样式)](#372-consolelogtemplate日志输出样式) + + + + +## 1. 配置方式 + + +### 1.1. 方式一:修改配置文件 +推荐使用Release包在本地运行的朋友使用,直接打开文件,将对应的配置值填入,保存即可生效。 + +默认有3个配置文件:`appsettings.json`、`appsettings.Development.json`、`appsettings.Production.json`,分别对应默认、开发与生产环境。 + +如果运行环境为开发环境,则`appsettings.Development.json`优先级高于`appsettings.json`,即`appsettings.Development.json`里的配置会覆盖默认配置(不是全部覆盖,`appsettings.Development.json`里加了几个就覆盖几个); + +如果运行环境为生产环境,则`appsettings.Production.json`优先级高于`appsettings.json`,即`appsettings.Production.json`里的配置会覆盖默认配置(同样不是全部覆盖,`appsettings.Production.json`里加了几个就覆盖几个)。 + +对于不是开发人员的大部分人来说,只需要关注`appsettings.Production.json`即可,因为非调试状态下运行的默认环境就是生产环境。此时如需自定义配置,推荐在`appsettings.Production.json`文件中进行修改(并且以后都只修改`appsettings.Production.json`文件,`appsettings.json`只作为默认模板而存在) + + +### 1.2. 方式二:命令启动时通过命令行参数配置 +在使用命令行启动时,可使用`-key=value`的形式附加配置,所有可用的命令行参数均在 [命令行参数映射](https://github.com/RayWangQvQ/BiliBiliTool/blob/main/src/Ray.BiliBiliTool.Console/commandLineMappings.json) 文件中。 + +* 使用跨平台的依赖包 + +各个系统只要安装了net5环境,均可使用dotnet命令启动,命令样例: + +``` +dotnet Ray.BiliBiliTool.Console.dll -cookieStr=abc -numberOfCoins=5 +``` + +* Windows系统 + +使用自包含包(win-x86-x64.zip),命令样例: + +``` +Ray.BiliBiliTool.Console.exe -cookieStr=abc -numberOfCoins=5 +``` + +* Linux系统 + +使用自包含包(linux.zip),命令样例: + +``` +Ray.BiliBiliTool.Console -cookieStr=abc -numberOfCoins=5 +``` + +如映射文件所展示,支持使用命令行配置的配置项并不多,也不建议大量地使用该种方式进行配置。使用包运行地朋友,除了改配置文件和命令行参数配置外,还可以使用环境变量进行配置,这也是推荐的做法,如下。 + + +### 1.3. 方式三:添加环境变量 + +所有的配置项均可以通过添加环境变量来进行配置,以Windows下依赖net5的系统为例: + +``` +set Ray_RunTasks=Daily +set Ray_BiliBiliCookies__1=abc +set Ray_BiliBiliCookies__2=efg +set Ray_DailyTaskConfig__NumberOfCoins=3 +dotnet Ray.BiliBiliTool.Console.dll +``` + +注意区分单下划线和双下划线,linux系统使用export关键字代替set。 + + +### 1.4. 方式四:托管在GitHub Actions上,使用GitHub Secrets配置 + +使用GitHub Actions,可以通过添加Secret实现配置。 + +比如,配置微信推送的SCKEY,可以添加如下Secret: + +Secret Name:`PUSHSCKEY` + +Secret Value:`123abc` + +这些 Secrets 会通过 workflow 里的yml脚本映射为环境变量,在应用启动时作为环境变量配置源传入程序当中,所以使用 GitHub Secrets 配置的本质是使用环境变量配置。 + +![添加GitHub Secrets](imgs/git-secrets.png) + + +## 2. 优先级 + +以上 4 种配置源,其优先级由低到高依次是:json文件 < 环境变量(和Github Secrets) < 命令行。 + +即,如果既在配置文件中写入了配置值,又在命令行启动时使用命令行参数指定了配置值,则最后会使用命令行的。 + +**对于使用 Github Action 线上运行的朋友,建议只使用 Secrets 进行配置。** 因为 Fork 项目后,不会拷贝源仓库中的 Secrets,可自由的在自己的仓库中进行私人配置。当有新版本发布时,同步仓库会很顺滑,不会影响到已配置的值。 + +当然, Fork 之后自己改了 appsettings.json 文件再提交,也是可以实现配置的。但是一则你的配置值将被暴露出来(别人可通过访问你的仓库里的配置查看到值),二是以后如果需要 PR 源仓库的更新到自己仓库,则要注意保留自己的修改不要被同步操作覆盖。 + + +## 3. 详细配置说明 + + +### 3.1. CookieStr(Cookie字符串) +没有它,程序的运行就没有意义,所以它是必填项。 + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | Cookie字符串1 | +| 值域 | 字符串,英文分号分隔,来自浏览器抓取 | +| 默认值 | 空 | +| 环境变量示范 | `set Ray_BiliBiliCookies__1=abc=123;def=456;` | +| 命令行示范 | 无 | +| GitHub Secrets 示范 | Name:`COOKIESTR` Value: `abc=123;def=456;`| + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | Cookie字符串2 | +| 值域 | 字符串,英文分号分隔,来自浏览器抓取 | +| 默认值 | 空 | +| 环境变量示范 | `set Ray_BiliBiliCookies__2=abc=123;def=456;` | +| 命令行示范 | 无 | +| GitHub Secrets 示范 | Name:`COOKIESTR2` Value: `abc=123;def=456;`| + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | Cookie字符串2 | +| 值域 | 字符串,英文分号分隔,来自浏览器抓取 | +| 默认值 | 空 | +| 环境变量示范 | `set Ray_BiliBiliCookies__3=abc=123;def=456;` | +| 命令行示范 | 无 | +| GitHub Secrets 示范 | Name:`COOKIESTR3` Value: `abc=123;def=456;`| + + +### 3.2. 安全相关的配置 + +#### 3.2.1. IsSkipDailyTask(是否跳过执行任务) +用于特殊情况下,通过配置灵活的开启和关闭整个应用. +配置为关闭后,程序会跳过所有任务,不会调用B站任何接口。 + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 是否跳过执行任务 | +| 值域 | [true,false] | +| 默认值 | false | +| 环境变量示范 | `set Ray_Security__IsSkipDailyTask=true` | +| 命令行示范 | 无 | +| GitHub Secrets 示范 | Name:`ISSKIPDAILYTASK` Value: `true`| + +若想要彻底关闭,即Actions不运行,点击Actions进入Workflows列表,点击相应任务(如`bilibili-daily-task.yml`)的Workflow,在搜索框右侧有一个三个点的设置按钮,点击按钮后,在弹出的下拉列表里选中`Disable workflow`项即可。 + + +#### 3.2.2. RandomSleepMaxMin(随机睡眠的最大时长) +用于设置程序启动后,随机睡眠时间的最大上限值,单位为分钟。 + +默认为10,即程序每天运行后会随机睡眠1到10分钟。这样可以避免程序每天准点地在同一时间运行,太像机器。 + +配置为0则不进行睡眠。 + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 随机睡眠时长的最大值 | +| 值域 | 数字 | +| 默认值 | 10 | +| 环境变量示范 | `set Ray_Security__RandomSleepMaxMin=20` | +| 命令行示范 | `-randomSleepMaxMin=20` | +| GitHub Secrets 示范 | Name:`RANDOMSLEEPMAXMIN` Value: `20`| + + +#### 3.2.3. IntervalSecondsBetweenRequestApi(两次调用B站Api之间的间隔秒数) +因为有朋友反馈,程序在1到2秒内连续调用B站的Api过快,担心会被B站的安全策略检测到,影响自己的账号安全。 + +所以我添加这个安全策略的配置,可以设置两次Api请求之间的最短时间间隔。 + +举例来说,之前的5次投币可能是在1秒之内完成的,现在通过配置间隔时间,可以将其变为投币一次后,经过4到5秒才会投下一个,提升程序的演技,让它表现的就像真人在投币一样,骗过BiliBili~ + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 两次调用B站Api之间的间隔秒数 | +| 值域 | [0,+] | +| 默认值 | 3 | +| 环境变量示范 | `set Ray_Security__IntervalSecondsBetweenRequestApi=20` | +| 命令行示范 | `-intervalSecondsBetweenRequestApi=10` | +| GitHub Secrets 示范 | Name:`INTERVALSECONDSBETWEENREQUESTAPI` Value: `10`| + + + +#### 3.2.4. IntervalMethodTypes(间隔秒数所针对的HttpMethod) +间隔秒数所针对的HttpMethod类型,服务于上一个配置。服务器一般对GET请求不是很敏感,建议只针对POST请求做间隔就可以了。 + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 两次调用B站Api之间的间隔秒数 | +| 值域 | [GET,POST],多个以英文逗号分隔 | +| 默认值 | POST | +| 环境变量示范 | `set Ray_Security__IntervalMethodTypes=GET,POST` | +| 命令行示范 | `-intervalMethodTypes=GET,POST` | +| GitHub Secrets 示范 | Name:`INTERVALMETHODTYPES` Value: `GET,POST`| + + +#### 3.2.5. UserAgent(请求B站接口时头部传递的User-Agent) +近期出现登录接口报错412([#61](https://github.com/RayWangQvQ/BiliBiliTool/issues/61)),有朋友发现通过修改UA可以暂时解决问题,所以开放为了配置。 + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 请求B站接口时头部传递的User-Agent | +| 值域 | 字符串,可以F12从自己的浏览器获取 | +| 默认值 | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36 Edg/87.0.664.41 | +| 环境变量示范 | `set Ray_Security__UserAgent=abc` | +| 命令行示范 | 不开放命令行 | +| GitHub Secrets 示范 | Name:`USERAGENT` Value: `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36 Edg/87.0.664.41`| + +获取浏览器中自己的UA的方法见下图: + +![获取User-Agent](https://github.com/RayWangQvQ/BiliBiliTool.Docs/blob/main/imgs/get-user-agent.png) + + + +#### 3.2.6. WebProxy(代理) +支持需要账户密码的代理。 + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 调用api时的全局代理 | +| 值域 | 字符串,形如:user:password@host:port | +| 默认值 | 无 | +| 环境变量示范 | `set Ray_Security__WebProxy=127.0.0.1:10240` | +| 命令行示范 | 不开放命令行 | +| GitHub Secrets 示范 | Name:`WEBPROXY` Value: `user:password@host:port`| + + +### 3.3. 每日任务相关 + +#### 3.3.1. NumberOfCoins(每日投币数量) +每天投币的总目标数量,因为投币获取经验只与次数有关,所以程序每次投币只会投1个,也就是说该配置也表示每日投币次数。 + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 每天投币的总目标数量 | +| 值域 | [0,5],为安全考虑,程序内部还会做验证,最大不能超过5 | +| 默认值 | 5 | +| 环境变量示范 | `set Ray_DailyTaskConfig__NumberOfCoins=abc` | +| 命令行示范 | `-numberOfCoins=3` | +| GitHub Secrets 示范 | Name:`NUMBEROFCOINS` Value: `3`| + + +#### 3.3.2. SelectLike(投币时是否同时点赞) + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 投币时是否同时点赞 | +| 值域 | [true,false] | +| 默认值 | false | +| 环境变量示范 | `set Ray_DailyTaskConfig__SelectLike=true` | +| 命令行示范 | `-selectLike=true` | +| GitHub Secrets 示范 | Name:`SELECTLIKE` Value: `true`| + + +#### 3.3.3. SupportUpIds(优先选择支持的up主Id集合) +专门为强迫症的朋友准备的配置。有人觉得随机选择视频来观看、分享和投币,一则不是自己的真实意愿,二则担心会影响B站对个人的喜好猜测产生偏差,导致以后推荐的视频都并不是自己真正喜欢的。 + +所以就有这个配置,通过填入自己选择的up主ID,则以后观看、分享和投币,都会优先从配置的up主下面挑选视频,如果没有找到才去其他地方随机挑选视频。 + +其优先等级是最高的,如果配置了,在投币或观看、分享视频时,会优先从配置的up主中随机获取视频。 + +程序会最多尝试随机获取10次,如果10均未获取到可投币的视频(比如都已经投过,不能重复投了),则会去你的**特别关注**列表中随机再获取,再然后会去**普通关注**列表中随机获取,最后会去排行榜中随机获取。 + +**注意:该配置的默认值是作者的upId,如需换掉的话,直接更改即可。** + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 优先选择支持的up主Id集合 | +| 值域 | up主ID,多个用英文逗号分隔,默认是作者本人的UpId,如需删除可以配置为空格字符串或“-1”,也可以配置为其他人的UpId | +| 默认值 | 作者的upId | +| 环境变量示范 | `set Ray_DailyTaskConfig__SupportUpIds=220893216,17819768,43619319,14583962,44473221,123938419,34858100` | +| 命令行示范 | `-supportUpIds=220893216,17819768,43619319,14583962,44473221,123938419,34858100` | +| GitHub Secrets 示范 | Name:`SUPPORTUPIDS` Value: `220893216,17819768,43619319,14583962,44473221,123938419,34858100`| + +获取UP主的Id方法:打开bilibili,进入欲要选择的UP主主页,在url中和简介中,都可获得该UP主的Id,如下图所示: + +![UpId](/imgs/get-up-id.png) + + +#### 3.3.4. DayOfAutoCharge(每月几号自动充电) +使用大会员免费赠送的B币券自动充电,如不使用,每个月结束会自动失效。没有B币券或B币券余额不足2,不会进行充电。 + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 每月几号自动充电 | +| 值域 | [-1,31],-1表示不指定,默认月底最后一天;0表示不充电 | +| 默认值 | -1 | +| 环境变量示范 | `set Ray_DailyTaskConfig__DayOfAutoCharge=25` | +| 命令行示范 | `-dayOfAutoCharge=25` | +| GitHub Secrets 示范 | Name:`DAYOFAUTOCHARGE` Value: `25`| + + +#### 3.3.5. AutoChargeUpId(充电对象) +充电对象的upId,需要配合前一个DayOfAutoCharge配置项使用。-1表示不指定,默认为自己充电;其他Id则会尝试为配置的UpId充电。 + +**注意:该配置的默认值是作者的upId,如果你已认证通过了创作身份(即可以为自己充电),则建议将其改为为自己充电(配置为-1即可),也可以配置为某个自己指定的创作者upId。 +当然我个人不阻止大佬们把Id配成我的,个人维护开源不易,感谢支持~** + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 充电对象的Id | +| 值域 | up的Id字符串,默认是作者本人的UpId;-1表示不指定,为自己充电;其他Id则会尝试为配置的UpId充电 | +| 默认值 | 作者的upId | +| 环境变量示范 | `set Ray_DailyTaskConfig__AutoChargeUpId=220893216` | +| 命令行示范 | `-autoChargeUpId=220893216` | +| GitHub Secrets 示范 | Name:`AUTOCHARGEUPID` Value: `220893216`| + + +#### 3.3.6. DayOfReceiveVipPrivilege(每月几号自动领取会员权益) + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 每月几号自动领取会员权益 | +| 值域 | [-1,31],-1表示不指定,默认每月1号;0表示不领取 | +| 默认值 | 1 | +| 环境变量示范 | `set Ray_DailyTaskConfig__DayOfReceiveVipPrivilege=2` | +| 命令行示范 | `-dayOfReceiveVipPrivilege=2` | +| GitHub Secrets 示范 | Name:`DAYOFRECEIVEVIPPRIVILEGE` Value: `2`| + + +#### 3.3.7. DayOfExchangeSilver2Coin(每月几号进行直播中心银瓜子兑换硬币) + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 每月几号进行直播中心银瓜子兑换硬币 | +| 值域 | [-1,31],-1表示不指定,默认每月最后一天;-2表示每天;0表示不进行兑换 | +| 默认值 | -1 | +| 环境变量示范 | `set Ray_DailyTaskConfig__DayOfExchangeSilver2Coin=1` | +| 命令行示范 | `-dayOfExchangeSilver2Coin=1` | +| GitHub Secrets 示范 | Name:`DayOfExchangeSilver2Coin` Value: `1`| + + +### 3.4. 天选时刻抽奖相关 + + +#### 3.4.1. ExcludeAwardNames(根据关键字排除奖品) + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 根据关键字排除奖品,当奖品名称中包含这些关键字时,不参与抽奖 | +| 值域 | 一串字符串,多个关键字使用`\|`符号隔开 | +| 默认值 | `舰\|船\|航海\|代金券\|自拍\|照\|写真\|图` | +| 环境变量示范 | `set Ray_LiveLotteryTaskConfig__ExcludeAwardNames=舰\|船\|航海\|代金券` | +| 命令行示范 | `-excludeAwardNames=舰\|船\|航海\|代金券` | +| GitHub Secrets 示范 | Name:`EXCLUDEAWARDNAMES` Value: `舰\|船\|航海\|代金券`| + + +#### 3.4.2. IncludeAwardNames(根据关键字指定奖品) + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 根据关键字指定奖品,只有当奖品名称中包含这些关键字时,才参与抽奖,否则不参与 | +| 值域 | 一串字符串,多个关键字使用`\|`符号隔开 | +| 默认值 | 空 | +| 环境变量示范 | `set Ray_LiveLotteryTaskConfig__IncludeAwardNames=红包\|现金\|元\|块\|支付宝` | +| 命令行示范 | `-includeAwardNames=红包\|现金\|元\|块\|支付宝` | +| GitHub Secrets 示范 | Name:`INCLUDEAWARDNAMES` Value: `红包\|现金\|元\|块\|支付宝`| + + +#### 3.4.3. AutoGroupFollowings(天选抽奖后是否自动分组关注的主播) + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 天选抽奖后是否自动分组关注的主播 | +| 值域 | [true,false] | +| 默认值 | true | +| 环境变量示范 | `set Ray_LiveLotteryTaskConfig__AutoGroupFollowings=true` | +| 命令行示范 | 无 | +| GitHub Secrets 示范 | Name:`AUTOGROUPFOLLOWINGS` Value: `true`| + + +### 3.5. 批量取关相关 + + +#### 3.5.1. GroupName(想要批量取关的分组名称) + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 想要批量取关的分组名称 | +| 值域 | 字符串 | +| 默认值 | 天选时刻 | +| 环境变量示范 | `set Ray_UnfollowBatchedTaskConfig__GroupName=默认分组` | +| 命令行示范 | 无 | +| GitHub Secrets 示范 | 无,在unfollow-batched-task.yml工作流中通过input输入 | + + +#### 3.5.2. Count(批量取关的人数) + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 分组下要取关的人数,从后往前取关 | +| 值域 | 数字,[-1,+],-1表示全部 | +| 默认值 | 2 | +| 环境变量示范 | `set Ray_UnfollowBatchedTaskConfig__Count=-1` | +| 命令行示范 | 无 | +| GitHub Secrets 示范 | 无,在unfollow-batched-task.yml工作流中通过input输入 | + + +### 3.6. 推送相关 +v1.0.x仅支持推送到Server酱,v1.1.x之后重新定义了推送地概念,将推送仅看作不同地日志输出端,与Console、File没有本质区别。 + +配置多个,多个端均会收到日志消息。推荐Telegram、企业微信、Server酱。 + + +#### 3.6.1. Telegram机器人 +![TG推送效果](/imgs/push-tg.png) + +##### 3.6.1.1. botToken +点击 https://core.telegram.org/api#bot-api 查看如何创建机器人并获取到机器人的botToken。 + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 用于将日志输出到Telegram机器人 | +| 值域 | 一串字符串 | +| 默认值 | 空 | +| 环境变量示范 | | +| 命令行示范 | 无 | +| GitHub Secrets 示范 | Name:`PUSHTGTOKEN` Value: `123456:abcdefg`| + + +##### 3.6.1.2. chatId +点击 https://api.telegram.org/bot{TOKEN}/getUpdates 获取到与机器人的chatId(需要用上面获取到的Token替换进链接里的{TOKEN}后访问) + +P.S.访问链接需要能访问“外网”,有vpn的挂vpn。 + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 用于将日志输出到Telegram机器人 | +| 值域 | 一串字符串 | +| 默认值 | 空 | +| 环境变量示范 | | +| 命令行示范 | 无 | +| GitHub Secrets 示范 | Name:`PUSHTGCHATID` Value: `654321`| + + +#### 3.6.2. 企业微信机器人 +在群内添加机器人,获取到机器人的WebHook地址,添加到配置中。 + +![企业微信推送效果](/imgs/push-workweixin.png) + + +##### 3.6.2.1. webHookUrl + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 用于将日志输出到企业微信机器人 | +| 值域 | 一串字符串 | +| 默认值 | 空 | +| 环境变量示范 | | +| 命令行示范 | 无 | +| GitHub Secrets 示范 | Name:`PUSHWEIXINURL` Value: `abcdefg`| + + +#### 3.6.3. 钉钉机器人 +在群内添加机器人,获取到机器人的WebHook地址,添加到配置中。 + +![钉钉推送效果](/imgs/push-ding.png) + + +##### 3.6.3.1. webHookUrl + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 用于将日志输出到钉钉机器人 | +| 值域 | 一串字符串 | +| 默认值 | 空 | +| 环境变量示范 | | +| 命令行示范 | 无 | +| GitHub Secrets 示范 | Name:`PUSHDINGURL` Value: `abcdefg`| + + +#### 3.6.4. Server酱 +官网: http://sc.ftqq.com/9.version + +![Server酱推送效果](/imgs/wechat-push.png) + + +##### 3.6.4.1. TurboScKey(Server酱SCKEY) +获取方式请参考官网。 + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 用于微信推送的SCKEY | +| 值域 | 一串字符串 | +| 默认值 | 空 | +| 环境变量示范 | `set Ray_Serilog__WriteTo__6__Args__turboScKey=abcdefg` | +| 命令行示范 | | +| GitHub Secrets 示范 | Name:`PUSHSERVERTSCKEY` Value: `abcdefg`| + + +#### 3.6.5. 酷推 +https://cp.xuthus.cc/ + +##### 3.6.5.1. sKey +该平台可能还在完善当中,对接时我发现其接口定义不规范,且机器人容易被封,所以不推荐使用,且不接受提酷推推送相关bug。 + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 用于将日志输出到QQ | +| 值域 | 一串字符串 | +| 默认值 | 空 | +| 环境变量示范 | | +| 命令行示范 | 无 | +| GitHub Secrets 示范 | Name:`PUSHCOOLSKEY` Value: `abcdefg`| + + +#### 3.6.6. 推送到自定义Api +这是我简单封装了一个通用的推送接口,可以推送到任意的api地址,如果有自己的机器人或自己的用于接受日志的api,可以根据需要自定义配置。 + +##### 3.6.6.1. api + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 自定义用来接受日志的api地址 | +| 值域 | 一串字符串 | +| 默认值 | 空 | +| 环境变量示范 | | +| 命令行示范 | 无 | +| GitHub Secrets 示范 | Name:`PUSHOTHERAPI` Value: `abcdefg`| + +##### 3.6.6.2. placeholder + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 占位符 | +| 值域 | 一串字符串 | +| 默认值 | 空 | +| 环境变量示范 | | +| 命令行示范 | 无 | +| GitHub Secrets 示范 | Name:`PUSHOTHERPLACEHOLDER` Value: `#msg#`| + +##### 3.6.6.3. bodyJsonTemplate + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | post发送的body,格式为json字符串 | +| 值域 | 一串字符串 | +| 默认值 | 空 | +| 环境变量示范 | | +| 命令行示范 | 无 | +| GitHub Secrets 示范 | Name:`PUSHOTHERBODYJSONTEMPLATE` Value: `{\"content\":#msg#}`| + + +#### 3.6.7. PushPlus[推荐] +官网: http://www.pushplus.plus/doc/ + + +##### 3.6.7.1. Token(PushPlus的Token) +获取方式请参考官网。 + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 用于推送的Token | +| 值域 | 一串字符串 | +| 默认值 | 空 | +| 环境变量示范 | `set Ray_Serilog__WriteTo__9__Args__token=abcdefg` | +| 命令行示范 | | +| GitHub Secrets 示范 | Name:`PUSHPLUSTOKEN` Value: `abcdefg`| + + +##### 3.6.7.2. Topic(PushPlus的Topic) +获取方式请参考官网。 + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 用于设置群发 | +| 值域 | 一串字符串 | +| 默认值 | 空 | +| 环境变量示范 | `set Ray_Serilog__WriteTo__9__Args__topic=abcdefg` | +| 命令行示范 | | +| GitHub Secrets 示范 | Name:`PUSHPLUSTOPIC` Value: `abcdefg`| + + +##### 3.6.7.3. Channel(PushPlus的Channel) +获取方式请参考官网。 + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 用于设置推送通道 | +| 值域 | 一串字符串,[wechat,webhook,cp,sms,mail] | +| 默认值 | 空 | +| 环境变量示范 | `set Ray_Serilog__WriteTo__9__Args__channel=abcdefg` | +| 命令行示范 | | +| GitHub Secrets 示范 | Name:`PUSHPLUSCHANNEL` Value: `wechat`| + + +##### 3.6.7.4. Webhook(PushPlus的Webhook) +获取方式请参考官网。 + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | webhook编码(不是地址),在官网平台设定,仅在channel使用webhook渠道和CP渠道时需要填写 | +| 值域 | 一串字符串 | +| 默认值 | 空 | +| 环境变量示范 | `set Ray_Serilog__WriteTo__9__Args__webhook=abcdefg` | +| 命令行示范 | | +| GitHub Secrets 示范 | Name:`PUSHPLUSWEBHOOK` Value: `abc`| + + + +### 3.7. 日志相关 + + +#### 3.7.1. ConsoleLogLevel(日志输出等级) +这里的日志等级指的是 Console 的等级,即 GitHub Actions 里和微信推送里看到的日志。 + +为了美观, BiliBiliTool 默认只输出最低等级为 Information 的日志,保证只展示最精简的信息。 + +但是经过几轮反馈发现,这样会造成 GitHub Actions 运行的朋友遇到异常时无法查看详细日志信息(本地运行的朋友可以通过日志文件看到详细的日志信息)。 + +所以就将日志等级开放为配置了,通过更改等级,可以指定日志输出的详细程度。 + +BiliBiliTool 使用 Serilog 作为日志组件,所以其值域与 Serilog 的日志等级选项相同,这里只建议在需要调试时改为`Debug`,应用会输出详细的调试日志信息,包括每次调用B站Api的请求参数与返回数据。 + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 设置Console输出的日志的详细程度 | +| 值域 | [Infromation,Debug] | +| 默认值 | 1 | +| 环境变量示范 | | +| 命令行示范 | 暂未开放到命令行 | +| GitHub Secrets 示范 | Name:`CONSOLELOGLEVEL` Value: `Debug`| + + +#### 3.7.2. ConsoleLogTemplate(日志输出样式) +这里的日志样式指的是 Console 的等级,即 GitHub Actions 里和微信推送里看到的日志。 + +通过更改模板样式,可以指定日志输出的样式,比如不输出时间和等级,做到最精简的样式。 + +BiliBiliTool 使用 Serilog 作为日志组件,所以可以参考 Serilog 的日志样式模板。 + + +| TITLE | CONTENT | +| ---------- | -------------- | +| 意义 | 设置Console输出的日志样式 | +| 值域 | 字符串 | +| 默认值 | `[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}` | +| 环境变量示范 | | +| 命令行示范 | 太长了,不考虑开放到命令行 | +| GitHub Secrets 示范 | Name:`CONSOLELOGTEMPLATE` Value: `{Message:lj}{NewLine}{Exception}`| + diff --git a/docs/donate-list.md b/docs/donate-list.md new file mode 100644 index 000000000..97e58b296 --- /dev/null +++ b/docs/donate-list.md @@ -0,0 +1,87 @@ +# 赞赏 + +| 赞赏人 | 时间 | 金额 | 方式 | 留言 | 回复 +| ---------- | -------------- | -------------- | -------------- | -------------- | -------------- | +| Jonty | 2020-11-04 | ¥5 | 微信 | 不知可否加个联系方式,讨论一下b站小公举 | 你没有留微信号啊大兄弟 | +| 春歌 | 2020-11-06 | ¥5 | 微信 | 赞赏一下~ | | +| 雅南 | 2020-11-08 | ¥1 | 微信 | 赞赏一下~ | | +| RainMeter | 2020-11-09 | ¥1 | 微信 | 大佬牛逼 | | +| 1998 | 2020-11-10 | ¥1 | 微信 | 谢谢大佬,但是投币总是失败 | 有问题可以加群讨论 | +| Andy | 2020-11-10 | ¥1 | 微信 | 赞赏一下~ | | +| 不若艳阳 | 2020-11-11 | ¥10 | 微信 | 赞赏一下~ | | +| 努力努力再努力 | 2020-11-11 | ¥1 | 微信 | 赞赏一下~ | | +| Wandering Ghost | 2020-11-12 | ¥1 | 微信 | 好活,当赏 | | +| sadhu | 2020-11-12 | ¥1 | 支付宝 | 加油 | | +| 浮蘭·鳥ドス | 2020-11-12 | ¥1 | 微信 | 加油!在一个微信公众号看到这个 | | +| Ⅶ | 2020-11-12 | ¥1 | 微信 | 太棒啦!支持您! | | +| 舞飞扬 | 2020-11-12 | ¥1 | 支付宝 | 多谢bilibilitool | | +| 王雨桐 | 2020-11-13 | ¥1 | 微信 | 感谢ps借用作者项目完成我开源选修作业——分析一款开源软件 | | +| 郁宁 | 2020-11-13 | ¥5 | 微信 | Godd Job | | +| 半岛 | 2020-11-13 | ¥1 | 支付宝 | 赞赏一下~ | | +| Wenson | 2020-11-19 | ¥10 | 微信 | 搞的不错👍 | | +| xingxing | 2020-11-20 | ¥1 | 支付宝 | 这东西太好用了,点个 | | +| | 2020-11-21 | ¥10 | 微信 | 单纯问下,有做成云函数的可行性吗 | 目前没了解过云函数相关,有懂的朋友欢迎PR~ | +| Gaogao | 2020-11-21 | ¥1 | 支付宝 | 老哥加油加油^0^ | | +| 老狗 | 2020-11-23 | ¥10 | 微信 | 好活当赏吗 | | +| | 2020-11-23 | ¥10 | 微信 | | | +| 还输给回忆不成 | 2020-11-23 | ¥1 | 微信 | | | +| Winfor | 2020-11-23 | ¥5 | 微信 | 感谢分享 | | +| 那个冰 | 2020-11-23 | ¥1 | 微信 | 如果一开始努力的方向就是错误的,那么只会越来越忙。感谢 | | +| Luv(sic) part 2 | 2020-11-24 | ¥1 | 微信 | 牛逼嗷,上班划水新技能get | | +| 刘小明 | 2020-11-24 | ¥3 | 微信 | 大佬喝冰阔落 | | +| 青翘 | 2020-11-25 | ¥1 | 支付宝 | 赞赏一下~ | | +| CT | 2020-11-25 | ¥1 | 微信 | 感谢 | | +| Panda | 2020-11-25 | ¥1 | 微信 | 很好用的工具 | | +| Che | 2020-11-25 | ¥1 | 微信 | 微信推送的配置方法能不能说的再详细一点,没用过有点懵 | | +| 张浩 | 2020-11-25 | ¥1 | 微信 | 集资给你买霸王 | 真棒 | +| 骷髅刀皇 | 2020-11-26 | ¥1 | 支付宝 | 外行人第一个再GitHub跑成功的源码 | | +| | 2020-11-26 | ¥1 | 微信 | 项目有意思 | | +| ohh | 2020-11-27 | ¥1 | 微信 | 集资买霸王 duang😏 | 😏 | +| 夏风 | 2020-11-28 | ¥1 | 支付宝 | 赞赏一下~ | | +| 征服神的眼睛 | 2020-11-27 | ¥1 | 微信 | 头发+1 | | +| 长空X | 2020-11-30 | ¥1 | 支付宝 | 加油!我是hjkl950217 | 贡献的代码很棒,欢迎加入 | +| 旧城空梦 | 2020-11-30 | ¥5 | 微信 | 拉我进下微信群,谢谢,我微信*** | 已拉 | +| Mr.华 | 2020-12-01 | ¥1 | 微信 | 白嫖党 今天给你投币来了 | | +| 暮雨 | 2020-12-01 | ¥1 | 微信 | 不多说,好用412还没有解决 | 大于等于1.0.14版本解决啦 | +| 闪电 | 2020-12-01 | ¥1 | 微信 | 欧拉拉 | | +| 山水之间 | 2020-12-01 | ¥1 | 微信 | 加油💪 | 💪 | +| 八八九九 | 2020-12-02 | ¥1 | 微信 | cool | | +| 。 | 2020-12-02 | ¥1 | 微信 | 支持 | | +| Carnina | 2020-12-06 | ¥5 | 微信 | 谢谢大大的bili工具 | | +| 大疼 | 2020-12-07 | ¥1 | 支付宝 | 教程很细致,谢谢 | | +| | 2020-12-07 | ¥1 | 微信 | 谢谢大佬B站的项目 | | +| Nirvana | 2020-12-08 | ¥1 | 微信 | 求进群我的微信*** | 已拉 | +| | 2020-12-17 | ¥1 | 微信 | 微信昵称时空白的 | 是的 | +| aiyΑ | 2020-12-23 | ¥1 | 微信 | | | +| 就这样被作业征服 | 2021-01-02 | ¥1 | 微信 | 太棒了,十分感谢 | | +| けっこ | 2021-01-03 | ¥1 | 微信 | bilibilitools加油! | 加油~ | +| Ruo | 2021-01-05 | ¥1 | 微信 | 加油加油 | 加油~ | +| | 2021-01-06 | ¥1 | 微信 | | | +| 199863nothing | 2021-01-06 | ¥1 | 支付宝 | 等俺五级给你买霸王洗发水 | 棒 | +| 小伊 | 2021-01-06 | ¥1 | 支付宝 | 赞赏一下~ | | +| 多喝热水吧你 | 2021-01-07 | ¥10 | 微信 | 感谢作者,支持一下,太辛苦了 | 感谢 | +| YNight-FZQ | 2021-01-08 | ¥5 | 微信 | 2021,要加油哦!感谢作者分享 | 一起加油~ | +| 外比巴卜 | 2021-01-09 | ¥3 | 微信 | 加油^o^~,做的很棒 | 支持开源的你们更棒~ | +| 199863nothing | 2021-01-09 | ¥1 | 微信 | 求拉进群(ง •_•)ง | 你没有留微信号啊大兄弟 | +| 黑影 | 2021-01-10 | ¥5 | 微信 | Mreblack7感谢7楼大大可以加微信群嘛qwq | 你没有留微信号啊大兄弟 | +| 199863nothing | 2021-01-11 | ¥1 | 微信 | 微信号:\*\*\*,大佬捞一捞我 | 已拉~ | +| . | 2021-01-12 | ¥5 | 微信 | 进群进群,冲冲冲 | 你没有留微信号啊大兄弟 | + + +个人维护开源不易 + +如果你觉得我写的东西对你确实有帮助 + +或者,你就是单纯的想集资给我买瓶霸王增发液 + +那么下面的赞赏码可以扫一扫啦 + +(赞赏时记得留下【昵称】和【留言】,上面这么多留言要想要进群或者加好友的,一定一定要记得留微信号哈,微信赞赏页面是看不到微信号的~) + +* 微信扫码自动赞赏1元 + +![微信赞赏码](https://www.cnblogs.com/images/cnblogs_com/RayWang/1490646/o_%e5%be%ae%e4%bf%a1%e8%b5%9e%e8%b5%8f%e7%a0%81.jpg) + +* 支付宝扫码自动赞赏1元 + +![支付宝赞赏吗](https://img2018.cnblogs.com/blog/1327955/201907/1327955-20190722174147547-1575068076.jpg) diff --git a/docs/imgs/2233.png b/docs/imgs/2233.png new file mode 100644 index 000000000..59d6606b0 Binary files /dev/null and b/docs/imgs/2233.png differ diff --git a/docs/imgs/appsettings-cookie.png b/docs/imgs/appsettings-cookie.png new file mode 100644 index 000000000..296b1f2b3 Binary files /dev/null and b/docs/imgs/appsettings-cookie.png differ diff --git a/docs/imgs/donate.jpg b/docs/imgs/donate.jpg new file mode 100644 index 000000000..daf07e94f Binary files /dev/null and b/docs/imgs/donate.jpg differ diff --git a/docs/imgs/get-bilibili-web-cookie.jpg b/docs/imgs/get-bilibili-web-cookie.jpg new file mode 100644 index 000000000..c3a2b1de1 Binary files /dev/null and b/docs/imgs/get-bilibili-web-cookie.jpg differ diff --git a/docs/imgs/get-up-id.png b/docs/imgs/get-up-id.png new file mode 100644 index 000000000..8703c96e4 Binary files /dev/null and b/docs/imgs/get-up-id.png differ diff --git a/docs/imgs/get-user-agent.png b/docs/imgs/get-user-agent.png new file mode 100644 index 000000000..383a16a3a Binary files /dev/null and b/docs/imgs/get-user-agent.png differ diff --git a/docs/imgs/git-secrets-add-cookie.png b/docs/imgs/git-secrets-add-cookie.png new file mode 100644 index 000000000..085cdb66f Binary files /dev/null and b/docs/imgs/git-secrets-add-cookie.png differ diff --git a/docs/imgs/git-secrets.png b/docs/imgs/git-secrets.png new file mode 100644 index 000000000..8a50b8b91 Binary files /dev/null and b/docs/imgs/git-secrets.png differ diff --git a/docs/imgs/github-actions-close.png b/docs/imgs/github-actions-close.png new file mode 100644 index 000000000..fd73af10e Binary files /dev/null and b/docs/imgs/github-actions-close.png differ diff --git a/docs/imgs/github-actions-log-1.png b/docs/imgs/github-actions-log-1.png new file mode 100644 index 000000000..12e8e53bd Binary files /dev/null and b/docs/imgs/github-actions-log-1.png differ diff --git a/docs/imgs/github-actions-log-2.png b/docs/imgs/github-actions-log-2.png new file mode 100644 index 000000000..06c831c54 Binary files /dev/null and b/docs/imgs/github-actions-log-2.png differ diff --git a/docs/imgs/github-env-count-down.png b/docs/imgs/github-env-count-down.png new file mode 100644 index 000000000..e2dbcaf6b Binary files /dev/null and b/docs/imgs/github-env-count-down.png differ diff --git a/docs/imgs/github-env-list.png b/docs/imgs/github-env-list.png new file mode 100644 index 000000000..9fd72fe8e Binary files /dev/null and b/docs/imgs/github-env-list.png differ diff --git a/docs/imgs/github-env-wait-timer.png b/docs/imgs/github-env-wait-timer.png new file mode 100644 index 000000000..7bb7192cf Binary files /dev/null and b/docs/imgs/github-env-wait-timer.png differ diff --git a/docs/imgs/github-secrets-other-configs.png b/docs/imgs/github-secrets-other-configs.png new file mode 100644 index 000000000..9bb68a2b7 Binary files /dev/null and b/docs/imgs/github-secrets-other-configs.png differ diff --git a/docs/imgs/push-ding.png b/docs/imgs/push-ding.png new file mode 100644 index 000000000..262bd2dda Binary files /dev/null and b/docs/imgs/push-ding.png differ diff --git a/docs/imgs/push-tg.png b/docs/imgs/push-tg.png new file mode 100644 index 000000000..14f39dc63 Binary files /dev/null and b/docs/imgs/push-tg.png differ diff --git a/docs/imgs/push-workweixin.png b/docs/imgs/push-workweixin.png new file mode 100644 index 000000000..013dee695 Binary files /dev/null and b/docs/imgs/push-workweixin.png differ diff --git a/docs/imgs/run-exe.png b/docs/imgs/run-exe.png new file mode 100644 index 000000000..c35c70b48 Binary files /dev/null and b/docs/imgs/run-exe.png differ diff --git a/docs/imgs/run-workflow.png b/docs/imgs/run-workflow.png new file mode 100644 index 000000000..068d74afe Binary files /dev/null and b/docs/imgs/run-workflow.png differ diff --git a/docs/imgs/wechat-push.png b/docs/imgs/wechat-push.png new file mode 100644 index 000000000..c8a799411 Binary files /dev/null and b/docs/imgs/wechat-push.png differ diff --git a/docs/questions.md b/docs/questions.md new file mode 100644 index 000000000..079bd5e78 --- /dev/null +++ b/docs/questions.md @@ -0,0 +1,221 @@ +# 常见问题 + +**[目录]** + + +- [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) + + + +## 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环境 +若需手动安装运行环境,请点击 ![Download .NET 5.0 (Linux, macOS, and Windows)](https://dotnet.microsoft.com/download/dotnet/5.0),分别选择相应平台的`ASP.NET Core Runtime 5.0.0`与`.NET Runtime 5.0.0`的安装包(Installers)进行安装;亦可下载.NET SDK 5.0.100的安装包(上述二者已包含于其中)。 + +注:若已从 ![.NET官网下载入口](https://dotnet.microsoft.com/download) 的“Download .NET Runtime”选项进行了下载安装,则仍需根据上述方法补充安装`ASP.NET Core Runtime 5.0.0`(由于该选项仅提供了`.NET Runtime 5.0.0`的安装包)。 + +## 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。 diff --git a/tencentScf/README.md b/tencentScf/README.md index e69de29bb..8023a1ad7 100644 --- a/tencentScf/README.md +++ b/tencentScf/README.md @@ -0,0 +1,4 @@ +# ѶƺSCF˵ + + +