Fix: Discord RPC hat nie Daten empfangen (runJavaScript-Bug)
Wurzelursache gefunden: page().runJavaScript() liefert bei einem direkt zurueckgegebenen JS-Objekt in dieser PySide6/QtWebEngine-Version zuverlaessig nur einen leeren String statt das Objekt (Zahlen/Strings funktionieren, Objekte nicht). Dadurch schlug 'isinstance(result, dict)' in BrowserTab._on_media_probe_result IMMER fehl, mediaInfoChanged wurde nie emittiert, MainWindow._on_media_info nie aufgerufen und der DiscordRPCWorker damit nie mit echten Daten gefuettert (Warteschlange blieb fuer immer leer, der Worker hat sich nie mal mit Discord verbunden). Fix: media_probe.py gibt jetzt JSON.stringify(...) zurueck, browser.py parst den String mit json.loads(). Per isoliertem Test verifiziert (Songtitel erscheint jetzt korrekt im Fenstertitel, Discord-Update wird erfolgreich gesendet). Ausserdem: PLAYTUBE_DEBUG=1 Env-Var fuer Debug-Logging in browser.py/discord_rpc.py, Exceptions in discord_rpc.py werden jetzt sichtbar geloggt statt verschluckt, neue Discord Client-ID. Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
@@ -27,7 +27,12 @@ MEDIA_PROBE_JS = r"""
|
||||
thumbnail = imgY ? imgY.href : null;
|
||||
}
|
||||
|
||||
return {
|
||||
// WICHTIG: QtWebEngine's runJavaScript()-Bruecke liefert bei einem direkt
|
||||
// zurueckgegebenen JS-Objekt zuverlaessig nur einen leeren String statt des
|
||||
// Objekts (Zahlen/Strings funktionieren, Objekte nicht) - deshalb hier als
|
||||
// JSON-String zurueckgeben und in Python mit json.loads() wieder parsen
|
||||
// (siehe BrowserTab._on_media_probe_result in browser.py).
|
||||
return JSON.stringify({
|
||||
isMusic: isMusic,
|
||||
title: title,
|
||||
subtitle: subtitle,
|
||||
@@ -37,7 +42,7 @@ MEDIA_PROBE_JS = r"""
|
||||
currentTime: video ? video.currentTime : 0,
|
||||
duration: (video && isFinite(video.duration)) ? video.duration : 0,
|
||||
hasVideo: !!video
|
||||
};
|
||||
});
|
||||
})();
|
||||
"""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user