24 lines
632 B
Python
24 lines
632 B
Python
import asyncio
|
|
|
|
|
|
class MessagesStorage:
|
|
lock = asyncio.Lock()
|
|
chats = []
|
|
|
|
@staticmethod
|
|
async def register_chat(chat):
|
|
async with MessagesStorage.lock:
|
|
MessagesStorage.chats.append(chat)
|
|
|
|
@staticmethod
|
|
async def remove_chat(chat):
|
|
async with MessagesStorage.lock:
|
|
MessagesStorage.chats.remove(chat)
|
|
|
|
@staticmethod
|
|
async def put(message_result):
|
|
async with MessagesStorage.lock:
|
|
for chat in MessagesStorage.chats:
|
|
if message_result.message["chatId"] == chat.chat_id:
|
|
chat.queue.put_nowait(message_result)
|