refactor: remove Alembic migrations and Discord integration

This commit is contained in:
2026-07-15 15:55:25 +05:00
parent e8cff0f7ed
commit ec5ae395f3
24 changed files with 559 additions and 1718 deletions
+35 -10
View File
@@ -28,16 +28,31 @@ class Settings(BaseSettings):
default=True,
validation_alias="BOT_DATABASE_EXPORT",
)
status_notification: bool = Field(default=True, validation_alias="BOT_STATUS_NOTIFICATION")
status_notification: bool = Field(
default=True, validation_alias="BOT_STATUS_NOTIFICATION"
)
timezone: str = Field(default="Europe/Moscow", validation_alias="BOT_TIMEZONE")
database_path: str = Field(default="tgbot/data/database.db", validation_alias="PATH_DATABASE")
database_path: str = Field(
default="tgbot/data/database.db", validation_alias="PATH_DATABASE"
)
logs_path: str = Field(default="tgbot/data/logs.log", validation_alias="PATH_LOGS")
user_cache_ttl: int = Field(default=300, ge=0, validation_alias="BOT_USER_CACHE_TTL")
throttle_rate: float = Field(default=0.5, ge=0, validation_alias="BOT_THROTTLE_RATE")
user_cache_ttl: int = Field(
default=300, ge=0, validation_alias="BOT_USER_CACHE_TTL"
)
throttle_rate: float = Field(
default=0.5, ge=0, validation_alias="BOT_THROTTLE_RATE"
)
yoomoney_client_id: str = Field(default="", validation_alias="YOOMONEY_CLIENT_ID")
# Очистка строковых значений из окружения
@field_validator("bot_token", "timezone", "database_path", "logs_path", "yoomoney_client_id", mode="before")
@field_validator(
"bot_token",
"timezone",
"database_path",
"logs_path",
"yoomoney_client_id",
mode="before",
)
@classmethod
def _strip_string(cls, value: object) -> str:
return str(value or "").strip()
@@ -52,11 +67,15 @@ class Settings(BaseSettings):
if isinstance(value, int):
values = [value]
elif isinstance(value, str):
values = [admin_id for admin_id in value.replace(" ", "").split(",") if admin_id]
values = [
admin_id for admin_id in value.replace(" ", "").split(",") if admin_id
]
elif isinstance(value, (list, tuple, set)):
values = list(value)
else:
raise ValueError("BOT_ADMIN_IDS должен быть числом или списком чисел через запятую")
raise ValueError(
"BOT_ADMIN_IDS должен быть числом или списком чисел через запятую"
)
admin_ids = []
@@ -64,10 +83,14 @@ class Settings(BaseSettings):
try:
parsed_id = int(admin_id)
except (TypeError, ValueError) as error:
raise ValueError("BOT_ADMIN_IDS должен содержать только Телеграм ID через запятую") from error
raise ValueError(
"BOT_ADMIN_IDS должен содержать только Телеграм ID через запятую"
) from error
if parsed_id <= 0:
raise ValueError("BOT_ADMIN_IDS должен содержать Телеграм ID больше нуля")
raise ValueError(
"BOT_ADMIN_IDS должен содержать Телеграм ID больше нуля"
)
admin_ids.append(parsed_id)
@@ -80,7 +103,9 @@ class Settings(BaseSettings):
try:
timezone(value)
except UnknownTimeZoneError as error:
raise ValueError("BOT_TIMEZONE должен быть корректной временной зоной, например Europe/Moscow") from error
raise ValueError(
"BOT_TIMEZONE должен быть корректной временной зоной, например Europe/Moscow"
) from error
return value