Inital Commit
This commit is contained in:
71
modules/config.py
Normal file
71
modules/config.py
Normal file
@ -0,0 +1,71 @@
|
||||
import os
|
||||
import logging
|
||||
from pathlib import Path
|
||||
from dotenv import load_dotenv
|
||||
load_dotenv()
|
||||
|
||||
# debugging flag
|
||||
DEBUG = True
|
||||
|
||||
# 🔧 Project Root
|
||||
PROJECT_ROOT = Path(__file__).resolve().parent.parent
|
||||
NAS_MOUNT_ROOT = Path("Z:/")
|
||||
|
||||
# 📁 Assets
|
||||
ASSETS_DIR = PROJECT_ROOT / "assets"
|
||||
|
||||
# 🎵 Theme Music
|
||||
THEME_MUSIC_PATH = ASSETS_DIR / "The_Llama_Song.mp3"
|
||||
|
||||
# Font
|
||||
FONT_PATH = ASSETS_DIR / "BurbankBigCondensed-Black.otf"
|
||||
|
||||
# Brand colors
|
||||
FONT_COLOR = "#f7338f"
|
||||
SHADING_COLOR = "#10abba"
|
||||
SHADOW_COLOR = "#1c0c38"
|
||||
BRANDING_COLORS = {
|
||||
"font": FONT_COLOR,
|
||||
"shade": SHADING_COLOR,
|
||||
"shadow": SHADOW_COLOR
|
||||
}
|
||||
|
||||
# Rendering quality settings (used by render_engine.py)
|
||||
RENDER_PRESET = "slow" # or "medium" for faster encode
|
||||
RENDER_CRF = 18 # lower = better quality, 18–23 is typical
|
||||
|
||||
TITLE_TEMPLATE = {
|
||||
"main": "Fortnite Highlights",
|
||||
"sub": "from livestream",
|
||||
}
|
||||
|
||||
# 🎬 Static Intros and Outros prevetted to 1080p60
|
||||
INTRO_WIDE_PATH = NAS_MOUNT_ROOT / "assets" / "intro-wide-60fps.mp4"
|
||||
OUTRO_WIDE_PATH = NAS_MOUNT_ROOT / "assets" / "outro-wide-60fps.mp4"
|
||||
INTRO_VERTICAL_PATH = NAS_MOUNT_ROOT / "assets" / "intro-vertical-60fps.mp4"
|
||||
OUTRO_VERTICAL_PATH = NAS_MOUNT_ROOT / "assets" / "outro-vertical-60fps.mp4"
|
||||
|
||||
# 🔨 Optional: FFmpeg executable path
|
||||
FFMPEG_PATH = Path("C:/ffmpeg/bin/ffmpeg.exe")
|
||||
|
||||
# 🧠 OpenAI API Key
|
||||
# os.environ["OPENAI_API_KEY"] = os.getenv("OPENAI_API_KEY")
|
||||
openai_api_key = os.getenv("OPENAI_API_KEY")
|
||||
|
||||
# 📂 Path resolver (Z: → UNC fallback), now exception wrapped
|
||||
def resolve_path(path_obj: Path) -> str:
|
||||
"""
|
||||
Safely resolves a path for use in subprocess calls.
|
||||
Falls back from Z:/ to UNC if necessary and logs issues.
|
||||
"""
|
||||
try:
|
||||
if path_obj.exists():
|
||||
return str(path_obj)
|
||||
# Try UNC fallback
|
||||
fallback = Path(str(path_obj).replace("Z:/", "//chong/LCS/Videos/eklipse/"))
|
||||
if fallback.exists():
|
||||
return str(fallback)
|
||||
raise FileNotFoundError(f"❌ Path not found: {path_obj} or fallback {fallback}")
|
||||
except Exception as e:
|
||||
logging.error(f"[resolve_path] Failed to resolve: {path_obj} → {e}")
|
||||
raise
|
||||
Reference in New Issue
Block a user