mirror of
https://github.com/lkeme/BiliHelper-personal.git
synced 2025-12-19 01:20:08 +08:00
415 lines
12 KiB
Markdown
415 lines
12 KiB
Markdown
<p align=center><img width="300px" src="https://user-images.githubusercontent.com/19500576/118621710-36428180-b7f9-11eb-891d-3f5697347cef.png" alt=""></p>
|
||
|
||
[comment]: <> (<p align=center><img width="300px" src="https://i.loli.net/2018/04/20/5ad97bd395912.jpeg"></p>)
|
||
|
||
<div align=center>
|
||
|
||
[](https://github.com/lkeme/ )
|
||

|
||

|
||

|
||

|
||
|
||
</div>
|
||
|
||
## 环境依赖
|
||
|
||
通常使用 `composer` 工具会自动检测以下依赖问题。
|
||
|
||
| Requirement |
|
||
|--------------|
|
||
| PHP >=8.1 |
|
||
| php_curl |
|
||
| php_sockets |
|
||
| php_openssl |
|
||
| php_json |
|
||
| php_zlib |
|
||
| php_mbstring |
|
||
|
||
## 用户文件夹含义
|
||
|
||
+ user
|
||
- cache (包含登录状态、以及其他插件缓存)
|
||
- config (个人的配置、以及其他插件的设置)
|
||
- device (设备参数文件)
|
||
- log (日志文件)
|
||
- task (排程文件)
|
||
|
||
## Composer
|
||
|
||
+ [Composer 安装与使用](https://www.runoob.com/w3cnote/composer-install-and-usage.html)
|
||
|
||
+ [Composer 下载](https://getcomposer.org/download/)
|
||
|
||
+ 当前项目 `composer.lock` 基于阿里云 Composer镜像生成
|
||
|
||
+ 阿里云(全量镜像)
|
||
|
||
```shell script
|
||
# 使用帮助
|
||
> https://developer.aliyun.com/composer
|
||
# 使用命令
|
||
> composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
|
||
```
|
||
|
||
+ 恢复默认镜像|Composer.phar加速下载
|
||
|
||
```shell script
|
||
> composer config -g --unset repos.packagist
|
||
|
||
> https://mirrors.cloud.tencent.com/composer/composer.phar
|
||
> https://mirrors.aliyun.com/composer/composer.phar
|
||
```
|
||
|
||
<details>
|
||
<summary>其余镜像 展开查看</summary>
|
||
<pre><code>
|
||
|
||
+ cnpkg(全量镜像)
|
||
|
||
```shell script
|
||
# 使用帮助
|
||
> https://php.cnpkg.org/
|
||
# 使用命令
|
||
> composer config -g repos.packagist composer https://php.cnpkg.org
|
||
```
|
||
|
||
+ 腾讯云(全量镜像)
|
||
|
||
```shell script
|
||
# 使用帮助
|
||
> https://mirrors.cloud.tencent.com/help/composer.html
|
||
# 使用命令
|
||
> composer config -g repos.packagist composer https://mirrors.cloud.tencent.com/composer/
|
||
```
|
||
|
||
+ PhpComposer(全量镜像)
|
||
|
||
```shell script
|
||
# 使用帮助
|
||
> https://pkg.phpcomposer.com/
|
||
# 使用命令
|
||
> composer config -g repo.packagist composer https://packagist.phpcomposer.com
|
||
```
|
||
|
||
+ 华为云(全量镜像)
|
||
|
||
```shell script
|
||
# 使用帮助
|
||
> https://mirrors.huaweicloud.com/repository/php/
|
||
# 使用命令
|
||
> composer config -g repos.packagist composer https://mirrors.huaweicloud.com/repository/php/
|
||
```
|
||
|
||
+ 交通大学(非全量镜像)
|
||
|
||
```shell script
|
||
# 使用帮助
|
||
> https://packagist.mirrors.sjtug.sjtu.edu.cn/
|
||
# 使用命令
|
||
> composer config -g repos.packagist composer https://packagist.mirrors.sjtug.sjtu.edu.cn
|
||
```
|
||
|
||
</code>
|
||
</pre>
|
||
</details>
|
||
|
||
## 使用指南
|
||
|
||
1. 下载(克隆)项目代码,初始化项目
|
||
|
||
```shell script
|
||
$ git clone https://github.com/lkeme/BiliHelper-personal.git
|
||
$ cp -r profile/example profile/user
|
||
```
|
||
|
||
2. 使用 [composer](https://getcomposer.org/download/) 工具进行安装
|
||
|
||
```shell script
|
||
$ composer install
|
||
```
|
||
|
||
[comment]: <> (composer dump-autoload (-o))
|
||
|
||
[comment]: <> (composer dumpautoload (-o))
|
||
|
||
3. 按照说明修改配置文件 `profile/user/config/user.ini`
|
||
|
||
```shell script
|
||
# 默认只需填写帐号密码,按需求开启其他功能即可
|
||
...
|
||
```
|
||
|
||
4. 运行测试
|
||
|
||
```shell script
|
||
$ php app.php
|
||
# 默认配置user
|
||
$ php app.php m:a
|
||
```
|
||
|
||
> 以下是`多账户多开方案`,单个账户可以无视
|
||
|
||
5. 复制一份profile/example配置文件夹,修改账号密码即可
|
||
|
||
```shell script
|
||
# 默认配置 darling {darling}是配置文件名,可任意
|
||
$ php app.php darling m:a
|
||
# 如果写了用户参数 不带m:a 与上同等效果
|
||
$ php app.php darling
|
||
```
|
||
|
||
6. 自定义设备方案
|
||
|
||
修改个人配置文件夹即可 `profile/user/device/device.yaml`
|
||
|
||
7. 命令模式
|
||
|
||
```shell script
|
||
# 获取所有命令
|
||
$ php app.php
|
||
mode:app m:a [主要模式] 默认功能
|
||
mode:debug m:d [Debug模式] 开发测试使用
|
||
mode:restore m:r [复位模式] 复位一些缓存以及设置
|
||
mode:script m:s [脚本模式] 使用一些额外功能脚本
|
||
```
|
||
|
||
8. 请保证配置文件存在,否则默认加载`user`配置文件夹
|
||
|
||
9. 单个或者多个插件测试
|
||
|
||
```shell
|
||
$ php app.php test m:d -p plugin # 单个插件
|
||
$ php app.php test m:d -p VipPoint # 单个插件示例
|
||
$ php app.php test m:d -P plugin,plugin1 # 多个插件
|
||
$ php app.php test m:d -P VipPoint,Lottery # 多个插件
|
||
```
|
||
|
||
<p align=center><img width="680px" src="https://user-images.githubusercontent.com/19500576/118621472-f8455d80-b7f8-11eb-9fec-500148a566b4.png" alt=""></p>
|
||
|
||
[comment]: <> (<p align=center><img width="680px" src="https://i.loli.net/2018/04/21/5adb497dc3ece.png"></p>)
|
||
|
||
## Docker使用指南
|
||
|
||
<strong>🌐 镜像加速器</strong>(部分网络原因导致拉取镜像失败)<br/><br/>
|
||
<details><summary><strong><code> ~</code></strong></summary>
|
||
|
||
> 以下是通用系统配置,部分特殊系统修改可能不一样,请自行搜索解决。
|
||
|
||
`在文件 /etc/docker/daemon.json 写入以下内容,如果部分不可用节点自行删除`
|
||
|
||
```json
|
||
{
|
||
"registry-mirrors": [
|
||
"https://0b27f0a81a00f3560fbdc00ddd2f99e0.mirror.swr.myhuaweicloud.com",
|
||
"https://dockerproxy.com",
|
||
"https://hub-mirror.c.163.com",
|
||
"https://mirror.baidubce.com",
|
||
"https://oyukeh0j.mirror.aliyuncs.com",
|
||
"https://ypzju6vq.mirror.aliyuncs.com",
|
||
"https://registry.docker-cn.com",
|
||
"http://hub-mirror.c.163.com",
|
||
"https://docker.mirrors.ustc.edu.cn"
|
||
]
|
||
}
|
||
|
||
```
|
||
|
||
<br>
|
||
</details>
|
||
|
||
1. 安装好[Docker](https://yeasy.gitbooks.io/docker_practice/content/install/)
|
||
2. 直接命令行拉取镜像后运行
|
||
|
||
### 传入的参数方式有两种(二选一,如果同时传入则优先选择配置文件)
|
||
|
||
- 通过环境变量进行传入
|
||
|
||
```shell script
|
||
$ docker run -itd --rm -e USER_NAME=你的B站登录账号 -e USER_PASSWORD=你的B站密码 lkeme/bilihelper-personal
|
||
```
|
||
|
||
- 通过配置文件进行传入(能保留登录状态,自定义配置)
|
||
|
||
[//]: # (1. 下载[配置文件](https://raw.githubusercontent.com/lkeme/BiliHelper-personal/master/conf/user.ini.example))
|
||
|
||
[//]: # (2. 修改)
|
||
|
||
1.
|
||
|
||
下载 [配置文件夹](https://github.com/lkeme/BiliHelper-personal/tree/master/profile) `注意是文件夹,可以完整下载后提出来`
|
||
|
||
2. 重命名 `profile/example -> profile/user` , 修改 `profile/user/config/user.ini`
|
||
3. 通过下面的命令进行挂载并运行
|
||
|
||
```shell script
|
||
$ docker run -itd --rm -v /path/to/your/confFilePath:/app/profile/user lkeme/bilihelper-personal
|
||
```
|
||
|
||
- 版本兼容
|
||
|
||
```shell script
|
||
$ -e VERSION=1 # 使用 版本 V1.x.x(兼容处理)
|
||
$ -e VERSION=2 # 使用 版本 V2.x.x(默认选项)
|
||
```
|
||
|
||
- 使用github镜像加速
|
||
|
||
> 以下加速镜像均为网络收集,感谢公益提供者,如有问题请联系删除
|
||
|
||
```shell script
|
||
$ -e MIRRORS=0 # 使用 github.com(RAW|源站|默认)
|
||
$ -e MIRRORS=1 # 使用 mirror.ghproxy.com(JP|日本)
|
||
$ -e MIRRORS=2 # 使用 gitclone.com(CN|中国)
|
||
$ -e MIRRORS=3 # 使用 gh.api.99988866.xyz(US|美国)
|
||
$ -e MIRRORS=4 # 使用 githubfast.com(KR|韩国)
|
||
$ -e MIRRORS=5 # 使用 github.moeyy.xyz(HK|香港)
|
||
$ -e MIRRORS=custom -e CUSTOM_CLONE_URL=https://github.com/lkeme/BiliHelper-personal.git # 使用 自定义克隆地址
|
||
```
|
||
|
||
- 相关参数
|
||
|
||
```ps
|
||
-it 前台运行
|
||
-itd 后台运行
|
||
-v 本地文件:容器内部文件 ==> 挂载本地文件到容器中。本地文件路径随便变,容器内部文件路径不能变。
|
||
```
|
||
|
||
- -v模式使用短信登录
|
||
|
||
```
|
||
配置文件里设置好,发送完短信,命令行中使用docker attach 或者docker exec 进去容器后里输入
|
||
|
||
Q: docker exec方式使用ctrl+c退出容器,容器会停止运行怎么办?
|
||
A: 使用docker exec -it 容器ID /bin/bash进入容器,然后使用exit退出容器,容器不会停止运行。
|
||
|
||
Q: docker attach方式使用ctrl+c退出容器,容器会停止运行怎么办?
|
||
A: 请用ctrl+p+q退出容器,容器不会停止运行。
|
||
A1: 添加-sig-proxy=false参数,docker attach --sig-proxy=false 容器ID,ctrl+c退出容器,容器不会停止运行。
|
||
|
||
Q: 使用portainer容器管理新建的容器,命令行无法输入直接验证失败怎么办?
|
||
A: 在容器设置Advanced container settings -> Commands & logging -> Console -> 勾选 Interactive & TTY (-i -t) ,保存后重新部署容器即可。
|
||
```
|
||
|
||
- 注意: Docker镜像已经包含了所有所需的运行环境,无需在本地环境弄composer。每次启动容器时,都会与项目进行同步以确保版本最新。
|
||
|
||
## 升级指南
|
||
|
||
> 注意新版本的配置文件是否变动,则需要重新覆盖配置文件,并重新填写设置
|
||
|
||
1. 进入项目目录
|
||
|
||
```
|
||
$ cd BiliHelper-personal
|
||
```
|
||
|
||
2. 拉取最新代码
|
||
|
||
```
|
||
$ git pull
|
||
```
|
||
|
||
3. 更新依赖库
|
||
|
||
```
|
||
$ composer install
|
||
```
|
||
|
||
4. 如果使用 systemd 等,需要重启服务
|
||
|
||
```
|
||
$ systemctl restart bilibili
|
||
```
|
||
|
||
## 部署指南
|
||
|
||
如果你将 BiliHelper-personal 部署到线上服务器时,则需要配置一个进程监控器来监测 `php index.php` 命令,在它意外退出时自动重启。
|
||
|
||
通常可以使用以下的方式
|
||
|
||
- systemd (推荐)
|
||
- Supervisor
|
||
- screen (自用)
|
||
- nohup
|
||
|
||
## systemd 脚本
|
||
|
||
```
|
||
# /usr/lib/systemd/system/bilibili.service
|
||
|
||
[Unit]
|
||
Description=BiliHelper Manager
|
||
Documentation=https://github.com/lkeme/BiliHelper-personal
|
||
After=network.target
|
||
|
||
[Service]
|
||
ExecStart=/usr/bin/php /path/to/your/BiliHelper-personal/app.php m:a
|
||
Restart=always
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
```
|
||
|
||
## Supervisor 配置
|
||
|
||
```
|
||
[program:bilibili]
|
||
process_name=%(program_name)s
|
||
command=php /path/to/your/BiliHelper-personal/app.php m:a
|
||
autostart=true
|
||
autorestart=true
|
||
redirect_stderr=true
|
||
stdout_logfile=/tmp/bilibili.log
|
||
```
|
||
|
||
## 报错通知问题
|
||
|
||
脚本出现 error 级别的报错,会调用通知地址进行提醒,这里推荐两个服务
|
||
|
||
| 服务 | 官网 |
|
||
|-------------|------------------------------------|
|
||
| Server酱 | https://sc.ftqq.com/ |
|
||
| TelegramBot | https://core.telegram.org/bots/api |
|
||
|
||
示范如下
|
||
|
||
```
|
||
# Server酱
|
||
# 自行替换 <SCKEY>
|
||
APP_CALLBACK="https://sc.ftqq.com/<SCKEY>.send?text={message}"
|
||
|
||
# TelegramBot
|
||
# 自行替换 <TOKEN> <CHAR_ID>
|
||
APP_CALLBACK="https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=<CHAR_ID>&text={message}"
|
||
```
|
||
|
||
`{message}` 部分会自动替换成错误信息,接口采用 get 方式发送
|
||
|
||
## 直播间 ID 问题
|
||
|
||
文件 `user.ini` 里
|
||
|
||
`ROOM_ID` 配置,填写此项可以清空临过期礼物给指定直播间。
|
||
|
||
`ROOM_LIST` 配置,使用长位直播间,填写此项可以清空临礼物给指定有勋章的直播间。
|
||
|
||
`FEED_FILL` 配置,搭配上一条使用,使用过期礼物或者倒序使用正常礼物。
|
||
|
||
`SOCKET_ROOM_ID` 配置,监控使用,暂时没用到。
|
||
|
||
通常可以在直播间页面的 url 获取到它
|
||
|
||
```
|
||
http://live.bilibili.com/9522051
|
||
```
|
||
|
||
长位直播间ID获取
|
||
|
||
```
|
||
https://api.live.bilibili.com/room/v1/Room/room_init?id=3
|
||
```
|
||
|
||
所有直播间号码小于 1000 的直播间为短号,部分4位直播间也为短号,
|
||
|
||
该脚本在每次启动会自动修正部分功能,特殊标注的请留意。
|