48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
from pathlib import Path
|
|
from typing import Optional
|
|
from pydantic_settings import BaseSettings
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
# Database
|
|
database_url: str = "postgresql+asyncpg://animequiz:animequiz123@localhost:5432/animequiz"
|
|
|
|
# S3 Storage settings
|
|
s3_endpoint: str = "https://s3.firstvds.ru"
|
|
s3_access_key: str = ""
|
|
s3_secret_key: str = ""
|
|
s3_region: str = "default"
|
|
s3_bucket: str = "anime-quiz"
|
|
|
|
# Local paths
|
|
output_path: Path = Path("/app/output/videos")
|
|
temp_path: Path = Path("/tmp/anime_quiz")
|
|
cache_path: Path = Path("/tmp/anime_quiz/cache")
|
|
|
|
# Video settings
|
|
shorts_width: int = 1080
|
|
shorts_height: int = 1920
|
|
full_width: int = 1920
|
|
full_height: int = 1080
|
|
|
|
# Timing settings (seconds)
|
|
answer_duration: float = 5.0
|
|
final_screen_duration: float = 3.0
|
|
audio_buffer: float = 1.0
|
|
|
|
# Audio
|
|
audio_fade_duration: float = 0.7
|
|
|
|
class Config:
|
|
env_file = ".env"
|
|
env_file_encoding = "utf-8"
|
|
extra = "ignore"
|
|
|
|
|
|
settings = Settings()
|
|
|
|
# Ensure directories exist
|
|
settings.temp_path.mkdir(parents=True, exist_ok=True)
|
|
settings.output_path.mkdir(parents=True, exist_ok=True)
|
|
settings.cache_path.mkdir(parents=True, exist_ok=True)
|