✨ first commit
This commit is contained in:
commit
0d7c17b486
4 changed files with 287 additions and 0 deletions
38
main.py
Executable file
38
main.py
Executable file
|
@ -0,0 +1,38 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import argparse
|
||||
import asyncio
|
||||
import httpx
|
||||
from bilibili_api import live, sync
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(
|
||||
description="将 B 站直播间弹幕通过 ServerTap 转发到 Spigot 服务器"
|
||||
)
|
||||
parser.add_argument("--room", type=int, required=True, help="直播房间号")
|
||||
parser.add_argument("--host", type=str, help="ServerTap 的 IP")
|
||||
parser.add_argument("--port", type=str, help="ServerTap 的端口")
|
||||
parser.add_argument("--key", type=str, help="ServerTap 的认证信息")
|
||||
args = parser.parse_args()
|
||||
|
||||
room = live.LiveDanmaku(args.room)
|
||||
headers = {"key": args.key} if args.key else {}
|
||||
host = args.host if args.host else "127.0.0.1"
|
||||
port = args.port if args.port else "4567"
|
||||
|
||||
@room.on("DANMU_MSG")
|
||||
async def on_danmaku(event):
|
||||
danmu = event["data"]["info"][1]
|
||||
user = event["data"]["info"][2][1]
|
||||
msg = f"[直播间弹幕]<{user}>{danmu}"
|
||||
async with httpx.AsyncClient() as client:
|
||||
response = await client.post(
|
||||
f"http://{host}:{port}/v1/chat/broadcast",
|
||||
headers=headers,
|
||||
data={"message": msg},
|
||||
)
|
||||
if response.status_code != 200:
|
||||
print(msg)
|
||||
print(response.text)
|
||||
|
||||
sync(room.connect())
|
Loading…
Add table
Add a link
Reference in a new issue