first commit

This commit is contained in:
2026-04-05 21:06:43 +07:00
commit 8a597f880f
28 changed files with 783 additions and 0 deletions

40
main.py Normal file
View File

@@ -0,0 +1,40 @@
import logging
import asyncio
from aiogram import Bot, Dispatcher
from aiogram.client.default import DefaultBotProperties
from aiogram.client.session.aiohttp import AiohttpSession
from dto.di import DependenciesDTO
from handlers import routers
from middlewares import DIMiddleware
from config import settings
from repositories.users import UserRepository
from services.user_service import UserService
from db.session import async_session
logging.basicConfig(level=logging.DEBUG)
async def main():
print(settings.model_dump())
dp = Dispatcher()
user_repository = UserRepository()
user_service = UserService(user_repository)
deps = DependenciesDTO(user_repository=user_repository, user_service=user_service)
dp.update.middleware.register(DIMiddleware(deps, async_session))
aiohttp_session = AiohttpSession(proxy=settings.proxy)
default = DefaultBotProperties(parse_mode="HTML")
bot = Bot(token=settings.bot_token, default=default, session=aiohttp_session)
for router in routers:
dp.include_router(router)
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())