diff options
Diffstat (limited to 'handlers/middleware.py')
| -rw-r--r-- | handlers/middleware.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/handlers/middleware.py b/handlers/middleware.py new file mode 100644 index 0000000..6cf39b6 --- /dev/null +++ b/handlers/middleware.py | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | from logging import info | ||
| 2 | |||
| 3 | from aiogram import types as t | ||
| 4 | from aiogram.dispatcher.middlewares import BaseMiddleware | ||
| 5 | |||
| 6 | from shared.database import Message | ||
| 7 | from shared.instances import session | ||
| 8 | |||
| 9 | |||
| 10 | class MessageMiddleware(BaseMiddleware): | ||
| 11 | async def on_pre_process_message(self, msg: t.Message, data: dict) -> None: | ||
| 12 | text = msg.text or msg.caption | ||
| 13 | if text is not None and not text.startswith("/"): | ||
| 14 | with session.begin() as s: | ||
| 15 | s.add( | ||
| 16 | Message( | ||
| 17 | chat_id=msg.chat.id, | ||
| 18 | message_id=msg.message_id, | ||
| 19 | message=text, | ||
| 20 | ) | ||
| 21 | ) | ||
