Skip to content

Commit

Permalink
Merge branch 'release/0.2.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
RayWangQvQ committed Aug 25, 2022
2 parents f996ef6 + 3764f80 commit c271af9
Show file tree
Hide file tree
Showing 29 changed files with 724 additions and 147 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,10 @@
-#197】合并PR,新增了阅读漫画功能到每日任务中(@ChanceLuo
## 0.2.0
- 新增大会员大积分任务
## 0.2.1
- 合并PR(#253#257),更新文档(@layui0320
- 合并PR(#256),重构docker运行是cron构建方式,并优化读取环境变量的方式(@syrinka
- Feature(#65):新增TG推送配置并使用代理功能
- Feature(#240):新增gotify推送
- Feature(#259):大会员状态改为枚举类型,当非会员时自动跳过大积分任务
- Feature:更新、优化docker部署文档
1 change: 1 addition & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ COPY ["src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.PushPlusBatched/Ray.Serilog.Sinks
COPY ["src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.ServerChanBatched/Ray.Serilog.Sinks.ServerChanBatched.csproj", "src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.ServerChanBatched/"]
COPY ["src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.MicrosoftTeamsBatched/Ray.Serilog.Sinks.MicrosoftTeamsBatched.csproj", "src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.MicrosoftTeamsBatched/"]
COPY ["src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.WorkWeiXinAppBatched/Ray.Serilog.Sinks.WorkWeiXinAppBatched.csproj", "src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.WorkWeiXinAppBatched/"]
COPY ["src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.GotifyBatched/Ray.Serilog.Sinks.GotifyBatched.csproj", "src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.GotifyBatched/"]
RUN dotnet restore "src/Ray.BiliBiliTool.Console/Ray.BiliBiliTool.Console.csproj"
COPY . .
WORKDIR "/code/src/Ray.BiliBiliTool.Console"
Expand Down
136 changes: 66 additions & 70 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,35 @@ BiliBiliTool

</div>

**BiliBiliTool 是一个自动执行任务的工具,当我们忘记做某项任务时,它会像一个贴心小助手,按照我们预先吩咐它的命令,在指定频率、时间范围内帮助我们完成计划的任务。**

详细功能如下:

- **每日获取满额升级经验(登录、投币、点赞、分享视频)(支持指定支持up主)**
- **每天漫画签到**
- **每天直播签到**
- **直播中心银瓜子兑换为硬币**
- **每月领取大会员赠送的 5 张 B 币券和福利(忘记或者不领就浪费了哦)**
- **每月领取大会员漫画福利**
- **月底在 B 币券过期前进行充电(支持指定想要支持的up主,如果没有喜欢的up,也可以为自己充个电啊,做个用爱为自己发电的人~**
- **直播中心天选时刻自动参与抽奖**
- **批量取关**
- **大会员大积分任务**
- **支持多账号**
- **理论上支持所有远端的日志推送(默认支持推送到Telegram、企业微信、钉钉、PushPlus、Server酱、钉钉、酷推,另外也支持自定义推送到任意api)**
---
[目录]

<!-- TOC depthFrom:2 -->

- [1. 如何使用](#1-如何使用)
- [1.1. 第一步:获取自己的 Cookie](#11-第一步获取自己的-cookie)
- [1.1. 第一步:获取BiliBili的 Cookie](#11-第一步获取BiliBili的-cookie)
- [1.2. 第二步:配置 Cookie 并运行 BiliBiliTool](#12-第二步配置-cookie-并运行-bilibilitool)
- [1.2.1. 方式一:xxx](#121-方式一xxx)
- [1.2.2. 方式二:下载程序包到本地或服务器运行](#122-方式二下载程序包到本地或服务器运行)
- [1.2.3. 方式三:腾讯云函数SCF](#123-方式三腾讯云函数scf)
- [1.2.4. 方式四:docker容器化运行(推荐)](#124-方式四docker容器化运行推荐)
- [1.2.5. 方式五:青龙运行](#125-方式五青龙运行)
- [1.2.1. 方式一:Docker容器化运行(推荐)](#121-方式一docker容器化运行推荐)
- [1.2.2. 方式二:青龙运行](#122-方式二青龙运行)
- [1.2.3. 方式三:下载程序包到本地或服务器运行](#123-方式三下载程序包到本地或服务器运行)
- [1.2.4. 方式四:腾讯云函数SCF](#124-方式四腾讯云函数scf)
- ~~[1.2.5. 方式五:GitHub Actions](#125-方式五github-actions)~~
- [2. 功能任务说明](#2-功能任务说明)
- [3. 个性化自定义配置](#3-个性化自定义配置)
- [4. 多账号支持](#4-多账号支持)
Expand All @@ -43,27 +60,7 @@ BiliBiliTool

<!-- /TOC -->

**BiliBiliTool 是一个自动执行任务的工具,当我们忘记做某项任务时,它会像一个小助手一样,按照我们预先吩咐她的命令,在指定时间、按照指定频率,帮助我们自动完成计划的任务。**

详细功能如下:

- **每日获取满额升级经验(登录、投币、点赞、分享视频)(支持指定支持up主)**
- **每天漫画签到**
- **每天直播签到**
- **直播中心银瓜子兑换为硬币**
- **每月领取大会员赠送的 5 张 B 币券和福利(忘记或者不领就浪费了哦)**
- **每月领取大会员漫画福利**
- **月底在 B 币券过期前进行充电(支持指定想要支持的up主,如果没有喜欢的up,也可以为自己充个电啊,做个用爱为自己发电的人~**
- **直播中心天选时刻自动参与抽奖**
- **批量取关**
- **大会员大积分任务**
- **支持多账号**
- **理论上支持所有远端的日志推送(默认支持推送到Telegram、企业微信、钉钉、PushPlus、Server酱、钉钉、酷推,另外也支持自定义推送到任意api)**

还有其他一些辅助小功能,大家可以自己去自由探索~

![运行图示](docs/imgs/run-exe.png)

---
**Github 仓库地址:[RayWangQvQ/BiliBiliToolPro](https://github.com/RayWangQvQ/BiliBiliToolPro)**

**注意:**
Expand All @@ -72,52 +69,43 @@ BiliBiliTool
- **所有代码都是开源且透明的,任何人均可查看,程序不会保存或滥用任何用户的个人信息**
- **应用内几乎所有功能都开放为了配置(如任务开关、日期、upId等),请仔细阅读配置文档,自己对自己的配置负责**


本地运行图示:

![运行图示](docs/imgs/run-exe.png)

_(如果图片挂了,请自己架梯子,没有的也可以先参考 [我的博客](https://www.cnblogs.com/RayWang/p/13909784.html),但内容不保证最新)_


## 1. 如何使用

BiliBiliTool 实现自动完成任务的原理,是通过调用一系列开放的api实现的。

**要使用 BiliBiliTool,我们只需要做两步:获取自己的 Cookie 作为配置,然后将其输入 BiliBiliTool 并运行即可。**

### 1.1. 第一步:获取自己的 Cookie
### 1.1. 第一步:获取BiliBili的 Cookie

- 浏览器打开并登录 [bilibili 网站](https://www.bilibili.com/)
- 浏览器打开并登录 [BiliBili 网站](https://www.bilibili.com/)
- 登录成功后,访问 `https://api.bilibili.com/x/web-interface/nav`,按 **F12** 打开"开发者工具",按 **F5** 刷新一下
- 在"开发者工具"面板中,点击 **网络(Network)**,在左侧的请求列表中,找到名称为 `nav` 的接口,点击它
- 依次查找 **Headers** ——> **RequestHeader** ——> **cookie**,可以看到很长一串以英文分号分隔的字符串,复制整个这个cookie字符串(不要使用右键复制,请使用 Ctrl+C 复制,部分浏览器右键可能会进行 UrlDecode ),保存它们到记事本,待会儿会用到。

![获取Cookie图示](docs/imgs/get-bilibili-web-cookie.jpg)

### 1.2. 第二步:配置 Cookie 并运行 BiliBiliTool

运行 BiliBiliTool 主要有 5 种方式:
* Github Actions
* 下载Release包到本地或服务器运行
* 云函数部署
* docker容器化运行
* 青龙运行

熟悉 GitHub 的朋友,推荐使用方式一,可以实现线上的每天自动运行,不需自己动手,一劳永逸。

想先快速运行一下尝个鲜、或是要部署到自己服务器的朋友,可以跳转到方式二 Release 包运行,操作简单快速。

云函数则可以作为 GitHub Actions 的替代平台,优点是触发器独立灵活、可以国内ip,缺点是日志浏览很不人性。

熟悉docker的朋友,可以跳转到方式四 docker容器化运行,以后因为可能涉及到需要持久话的功能,Serverless就不太方便,所以有能力、有条件的话还是建议使用docker。
### 1.2. 第二步:配置 Cookie 并运行 BiliBiliTool

已经部署好了青龙面板跑其他自动任务的朋友,也可以直接在青龙面板中跑BiliBiliTool。
#### 1.2.1. 方式一:Docker容器化运行(推荐)

以下 5 种方式任选一种适合自己的即可。
[>>Docker部署说明](docker/README.md)

#### 1.2.1. 方式一:xxx
暂时删掉该方式避避风头。

也建议所有还在使用该方式运行的朋友,暂时先替换为下面的其他运行方式,避免造成不必要的损失。
#### 1.2.2. 方式二:青龙运行

#### 1.2.2. 方式二:下载程序包到本地或服务器运行
[>>青龙部署教程](qinglong/README.md)
#### 1.2.3. 方式三:下载程序包到本地或服务器运行

如果是 DotNet 开发者,直接 clone 源码然后 vs 打开解决方案,配置 Cookie 后即可直接本地进行运行和调试。
如果是 DotNet 开发者,直接 Clone 源码,然后 VS 打开解决方案,配置 Cookie 后即可直接本地进行运行和调试。

对于不是开发者的朋友,可以通过下载 Release 包到本地或任意服务器运行,步骤如下。
<details>
Expand Down Expand Up @@ -172,18 +160,15 @@ Ray.BiliBiliTool.Console

</details>

#### 1.2.3. 方式三:腾讯云函数SCF
#### 1.2.4. 方式四:腾讯云函数SCF

[>>腾讯云函数部署说明](tencentScf/README.md)

#### 1.2.4. 方式四:docker容器化运行(推荐)

[>>docker部署说明](docker/README.md)

#### 1.2.5. 方式五:青龙运行

[>>青龙部署教程](qinglong/README.md)
#### 1.2.5. 方式五:GitHub Actions
暂时删掉该方式避避风头。

**建议所有使用该方式运行的朋友,暂时先替换其他运行方式,避免造成不必要的损失。**


如果配置了推送,执行成功后接收端会收到推送消息,推送效果如下所示:
Expand Down Expand Up @@ -228,17 +213,27 @@ dotnet Ray.BiliBiliTool.Console.dll --runTasks=Daily&LiveLottery

## 4. 多账号支持

对于 GitHub Actions 托管的,可以通过添加 Key 为 `COOKIESTR2``COOKIESTR3` 的 Secret ,来支持最多 3 个账号。
~~对于 GitHub Actions 托管的,可以通过添加 Key 为 `COOKIESTR2``COOKIESTR3` 的 Secret ,来支持最多 3 个账号。~~

对于其他本地或 docker 托管的,因配置项 `BiliBiliCookies` 被设计为一个字符串数组,所以理论可以添加任意个数的账号。例如,使用环境变量配置的话,可以添加 Key 为 `Ray_BiliBiliCookies__2``Ray_BiliBiliCookies__3``Ray_BiliBiliCookies__4`...的环境变量,以此类推。
Docker或其他方式托管的,因配置项 `BiliBiliCookies` 被设计为一个字符串数组,所以理论可以添加任意个数的账号,例:
```
"BiliBiliCookies": [
"cookies1",
"cookies2",
"..."
],
```

使用环境变量配置的话,可以添加 Key 为 `Ray_BiliBiliCookies__2``Ray_BiliBiliCookies__3``Ray_BiliBiliCookies__4`...的环境变量,以此类推。

## 5. 常见问题

[>>点击查看常见问题文档](docs/questions.md)

[issues(议题)](https://github.com/RayWangQvQ/BiliBiliToolPro/issues)板块可以用来提交**Bug****建议**
[Issues(议题)](https://github.com/RayWangQvQ/BiliBiliToolPro/issues)板块可以用来提交**Bug****建议**

[discussions(讨论)](https://github.com/RayWangQvQ/BiliBiliToolPro/discussions)板块可以用来**提问****讨论**
[Discussions(讨论)](https://github.com/RayWangQvQ/BiliBiliToolPro/discussions)板块可以用来**提问****讨论**

大部分问题其实都可以在文档、议题和讨论中找到答案。

Expand All @@ -247,13 +242,13 @@ dotnet Ray.BiliBiliTool.Console.dll --runTasks=Daily&LiveLottery
* 请先确认是否可以通过升级到最新版本解决
* 然后搜索文档(特别是配置说明文档和常见问题文档)、议题和讨论,查看是否已有其他人遇到相同问题、是否已有解决方案

如果确认还未解决,可以自己提交 issue,或发布 discussions 与大家一起探讨,我会尽快确认并解决。
如果确认还未解决,可以自己提交 Issue,或发布 Discussions 与大家一起探讨,我会尽快确认并解决。

关于如何正确的提交issue,请详见**常见问题文档**)。
关于如何正确的提交Issue,请详见**常见问题文档**)。

## 6. 版本发布及更新

当前正处于稳定的迭代开发中,正常情况下每 2 周会发布一个小版本,详细待更新和计划内容可参见 [projects](https://github.com/RayWangQvQ/BiliBiliToolPro/projects)[issues](https://github.com/RayWangQvQ/BiliBiliTool/issues)
当前正处于稳定的迭代开发中,~~正常情况下每 2 周会发布一个小版本~~,详细待更新和计划内容可参见 [Projects](https://github.com/RayWangQvQ/BiliBiliToolPro/projects)[Issues](https://github.com/RayWangQvQ/BiliBiliTool/issues)

关于新版本发布后,如何同步最新的内容到自己 Fork 的仓库,可参考**常见问题文档**中的 《**我 Fork 之后如何同步原作者的更新内容?**》章节。

Expand All @@ -266,16 +261,16 @@ dotnet Ray.BiliBiliTool.Console.dll --runTasks=Daily&LiveLottery
### 7.1. 贡献代码
如果你有好的想法,欢迎向仓库贡献你的代码,贡献步骤:

* 搜索查看 issue,确定是否已有人提过同类问题
* 搜索查看 Issue,确定是否已有人提过同类问题

* 确认没有同类 issue 后,自己可新建 issue,描述问题或建议
* 确认没有同类 Issue 后,自己可新建 Issue,描述问题或建议

* 如果想自己解决,请 fork 仓库后,在**devlop 分支**进行编码开发,完成后**提交 prdevlop 分支**,并标注解决的 issue 编号
* 如果想自己解决,请 Fork 仓库后,在**develop 分支**进行编码开发,完成后**提交 PRdevelop 分支**,并标注解决的 Issue 编号

我会尽快进行代码审核,测试成功后会合并入 main 主分支,提前感谢您的贡献。

### 7.2. 贡献文档
文档部分由于我个人精力有限(写文档比写代码累多了),所以有些地方写的很简略,有些地方甚至有遗漏和错别字,不能贡献代码的朋友也欢迎来一起维护文档,欢迎 PR 来纠正我,一样都算是对开源做贡献了。
文档部分由于我个人精力有限(写文档比写代码累多了),所以有些地方写的很简略,甚至有遗漏和错别字,不能贡献代码的朋友也欢迎来一起维护文档,欢迎 PR 来纠正我,一样都算是对开源做贡献了。

## 8. 捐赠支持

Expand All @@ -295,7 +290,7 @@ dotnet Ray.BiliBiliTool.Console.dll --runTasks=Daily&LiveLottery

![赞赏码](docs/imgs/donate.jpg)

另外,应用中的优先支持的UP主的配置项,默认是作者的 UpId (只是作为了 json 配置文件的默认值,代码是干净的),需要更改的话,直接修改相应配置即可(secrets或环境变量等各种方式都行)。
> 项目中的优先支持的UP主的配置项,默认是作者的 UpId (只是作为了 JSON 配置文件的默认值,代码是干净的),需要更改的话,直接修改相应配置即可(secrets或环境变量等各种方式都行)。
当然,不改的话,也算是另一种捐赠支持作者的方式啦。

Expand All @@ -316,3 +311,4 @@ dotnet Ray.BiliBiliTool.Console.dll --runTasks=Daily&LiveLottery
Thanks to `JetBrain` for the free certificate support:

![ReSharper logo](https://resources.jetbrains.com/storage/products/company/brand/logos/ReSharper.svg)

8 changes: 7 additions & 1 deletion Ray.BiliBiliTool.sln
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sample", "sample", "{2F1CB892-336C-4672-8A0A-FBAEB4B9EA8A}"
ProjectSection(SolutionItems) = preProject
docker\sample\docker-compose.yml = docker\sample\docker-compose.yml
docker\sample\my_crontab = docker\sample\my_crontab
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ray.Serilog.Sinks.Batched", "src\Ray.Serilog.Sinks\Ray.Serilog.Sinks.Batched\Ray.Serilog.Sinks.Batched.csproj", "{46EF6150-5D68-46B5-AA89-4198185FAF1A}"
Expand Down Expand Up @@ -152,6 +151,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ray.Serilog.Sinks.WorkWeiXi
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ray.Serilog.Sinks.MicrosoftTeamsBatched", "src\Ray.Serilog.Sinks\Ray.Serilog.Sinks.MicrosoftTeamsBatched\Ray.Serilog.Sinks.MicrosoftTeamsBatched.csproj", "{FB9A43DE-00F0-42C4-BF92-AF61D752CCA2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ray.Serilog.Sinks.GotifyBatched", "src\Ray.Serilog.Sinks\Ray.Serilog.Sinks.GotifyBatched\Ray.Serilog.Sinks.GotifyBatched.csproj", "{B00FF75D-4C48-45ED-9A24-5C0D383317EE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -238,6 +239,10 @@ Global
{FB9A43DE-00F0-42C4-BF92-AF61D752CCA2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FB9A43DE-00F0-42C4-BF92-AF61D752CCA2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FB9A43DE-00F0-42C4-BF92-AF61D752CCA2}.Release|Any CPU.Build.0 = Release|Any CPU
{B00FF75D-4C48-45ED-9A24-5C0D383317EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B00FF75D-4C48-45ED-9A24-5C0D383317EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B00FF75D-4C48-45ED-9A24-5C0D383317EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B00FF75D-4C48-45ED-9A24-5C0D383317EE}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -277,6 +282,7 @@ Global
{75A9CC5C-DF92-4D72-A14C-625AA902855B} = {A93210FD-27B6-40E4-B08D-391F96CA2754}
{099C4E10-1114-495C-A664-63A15E77B31A} = {4BAFC980-7A73-45C3-9460-8B8CCB87939B}
{FB9A43DE-00F0-42C4-BF92-AF61D752CCA2} = {4BAFC980-7A73-45C3-9460-8B8CCB87939B}
{B00FF75D-4C48-45ED-9A24-5C0D383317EE} = {4BAFC980-7A73-45C3-9460-8B8CCB87939B}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {197319DA-1148-4A99-847C-8B270B6A29AB}
Expand Down
2 changes: 1 addition & 1 deletion common.props
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<Authors>Ray</Authors>
<Version>0.2.0</Version>
<Version>0.2.1</Version>
<NoWarn>$(NoWarn);CS1591;CS0436</NoWarn>
</PropertyGroup>
</Project>
Loading

0 comments on commit c271af9

Please sign in to comment.