Skip to main content

Push dynamics and live informations from bilibili to QQ. Based on nonebot2.

Project description

logo

HarukaBot

VERSION time tracker STARS qq group LICENSE

由于学业原因, HarukaBot 将停更一段时间, 等我成绩恢复稳定后会继续更新.
虽然暂时不更新新功能, 但是在此期间我依然会继续完善文档同时在QQ群答疑.

目录

简介

一款将哔哩哔哩UP主的直播与动态信息推送至QQ的机器人. 基于 NoneBot2 开发, 前身为 dd-bot .

项目名称来源于B站 @白神遥Haruka

logo 画师: 秦无

HarukaBot 致力于为B站UP主们提供一个开源免费的粉丝群推送方案. 极大的减轻管理员负担, 不会再遇到突击无人推送的尴尬情况. 同时还能将B博动态截图转发至粉丝群, 活跃群内话题.

介于作者技术力低下, HarukaBot 的体验可能并不是很好. 如果使用中有任何意见或者建议都欢迎提出, 我会努力去完善它.

功能介绍

以下仅为功能介绍, 并非实际命令名称. 具体命令向 bot 发送 帮助 查看, 群里要在所有命令前需加上@

HarukaBot 专注于订阅B站UP主们的动态与开播提醒, 并转发至QQ群/好友.

同时 HarukaBot 针对粉丝群中的推送场景进行了若干优化:

  • 权限开关: 指定某个群只有管理员才能触发指令

  • @全体开关: 指定群里某位订阅的主播开播推送带@全体

  • 动态/直播开关: 可以自由设置每位主播是否推送直播/动态

  • 订阅列表: 每个群/好友的订阅都是分开来的

  • 多端推送: 受限于一个QQ号一天只能@十次全体成员, 因此对于粉丝群多的UP来说一个 bot 的次数完全不够推送. 因此一台 HarukaBot 支持同时连接多个QQ, 分别向不同的群/好友同时推送

已知问题

推送延迟

受限于B站对API爬取频率限制, 目前 HarukaBot 会将所有UP主排成一列, 每隔十秒检查一位. 因此如果 HarukaBot 订阅了 x 位UP主最高延迟就是 10x 秒.

虽然 HarukaBot 目前的推送延迟对于粉丝群来说是足够了, 但是很显然对于广大dd们来说并不友好, 随便订阅30+个主播延迟就能超过5分钟. 因此, 未来的 HarukaBot v2 版中计划支持绑定B站账号, 将摆脱订阅数量越多推送越慢的窘境.

动态推送失效

在早晨约两点到八点期间, 部分服务器出现动态获取 api 失效的现象, 具体原因不明, 预计在 v2 中通过登录改善.

部署指南

只有同时启动 go-cqhttp 和 HarukaBot 机器人才能正常运行.

部署 go-cqhttp

  1. 下载 go-cqhttp (Windows 用户选择 windows-amd64.zip 结尾).

  2. 解压至一个空文件夹后, 双击启动, 此时文件夹内会生成一个 config.json 文件, 打开并编辑. 以下折叠部分为参考 (中文部分记得替换):

config.json 设置参考
{
	"uin": 机器人QQ号,
	"password": "QQ密码",
	"encrypt_password": false,
	"password_encrypted": "",
	"enable_db": true,
	"access_token": "",
	"relogin": {
		"enabled": true,
		"relogin_delay": 3,
		"max_relogin_times": 0
	},
	"_rate_limit": {
		"enabled": false,
		"frequency": 1,
		"bucket_size": 1
	},
	"ignore_invalid_cqcode": false,
	"force_fragmented": false,
	"heartbeat_interval": 0,
	"http_config": {
		"enabled": false,
		"host": "0.0.0.0",
		"port": 5700,
		"timeout": 0,
		"post_urls": {}
	},
	"ws_config": {
		"enabled": false,
		"host": "0.0.0.0",
		"port": 6700
	},
	"ws_reverse_servers": [
		{
			"enabled": true,
			"reverse_url": "ws://127.0.0.1:8080/cqhttp/ws",
			"reverse_api_url": "",
			"reverse_event_url": "",
			"reverse_reconnect_interval": 3000
		}
	],
	"post_message_format": "string",
	"debug": false,
	"log_level": "",
	"web_ui": {
		"enabled": false,
		"host": "127.0.0.1",
		"web_ui_port": 9999,
		"web_input": false
	}
}

  1. 编辑完重启 go-cqhttp.exe, 跟着提示完成安全验证即可

部署 HarukaBot

方法一 手动安装 (较为复杂全平台通用)

  1. 安装 Python3.7+ (安装的时候一定要勾选 "Add Python 3.x to PATH" )

  2. 克隆 or 下载 HarukaBot 源码到本地

  3. 在源码根目录打开命令提示符 (对着文件夹内, 按住 shift 同时鼠标右键 -> 在此处打开 Powershell 窗口)

  4. 输入 pip install -r requirements.txt 安装依赖

  5. 输入 python bot.py 启动 HarukaBot

以后每次启动只需重复 3, 5 步骤

方法二 插件广场安装 (适用于 NoneBot2 用户)

  • 前往插件广场, 找到 HarukaBot, 点击下方 COPY NB-CLI COMMAND 复制安装指令

  • 在自己的 NoneBot2 实例根目录运行安装指令

  • bot.py 中添加 nonebot.load_plugin("haruka_bot")

  • (可选) 在 .env.prod.env.dev 中添加 HARUKA_DIR="./data/", 你也可以将 ./data/ 改成任何其他路径.

    如果不添加, HarukaBot 会将配置文件保存于其安装包位置 (site-packages/haruka_bot) 的 data 文件夹下, 不推荐.

  • 完成后重启 NoneBot2 实例即可使用

支持作者

点个小星星就是对我最好的支持. 感谢使用 HarukaBot. 也欢迎有能man对本项目pr.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

haruka-bot-1.0.3.tar.gz (30.2 kB view hashes)

Uploaded Source

Built Distribution

haruka_bot-1.0.3-py3-none-any.whl (28.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page