Skip to content

Commit

Permalink
Merge branch 'release/0.3.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
RayWangQvQ committed Dec 10, 2022
2 parents cc45c4f + f498480 commit 14bca27
Show file tree
Hide file tree
Showing 68 changed files with 2,405 additions and 196 deletions.
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -358,3 +358,13 @@ tencentScf/.env

# vs code
.vscode

# krew
krew/bilipro
krew/cmd/kubectl-bilipro
krew/kustomization.yaml
bilipro
kustomization.yaml

# cookie config
cookies.json
7 changes: 6 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,5 +63,10 @@
- 合并PR(#309)新增lv6后开启白嫖模式的配置(多账号时可以实现不足lv6的继续投币,达到lv6的开始白嫖),感谢@cluom
- 优化青龙安装dotnet的脚本,改为使用官方`dotnet-install.sh`脚本安装(之前测试网络不通,后发现--no-cdn可以)
- 优化青龙的执行脚本,提取公共部分,并且在执行前会尝试安装一次dotnet,会清理一次缓存
## 0.2.3
## 0.3.0
- hotfix docker build error
- 合并PR(#341),新增krew部署,感谢@chenliu1993
- 合并PR(##348),更新文档,感谢@jexjws
- 合并PR(#350),修改请求header错误的bug
- 合并PR(#353),新增python扫码登录的feature(仅针对青龙),感谢@AFUL1991
- Feature(#351):重构并新增了扫码登录功能,使之适用于各种部署平台
100 changes: 19 additions & 81 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,14 @@ BiliBiliTool
<!-- TOC depthFrom:2 -->

- [1. 如何使用](#1-如何使用)
- [1.1. 第一步:获取BiliBili的 Cookie](#11-第一步获取bilibili的-cookie)
- [1.2. 第二步:配置 Cookie 并运行 BiliBiliTool](#12-第二步配置-cookie-并运行-bilibilitool)
- [1.2.1. 方式一:青龙运行(推荐)](#121-方式一青龙运行推荐)
- [1.2.2. 方式二:Docker或Podman容器化运行](#122-方式二docker或podman容器化运行)
- [1.2.3. 方式三:下载程序包到本地或服务器运行](#123-方式三下载程序包到本地或服务器运行)
- [1.2.4. 方式四:腾讯云函数SCF](#124-方式四腾讯云函数scf)
- [1.2.5. 方式五:~~GitHub Actions~~](#125-方式五github-actions)
- [1.2.6. 方式六:Chart部署](#126-方式六chart部署)
- [1.3. 消息推动(可选)](#13-消息推动可选)
- [1.1. 部署 BiliBiliTool](#11-部署-bilibilitool)
- [1.1.1. 方式一:青龙(推荐)](#111-方式一青龙推荐)
- [1.1.2. 方式二:Docker或Podman容器化运行](#112-方式二docker或podman容器化运行)
- [1.1.3. 方式三:下载程序包到本地或服务器运行](#113-方式三下载程序包到本地或服务器运行)
- [1.1.4. 方式四:腾讯云函数SCF](#114-方式四腾讯云函数scf)
- [1.1.5. 方式五:~~GitHub Actions~~](#115-方式五github-actions)
- [1.1.6. 方式六:Chart部署](#116-方式六chart部署)
- [1.2. 消息推送(可选)](#12-消息推送可选)
- [2. 功能任务说明](#2-功能任务说明)
- [3. 个性化自定义配置](#3-个性化自定义配置)
- [4. 多账号支持](#4-多账号支持)
Expand Down Expand Up @@ -82,105 +81,44 @@ _(如果图片挂了,请自己架梯子,没有的也可以先参考 [我

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

**要使用 BiliBiliTool,我们只需要做两步:获取自己的 Cookie 作为配置,然后将其输入 BiliBiliTool 并运行即可**
**要使用 BiliBiliTool,很简单,按照下面教程部署完成,运行后扫码登录即可**

### 1.1. 第一步:获取BiliBili的 Cookie
### 1.1. 部署 BiliBiliTool

- 浏览器打开并登录 [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

#### 1.2.1. 方式一:青龙运行(推荐)
#### 1.1.1. 方式一:青龙(推荐)

[>>青龙部署教程](qinglong/README.md)

#### 1.2.2. 方式二:Docker或Podman容器化运行
#### 1.1.2. 方式二:Docker或Podman容器化运行

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

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

#### 1.2.3. 方式三:下载程序包到本地或服务器运行

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

对于不是开发者的朋友,可以通过下载 Release 包到本地或任意服务器运行,步骤如下。
<details>

Ⅰ. **下载应用文件**

点击 [BiliBiliTool/release](https://github.com/RayWangQvQ/BiliBiliToolPro/releases),下载已发布的最新版本。

* 如果本地已安装 `.NET 6.0` 环境:

请下载 `net-dependent.zip` 文件,本文件依赖本地运行库(runtime-dependent),所以文件包非常小(不到1M)。

P.S.这里的运行环境指的是 `.NET Runtime 6.0.0` ,安装方法可详见 [常见问题](docs/questions.md) 中的 **本地或服务器如何安装.net环境**

* 如果不希望安装或不知如何安装.net运行环境:

请根据操作系统下载对应的 zip 文件,此文件已自包含(self-contained)运行环境,但相较不包含运行时的文件略大(20M 左右,Github 服务器在国外,下载可能比较慢)。

如,Windows系统请下载 `win-x86-x64.zip` ,其他以此类推。


Ⅱ. **解压并填写配置**

下载并解压后,找到 appsettings.json 文件,使用记事本编辑,将之前获取到的 Cookie 字符串填入指定位置,保存后关闭:

![配置文件图示](docs/imgs/appsettings-cookie.png)

Ⅲ. **运行**

* Windows 系统

对于已安装.net环境,且使用的是依赖包,可在当前目录下执行命令:`dotnet Ray.BiliBiliTool.Console.dll`,或者直接双击运行名称为 start.bat 的批处理文件,均可运行。

对于使用自包含运行环境版本的,可直接双击运行名称为 Ray.BiliBiliTool.Console.exe 的可执行文件。

* Linux 系统

对于已安装.net环境,且使用的是依赖包,同上,可在终端中执行命令:`dotnet Ray.BiliBiliTool.Console.dll`

对于使用独立包的,可在终端中执行命令:

```
chmod +x ./Ray.BiliBiliTool.Console
Ray.BiliBiliTool.Console
```

其他系统依此类推,运行结果图示如下:

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

除了修改配置文件,也可以通过添加环境变量或在启动命令后附加参数来实现配置,详细方法可参考下面的**配置说明**章节。
#### 1.1.3. 方式三:下载程序包到本地或服务器运行

</details>
[>>本地部署说明](docs/runInLocal.md)

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

当前腾讯云函数已改为收费模式,不推荐。

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


#### 1.2.5. 方式五:~~GitHub Actions~~
#### 1.1.5. 方式五:~~GitHub Actions~~

暂时删掉该方式避避风头。

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

#### 1.2.6. 方式六:Chart部署
#### 1.1.6. 方式六:Chart部署

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

### 1.3. 消息推动(可选)
### 1.2. 消息推送(可选)

如果配置了推送,执行成功后,指定的接收端会收到推送消息,推送效果如下所示:

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.3</Version>
<Version>0.3.0</Version>
<NoWarn>$(NoWarn);CS1591;CS0436</NoWarn>
</PropertyGroup>
</Project>
34 changes: 20 additions & 14 deletions docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
- [1.2. 须知](#12-须知)
- [2. 方式一:Docker Compose(推荐)](#2-方式一docker-compose推荐)
- [2.1. 启动](#21-启动)
- [2.2. 修改bili下的docker-compose.yml,填入cookie](#22-修改bili下的docker-composeyml填入cookie)
- [2.3. 其他命令参考](#23-其他命令参考)
- [2.2. 其他命令参考](#22-其他命令参考)
- [3. 方式二:Docker指令](#3-方式二docker指令)
- [3.1. Docker启动](#31-docker启动)
- [3.2. 其他指令参考](#32-其他指令参考)
- [3.3. 使用Watchtower更新容器](#33-使用watchtower更新容器)
- [4. 自己构建镜像(非必须)](#4-自己构建镜像非必须)
- [5. 其他](#5-其他)
- [4. 登录](#4-登录)
- [5. 自己构建镜像(非必须)](#5-自己构建镜像非必须)
- [6. 其他](#6-其他)

<!-- /TOC -->
## 1. 前期工作
Expand Down Expand Up @@ -52,6 +52,7 @@ docker pull zai7lou/bilibili_tool_pro
# 下载
wget https://raw.githubusercontent.com/RayWangQvQ/BiliBiliToolPro/main/src/Ray.BiliBiliTool.Console/appsettings.json
wget https://raw.githubusercontent.com/RayWangQvQ/BiliBiliToolPro/main/docker/sample/cookies.json
wget https://raw.githubusercontent.com/RayWangQvQ/BiliBiliToolPro/main/docker/sample/docker-compose.yml
# 启动
Expand All @@ -61,21 +62,16 @@ docker compose up -d
docker logs -f bili
```

### 2.2. 修改bili下的docker-compose.yml,填入cookie

根据 docker-compose.yaml 里面的注释编辑所需配置,`environment` 下可以通过环境变量自由添加自定义配置,其中Cookie是必填的,所以请至少填入Cookie并保存。

保存后,重新运行下`docker compose up -d`

最终文件结构如下:

```
bili
├── appsettings.json
├── cookies.json
└── docker-compose.yml
```

### 2.3. 其他命令参考
### 2.2. 其他命令参考

```
# 启动 docker-compose
Expand Down Expand Up @@ -103,7 +99,6 @@ docker compose pull && docker compose up -d
docker pull zai7lou/bilibili_tool_pro
docker run -d --name="bili" \
-v /bili/Logs:/app/Logs \
-e Ray_BiliBiliCookies__1="cookie" \
-e Ray_DailyTaskConfig__Cron="0 15 * * *" \
-e Ray_LiveLotteryTaskConfig__Cron="0 22 * * *" \
-e Ray_UnfollowBatchedTaskConfig__Cron="0 6 1 * *" \
Expand All @@ -125,6 +120,9 @@ docker start bili
# 停止容器
docker stop bili
# 重启容器
docker restart bili
# 删除容器
docker rm bili
Expand All @@ -141,7 +139,15 @@ docker run --rm \
bili
```

## 4. 自己构建镜像(非必须)
## 4. 登录

在宿主机运行`docker exec -it bili bash -c "dotnet Ray.BiliBiliTool.Console.dll --runTasks=Login"`

扫码进行登录。

![login](../docs/imgs/docker-login.png)

## 5. 自己构建镜像(非必须)

目前我提供和维护的镜像:`[zai7lou/bilibili_tool_pro](https://hub.docker.com/repository/docker/zai7lou/bilibili_tool_pro)`;

Expand All @@ -153,7 +159,7 @@ docker run --rm \

`TARGET_NAME`为镜像名称和版本,可以自己起个名字

## 5. 其他
## 6. 其他

代码编译和发布环境: mcr.microsoft.com/dotnet/sdk:6.0

Expand Down
5 changes: 1 addition & 4 deletions docker/sample/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,12 @@ services:
volumes:
- ./Logs:/app/Logs
- ./appsettings.json:/app/appsettings.json
- ./cookies.json:/app/cookies.json
tty: true
environment:
- ASPNETCORE_ENVIRONMENT=Production
- Ray_Security__IsSkipDailyTask=false

# Cookie字符串(必填):
- Ray_BiliBiliCookies__1=
- Ray_BiliBiliCookies__2=

# 定时任务
- Ray_DailyTaskConfig__Cron=0 15 * * *
- Ray_LiveLotteryTaskConfig__Cron=0 22 * * *
Expand Down
Binary file added docs/imgs/docker-login.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/qinglong-login.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
58 changes: 58 additions & 0 deletions docs/runInLocal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# 下载程序包到本地或服务器运行

<!-- TOC depthFrom:2 -->

- [1. 下载应用文件](#1-下载应用文件)
- [2. 运行](#2-运行)

<!-- /TOC -->

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

对于不是开发者的朋友,可以通过下载 Release 包到本地或任意服务器运行,步骤如下。
<details>

## 1. 下载应用文件

点击 [BiliBiliTool/release](https://github.com/RayWangQvQ/BiliBiliToolPro/releases),下载已发布的最新版本。

* 如果本地已安装 `.NET 6.0` 环境:

请下载 `net-dependent.zip` 文件,本文件依赖本地运行库(runtime-dependent),所以文件包非常小(不到1M)。

P.S.这里的运行环境指的是 `.NET Runtime 6.0.0` ,安装方法可详见 [常见问题](docs/questions.md) 中的 **本地或服务器如何安装.net环境**

* 如果不希望安装或不知如何安装.net运行环境:

请根据操作系统下载对应的 zip 文件,此文件已自包含(self-contained)运行环境,但相较不包含运行时的文件略大(20M 左右,Github 服务器在国外,下载可能比较慢)。

如,Windows系统请下载 `win-x86-x64.zip` ,其他以此类推。

## 2. 运行

下载并解压zip文件。

* Windows 系统

对于已安装.net环境,且使用的是依赖包,可在当前目录下执行命令:`dotnet Ray.BiliBiliTool.Console.dll --runTasks=Login`,或者直接双击运行名称为 start.bat 的批处理文件,均可运行。

对于使用自包含运行环境版本的,可直接双击运行名称为 Ray.BiliBiliTool.Console.exe 的可执行文件。

* Linux 系统

对于已安装.net环境,且使用的是依赖包,同上,可在终端中执行命令:`dotnet Ray.BiliBiliTool.Console.dll --runTasks=Login`

对于使用独立包的,可在终端中执行命令:

```
chmod +x ./Ray.BiliBiliTool.Console
Ray.BiliBiliTool.Console
```

其他系统依此类推,运行结果图示如下:

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

除了修改配置文件,也可以通过添加环境变量或在启动命令后附加参数来实现配置,详细方法可参考下面的**配置说明**章节。

</details>
34 changes: 34 additions & 0 deletions krew/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
.DEFAULT_GOAL:=help
SHELL := /usr/bin/env bash

ROOT_DIR := $(shell git rev-parse --show-toplevel)
GOOS ?= $(shell go env GOOS)
GOARCH ?= $(shell go env GOARCH)
BIN_NAME ?= kubectl-bilipro
KUBECTL_DIR ?= $(shell which kubectl | awk -F 'kubectl' '{printf "%s\n", $$1 }')



GITCOMMIT ?= `git rev-parse HEAD`

help: #### display help
@awk 'BEGIN {FS = ":.*## "; printf "\nTargets:\n"} /^[a-zA-Z_-]+:.*?#### / { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
@awk 'BEGIN {FS = ":.* ## "; printf "\n \033[1;32mBuild targets\033[36m\033[0m\n \033[0;37mTargets for building and/or installing CLI plugins on the system.\n Append \"ENVS=<os-arch>\" to the end of these targets to limit the binaries built.\n e.g.: make build-all-tanzu-cli-plugins ENVS=linux-amd64 \n List available at https://github.com/golang/go/blob/master/src/go/build/syslist.go\033[36m\033[0m\n\n"} /^[a-zA-Z_-]+:.*? ## / { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
##### GLOBAL

.PHONY: deploy
deploy: build install #### build + install


.PHONY: build
build: #### build the plugin
@go vet ./... && \
go fmt ./... && \
cd ${ROOT_DIR}/krew/cmd && \
GOOS=${GOOS} GOARCH=${GOARCH} CGO_ENABLED=0 go build -ldflags "-X github.com/RayWangQvQ/BiliBiliToolPro/krew/pkg/cmd.Version=${GITCOMMIT}" -o $(BIN_NAME) kubectl-bilipro.go


.PHONY: install
install: #### install the plugin
@cd ${ROOT_DIR}/krew/cmd && \
sudo install ./$(BIN_NAME) ${KUBECTL_DIR}/$(BIN_NAME)
Loading

0 comments on commit 14bca27

Please sign in to comment.