Inital Commit

This commit is contained in:
2025-07-23 11:52:09 -07:00
commit d98bd6aa17
25 changed files with 1554 additions and 0 deletions

71
modules/config.py Normal file
View 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, 1823 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