This commit is contained in:
2026-02-27 15:59:37 +03:00
commit a57a5278d6
29 changed files with 1084 additions and 0 deletions
View File
+34
View File
@@ -0,0 +1,34 @@
import asyncio
import logging
from aiogram import Bot, Dispatcher
from aiogram.client.default import DefaultBotProperties
from aiogram.enums import ParseMode
from aiogram_dialog import setup_dialogs
from src.dutylog.application.bot.user_handlers import router as user_router
from src.dutylog.application.bot.user_dialogs import main_menu_dialog
from src.dutylog.infrastructure.utils.config import load_config
async def main():
logging.basicConfig(level=logging.INFO)
config = load_config()
bot = Bot(
token=config.bot_token,
default=DefaultBotProperties(parse_mode=ParseMode.HTML)
)
dp = Dispatcher()
dp.include_router(user_router)
dp.include_router(main_menu_dialog)
setup_dialogs(dp)
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())
@@ -0,0 +1,3 @@
from src.dutylog.application.bot.user_dialogs.main_menu_dialog import main_menu_dialog
__all__ = ["main_menu_dialog"]
@@ -0,0 +1,11 @@
from aiogram_dialog import Dialog, Window
from aiogram_dialog.widgets.text import Const
from src.dutylog.application.bot.user_dialogs.states import MainMenuSG
main_menu_dialog = Dialog(
Window(
Const("Главное меню"),
state=MainMenuSG.main,
),
)
@@ -0,0 +1,5 @@
from aiogram.fsm.state import State, StatesGroup
class MainMenuSG(StatesGroup):
main = State()
@@ -0,0 +1,13 @@
from aiogram import Router
from aiogram.filters import CommandStart
from aiogram.types import Message
from aiogram_dialog import DialogManager, StartMode
from src.dutylog.application.bot.user_dialogs.states import MainMenuSG
router = Router()
@router.message(CommandStart())
async def start_handler(message: Message, dialog_manager: DialogManager):
await dialog_manager.start(MainMenuSG.main, mode=StartMode.RESET_STACK)