"""Zentrale Hoster-Definitionen für ViewIT.""" ALL_HOSTERS: list[dict] = [ {"id": "voe", "display": "VOE", "aliases": ["voe", "voe.sx"]}, {"id": "streamtape", "display": "Streamtape", "aliases": ["streamtape", "streamtape.com"]}, {"id": "doodstream", "display": "Doodstream", "aliases": ["doodstream", "dood", "ds2play", "playmogo"]}, {"id": "vidoza", "display": "Vidoza", "aliases": ["vidoza", "vidoza.net"]}, {"id": "mixdrop", "display": "Mixdrop", "aliases": ["mixdrop", "mixdrop.co"]}, {"id": "supervideo", "display": "Supervideo", "aliases": ["supervideo", "supervideo.tv"]}, {"id": "dropload", "display": "Dropload", "aliases": ["dropload", "dropload.io"]}, ] def get_hoster_ids() -> list[str]: return [h["id"] for h in ALL_HOSTERS] def get_display_names() -> list[str]: return [h["display"] for h in ALL_HOSTERS] def normalize_hoster_name(name: str) -> str | None: """Wandelt Display-Name oder Alias in Hoster-ID um. Gibt None zurück wenn unbekannt.""" key = (name or "").casefold().strip() for h in ALL_HOSTERS: if key == h["id"].casefold(): return h["id"] if any(key == a.casefold() for a in h["aliases"]): return h["id"] # Substring-Fallback: "Voe Stream" → "voe" if key and h["id"].casefold() in key: return h["id"] return None