/
darkus
/
love_bot
Обзор
Документация
Войти
/
darkus
/
love_bot
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
bot.py
67 строк
2 KB
Pavel Repin
add README.md, auxiliary_module.py, logs_hendler_telegram.py, code optimization
13 мар 2024, 10:35
13 мар 2024, 10:35
2759d65
Код
Авторство
О чём код?
import asyncio import logging import os from aiogram import Bot, Dispatcher from aiogram.exceptions import TelegramNetworkError, TelegramRetryAfter from dotenv import load_dotenv from data.sqlite_db_users import DatabaseUsers from data.sqlite_men_questionnaire import MensQuestionnaires from data.sqlite_woman_questionnaire import WomanQuestionnaires from hendlers.hendler_commands import router_commands from hendlers.states_man import men_questionnaires_router from hendlers.states_woman import woman_questionnaires_router from hendlers.user_hendlers import main_users_router from utils.commands import register_commands from utils.logs_hendler_telegram import TelegramBotHandler logger = logging.getLogger(__name__) def create_tables(): db_users = DatabaseUsers() db_man_questionnaires = MensQuestionnaires() db_woman_questionnaires = WomanQuestionnaires() try: db_users.create_table_users() db_man_questionnaires.create_table_men_questionnaires() db_woman_questionnaires.create_table_women_questionnaires() logger.info("Tables created") except Exception as e: logger.error(e) async def connect_telegram(): bot = Bot(token=telegram_token, parse_mode="HTML") dp = Dispatcher() dp.include_routers(router_commands, men_questionnaires_router, woman_questionnaires_router, main_users_router, ) create_tables() try: await bot.delete_webhook(drop_pending_updates=True) await dp.start_polling(bot) await register_commands(bot) except TelegramNetworkError as error: logger.error(error) finally: await bot.close() if __name__ == '__main__': load_dotenv() telegram_log_handler = TelegramBotHandler() logging.basicConfig( handlers=[telegram_log_handler], level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') telegram_token = os.getenv('TELEGRAM_TOKEN') try: asyncio.run(connect_telegram()) except TelegramRetryAfter as error: logger.error(error) except KeyboardInterrupt: logger.info('Bot interrupted')