Files
telegram-helper-bot/helper_bot/utils/base_dependency_factory.py

49 lines
1.8 KiB
Python

import configparser
import os
import sys
from database.db import BotDB
current_dir = os.getcwd()
class BaseDependencyFactory:
def __init__(self):
# Загрузка настроек из settings.ini
config_path = os.path.join(sys.path[0], 'settings.ini')
self.config = configparser.ConfigParser()
self.config.read(config_path)
self.settings = {}
# Используем абсолютный путь к директории проекта
project_dir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
self.database = BotDB(project_dir, 'tg-bot-database.db')
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)
def get_settings(self):
return self.settings
def get_db(self) -> BotDB:
"""Возвращает подключение к базе данных."""
return self.database
# Создаем единый экземпляр для всего приложения
_global_instance = None
def get_global_instance():
"""Возвращает глобальный экземпляр BaseDependencyFactory."""
global _global_instance
if _global_instance is None:
_global_instance = BaseDependencyFactory()
return _global_instance