generated from geekiot/python-template
Update [db]: finally update bot struct
This commit is contained in:
parent
05486d6f4b
commit
3ae9b3cd72
12 changed files with 19 additions and 25 deletions
|
|
@ -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 # Этот файл.
|
||||||
|
|
|
||||||
|
|
@ -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. "
|
||||||
|
|
|
||||||
|
|
@ -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__(
|
||||||
|
|
|
||||||
|
|
@ -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).
|
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
@ -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):
|
||||||
|
|
@ -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,
|
||||||
|
|
@ -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]]
|
||||||
Loading…
Add table
Add a link
Reference in a new issue