12 KiB

环境依赖
通常使用 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.lock基于阿里云 Composer镜像生成 -
阿里云(全量镜像)
# 使用帮助
> https://developer.aliyun.com/composer
# 使用命令
> composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
- 恢复默认镜像|Composer.phar加速下载
> composer config -g --unset repos.packagist
> https://mirrors.cloud.tencent.com/composer/composer.phar
> https://mirrors.aliyun.com/composer/composer.phar
其余镜像 展开查看
- cnpkg(全量镜像)
# 使用帮助
> https://php.cnpkg.org/
# 使用命令
> composer config -g repos.packagist composer https://php.cnpkg.org
- 腾讯云(全量镜像)
# 使用帮助
> https://mirrors.cloud.tencent.com/help/composer.html
# 使用命令
> composer config -g repos.packagist composer https://mirrors.cloud.tencent.com/composer/
- PhpComposer(全量镜像)
# 使用帮助
> https://pkg.phpcomposer.com/
# 使用命令
> composer config -g repo.packagist composer https://packagist.phpcomposer.com
- 华为云(全量镜像)
# 使用帮助
> https://mirrors.huaweicloud.com/repository/php/
# 使用命令
> composer config -g repos.packagist composer https://mirrors.huaweicloud.com/repository/php/
- 交通大学(非全量镜像)
# 使用帮助
> https://packagist.mirrors.sjtug.sjtu.edu.cn/
# 使用命令
> composer config -g repos.packagist composer https://packagist.mirrors.sjtug.sjtu.edu.cn
使用指南
- 下载(克隆)项目代码,初始化项目
$ git clone https://github.com/lkeme/BiliHelper-personal.git
$ cp -r profile/example profile/user
- 使用 composer 工具进行安装
$ composer install
- 按照说明修改配置文件
profile/user/config/user.ini
# 默认只需填写帐号密码,按需求开启其他功能即可
...
- 运行测试
$ php app.php
# 默认配置user
$ php app.php m:a
以下是
多账户多开方案,单个账户可以无视
- 复制一份profile/example配置文件夹,修改账号密码即可
# 默认配置 darling {darling}是配置文件名,可任意
$ php app.php darling m:a
# 如果写了用户参数 不带m:a 与上同等效果
$ php app.php darling
- 自定义设备方案
修改个人配置文件夹即可 profile/user/device/device.yaml
- 命令模式
# 获取所有命令
$ php app.php
mode:app m:a [主要模式] 默认功能
mode:debug m:d [Debug模式] 开发测试使用
mode:restore m:r [复位模式] 复位一些缓存以及设置
mode:script m:s [脚本模式] 使用一些额外功能脚本
-
请保证配置文件存在,否则默认加载
user配置文件夹 -
单个或者多个插件测试
$ 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 # 多个插件

Docker使用指南
🌐 镜像加速器(部分网络原因导致拉取镜像失败)
~
以下是通用系统配置,部分特殊系统修改可能不一样,请自行搜索解决。
在文件 /etc/docker/daemon.json 写入以下内容,如果部分不可用节点自行删除
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.1panel.live",
"https://hub.rat.dev"
]
}
- 安装好Docker
- 直接命令行拉取镜像后运行
传入的参数方式有两种(二选一,如果同时传入则优先选择配置文件)
- 通过环境变量进行传入
$ docker run -itd --rm -e USER_NAME=你的B站登录账号 -e USER_PASSWORD=你的B站密码 lkeme/bilihelper-personal
- 通过配置文件进行传入(能保留登录状态,自定义配置)
- 下载 代码压缩包,解压后提取
profile目录 - 将
profile/example重命名为profile/user, 修改profile/user/config/user.ini - 通过下面的命令进行挂载并运行
$ docker run -itd --rm -v /path/to/your/confFilePath:/app/profile/user lkeme/bilihelper-personal
- 通过配置文件进行传入且使用验证码(示例命令)
$ docker run -itd -e MIRRORS=2 -e CAPTCHA=1 -e CAPTCHA_HOST=0.0.0.0 -e CAPTCHA_PORT=50001 -p 50001:50001 -v
/your/path/bh/profile/user:/app/profile/user lkeme/bilihelper-personal
- 版本兼容
$ -e VERSION=1 # 使用 版本 V1.x.x(兼容处理)
$ -e VERSION=2 # 使用 版本 V2.x.x(默认选项)
- 使用github镜像加速
以下加速镜像均为网络收集,感谢公益提供者,如有问题请联系删除
$ -e MIRRORS=0 # 使用 github.com(RAW|源站|默认)
$ -e MIRRORS=1 # 使用 ghfast.top(US|美国)
$ -e MIRRORS=2 # 使用 gitclone.com(CN|中国)
$ -e MIRRORS=3 # 使用 gh-proxy.com(US|美国)
$ -e MIRRORS=4 # 使用 githubfast.com(KR|韩国)
$ -e MIRRORS=5 # 使用 hub.gitmirror.com(US|美国)
$ -e MIRRORS=custom -e CUSTOM_CLONE_URL=https://github.com/lkeme/BiliHelper-personal.git # 使用 自定义克隆地址
- 👉 相关参数
| 选项 | 简单易懂的含义 |
|---|---|
-i |
让你能往容器里输入内容(保持输入通道打开) |
-t |
给容器“配一个键盘和屏幕”,让它像在电脑前运行一样 |
-d |
让容器在后台悄悄运行,不占当前窗口 |
--rm |
容器一停止,自动删掉它,不留下“垃圾”。(临时测试用,跑完就干净删除,省得手动 docker rm) |
-v |
把电脑上的文件夹或文件“共享”给容器用(双向同步) |
- ✅ 组合小贴士
| 组合 | 含义 | 必须 |
|---|---|---|
-it |
搭配使用,就像“打开一个能打字的控制台” | ✔ |
-itd |
既能输入又有终端,还在后台跑 | ✔ |
- -v模式使用短信登录
配置文件里设置好,等待发送完短信,在命令行中使用命令进入容器,然后输入收到的验证码即可
$ docker attach 容器ID
$ docker attach --sig-proxy=false 容器ID # 关闭信号代理:本地终端按键(如 Ctrl+C)不会转发给容器进程,防止误关闭容器
Q: 容器停止后,容器不见了?
A: 请删除运行时的 --rm 参数
Q: 短信发送后,容器没有等待输入验证码就退出了?
A: 检查docker运行参数是否少了(-it/-itd)参数。
Q: docker attach方式使用ctrl+c退出容器,容器会停止运行怎么办?
A: 请用ctrl+p+q退出容器,容器不会停止运行。
Q: 使用portainer容器管理新建的容器,命令行无法输入直接验证失败怎么办?
A: 在容器设置Advanced container settings -> Commands & logging -> Console -> 勾选 Interactive & TTY (-i -t) ,保存后重新部署容器即可。
-
注意: Docker镜像已经包含了所有所需的运行环境,无需在本地环境弄composer。每次启动容器时,都会与项目进行同步以确保版本最新。
-
不需要自动更新
$ -e AUTO_UPDATE=0 # 不自动更新
升级指南
注意新版本的配置文件是否变动,则需要重新覆盖配置文件,并重新填写设置
- 进入项目目录
$ cd BiliHelper-personal
- 拉取最新代码
$ git pull
- 更新依赖库
$ composer install
- 如果使用 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 获取到它
https://live.bilibili.com/9522051
长位直播间ID获取
https://api.live.bilibili.com/room/v1/Room/room_init?id=3
所有直播间号码小于 1000 的直播间为短号,部分4位直播间也为短号,
该脚本在每次启动会自动修正部分功能,特殊标注的请留意。