34 lines
1.4 KiB
Python
34 lines
1.4 KiB
Python
"""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
|