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:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user