import logging from aiogram import Bot, Dispatcher from aiogram.dispatcher.webhook import configure_app from aiogram.contrib.middlewares.logging import LoggingMiddleware from aiohttp import web from config import config WEBAPP_PORT = 3001 TELEGRAM_WEBHOOK_URL = f'{config.base_url}{config.api_token}' logging.basicConfig(level=logging.INFO) bot = Bot(token=config.api_token) dp = Dispatcher(bot) dp.middleware.setup(LoggingMiddleware()) async def test_route(_): return web.json_response({'test': 'passed'}, status=200) async def on_startup(_): await bot.set_webhook(TELEGRAM_WEBHOOK_URL) async def on_shutdown(_): logging.warning('Shutting down') await bot.delete_webhook() await dp.storage.close() await dp.storage.wait_closed() await bot.session.close() logging.warning('Bye!..') app = web.Application() app.add_routes([web.get('/test', test_route)]) app.on_startup.append(on_startup) app.on_shutdown.append(on_shutdown) configure_app(dp, app, '/'+config.api_token) if __name__ == '__main__': web.run_app(app, port=WEBAPP_PORT)