mirror of
https://github.com/koloideal/DutyLog.git
synced 2026-06-10 10:25:29 +03:00
initial
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user