Ошибка KeyError: '13888480557292346'
Написал мидовар, но при запуске если передать несколько фотографий то выдаёт ошибку:
total_after = len(self.album[event.media_group_id]['messages'])
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
KeyError: '13888480557292346'
class AlbumMiddleware(BaseMiddleware):
def __init__(
self,
latency: Union[int, float] = 0.1
) -> None:
self.latency = latency
self.album = {}
def collect_album_message(self, event: Message):
if event.media_group_id not in self.album:
self.album[event.media_group_id] = {'messages': []}
self.album[event.media_group_id]['messages'].append(event)
return len(self.album[event.media_group_id]['messages'])
async def __call__(
self,
handler: Callable[[Message, Dict[str, Any]], Awaitable[Any]],
event: Message,
data: Dict[str, Any]
) -> Any:
if not event.media_group_id:
return await handler(event, data)
total_before = self.collect_album_message(event)
await asyncio.sleep(self.latency)
total_after = len(self.album[event.media_group_id]['messages'])
if total_before != total_after:
return
album_messages = self.album[event.media_group_id]['messages']
album_messages.sort(key=lambda x: x.message_id)
data['album'] = album_messages
await handler(event, data)
del self.album[event.media_group_id]