update
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import unicodedata
|
||||
|
||||
import httpx
|
||||
|
||||
from .config import (
|
||||
@@ -63,6 +65,36 @@ async def detail(http, movie_id):
|
||||
return resp.json()
|
||||
|
||||
|
||||
def _fremde_schrift(text):
|
||||
"""Steht der Titel in einer nichtlateinischen Schrift?"""
|
||||
for zeichen in text or "":
|
||||
if zeichen.isalpha() and "LATIN" not in unicodedata.name(zeichen, ""):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def pick_title(data):
|
||||
"""Deutscher Titel, sonst der englische aus den Translations.
|
||||
|
||||
Für indische, chinesische und koreanische Filme hat TMDB oft keine
|
||||
deutsche Fassung und gibt den Originaltitel zurück — in Originalschrift.
|
||||
Damit kann hier niemand etwas anfangen; IMDb zeigt an der Stelle den
|
||||
umschriebenen Titel, und den liefert TMDB in den Translations mit.
|
||||
"""
|
||||
titel = data.get("title") or data.get("original_title") or ""
|
||||
if titel and not _fremde_schrift(titel):
|
||||
return titel
|
||||
|
||||
for entry in data.get("translations", {}).get("translations", []):
|
||||
if entry.get("iso_639_1") != "en":
|
||||
continue
|
||||
englisch = entry.get("data", {}).get("title")
|
||||
if englisch and not _fremde_schrift(englisch):
|
||||
return englisch
|
||||
|
||||
return titel or "Ohne Titel"
|
||||
|
||||
|
||||
def pick_overview(data):
|
||||
"""Deutsche Synopsis, sonst englische aus den Translations."""
|
||||
if data.get("overview"):
|
||||
|
||||
Reference in New Issue
Block a user