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