dev: add direct resolveurl fallback and resolver status logs
This commit is contained in:
@@ -3666,6 +3666,21 @@ def _resolveurl_last_error() -> str:
|
|||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
|
def _resolveurl_resolve(url: str) -> str | None:
|
||||||
|
try:
|
||||||
|
from resolveurl_backend import resolve as _resolve # type: ignore
|
||||||
|
except Exception:
|
||||||
|
return None
|
||||||
|
try:
|
||||||
|
result = _resolve(url)
|
||||||
|
except Exception as exc:
|
||||||
|
_log(f"ResolveURL direkter Aufruf fehlgeschlagen: {exc}", xbmc.LOGWARNING)
|
||||||
|
return None
|
||||||
|
if not result:
|
||||||
|
return None
|
||||||
|
return str(result)
|
||||||
|
|
||||||
|
|
||||||
def _is_cloudflare_challenge_error(message: str) -> bool:
|
def _is_cloudflare_challenge_error(message: str) -> bool:
|
||||||
text = str(message or "").casefold()
|
text = str(message or "").casefold()
|
||||||
if not text:
|
if not text:
|
||||||
@@ -3841,17 +3856,23 @@ def _play_episode(
|
|||||||
_log(f"Stream-Link: {link}", xbmc.LOGDEBUG)
|
_log(f"Stream-Link: {link}", xbmc.LOGDEBUG)
|
||||||
resolved_link = plugin.resolve_stream_link(link)
|
resolved_link = plugin.resolve_stream_link(link)
|
||||||
err = _resolveurl_last_error()
|
err = _resolveurl_last_error()
|
||||||
|
if err:
|
||||||
|
_log(f"ResolveURL Status: {err}", xbmc.LOGDEBUG)
|
||||||
if resolved_link and _looks_like_embed_page_url(resolved_link) and _is_resolveurl_soft_error(err):
|
if resolved_link and _looks_like_embed_page_url(resolved_link) and _is_resolveurl_soft_error(err):
|
||||||
_log("Unaufgeloester Hoster-Link erkannt: versuche ResolveURL-Reparatur.", xbmc.LOGWARNING)
|
_log("Unaufgeloester Hoster-Link erkannt: versuche ResolveURL-Reparatur.", xbmc.LOGWARNING)
|
||||||
_ensure_resolveurl_installed(force=True, silent=True)
|
_ensure_resolveurl_installed(force=True, silent=True)
|
||||||
resolved_link = plugin.resolve_stream_link(link)
|
resolved_link = plugin.resolve_stream_link(link)
|
||||||
err = _resolveurl_last_error()
|
err = _resolveurl_last_error()
|
||||||
|
if err:
|
||||||
|
_log(f"ResolveURL Status (nach Reparatur): {err}", xbmc.LOGDEBUG)
|
||||||
if not resolved_link:
|
if not resolved_link:
|
||||||
if _is_resolveurl_missing_error(err):
|
if _is_resolveurl_missing_error(err):
|
||||||
_log("ResolveURL fehlt: versuche Auto-Installation.", xbmc.LOGWARNING)
|
_log("ResolveURL fehlt: versuche Auto-Installation.", xbmc.LOGWARNING)
|
||||||
_ensure_resolveurl_installed(force=True, silent=True)
|
_ensure_resolveurl_installed(force=True, silent=True)
|
||||||
resolved_link = plugin.resolve_stream_link(link)
|
resolved_link = plugin.resolve_stream_link(link)
|
||||||
err = _resolveurl_last_error()
|
err = _resolveurl_last_error()
|
||||||
|
if err:
|
||||||
|
_log(f"ResolveURL Status (nach Auto-Installation): {err}", xbmc.LOGDEBUG)
|
||||||
if _is_cloudflare_challenge_error(err):
|
if _is_cloudflare_challenge_error(err):
|
||||||
_log(f"ResolveURL Cloudflare-Challenge: {err}", xbmc.LOGWARNING)
|
_log(f"ResolveURL Cloudflare-Challenge: {err}", xbmc.LOGWARNING)
|
||||||
xbmcgui.Dialog().notification(
|
xbmcgui.Dialog().notification(
|
||||||
@@ -3865,7 +3886,12 @@ def _play_episode(
|
|||||||
final_link = normalize_resolved_stream_url(final_link, source_url=link)
|
final_link = normalize_resolved_stream_url(final_link, source_url=link)
|
||||||
err = _resolveurl_last_error()
|
err = _resolveurl_last_error()
|
||||||
if _looks_like_embed_page_url(final_link):
|
if _looks_like_embed_page_url(final_link):
|
||||||
|
direct_resolved = _resolveurl_resolve(final_link)
|
||||||
|
if direct_resolved:
|
||||||
|
_log(f"ResolveURL Direkt-Fallback Treffer: {direct_resolved}", xbmc.LOGDEBUG)
|
||||||
|
final_link = normalize_resolved_stream_url(direct_resolved, source_url=final_link)
|
||||||
_log(f"Hoster-Link nicht aufgeloest: {final_link}", xbmc.LOGWARNING)
|
_log(f"Hoster-Link nicht aufgeloest: {final_link}", xbmc.LOGWARNING)
|
||||||
|
if _looks_like_embed_page_url(final_link):
|
||||||
xbmcgui.Dialog().notification(
|
xbmcgui.Dialog().notification(
|
||||||
"Wiedergabe",
|
"Wiedergabe",
|
||||||
"Hoster-Link konnte nicht aufgeloest werden. ResolveURL pruefen.",
|
"Hoster-Link konnte nicht aufgeloest werden. ResolveURL pruefen.",
|
||||||
@@ -3970,17 +3996,23 @@ def _play_episode_url(
|
|||||||
_log(f"Stream-Link: {link}", xbmc.LOGDEBUG)
|
_log(f"Stream-Link: {link}", xbmc.LOGDEBUG)
|
||||||
resolved_link = plugin.resolve_stream_link(link)
|
resolved_link = plugin.resolve_stream_link(link)
|
||||||
err = _resolveurl_last_error()
|
err = _resolveurl_last_error()
|
||||||
|
if err:
|
||||||
|
_log(f"ResolveURL Status: {err}", xbmc.LOGDEBUG)
|
||||||
if resolved_link and _looks_like_embed_page_url(resolved_link) and _is_resolveurl_soft_error(err):
|
if resolved_link and _looks_like_embed_page_url(resolved_link) and _is_resolveurl_soft_error(err):
|
||||||
_log("Unaufgeloester Hoster-Link erkannt: versuche ResolveURL-Reparatur.", xbmc.LOGWARNING)
|
_log("Unaufgeloester Hoster-Link erkannt: versuche ResolveURL-Reparatur.", xbmc.LOGWARNING)
|
||||||
_ensure_resolveurl_installed(force=True, silent=True)
|
_ensure_resolveurl_installed(force=True, silent=True)
|
||||||
resolved_link = plugin.resolve_stream_link(link)
|
resolved_link = plugin.resolve_stream_link(link)
|
||||||
err = _resolveurl_last_error()
|
err = _resolveurl_last_error()
|
||||||
|
if err:
|
||||||
|
_log(f"ResolveURL Status (nach Reparatur): {err}", xbmc.LOGDEBUG)
|
||||||
if not resolved_link:
|
if not resolved_link:
|
||||||
if _is_resolveurl_missing_error(err):
|
if _is_resolveurl_missing_error(err):
|
||||||
_log("ResolveURL fehlt: versuche Auto-Installation.", xbmc.LOGWARNING)
|
_log("ResolveURL fehlt: versuche Auto-Installation.", xbmc.LOGWARNING)
|
||||||
_ensure_resolveurl_installed(force=True, silent=True)
|
_ensure_resolveurl_installed(force=True, silent=True)
|
||||||
resolved_link = plugin.resolve_stream_link(link)
|
resolved_link = plugin.resolve_stream_link(link)
|
||||||
err = _resolveurl_last_error()
|
err = _resolveurl_last_error()
|
||||||
|
if err:
|
||||||
|
_log(f"ResolveURL Status (nach Auto-Installation): {err}", xbmc.LOGDEBUG)
|
||||||
if _is_cloudflare_challenge_error(err):
|
if _is_cloudflare_challenge_error(err):
|
||||||
_log(f"ResolveURL Cloudflare-Challenge: {err}", xbmc.LOGWARNING)
|
_log(f"ResolveURL Cloudflare-Challenge: {err}", xbmc.LOGWARNING)
|
||||||
xbmcgui.Dialog().notification(
|
xbmcgui.Dialog().notification(
|
||||||
@@ -3994,7 +4026,12 @@ def _play_episode_url(
|
|||||||
final_link = normalize_resolved_stream_url(final_link, source_url=link)
|
final_link = normalize_resolved_stream_url(final_link, source_url=link)
|
||||||
err = _resolveurl_last_error()
|
err = _resolveurl_last_error()
|
||||||
if _looks_like_embed_page_url(final_link):
|
if _looks_like_embed_page_url(final_link):
|
||||||
|
direct_resolved = _resolveurl_resolve(final_link)
|
||||||
|
if direct_resolved:
|
||||||
|
_log(f"ResolveURL Direkt-Fallback Treffer: {direct_resolved}", xbmc.LOGDEBUG)
|
||||||
|
final_link = normalize_resolved_stream_url(direct_resolved, source_url=final_link)
|
||||||
_log(f"Hoster-Link nicht aufgeloest: {final_link}", xbmc.LOGWARNING)
|
_log(f"Hoster-Link nicht aufgeloest: {final_link}", xbmc.LOGWARNING)
|
||||||
|
if _looks_like_embed_page_url(final_link):
|
||||||
xbmcgui.Dialog().notification(
|
xbmcgui.Dialog().notification(
|
||||||
"Wiedergabe",
|
"Wiedergabe",
|
||||||
"Hoster-Link konnte nicht aufgeloest werden. ResolveURL pruefen.",
|
"Hoster-Link konnte nicht aufgeloest werden. ResolveURL pruefen.",
|
||||||
|
|||||||
Reference in New Issue
Block a user