Files
telegram-helper-bot/main.py
2024-07-11 00:32:19 +03:00

60 lines
2.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import configparser
import os
import sys
from database.db import BotDB
from helper_bot.helper_bot import TelegramHelperBot
from loguru import logger
from logs.custom_logger import Logger
#TODO: Дублируются логи с этого класса почему-то. Импортировал все так же
main_logger = Logger(name='main')
#TODO: Добавить проверку можно ли отвечать пользователю? Сейчас если у него скрыто лс, ему похоже не приходят сообщения
#TODO Подумать над реализацией функционала с поступлениями в колледжи
#TODO: Покрыть все логированием и ошибками корректными. Ерроры кидать в чат.
#TODO: Покрыть все тестами
class DependencyFactory:
def __init__(self):
# Загрузка настроек из settings.ini
logger.info("Initializing Dependency Factory")
config_path = os.path.join(sys.path[0], 'settings.ini')
self.config = configparser.ConfigParser()
self.config.read(config_path)
self.BotDB = BotDB('database/tg-bot-database')
self.settings = {}
for section in self.config.sections():
self.settings[section] = {}
for key in self.config[section]:
# Преобразование значений в соответствующий тип
if key == 'PREVIEW_LINK':
self.settings[section][key] = self.config.getboolean(section, key)
elif key == 'LOGS' or key == 'TEST':
self.settings[section][key] = self.config.getboolean(section, key)
else:
self.settings[section][key] = self.config.get(section, key)
logger.info("Initializing Dependency Factory success")
def get_database(self):
return self.BotDB
def get_settings(self):
return self.settings
def get_config(self):
return self.config
if __name__ == "__main__":
# Запускаем тг бота
bot = TelegramHelperBot(DependencyFactory())
logger.info("Bot Started")
bot.start()
#scheduler = BackgroundScheduler()
#scheduler.add_job(bot.unban_notifier(), 'cron', hour=22, minute=9)
#scheduler.start()