add algam
This commit is contained in:
52
bot_config.py
Normal file
52
bot_config.py
Normal file
@@ -0,0 +1,52 @@
|
||||
"""
|
||||
Конфигурация для Telegram бота
|
||||
"""
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
|
||||
# Загружаем переменные окружения
|
||||
load_dotenv()
|
||||
|
||||
class BotConfig:
|
||||
"""Конфигурация бота"""
|
||||
|
||||
# Telegram Bot
|
||||
TELEGRAM_BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN")
|
||||
|
||||
# Database
|
||||
DB_HOST = os.getenv("DB_HOST", "localhost")
|
||||
DB_PORT = os.getenv("DB_PORT", "5432")
|
||||
DB_NAME = os.getenv("DB_NAME", "botdb")
|
||||
DB_USER = os.getenv("DB_USER", "botuser")
|
||||
DB_PASSWORD = os.getenv("DB_PASSWORD")
|
||||
|
||||
# Application
|
||||
APP_ENV = os.getenv("APP_ENV", "development")
|
||||
LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO")
|
||||
DEBUG = os.getenv("DEBUG", "False").lower() == "true"
|
||||
|
||||
@classmethod
|
||||
def validate(cls):
|
||||
"""Проверка обязательных конфигурационных параметров"""
|
||||
if not cls.TELEGRAM_BOT_TOKEN:
|
||||
raise ValueError("TELEGRAM_BOT_TOKEN не найден в переменных окружения")
|
||||
|
||||
if not cls.DB_PASSWORD:
|
||||
raise ValueError("DB_PASSWORD не найден в переменных окружения")
|
||||
|
||||
return True
|
||||
|
||||
@classmethod
|
||||
def get_database_url(cls):
|
||||
"""Получение URL для подключения к базе данных"""
|
||||
return f"postgresql://{cls.DB_USER}:{cls.DB_PASSWORD}@{cls.DB_HOST}:{cls.DB_PORT}/{cls.DB_NAME}"
|
||||
|
||||
# Создаем экземпляр конфигурации
|
||||
config = BotConfig()
|
||||
|
||||
# Проверяем конфигурацию только если не в Docker (где переменные могут быть не доступны на момент импорта)
|
||||
if os.getenv("DOCKER_BUILD") != "true":
|
||||
try:
|
||||
config.validate()
|
||||
except ValueError as e:
|
||||
print(f"Предупреждение конфигурации: {e}")
|
||||
Reference in New Issue
Block a user