mirror of
https://github.com/nexy7574/LCC-bot.git
synced 2024-09-19 18:16:34 +01:00
Add is_automated field to websocket
This commit is contained in:
parent
2b33d0dd71
commit
4a6fe5e79b
2 changed files with 7 additions and 0 deletions
|
@ -60,6 +60,7 @@ class MessagePayload(pydantic.BaseModel):
|
||||||
|
|
||||||
message_id: int
|
message_id: int
|
||||||
author: str
|
author: str
|
||||||
|
is_automated: bool = False
|
||||||
avatar: str
|
avatar: str
|
||||||
content: str
|
content: str
|
||||||
clean_content: str
|
clean_content: str
|
||||||
|
@ -346,6 +347,7 @@ class Events(commands.Cog):
|
||||||
_payload = MessagePayload(
|
_payload = MessagePayload(
|
||||||
message_id=_message.id,
|
message_id=_message.id,
|
||||||
author=_message.author.name,
|
author=_message.author.name,
|
||||||
|
is_automated=_message.author.bot or _message.author.system,
|
||||||
avatar=_message.author.display_avatar.with_static_format("webp").with_size(512).url,
|
avatar=_message.author.display_avatar.with_static_format("webp").with_size(512).url,
|
||||||
content=_message.content or '',
|
content=_message.content or '',
|
||||||
clean_content=str(_message.clean_content or ''),
|
clean_content=str(_message.clean_content or ''),
|
||||||
|
|
|
@ -55,6 +55,7 @@ except ImportError:
|
||||||
bot = None
|
bot = None
|
||||||
app.state.last_sender = None
|
app.state.last_sender = None
|
||||||
app.state.last_sender_ts = datetime.utcnow()
|
app.state.last_sender_ts = datetime.utcnow()
|
||||||
|
app.state.ws_connected = False
|
||||||
|
|
||||||
|
|
||||||
@app.middleware("http")
|
@app.middleware("http")
|
||||||
|
@ -291,9 +292,12 @@ async def bridge(req: Request):
|
||||||
async def bridge_recv(ws: WebSocket, secret: str = Header(None)):
|
async def bridge_recv(ws: WebSocket, secret: str = Header(None)):
|
||||||
if secret != app.state.bot.http.token:
|
if secret != app.state.bot.http.token:
|
||||||
raise HTTPException(status_code=401, detail="Invalid secret.")
|
raise HTTPException(status_code=401, detail="Invalid secret.")
|
||||||
|
if app.state.ws_connected:
|
||||||
|
raise HTTPException(status_code=409, detail="Already connected.")
|
||||||
queue: asyncio.Queue = app.state.bot.bridge_queue
|
queue: asyncio.Queue = app.state.bot.bridge_queue
|
||||||
|
|
||||||
await ws.accept()
|
await ws.accept()
|
||||||
|
app.state.ws_connected = True
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
data = queue.get_nowait()
|
data = queue.get_nowait()
|
||||||
|
@ -307,3 +311,4 @@ async def bridge_recv(ws: WebSocket, secret: str = Header(None)):
|
||||||
break
|
break
|
||||||
finally:
|
finally:
|
||||||
queue.task_done()
|
queue.task_done()
|
||||||
|
app.state.ws_connected = False
|
||||||
|
|
Loading…
Reference in a new issue