import os from pathlib import Path from dotenv import load_dotenv from pydantic_settings import BaseSettings, SettingsConfigDict BASE_DIR = Path(__file__).resolve().parent.parent load_dotenv(BASE_DIR / '.env') YT_DIR_NAME = "yt" YT_DIR = BASE_DIR / "media" / YT_DIR_NAME THUMBS = "_thumbs" THUMBS_DIR = YT_DIR / THUMBS PHOTOS_DIR = BASE_DIR / "media" / "media" PHOTOS_DIR_RESPNS = BASE_DIR / "media" TEMPLATES_DIR = BASE_DIR / "templates" STATIC_DIR = BASE_DIR / "static" VIDEO_EXTENSIONS = {".mp4", ".mkv", ".webm", ".avi", ".mov", ".flv", ".m4v"} AUDIO_EXTENSIONS = {".mp3", ".flac", ".ogg"} AUDIO_DIR = BASE_DIR / "media" / "audio" COVERS = "_covers" COVERS_DIR = AUDIO_DIR / COVERS DB_PASSWORD = os.getenv("DB_PASSWORD") DB_USER = os.getenv("DB_USER") DB_NAME = os.getenv("DB_NAME") DB_URL = f"postgresql+psycopg://{DB_USER}:{DB_PASSWORD}@127.0.0.1:5432/{DB_NAME}" class Settings(BaseSettings): model_config = SettingsConfigDict(env_file=".env", extra="ignore") # лучше ignore # Добавь то, что есть в .env DB_USER: str DB_PASSWORD: str DB_NAME: str SECRET_KEY: str = os.getenv("SECRET_KEY") ALGORITHM: str = "HS256" ACCESS_TOKEN_EXPIRE_MINUTES: int = 30 REFRESH_TOKEN_EXPIRE_DAYS: int = 7 COOKIE_SECURE: bool = False COOKIE_SAMESITE: str = "lax" COOKIE_DOMAIN: str | None = None @property def database_url(self) -> str: return f"postgresql+psycopg://{self.DB_USER}:{self.DB_PASSWORD}@127.0.0.1:5432/{self.DB_NAME}" settings = Settings()