B 站直播间协议支持
修改 NoneBot 配置文件 .env
或者 .env.*
。
请参考 driver 配置项,添加 HTTPClient
和 WebSocketClient
支持。如:
DRIVER=~httpx+~websockets
DRIVER=~aiohttp
cookie
机器人账号的 Cookies,需要存在SESSDATA
(必须) 和bili_jct
(用于一些 API 调用)。room_ids
监听的直播间房间号列表,长短号均可。
类型为 WebBot
。
access_key
开放平台提供的access_key
access_secret
开放平台提供的access_secret
app_id
项目 ID,在此处查看identify_codes
主播身份码列表,主播身份码可以在幻星-互动玩法页面右下角 身份码 查看
类型为 OpenBot
。
开放平台 Bot 无法调用任何 API。
用户 Bot 配置示例:
BILIBILI_LIVE_BOTS='
[
{
"cookie": "SESSDATA=xxxxxxxxxxxxxxxx; bili_jct=xxxxxxxxxxxxx;",
"room_ids": [544853]
}
]
'
开放平台 Bot 配置示例:
BILIBILI_LIVE_BOTS='
[
{
"access_key": "xxxxxxxxxxxxxxxxxxxx",
"access_secret": "xxxxxxxxxxxxxxxxxxxx",
"app_id": 100000,
"identify_codes": ["xxxxxxxxxxxxxxxxxxxx"]
}
]
'
标斜体的为用户 Bot 和开放平台 Bot 共有实现,粗体的为开放平台 Bot 独有实现(继承 OpenplatformOnlyEvent
),其他为用户 Bot 独有实现(继承 WebOnlyEvent
)。
来自开放平台的事件的 uid
均为 0
,相应的存在 open_id
字段。
获取用户 ID 建议使用 event.get_user_id()
方法,而不是 event.uid
或 event.open_id
。
消息类事件
DanmakuEvent
弹幕消息SuperChatEvent
醒目留言。来自开放平台的会被认为是to_me
;来自用户 Bot 的当 Bot 为主播账号时会被认为是to_me
。
通知类事件
UserEnterEvent
用户进入直播间UserFollowEvent
用户关注主播UserShareEvent
用户分享直播间LikeEvent
点赞InteractionVote
投票互动事件InteractionDanmaku
弹幕互动事件InteractionFollow
关注互动事件InteractionGift
送礼互动事件InteractionShare
分享互动事件InteractionLike
点赞互动事件
SendGiftEvent
送礼GuardBuyEvent
上舰通知GuardBuyToastEvent
用户庆祝消息SpecialGiftEvent
特殊礼物GiftStarProcessEvent
礼物星球点亮
OpenLiveStartEvent
开播事件OpenLiveEndEvent
下播事件WebLiveStartEvent
直播开始OnlineRankEvent
高能榜更新OnlineRankCountEvent
高能用户数量OnlineRankTopEvent
到达直播间高能榜前三名LikeInfoUpdateEvent
点赞数更新WatchedChangeEvent
看过人数StopLiveRoomListEvent
下播的直播间
RoomRealTimeMessageUpdateEvent
主播信息更新RoomChangeEvent
直播间信息更改ChangeRoomInfoEvent
直播间背景图片修改RoomSkinMsgEvent
直播间皮肤变更RoomSilentOnEvent
开启等级禁言RoomSilentOffEvent
关闭等级禁言RoomBlockMsgEvent
指定观众禁言RoomAdminsEvent
房管列表RoomAdminEntranceEvent
设立房管RoomAdminRevokeEvent
撤销房管
PopularRankChangedEvent
直播间在人气榜的排名改变HotRankChangedEvent
直播间限时热门榜排名改变HotRankSettlementEvent
限时热门榜上榜信息AreaRankChangedEvent
直播间在所属分区的排名改变
元事件
HeartbeatEvent
心跳包,包含人气值LIVE_OPEN_PLATFORM_INTERACTION_END
开放平台互动结束事件。此事件不会进入 NoneBot 事件处理流程,会由适配器自行捕获。
API 实现
API 仅限用户 Bot。
send_danmaku()
发送弹幕消息
get_room_info()
获取直播间详细信息get_user_room_status()
获取用户对应的直播间状态get_master_info()
获取主播信息
add_silent_user()
禁言观众get_silent_user_list()
查询直播间禁言列表del_silent_user()
解除禁言