通过ws连接b站直播间,监听弹幕 具体使用方法和配置见下面的配置和使用例子
请在.env文件里面这样配置
bililiveid=[b站直播间id] ##默认为[]
bilitoken= ##这里填一个已登录账号的cookie的SESSDATA字段的值。不填也可以连接,但是收到弹幕的用户名会打码,UID会变成0
bililivedown=on ##是否开启b站直播间弹幕监听功能,on为开启,其他为关闭,默认为on
loadws= ##是否开启websocket功能,默认为ws://127.0.0.1:8000/bilidm
在.env文件里面配置好之后,在你自己的py文件里面这样使用ws 以默认的ws://127.0.0.1:8000/bilidm为例
from aiohttp import web
import threading
import nonebot
async def websocket_handler(request): ##千万别在这里使用async def websocket_handler(request,bot: Bot):不然会导致报错无法连接
ws = web.WebSocketResponse()
await ws.prepare(request)
async for msg in ws:
reout = msg.data
tes = json.loads(msg.data)
send = tes["message"]
(bot,) = nonebot.get_bots().values()
await bot.send_private_msg(user_id=12335, message=send)
return ws
def run_app():
app = web.Application()
app.router.add_get("/bilidm", websocket_handler)
web.run_app(app, host="127.0.0.1", port=8000,print=None)
# 在主线程中创建一个子线程,防止卡住nb进程(或者用py单独运行个.py文件也行)
thread = threading.Thread(target=run_app)
thread.start()
参数说明
{
"user_id": int,
"nickname": str,
"message": str,
"room_id": int,
"type": str, ##仅支持普通消息(message)和醒目留言(super_chat)
"price":int
}