Metadata-Version: 2.4
Name: nonebot-plugin-bili-dynamic
Version: 0.1.0
Summary: B站动态/直播推送 NoneBot2 插件（基于 Colter23/mirai 插件移植）
Author: Tony
License: MIT
Project-URL: Homepage, https://github.com/TonyLiangP2010405/nonebot-plugin-bili-dynamic
Project-URL: Repository, https://github.com/TonyLiangP2010405/nonebot-plugin-bili-dynamic
Keywords: nonebot,nonebot2,bilibili,bili,dynamic,live,plugin
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Communications :: Chat
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: nonebot2>=2.2.0
Requires-Dist: nonebot-plugin-apscheduler>=0.5.0
Requires-Dist: nonebot-plugin-localstore>=0.7.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: pillow>=10.0.0
Requires-Dist: skia-python>=87.5
Requires-Dist: qrcode[pil]>=7.4.2
Requires-Dist: tortoise-orm[accel]>=0.21.0
Requires-Dist: aerich>=0.7.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: typing-extensions>=4.0.0
Provides-Extra: render
Requires-Dist: playwright>=1.40.0; extra == "render"
Dynamic: license-file

# NoneBot2 B站动态推送插件

基于 [Colter23/bilibili-dynamic-mirai-plugin](https://github.com/Colter23/bilibili-dynamic-mirai-plugin) 移植的 **NoneBot2** 版本。

低延迟检测 B 站动态/直播并推送到 QQ 群/私聊。

## 功能

- ✅ 动态检测（图文/视频/专栏/转发等）
- ✅ 直播检测（开播推送）
- ✅ 群/私聊订阅管理
- ✅ 支持 @全体 配置（按动态类型）
- ✅ 动态过滤（类型黑名单/正则黑白名单）
- ✅ 管理员指令
- 🚧 图片渲染（后续版本加入）
- 🚧 推送模板系统（后续版本完善）

## 安装

### 方式一：pip 安装（推荐）

```bash
pip install nonebot-plugin-bili-dynamic
```

### 方式二：本地安装

```bash
cd nonebot-plugin-bili-dynamic
pip install -e .
```

然后在 `bot.py` 中加载：

```python
nonebot.load_plugin("nonebot_plugin_bili_dynamic")
```

## 配置

在 `.env` 或 `.env.prod` 中添加：

```env
# ========== B站账号（必需） ==========
# SESSDATA 从浏览器 Cookie 中获取
# 获取方法：登录B站 -> F12 -> Application -> Cookies -> www.bilibili.com -> SESSDATA
bili_account__sessdata="你的SESSDATA"
bili_account__bili_jct="你的bili_jct"

# ========== 检测间隔 ==========
check__interval=30          # 动态检测间隔（秒，默认30，最低10）
check__live_interval=20     # 直播检测间隔（秒，默认20）

# ========== 推送配置 ==========
push__max_images=4          # 推送最大图片数
push__text_only=false       # 仅文本推送（不发送图片）

# ========== 过滤配置 ==========
filter__enable=true
filter__blacklist_types=["转发"]

# ========== 管理员 ==========
superusers=["123456789"]    # 管理员QQ号列表

# ========== 调试 ==========
debug=false
```

> ⚠️ **重要**：没有 SESSDATA 时 B 站 API 返回的数据可能不完整（仅3条评论/动态），强烈建议配置！

## 指令

| 指令 | 别名 | 说明 | 权限 |
|------|------|------|------|
| `/bili help` | `帮助` | 查看帮助 | 所有人 |
| `/bili add <UID>` | `订阅` | 添加订阅 | 所有人 |
| `/bili del <UID>` | `取消订阅` | 删除订阅 | 所有人 |
| `/bili list` | `订阅列表` | 查看当前订阅 | 所有人 |
| `/bili live <UID>` | `直播状态` | 查询直播状态 | 所有人 |
| `/bili new <UID> [n]` | `最新动态` | 查看最新n条动态 | 所有人 |
| `/bili listall` | `全部订阅` | 查看所有订阅 | 超级用户 |
| `/bili clear` | - | 清理失效订阅 | 超级用户 |

### 使用示例

```
# 订阅 UP 主 "小小桃纸哟"（UID: 6867955）
/bili add 6867955

# 查看订阅列表
/bili list

# 查询该 UP 直播状态
/bili live 6867955

# 查看最近3条动态
/bili new 6867955 3

# 取消订阅
/bili del 6867955
```

## 推送效果

文本推送示例：
```
📢 小小桃纸哟 发布了新视频！
🕐 05-10 20:30

今天给大家带来了原神萌新的第 N 期视频~

🔗 https://t.bilibili.com/xxxx
```

## 文件结构

```
nonebot-plugin-bili-dynamic/
├── nonebot_plugin_bili_dynamic/
│   ├── __init__.py       # 插件入口
│   ├── config.py         # 配置模型
│   ├── api.py            # B站API封装
│   ├── models.py         # 数据库模型
│   ├── database.py       # 数据库操作
│   ├── monitor.py        # 轮询检测
│   ├── commands.py       # 指令系统
│   └── renderer.py       # 图片渲染（TODO）
├── pyproject.toml
└── README.md
```

## 原项目对比

| 功能 | Mirai 版 (Colter23) | NoneBot 版 (本插件) |
|------|---------------------|---------------------|
| 动态检测 | ✅ | ✅ |
| 直播检测 | ✅ | ✅ |
| 图片渲染 (skiko) | ✅ | 🚧 开发中 |
| 推送模板 | ✅ 丰富 | 🚧 简化版 |
| 过滤系统 | ✅ 类型+正则 | ✅ 类型+正则 |
| 分组管理 | ✅ | 🚧 |
| 扫码登录 | ✅ | ❌ 手动配置Cookie |
| 链接解析 | ✅ | 🚧 |
| 翻译 | ✅ | 🚧 |

##  TODO

- [ ] 图片渲染（Pillow / Playwright）
- [ ] 推送模板系统（多种模板切换）
- [ ] 分组管理
- [ ] 扫码登录获取 Cookie
- [ ] 链接解析
- [ ] 翻译功能
- [ ] 番剧订阅

## 鸣谢

- 原项目: [Colter23/bilibili-dynamic-mirai-plugin](https://github.com/Colter23/bilibili-dynamic-mirai-plugin)
- NoneBot2: [nonebot/nonebot2](https://github.com/nonebot/nonebot2)

## License

MIT
