refactor: add ConfigError and Lolz error handling
Build and Push (dev) / build (push) Successful in 10m53s
Build and Push (dev) / build (push) Successful in 10m53s
This commit is contained in:
@@ -7,6 +7,11 @@ from dotenv import load_dotenv
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class ConfigError(Exception):
|
||||
"""Ошибка валидации конфигурации"""
|
||||
pass
|
||||
|
||||
|
||||
class Config:
|
||||
def __init__(self):
|
||||
self._config_data = self._load()
|
||||
@@ -53,18 +58,25 @@ class Config:
|
||||
|
||||
# Notification bot (aiogram)
|
||||
bot_token = os.getenv(key="BOT_TOKEN", default=None)
|
||||
admin_id = (
|
||||
os.getenv(key="ADMIN_ID", default=None)
|
||||
if not os.getenv(key="ADMIN_ID", default=None)
|
||||
else int(os.getenv(key="ADMIN_ID", default=None))
|
||||
)
|
||||
admin_id_str = os.getenv(key="ADMIN_ID", default=None)
|
||||
admin_id = int(admin_id_str) if admin_id_str else None
|
||||
notify_admin = (
|
||||
os.getenv(key="NOTIFY_ADMIN", default="true")
|
||||
).lower() == "true"
|
||||
|
||||
# Lolz
|
||||
# Lolz - required fields
|
||||
lolz_token = os.getenv(key="LOLZ_TOKEN", default=None)
|
||||
lolz_thread_id = int(os.getenv(key="LOLZ_THREAD_ID", default=None))
|
||||
if not lolz_token:
|
||||
raise ConfigError("LOLZ_TOKEN обязателен, но не установлен")
|
||||
|
||||
lolz_thread_id_str = os.getenv(key="LOLZ_THREAD_ID", default=None)
|
||||
if not lolz_thread_id_str:
|
||||
raise ConfigError("LOLZ_THREAD_ID обязателен, но не установлен")
|
||||
|
||||
try:
|
||||
lolz_thread_id = int(lolz_thread_id_str)
|
||||
except (ValueError, TypeError) as e:
|
||||
raise ConfigError(f"LOLZ_THREAD_ID должен быть целым числом: {lolz_thread_id_str}") from e
|
||||
|
||||
# Stars
|
||||
stars_count = int(os.getenv(key="STARS_COUNT", default=1))
|
||||
@@ -118,8 +130,14 @@ class Config:
|
||||
"bump_check_interval": bump_check_interval,
|
||||
}
|
||||
|
||||
except:
|
||||
except ConfigError:
|
||||
raise
|
||||
except (ValueError, TypeError) as e:
|
||||
logger.error(f"Invalid configuration value: {e}")
|
||||
raise ConfigError(f"Invalid configuration value: {e}") from e
|
||||
except Exception as e:
|
||||
logger.error(f"Unexpected error loading configuration: {e}")
|
||||
raise ConfigError(f"Failed to load configuration: {e}") from e
|
||||
|
||||
def __getattr__(self, name: str) -> Any:
|
||||
return self._config_data.get(
|
||||
|
||||
Reference in New Issue
Block a user