60 lines
2.0 KiB
Python
60 lines
2.0 KiB
Python
import os
|
||
from pathlib import Path
|
||
from dotenv import load_dotenv
|
||
|
||
# Загрузка переменных окружения
|
||
load_dotenv()
|
||
|
||
|
||
class Config:
|
||
"""Класс для управления конфигурацией"""
|
||
|
||
def __init__(self):
|
||
# Telegram
|
||
self.bot_token = os.getenv("BOT_TOKEN", "")
|
||
|
||
# Database
|
||
self.db_host = os.getenv("DB_HOST", "localhost")
|
||
self.db_user = os.getenv("DB_USER", "root")
|
||
self.db_password = os.getenv("DB_PASSWORD", "")
|
||
self.db_name = os.getenv("DB_NAME", "botyobshik")
|
||
|
||
# Support
|
||
self.support_username = os.getenv("SUPPORT_USERNAME", "@support_username")
|
||
|
||
# Payment
|
||
self.payment_channel_id = os.getenv("PAYMENT_CHANNEL_ID", "")
|
||
self.payment_thread_id = os.getenv("PAYMENT_THREAD_ID", "")
|
||
self.payment_ticket_channel_id = os.getenv("PAYMENT_TICKET_CHANNEL_ID", "")
|
||
self.payment_ticket_thread_id = os.getenv("PAYMENT_TICKET_THREAD_ID", "")
|
||
self.payment_phone = os.getenv("PAYMENT_PHONE", "+7 904 788 77 35")
|
||
|
||
# Admin
|
||
admin_ids_str = os.getenv("ADMIN_IDS", "")
|
||
self.admin_ids = [int(x.strip()) for x in admin_ids_str.split(",") if x.strip().isdigit()]
|
||
|
||
# Remnawave API
|
||
self.remwave_api_url = os.getenv("REMWAVE_API_URL", "")
|
||
self.remwave_api_key = os.getenv("REMWAVE_API_KEY", "")
|
||
|
||
@property
|
||
def db_config(self) -> dict:
|
||
"""Конфигурация подключения к БД"""
|
||
return {
|
||
"host": self.db_host,
|
||
"user": self.db_user,
|
||
"password": self.db_password,
|
||
}
|
||
|
||
@property
|
||
def db_config_with_name(self) -> dict:
|
||
"""Конфигурация подключения к БД с именем базы"""
|
||
return {
|
||
**self.db_config,
|
||
"database": self.db_name
|
||
}
|
||
|
||
|
||
# Глобальный экземпляр конфигурации
|
||
config = Config()
|