Fix Filmpalast resolver handoff for movie playback
This commit is contained in:
@@ -643,26 +643,39 @@ class FilmpalastPlugin(BasisPlugin):
|
|||||||
def resolve_stream_link(self, link: str) -> Optional[str]:
|
def resolve_stream_link(self, link: str) -> Optional[str]:
|
||||||
if not link:
|
if not link:
|
||||||
return None
|
return None
|
||||||
resolved = link
|
try:
|
||||||
|
from resolveurl_backend import resolve as resolve_with_resolveurl
|
||||||
|
except Exception:
|
||||||
|
resolve_with_resolveurl = None
|
||||||
|
|
||||||
|
# 1) Immer zuerst den ursprünglichen Hoster-Link an ResolveURL geben.
|
||||||
|
if callable(resolve_with_resolveurl):
|
||||||
|
resolved_by_resolveurl = resolve_with_resolveurl(link)
|
||||||
|
if resolved_by_resolveurl:
|
||||||
|
_log_url_event("ResolveURL", kind="HOSTER_RESOLVER")
|
||||||
|
_log_url_event(resolved_by_resolveurl, kind="MEDIA")
|
||||||
|
return resolved_by_resolveurl
|
||||||
|
|
||||||
|
redirected = link
|
||||||
if self._requests_available:
|
if self._requests_available:
|
||||||
try:
|
try:
|
||||||
session = get_requests_session("filmpalast", headers=HEADERS)
|
session = get_requests_session("filmpalast", headers=HEADERS)
|
||||||
response = session.get(link, headers=HEADERS, timeout=DEFAULT_TIMEOUT, allow_redirects=True)
|
response = session.get(link, headers=HEADERS, timeout=DEFAULT_TIMEOUT, allow_redirects=True)
|
||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
resolved = (response.url or link).strip() or link
|
redirected = (response.url or link).strip() or link
|
||||||
except Exception:
|
except Exception:
|
||||||
resolved = link
|
redirected = link
|
||||||
try:
|
|
||||||
from resolveurl_backend import resolve as resolve_with_resolveurl
|
# 2) Danach optional die Redirect-URL nochmals auflösen.
|
||||||
except Exception:
|
if callable(resolve_with_resolveurl) and redirected and redirected != link:
|
||||||
resolve_with_resolveurl = None
|
resolved_by_resolveurl = resolve_with_resolveurl(redirected)
|
||||||
if callable(resolve_with_resolveurl):
|
|
||||||
resolved_by_resolveurl = resolve_with_resolveurl(resolved)
|
|
||||||
if resolved_by_resolveurl:
|
if resolved_by_resolveurl:
|
||||||
_log_url_event("ResolveURL", kind="HOSTER_RESOLVER")
|
_log_url_event("ResolveURL", kind="HOSTER_RESOLVER")
|
||||||
_log_url_event(resolved_by_resolveurl, kind="MEDIA")
|
_log_url_event(resolved_by_resolveurl, kind="MEDIA")
|
||||||
return resolved_by_resolveurl
|
return resolved_by_resolveurl
|
||||||
if resolved:
|
|
||||||
_log_url_event(resolved, kind="FINAL")
|
# 3) Fallback bleibt wie bisher: direkte URL zurückgeben.
|
||||||
return resolved
|
if redirected:
|
||||||
|
_log_url_event(redirected, kind="FINAL")
|
||||||
|
return redirected
|
||||||
return None
|
return None
|
||||||
|
|||||||
Reference in New Issue
Block a user