1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-04-12 08:42:13 -04:00

track art: use URLs directly

This commit is contained in:
bbedward
2026-02-13 17:31:51 -05:00
parent b8d40761ff
commit ce75dac81b
2 changed files with 21 additions and 25 deletions

View File

@@ -27,11 +27,11 @@ DankOSD {
let icon = "music_note"; let icon = "music_note";
switch (player.playbackState) { switch (player.playbackState) {
case MprisPlaybackState.Playing: case MprisPlaybackState.Playing:
icon = "pause"; icon = "play_arrow";
break; break;
case MprisPlaybackState.Paused: case MprisPlaybackState.Paused:
case MprisPlaybackState.Stopped: case MprisPlaybackState.Stopped:
icon = "play_arrow"; icon = "pause";
break; break;
} }
if (icon === _displayIcon) if (icon === _displayIcon)
@@ -75,7 +75,7 @@ DankOSD {
function onLoadingChanged() { function onLoadingChanged() {
if (TrackArtService.loading || !root._pendingShow) if (TrackArtService.loading || !root._pendingShow)
return; return;
if (!TrackArtService._bgArtSource || artPreloader.status !== Image.Loading) { if (!TrackArtService._bgArtSource || artPreloader.status === Image.Ready) {
root._pendingShow = false; root._pendingShow = false;
root.show(); root.show();
} }
@@ -87,9 +87,12 @@ DankOSD {
function onStatusChanged() { function onStatusChanged() {
if (!root._pendingShow || TrackArtService.loading) if (!root._pendingShow || TrackArtService.loading)
return; return;
if (artPreloader.status !== Image.Loading) { switch (artPreloader.status) {
case Image.Ready:
case Image.Error:
root._pendingShow = false; root._pendingShow = false;
root.show(); root.show();
break;
} }
} }
} }
@@ -110,7 +113,11 @@ DankOSD {
root.show(); root.show();
return; return;
} }
if (!TrackArtService.loading) { if (TrackArtService.loading) {
root._pendingShow = true;
return;
}
if (!TrackArtService._bgArtSource || artPreloader.status === Image.Ready) {
root.show(); root.show();
return; return;
} }

View File

@@ -11,7 +11,6 @@ Singleton {
property string _lastArtUrl: "" property string _lastArtUrl: ""
property string _bgArtSource: "" property string _bgArtSource: ""
property string activeTrackArtFile: ""
property bool loading: false property bool loading: false
function loadArtwork(url) { function loadArtwork(url) {
@@ -24,30 +23,20 @@ Singleton {
if (url === _lastArtUrl) if (url === _lastArtUrl)
return; return;
_lastArtUrl = url; _lastArtUrl = url;
loading = true;
if (!url.startsWith("http://") && !url.startsWith("https://")) { if (url.startsWith("http://") || url.startsWith("https://")) {
const localUrl = url; _bgArtSource = url;
const filePath = url.startsWith("file://") ? url.substring(7) : url; loading = false;
Proc.runCommand("trackart", ["test", "-f", filePath], (output, exitCode) => {
if (_lastArtUrl !== localUrl)
return;
_bgArtSource = exitCode === 0 ? localUrl : "";
loading = false;
}, 200);
return; return;
} }
const filename = "/tmp/.dankshell/trackart_" + Date.now() + ".jpg"; loading = true;
activeTrackArtFile = filename; const localUrl = url;
const filePath = url.startsWith("file://") ? url.substring(7) : url;
Proc.runCommand("trackart_cleanup", ["sh", "-c", "mkdir -p /tmp/.dankshell && find /tmp/.dankshell -name 'trackart_*' ! -name '" + filename.split('/').pop() + "' -delete"], null, 0); Proc.runCommand("trackart", ["test", "-f", filePath], (output, exitCode) => {
if (_lastArtUrl !== localUrl)
Proc.runCommand("trackart", ["dms", "dl", "-o", filename, "--user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36", url], (output, exitCode) => {
const resultPath = output.trim();
if (resultPath !== filename)
return; return;
_bgArtSource = exitCode === 0 ? "file://" + resultPath : ""; _bgArtSource = exitCode === 0 ? localUrl : "";
loading = false; loading = false;
}, 200); }, 200);
} }