mosgortrans/main.py
2022-08-08 18:10:08 +03:00

70 lines
1.8 KiB
Python

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,
)