1- From d97b60764e4a02f3f6a7fe91bbf952339640689d Mon Sep 17 00:00:00 2001
1+ From b3977537f865f9cada0884a41975495c67ecb402 Mon Sep 17 00:00:00 2001
22From: josselinonduty <contact@josselinonduty.fr>
3- Date: Tue, 2 Dec 2025 13:40:50 +0100
3+ Date: Sun, 25 Jan 2026 03:14:31 +0100
44Subject: [PATCH] feat: Provide metadata and MPRIS compatiblity
55
66---
7- build/main.js | 149 ++++++++++++++++++++++++++++++++++++++--------
8- build/renderer.js | 118 +++++++++++++++++++++++++++++++-----
9- 2 files changed, 226 insertions(+), 41 deletions(-)
7+ build/main.js | 152 ++++++++++++++++++++++++++++++++++++++--------
8+ build/renderer.js | 123 + +++++++++++++++++++++++++++++++-----
9+ 2 files changed, 234 insertions(+), 41 deletions(-)
1010
1111diff --git a/build/main.js b/build/main.js
12- index 75182f1..14ea84b 100644
12+ index f7f5739..0e0ecf7 100644
1313--- a/build/main.js
1414+++ b/build/main.js
1515@@ -87,6 +87,10 @@
@@ -71,7 +71,7 @@ index 75182f1..14ea84b 100644
7171 }
7272 play() {
7373 this.ipc.send("channel-player-media-control", MediaPlayerControl.Play);
74- @@ -1207,15 +1235,67 @@
74+ @@ -1207,15 +1235,70 @@
7575 this.ipc.send("channel-player-shuffle-update", shuffle);
7676 }
7777 setRepeatMode(repeatMode) {
@@ -103,6 +103,9 @@ index 75182f1..14ea84b 100644
103103+ Math.round(data?.position * 1000 * 1000 || 0);
104104+ return;
105105+ }
106+ +
107+ + if (!track || Object.keys(track).length === 0) return;
108+ + if (!track.title && !track.artist) return;
106109+
107110 (this.track = Object.assign(this.track, track)),
108111- this.emit(MediaEvents.TrackUpdated, this.track);
@@ -146,7 +149,7 @@ index 75182f1..14ea84b 100644
146149 }
147150 getTrackInfo() {
148151 return this.track;
149- @@ -1275,7 +1355 ,11 @@
152+ @@ -1275,7 +1358 ,11 @@
150153 1,
151154 (0, external_inversify_namespaceObject.inject)(SERVICE_USER)
152155 ),
@@ -159,7 +162,7 @@ index 75182f1..14ea84b 100644
159162 ],
160163 MediaService
161164 );
162- @@ -2457,7 +2541 ,7 @@
165+ @@ -2457,7 +2544 ,7 @@
163166 (this.ipc = ipc),
164167 (this.app = app);
165168 }
@@ -168,7 +171,7 @@ index 75182f1..14ea84b 100644
168171 const previousUserID = this.user.id;
169172 (this.user = Object.assign(this.user, userInfo)),
170173 previousUserID !== this.user.id &&
171- @@ -2689,23 +2773 ,34 @@
174+ @@ -2689,23 +2776 ,34 @@
172175 const PlayerIpc_ipc = main_di.get(SERVICE_IPC),
173176 media = main_di.get(SERVICE_MEDIA),
174177 powerSave = main_di.get(SERVICE_POWER_SAVE);
@@ -216,7 +219,7 @@ index 75182f1..14ea84b 100644
216219 });
217220 const UpdaterIpc_ipc = main_di.get(SERVICE_IPC),
218221 autoUpdater = main_di.get(SERVICE_UPDATER);
219- @@ -2714,8 +2809 ,8 @@
222+ @@ -2714,8 +2812 ,8 @@
220223 });
221224 const UserIpc_ipc = main_di.get(SERVICE_IPC),
222225 user = main_di.get(SERVICE_USER);
@@ -227,7 +230,7 @@ index 75182f1..14ea84b 100644
227230 });
228231 var application_awaiter = function (thisArg, _arguments, P, generator) {
229232 return new (P || (P = Promise))(function (resolve, reject) {
230- @@ -2781,6 +2876 ,10 @@
233+ @@ -2781,6 +2879 ,10 @@
231234 "autoplay-policy",
232235 "no-user-gesture-required"
233236 ),
@@ -239,7 +242,7 @@ index 75182f1..14ea84b 100644
239242 "second-instance",
240243 (event, argv) => {
241244diff --git a/build/renderer.js b/build/renderer.js
242- index 7329ec8..d0f0f4d 100644
245+ index a30f35a..e6efc46 100644
243246--- a/build/renderer.js
244247+++ b/build/renderer.js
245248@@ -285,6 +285,42 @@
@@ -356,7 +359,7 @@ index 7329ec8..d0f0f4d 100644
356359 break;
357360 }
358361 case "player-track-updated": {
359- @@ -396,13 +451,44 @@
362+ @@ -396,13 +451,49 @@
360363 canRepeat: event.data.player.hasRepeat,
361364 canShuffle: event.data.player.hasShuffle,
362365 };
@@ -374,34 +377,39 @@ index 7329ec8..d0f0f4d 100644
374377 !1
375378 ),
376379+ setInterval(() => {
377- + if (document.readyState === "complete") {
378- + renderer_ipc.send(
379- + "channel-player-track-update",
380- + {},
381- + {},
382- + {
383- + position:
384- + document
385- + .querySelector(".slider-track .slider-track-input")
386- + ?.getAttribute("value") || 0,
387- + trackInfo: {
388- + song: {
389- + DURATION:
390- + document
391- + .querySelector(".slider-track .slider-track-input")
392- + ?.getAttribute("max") || 0,
393- + },
394- + },
395- + player: {
396- + volume: window.dzPlayer?.volume,
380+ + if (!document.readyState === "complete") return;
381+ +
382+ + const sliderValue = document
383+ + .querySelector(".slider-track .slider-track-input")
384+ + ?.getAttribute("value");
385+ + if (sliderValue === null) return;
386+ +
387+ + renderer_ipc.send(
388+ + "channel-player-track-update",
389+ + {},
390+ + {},
391+ + {
392+ + position:
393+ + document
394+ + .querySelector(".slider-track .slider-track-input")
395+ + ?.getAttribute("value") || 0,
396+ + trackInfo: {
397+ + song: {
398+ + DURATION:
399+ + document
400+ + .querySelector(".slider-track .slider-track-input")
401+ + ?.getAttribute("max") || 0,
397402+ },
398- + }
399- + );
400- + }
403+ + },
404+ + player: {
405+ + volume: window.dzPlayer?.volume,
406+ + },
407+ + }
408+ + );
401409+ }, 50),
402410 (function (layoutName, callback) {
403411 const layouts = nodeRequire("./assets/layout.json"),
404412 manifest = nodeRequire("./assets/manifest.json");
405413- -
406- 2.48.1
414+ 2.51.0
407415
0 commit comments