56 lines
1.5 KiB
Python
56 lines
1.5 KiB
Python
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() |