bot.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #!env/bin/python
  2. import logging
  3. #import asyncio
  4. from aiogram import Bot, Dispatcher, executor, types
  5. from aiogram.utils.exceptions import BotBlocked
  6. from config.config import BOT_TOKEN
  7. from app.handlers import setup as setup_handlers
  8. bot = Bot(token=BOT_TOKEN)
  9. dp = Dispatcher(bot)
  10. LOG_FORMAT = "%(levelname)s %(asctime)s %(name)s - %(message)s"
  11. logging.basicConfig(
  12. #filename="program.log",
  13. level=logging.DEBUG,
  14. format=LOG_FORMAT)
  15. logger = logging.getLogger(__name__)
  16. logging.getLogger("aiogram").setLevel(logging.DEBUG + 1)
  17. #await asyncio.sleep(10.0) # Здоровый сон на 10 секунд
  18. setup_handlers(dp)
  19. @dp.errors_handler(exception=BotBlocked)
  20. async def error_bot_blocked(update: types.Update, exception: BotBlocked):
  21. # Update: объект события от Telegram. Exception: объект исключения
  22. # Здесь можно как-то обработать блокировку, например, удалить пользователя из БД
  23. logger.debug(f"Меня заблокировал пользователь!\nСообщение: {update}\nОшибка: {exception}")
  24. # Необходимо возвращать True если дальнейшая обработка не требуется.
  25. return True
  26. if __name__ == "__main__":
  27. logger.info("Bot has been started ...")
  28. executor.start_polling(dp, skip_updates=True)