Init commit

This commit is contained in:
Kirill Samoylenkov 2025-08-22 11:37:26 +07:00
commit d6e00c56e7
49 changed files with 2324 additions and 0 deletions

View file

@ -0,0 +1,8 @@
__all__ = [
"i18n_middleware",
"DatabaseSessionMiddleware"
]
from .i18n import i18n_middleware
from .database import DatabaseSessionMiddleware

View file

@ -0,0 +1,25 @@
from typing import Callable, Awaitable, Dict, Any
from aiogram import BaseMiddleware
from aiogram.types import TelegramObject
from sqlalchemy.ext.asyncio import async_sessionmaker
class DatabaseSessionMiddleware(BaseMiddleware):
"""
Мидлвари для получения сессии в БД для фильтров, сообщений и прочего.
"""
def __init__(self, session_pool: async_sessionmaker) -> None:
self.session_pool = session_pool
async def __call__(
self,
handler: Callable[[TelegramObject, Dict[str, Any]], Awaitable[Any]],
event: TelegramObject,
data: Dict[str, Any],
) -> Any:
async with self.session_pool() as session:
data["session"] = session
return await handler(event, data)

View file

@ -0,0 +1,9 @@
from aiogram.utils.i18n import I18n
from aiogram.utils.i18n.middleware import ConstI18nMiddleware
from Mousey.Misc import LOCALE_DIR
# Создание мидлвари для локализация бота.
i18n = I18n(path=LOCALE_DIR, default_locale="ru", domain="bot")
i18n_middleware = ConstI18nMiddleware(i18n=i18n, locale="ru")