mirror of
https://github.com/koloideal/DutyLog.git
synced 2026-06-10 10:25:29 +03:00
62 lines
1.7 KiB
Python
62 lines
1.7 KiB
Python
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 dishka import make_async_container
|
|
from dishka.integrations.aiogram import setup_dishka
|
|
|
|
from dutylog.application.bot.user_handlers import router as user_router
|
|
from dutylog.application.bot.user_dialogs import main_menu_dialog
|
|
from dutylog.application.bot.admin_dialogs import admin_menu_dialog
|
|
from dutylog.application.bot.creator_dialogs import creator_menu_dialog
|
|
from dutylog.application.bot.user_dialogs.registration_dialog import registration_dialog
|
|
from dutylog.infrastructure.ioc import (
|
|
ConfigProvider,
|
|
DatabaseProvider,
|
|
DAOProvider,
|
|
RepositoryProvider,
|
|
ServiceProvider,
|
|
)
|
|
from 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)
|
|
)
|
|
|
|
await bot.delete_webhook(drop_pending_updates=True)
|
|
|
|
dp = Dispatcher()
|
|
|
|
container = make_async_container(
|
|
ConfigProvider(),
|
|
DatabaseProvider(),
|
|
DAOProvider(),
|
|
RepositoryProvider(),
|
|
ServiceProvider(),
|
|
context={Bot: bot}
|
|
)
|
|
|
|
dp.include_router(user_router)
|
|
dp.include_router(main_menu_dialog)
|
|
dp.include_router(admin_menu_dialog)
|
|
dp.include_router(creator_menu_dialog)
|
|
dp.include_router(registration_dialog)
|
|
|
|
setup_dialogs(dp)
|
|
setup_dishka(container, dp, auto_inject=True)
|
|
|
|
await dp.start_polling(bot)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main())
|