Skip to content

rizutazu/bilibili-live-notification-tgbot

Repository files navigation

:你覺得你是??的腦殘粉嗎

「我覺得我是」

Bilibili Live Notification Bot

Telegram bilibili直播開播提醒bot

功能

  • 開播提醒,提示當前直播狀態,標題/分區發生變化時自動更新

  • 自動刪除無效的關注直播間

  • 記錄開播時間、結束時間、直播時長、標題變動

(是模仿來的樣式)

  • 列出提醒列表,樣式如下:

/list

[🟠]未開播: 直播間 114: (這裡是主播名稱)
[🟢]直播中: 直播間 514: (這裡是主播名稱)
[❓]未知: 直播間 1919

標記為未知的是直播間加入了提醒列表,但還未進行過任何一次狀態查詢。

除此之外,bot也提供了一些其他命令,詳見help:

/start

Bilibili live notification bot 已啟動。
輸入 /subscribe room_id 以添加提醒的直播間;
輸入 /list 以列出加入提醒列表的直播間;
輸入 /unsubscribe room_id 以將直播間移出提醒列表;
輸入 /interval 以顯示輪詢完整提醒列表的間隔,
輸入 /interval number_int 以修改這一間隔;
輸入 /echo 以查看bot是否在運行

注意:你需要向bot發送/start後才能接收到提醒消息。

安裝&&部署

使用docker-compose

  1. clone本倉庫

  2. 配置參數

參考下方的第四節,複製出一份config.json,填寫好配置;

或者,如果使用environment variables的話,參考下方,設置好環境變量。

  1. 啟動container

make up

如果有更新時,可以執行make update進行自動更新和重新部署服務

直接部署在本地。

需要使用python 3.12。

  1. clone本倉庫

  2. 創建venv並啟用:

python -m venv .env

source .env/bin/activate

  1. 安裝依賴:

pip install -r requirements.txt

  1. 配置參數:

可以使用config.json,或是environment variables。當environment variables條目存在時,總是優先於config.json而生效。

  • config.json

複製出一份config.example.json,重命名為config.json

cp config.example.json config.json

然後依照下面的提示填寫參數:

{
    "tgbot_token": "114514:aabbccdd",
    // 這個是你的telegram bot的token

    "tg_chat_id": "114514",
    // 這個是bot將會發送開播提醒的對象的chat id,就填寫自己tg的那一串唯一數字id好了,反正我也沒考慮過其他用法(劃掉

    "timezone": "Asia/Shanghai",
    // 用於指定開播提醒中時間的時區,可選參數列表參見pytz timezone list

    "poll_interval": 10,
    // 輪詢間隔,用於指定 完整查詢一輪所有關注了的直播間的狀態間 的間隔,單位:秒
    // 實際查詢的間隔還會因bilibili api的rate limit而受限

    "subscribed_rooms": [
        "114",
        "1", 
        "3"
    ]
    // 關注的直播間的列表,對應於live.bilibili.com/後面的一串數字
    // 只有一個關注時可以只填入單一string
}
  • environment variables

參考env_file.example。格式為BILILIVENOTIBOT_ + 上面json中所有出現字段的大寫,如下:

BILILIVENOTIBOT_TGBOT_TOKEN

BILILIVENOTIBOT_TG_CHAT_ID

BILILIVENOTIBOT_TIMEZONE

BILILIVENOTIBOT_POLL_INTERVAL

BILILIVENOTIBOT_SUBSCRIBED_ROOMS (多個直播間用,分隔開)

  1. 啟動

python -m bili_live_noti_bot

About

Telegram bilibili直播開播提醒bot

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages