Skip to content

一个用 B 站私信系统硬凑出来的群聊 bot

License

Notifications You must be signed in to change notification settings

GowayLee/bili-squad

Repository files navigation

bili-squad logo

bili-squad

因为B站至今没有群聊功能, 所以只能用私信硬凑 😠

前言

B站作为一个有社交功能的平台, 居然没有群聊功能. 每次想和朋友们分享视频(史)的时候, 都得切到微信群/QQ群, 然后再把链接复制回来, 搬史/赤史体验十分乃至九分的不丝滑.

于是就有了这个项目

项目介绍

bili-squad 是一个Python写的B站群聊机器人, 核心思路非常简单: 收集视频 -> 转发给其他人.

工作原理

你 -> 发个视频给Bot -> Bot暂存 -> 继续发 -> 继续暂存
     -> 输入 /sendto 赤史群 -> Bot把所有内容打包发给群友

核心功能

  • 消息暂存系统:发视频、发文字,想发多少发多少,Bot帮你攒着
  • 一键转发:攒够了一波转发到指定群组,避免刷屏
  • 群组管理:创建群组、邀请好友、踢人、解散群组
  • 分享卡片支持:直接解析B站视频卡片,不用手动复制链接

快速开始

第一步:搞个B站账号

一个专门做机器人的B站账号, 建议不要用大号

第二步:获取认证信息

bilibili-api文档

第三步:配置项目

git clone https://github.com/yourusername/bili-squad.git
cd bili-squad

# 复制配置文件
cp config.example.json config.json

# 编辑config.json,填入你刚才复制的认证信息

第四步:安装依赖并运行

方式一:使用 uv (推荐)

# 安装依赖
uv sync

# 启动机器人
bili-squad

方式二:使用 pip

# 安装依赖
pip install -e .

# 启动机器人
bili-squad

第五步:开始使用

  1. 在B站添加机器人账号为好友
  2. 随便发点什么测试一下
  3. 发送 /help 查看所有命令

使用指南

基本流程

你:[分享一个B站视频]
Bot:已暂存 [视频] 某某游戏实况 (当前共 1 条)

你:这个游戏太好玩了
Bot:已暂存文本 (当前共 2 条)

你:/sendto 游戏群
Bot:已成功转发 2 条内容至 [游戏群]

命令列表

暂存区管理

命令 说明
/status 查看暂存区里
/clear 清空暂存区
/sendto 群组名 发送到群组
/s 群组名 /sendto 的别名

群组管理

命令 说明
/help 显示帮助信息
/create 群组名 创建新群组
/join 群组名 加入现有群组
/leave 群组名 退群
/listgroups 查看我加入的群组
/members 群组名 查看群组成员
/invite 群组名 用户ID 邀请好友加入
/delete 群组名 删除群组(仅创建者)

项目结构

bili-squad/
├── main.py                    # 程序入口
├── pyproject.toml            # 项目配置和构建设置
├── config.json               # 你的配置(不要提交)
├── config.example.json       # 配置示例
├── groups.json               # 群组数据
└── src/
    ├── config.py             # 配置管理
    ├── core/
    │   └── bot.py            # 机器人核心逻辑
    ├── handlers/
    │   ├── base_handler.py   # 基础处理器
    │   ├── command_handler.py # 命令处理
    │   ├── group_message_handler.py # 群消息处理
    │   └── default_handler.py # 默认处理
    ├── models/
    │   ├── group.py          # 群组数据模型
    │   └── group_manager.py  # 群组管理
    └── utils/
        └── logger.py         # 日志工具

宇宙安全声明

  1. 账号安全:认证信息很敏感,不要泄露,不要把config.json提交到公开仓库
  2. 使用规范:遵守B站的使用规范,不要拿来做坏事
  3. 小范围使用:这个项目适合几个朋友的小群组,不适合大规模使用
  4. API限制:B站API有频率限制,发消息太快可能会被限流
  5. 账号风险:使用第三方API存在账号被封禁的风险,请自行评估

开发相关

# 使用 ruff 格式化代码
ruff format .

# 使用 ruff 检查代码
ruff check .

# 自动修复问题
ruff check --fix .

# 使用 mypy 进行类型检查
mypy .

# 或者使用 make(如果有的话)
make format
make check
make lint-fix
make run

License

AGPL-3.0 License

Contributing

欢迎提Issue和PR

最后

这个项目是我写着玩的(没有考虑并发^_^), 如果能帮到你就最好啦! 如果有问题欢迎提Issue, 我有空会看看.如果没有空,那就算了

鸣谢 bilibili-api 对于本项目开发提供的便利

About

一个用 B 站私信系统硬凑出来的群聊 bot

Topics

Resources

License

Stars

Watchers

Forks