This commit is contained in:
retoor 2025-08-30 15:39:27 +02:00
parent edeaceba25
commit e0f9aca6ab

View File

@ -33,6 +33,7 @@ class Bot:
self.rpc = None
self.ws = None
self.joined = set()
self.semaphore = asyncio.Semaphore(1)
async def on_init(self):
logger.debug("Bot initialized.")
@ -115,36 +116,38 @@ class Bot:
await self.on_idle()
message = None
data = None
while True:
data = await rpc.receive()
if not data:
return
event = "?"
try:
event = data.event
except AttributeError:
pass
try:
message = data.message.strip()
event = "message"
except AttributeError:
pass
async iwth self.semaphore:
data = await rpc.receive()
if not data:
return
event = "?"
try:
event = data.event
except AttributeError:
pass
if event == "?":
continue
elif event == "message":
if not data.is_final:
continue
break
try:
message = data.message.strip()
event = "message"
except AttributeError:
pass
if event == "?":
continue
elif event == "message":
if not data.is_final:
continue
break
try:
await getattr(self, "on_" + data.event)(**data.data)
except AttributeError:
logger.debug("Not implemented event: " + event)
try:
await getattr(self, "on_" + data.event)(**data.data)
except AttributeError:
logger.debug("Not implemented event: " + event)
if data.username == self.user["username"]:
await self.on_own_message(data.channel_uid, message)
elif message.startswith("ping"):