Repaired a lot of Media Management

This commit is contained in:
Hannes
2026-02-12 00:24:39 +01:00
parent 0582996bf2
commit 3b6f5f360e
14 changed files with 958 additions and 181 deletions

View File

@@ -0,0 +1,42 @@
from languages import LANG_CODES, REVERSE_LANG_CODES
extensions=("mp4", "mkv", "avi", "mov", "wmv", "flv", "webm", "lrv", "gif")
def check_video_ext(extension: str) -> bool:
if extension.lower().strip('.') in extensions:
return True
return False
def normalize_language(lang: str) -> str:
"""
Input: 'ger', 'DE', 'German', 'GERMAN'
Output: 'German'
"""
if not lang:
return "Undefined"
# 1. Clean the input
query = lang.strip().lower()
# 2. Check if it's already a code (e.g., 'de' or 'ger')
if query in LANG_CODES:
return LANG_CODES[query]
# 3. Check if it's a full name (e.g., 'german')
# We need a case-insensitive check against the names in REVERSE_LANG_CODES
for full_name in REVERSE_LANG_CODES:
if full_name.lower() == query:
return full_name
return "Undefined"
def normalize_lang_code(lang: str) -> str:
"""
Input: 'ger', 'DE', 'German', 'GERMAN'
Output: 'de' (the canonical media code (ISO 639-1))
"""
# First, get the standard full name
full_name = normalize_language(lang)
# Then, look up that full name in the reverse table
return REVERSE_LANG_CODES.get(full_name, "und")