Files
ViewIT/addon/hosters.py

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