forked from FOSS/AutoShop-Djimbo
refactor: remove Alembic migrations and Discord integration
This commit is contained in:
+35
-10
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user