Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/natescarlet/bilibili-live-notification
B 站直播事件 webhook 和开播邮件提醒
https://github.com/natescarlet/bilibili-live-notification
bilibili bilibili-live email-notification webhook
Last synced: about 2 months ago
JSON representation
B 站直播事件 webhook 和开播邮件提醒
- Host: GitHub
- URL: https://github.com/natescarlet/bilibili-live-notification
- Owner: NateScarlet
- License: gpl-3.0
- Created: 2020-12-22T18:36:06.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2023-11-14T10:12:16.000Z (about 1 year ago)
- Last Synced: 2024-10-27T11:47:08.790Z (2 months ago)
- Topics: bilibili, bilibili-live, email-notification, webhook
- Language: Jupyter Notebook
- Homepage:
- Size: 237 KB
- Stars: 32
- Watchers: 5
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# B 站直播提醒
[![docker](https://github.com/NateScarlet/bilibili-live-notification/workflows/docker/badge.svg)](https://github.com/NateScarlet/bilibili-live-notification/actions)
在指定房间开播时发送邮件通知。
用于解决 B 站手机端 99% 开播都不能及时推送的问题。
- [x] 同时监控多个直播间
- [x] 支持基于轮询的事件(默认关闭),用于解决服务端推送信息不可靠的问题
- [x] 开播
- [x] 直播间变更
- [x] 开播时给所有指定的邮箱发送邮件
- [x] 事件节流,时间段内同一直播间内的同类型事件只处理一次。
- [x] 事件去重,通过事件生成 key ,同房间相同 key 的事件不重复处理。
- [x] 支持 Webhook (用于配合其他服务,例如使用 [go-cqhttp](https://github.com/Mrs4s/go-cqhttp) 发送 QQ 消息,使用 Discord 官方 API 发送 Discord 消息)
- [x] 所有直播间事件都支持 Webhook,不仅限于 LIVE 事件
- [x] 根据条件跳过 Webhook
- [x] 为每个直播间单独指定设置,未指定时使用全局设置## 配置
完全使用环境变量进行配置,参见 [.env.example](./.env.example)
推荐将环境变量写入 .env 文件然后再使用 [godotenv](https://github.com/joho/godotenv) 在配置的环境下执行命令
### 模版
除模版变量设置外的所有设置都支持模版,使用 [JinJa2](https://jinja.palletsprojects.com/) 作为模版引擎
可通过设置定义变量,并且提供内置变量。
变量覆盖优先级,序号小的值覆盖序号大的值:
1. 房间
2. 全局
3. 内置全局模版变量值:
- datetime: type(datetime.datetime)
datetime 模块
开播提醒:
- event:
```typescript
{
room_display_id: number,
room_real_id: number,
type: string,
data: unknown | number
}
```变量事件,data 字段的类型参见 [event.example.json](./event.example.json)
- room:
```typescript
{
name: string,
title: string,
url: string,
/** 人气值 实时更新 */
popularity: number,
data: unknown,
}
```房间信息,参见 [room.ipynb](./room.ipynb)
## 从命令行运行
```bash
python3.8 -m pip install -r requirements.txt
python3.8 -m bilibili_live_notification
```## Docker 部署
参考 [docker-compose.yml](./deployments/docker-compose.yml) 配合 .env 文件使用。