#!/usr/bin/env python3 import sys import logging import asyncio from aiogram import executor import filters import handlers from utils.announcements import scheduler from load import dp, bot, config from utils import set_commands if (len(sys.argv) >= 2) and (sys.argv[1] == '-u'): from parser import docs_parse; docs_parse() sys.exit(0) logging.basicConfig( format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO ) logger = logging.getLogger("Bot") WEBAPP_HOST = config.bot("ip") WEBAPP_PORT = config.bot("port") WEBHOOK_HOST = f'http://{WEBAPP_HOST}:{WEBAPP_PORT}' WEBHOOK_PATH = f'/bot{config.bot("token")}/' WEBHOOK_URL = f"{WEBHOOK_HOST}{WEBHOOK_PATH}" async def on_startup(dp): await set_commands(dp) await bot.set_webhook(url=WEBHOOK_URL) async def on_shutdown(dp): await bot.delete_webhook() def main() -> None: if config.logging_user: logger.info("Logging enabled!") else: logger.info("Logging disabled!") #loop = asyncio.get_event_loop() loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) loop.create_task(scheduler()) if config.bot("use_webhook").lower() in ['t', 'true', '1', 'yes', 'y']: executor.start_webhook( dispatcher=dp, loop=loop, webhook_path=WEBHOOK_PATH, on_startup=on_startup, skip_updates=False, on_shutdown=on_shutdown, host=WEBAPP_HOST, port=WEBAPP_PORT, ) else: executor.start_polling(dp, skip_updates=True) if __name__ == '__main__': main()