from aiogram import Bot, types from aiogram.contrib.middlewares.logging import LoggingMiddleware from aiogram.dispatcher import Dispatcher from aiogram.dispatcher.webhook import SendMessage from aiogram.utils.executor import start_webhook from mos_gor import logger, parse_site, download_gecko_driver, configure_firefox_driver from settings import API_TOKEN, WEBHOOK_URL, WEBHOOK_PATH, WEBAPP_HOST, WEBAPP_PORT bot = Bot(token=API_TOKEN) dp = Dispatcher(bot) dp.middleware.setup(LoggingMiddleware()) @dp.message_handler(commands=['/chatid']) async def chat_id(message: types.Message): # or reply INTO webhook return SendMessage(message.chat.id, message.chat.id) # @dp.message_handler() # async def echo(message: types.Message): # # Regular request # # await bot.send_message(message.chat.id, message.text) # # text = parse_site(driver=driver) # # # or reply INTO webhook # return SendMessage(message.chat.id, text) async def send_message(chat_id: int, text: str): await bot.send_message(chat_id=chat_id, text=text, parse_mode=types.ParseMode.HTML) async def on_startup(dp): await bot.set_webhook(WEBHOOK_URL) # insert code here to run it after start async def on_shutdown(dp): logger.warning('Shutting down..') # insert code here to run it before shutdown # Remove webhook (not acceptable in some cases) await bot.delete_webhook() # Close DB connection (if used) await dp.storage.close() await dp.storage.wait_closed() logger.warning('Bye!') if __name__ == '__main__': download_gecko_driver() driver = configure_firefox_driver() start_webhook( dispatcher=dp, webhook_path=WEBHOOK_PATH, on_startup=on_startup, on_shutdown=on_shutdown, skip_updates=True, host=WEBAPP_HOST, port=WEBAPP_PORT, )