Update [db]: finally update bot struct

This commit is contained in:
Kirill Samoylenkov 2025-11-01 15:01:36 +05:00
parent 05486d6f4b
commit 3ae9b3cd72
12 changed files with 19 additions and 25 deletions

View file

@ -70,14 +70,13 @@ urfu-daddy/
│ │ ├── __init__.py # Функция для запуска бота. │ │ ├── __init__.py # Функция для запуска бота.
│ │ ├── handlers/ # Обработка всех ивентов. │ │ ├── handlers/ # Обработка всех ивентов.
│ │ │ ├── callbacks/ # Обработка запросов. │ │ │ ├── callbacks/ # Обработка запросов.
│ │ │ ── commands/ # Обработка комманд. │ │ │ ── commands/ # Обработка комманд.
│ │ │ ├── utils/ # Вспомогательные компоненты для хендлеров. │ │ ├── middlewares/ # Мидлвари для диспетчера/роутеров.
│ │ ├── middlewares/ # Мидлвари для диспетчера. │ │ ├── services/ # Взаимодействие с другими сервисами бота.
│ │ └── services/ # Взаимодействие с другими сервисами бота. │ │ └── utils/ # Вспомогательные компоненты для для бота.
│ ├── config/ # Получение env-настроек, настройка логирования. │ ├── config/ # Получение env-настроек, настройка логирования.
│ ├── database/ # Инициализация и настройка БД. │ ├── database/ # Инициализация и настройка БД.
│ ├── locales/ # Папка с локализацией проекта. │ └── locales/ # Папка с локализацией проекта.
│ └── redis_client/ # Настройка redis-клиента.
├── LICENSE # Лицензия проекта. ├── LICENSE # Лицензия проекта.
├── README.md # Описание проекта. ├── README.md # Описание проекта.
├── CONTRIBUTE.md # Этот файл. ├── CONTRIBUTE.md # Этот файл.

View file

@ -2,7 +2,7 @@ from aiogram.types import Message
from bot.handlers import registry from bot.handlers import registry
from bot.handlers.utils.types import ChatType from bot.handlers.utils.types import ChatType
from bot.services.database import check_user from bot.services.database import check_telegram_user
@registry.register( @registry.register(
@ -14,7 +14,7 @@ async def cmd_help(message: Message, session) -> None:
if message.from_user is None: if message.from_user is None:
return return
user = await check_user(session, message.from_user.id) user = await check_telegram_user(session, message.from_user.id)
await message.answer( await message.answer(
"Help Command Function Answer Text. " "Help Command Function Answer Text. "

View file

@ -7,7 +7,6 @@ from sqlalchemy.ext.asyncio import async_sessionmaker
class DatabaseSessionMiddleware(BaseMiddleware): class DatabaseSessionMiddleware(BaseMiddleware):
def __init__(self, session_maker: async_sessionmaker): def __init__(self, session_maker: async_sessionmaker):
super().__init__()
self.session_maker = session_maker self.session_maker = session_maker
async def __call__( async def __call__(

View file

@ -1,5 +1,4 @@
__all__ = [] __all__ = ["check_telegram_user"]
# TODO: Add bot business logic from .database import check_telegram_user
# (working with other service components).

View file

@ -1,13 +1,10 @@
__all__ = ["check_user"]
from sqlalchemy import select from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from database.models import TelegramUser from database import TelegramUser
async def _get_user( async def _get_telegram_user(
session: AsyncSession, session: AsyncSession,
telegram_id: int, telegram_id: int,
) -> TelegramUser | None: ) -> TelegramUser | None:
@ -21,7 +18,7 @@ async def _get_user(
return result.scalar() return result.scalar()
async def _add_user( async def _add_telegram_user(
session: AsyncSession, session: AsyncSession,
telegram_id: int, telegram_id: int,
) -> TelegramUser: ) -> TelegramUser:
@ -38,7 +35,7 @@ async def _add_user(
return user return user
async def check_user( async def check_telegram_user(
session: AsyncSession, session: AsyncSession,
telegram_id: int, telegram_id: int,
) -> TelegramUser: ) -> TelegramUser:
@ -47,9 +44,9 @@ async def check_user(
Если его нет, то добавляет. Если его нет, то добавляет.
Всегда возвращает объект пользователя. Всегда возвращает объект пользователя.
""" """
result = await _get_user(session, telegram_id) result = await _get_telegram_user(session, telegram_id)
if result is not None: if result is not None:
return result return result
return await _add_user(session, telegram_id) return await _add_telegram_user(session, telegram_id)

View file

@ -6,7 +6,7 @@ from typing import Union
from aiogram.filters import BaseFilter from aiogram.filters import BaseFilter
from aiogram.types import CallbackQuery, Message from aiogram.types import CallbackQuery, Message
from bot.handlers.utils.types import ChatType from bot.utils.types import ChatType
class ChatTypeFilter(BaseFilter): class ChatTypeFilter(BaseFilter):

View file

@ -13,8 +13,8 @@ from aiogram.types.bot_command_scope_all_private_chats import (
) )
from loguru import logger as loguru_logger from loguru import logger as loguru_logger
from bot.handlers.utils.filters import ChatTypeFilter from bot.utils.filters import ChatTypeFilter
from bot.handlers.utils.types import ( from bot.utils.types import (
ChatType, ChatType,
HandlerMeta, HandlerMeta,
HandlerType, HandlerType,

View file

@ -1,7 +1,7 @@
from dataclasses import dataclass from dataclasses import dataclass
from typing import Any, Awaitable, Callable, TypeVar from typing import Any, Awaitable, Callable, TypeVar
from bot.handlers.utils.types import ChatType from bot.utils.types import ChatType
HandlerType = TypeVar( HandlerType = TypeVar(
"HandlerType", bound=Callable[[Any], Awaitable[Any]] "HandlerType", bound=Callable[[Any], Awaitable[Any]]