This repository has been archived on 2022-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
it-volunteers-for-peace/bot.py

40 lines
851 B
Python

#!/usr/bin/python
import logging
import os
import asyncio
from aiogram import Bot, Dispatcher
import asyncpg
from middlewares.db import DbMiddleware
from handlers.commands import register_command_handlers
async def main():
"""Configures and runs the bot, connects to the db"""
logging.basicConfig(level=logging.INFO)
DB_URL = os.getenv("DB_URL")
API_TOKEN = os.getenv("API_TOKEN")
pool = await asyncpg.create_pool(DB_URL)
bot = Bot(API_TOKEN)
dp = Dispatcher(bot)
# Register handlers
register_command_handlers(dp)
# Register middlewares
dp.middleware.setup(DbMiddleware(pool))
try:
await dp.start_polling()
finally:
await dp.storage.close()
bot_session = await bot.get_session()
await bot_session.close()
if __name__ == '__main__':
asyncio.run(main())