Remove obsolete configuration management and test settings files

- Deleted the `config.py` file responsible for managing bot configuration via environment variables and `.env` files, as it is no longer needed.
- Removed the `test_settings.ini` file used for testing, which contained mock configuration data.
- Cleaned up the project structure by eliminating unused files to enhance maintainability.
This commit is contained in:
2025-09-01 20:30:10 +03:00
parent 3a7b0f6219
commit 013892dcb7
8 changed files with 998 additions and 104 deletions

View File

@@ -1,91 +0,0 @@
"""
Configuration management for the Telegram bot.
Supports both environment variables and .env files.
"""
import os
from typing import Dict, Any, Optional
from dotenv import load_dotenv
class ConfigManager:
"""Manages bot configuration with environment variable support."""
def __init__(self, env_file: str = ".env"):
self.env_file = env_file
self._load_env()
def _load_env(self):
"""Load configuration from .env file if exists."""
# Load from .env file if exists
if os.path.exists(self.env_file):
load_dotenv(self.env_file)
def get(self, section: str, key: str, default: Any = None) -> str:
"""Get configuration value with environment variable override."""
# Check environment variable first
env_key = f"{section.upper()}_{key.upper()}"
env_value = os.getenv(env_key)
if env_value is not None:
return env_value
# Fall back to direct environment variable
direct_env_value = os.getenv(key.upper())
if direct_env_value is not None:
return direct_env_value
return default
def getboolean(self, section: str, key: str, default: bool = False) -> bool:
"""Get boolean configuration value."""
value = self.get(section, key, str(default))
if isinstance(value, bool):
return value
return value.lower() in ('true', '1', 'yes', 'on')
def getint(self, section: str, key: str, default: int = 0) -> int:
"""Get integer configuration value."""
value = self.get(section, key, str(default))
try:
return int(value)
except (ValueError, TypeError):
return default
def get_all_settings(self) -> Dict[str, Dict[str, Any]]:
"""Get all settings as dictionary."""
settings = {}
# Telegram секция
settings['Telegram'] = {
'bot_token': self.get('Telegram', 'bot_token', ''),
'listen_bot_token': self.get('Telegram', 'listen_bot_token', ''),
'test_bot_token': self.get('Telegram', 'test_bot_token', ''),
'preview_link': self.getboolean('Telegram', 'preview_link', False),
'main_public': self.get('Telegram', 'main_public', ''),
'group_for_posts': self.getint('Telegram', 'group_for_posts', 0),
'group_for_message': self.getint('Telegram', 'group_for_message', 0),
'group_for_logs': self.getint('Telegram', 'group_for_logs', 0),
'important_logs': self.getint('Telegram', 'important_logs', 0),
'archive': self.getint('Telegram', 'archive', 0),
'test_group': self.getint('Telegram', 'test_group', 0)
}
# Settings секция
settings['Settings'] = {
'logs': self.getboolean('Settings', 'logs', False),
'test': self.getboolean('Settings', 'test', False)
}
return settings
# Global config instance
_config_instance: Optional[ConfigManager] = None
def get_config() -> ConfigManager:
"""Get global configuration instance."""
global _config_instance
if _config_instance is None:
_config_instance = ConfigManager()
return _config_instance