mirror of
https://github.com/aunetx/deezer-linux.git
synced 2025-08-15 06:38:13 +02:00
185 lines
7.1 KiB
Diff
185 lines
7.1 KiB
Diff
From ff697a112f235e1b973bcadb304ba21aed8dcb71 Mon Sep 17 00:00:00 2001
|
|
From: josselinonduty <contact@josselinonduty.fr>
|
|
Date: Wed, 14 May 2025 15:12:49 +0900
|
|
Subject: [PATCH] feat: provide additional information to mpris (and future
|
|
patches)
|
|
|
|
---
|
|
build/main.js | 42 +++++++++++++++++++++++++---------------
|
|
build/renderer.js | 49 +++++++++++++++++++++++++++++++----------------
|
|
2 files changed, 60 insertions(+), 31 deletions(-)
|
|
|
|
diff --git a/build/main.js b/build/main.js
|
|
index 485b953..2f616b1 100644
|
|
--- a/build/main.js
|
|
+++ b/build/main.js
|
|
@@ -1253,18 +1253,24 @@
|
|
setRepeatMode(repeatMode) {
|
|
this.ipc.send("channel-player-repeat-mode-update", repeatMode);
|
|
}
|
|
- setTrackInfo(track) {
|
|
+ setTrackInfo(track, data) {
|
|
(this.track = Object.assign(this.track, track)),
|
|
this.emit(MediaEvents.TrackUpdated, this.track),
|
|
(this.mprisPlayer.metadata = {
|
|
+ "mpris:length": data?.trackInfo?.song?.DURATION
|
|
+ ? data.trackInfo.song.DURATION * 1000
|
|
+ : undefined,
|
|
"mpris:trackid": this.mprisPlayer.objectPath("track/0"),
|
|
"mpris:artUrl": track.coverUrl,
|
|
"xesam:title": track.title,
|
|
"xesam:album": track.album,
|
|
"xesam:artist": [track.artist],
|
|
+ "xesam:url": data?.trackInfo?.song
|
|
+ ? `https://deezer.com/track/${data.trackInfo.song.SNG_ID}`
|
|
+ : undefined,
|
|
});
|
|
}
|
|
- setPlayerInfo(player) {
|
|
+ setPlayerInfo(player, data) {
|
|
(this.player = Object.assign(this.player, player)),
|
|
this.emit(MediaEvents.PlayerUpdated, this.player),
|
|
(this.mprisPlayer.playbackStatus =
|
|
@@ -2530,7 +2536,7 @@
|
|
(this.ipc = ipc),
|
|
(this.app = app);
|
|
}
|
|
- setUserInfo(userInfo) {
|
|
+ setUserInfo(userInfo, data) {
|
|
const previousUserID = this.user.id;
|
|
(this.user = Object.assign(this.user, userInfo)),
|
|
previousUserID !== this.user.id &&
|
|
@@ -2773,8 +2779,8 @@
|
|
media = main_di.get(SERVICE_MEDIA),
|
|
powerSave = main_di.get(SERVICE_POWER_SAVE);
|
|
var powerSaveTimeoutId;
|
|
- PlayerIpc_ipc.on("channel-player-state-update", (event, state) => {
|
|
- media.setPlayerInfo({ state }),
|
|
+ PlayerIpc_ipc.on("channel-player-state-update", (event, state, data) => {
|
|
+ media.setPlayerInfo({ state }, data),
|
|
clearTimeout(powerSaveTimeoutId),
|
|
(powerSaveTimeoutId = setTimeout(() => {
|
|
state === MediaPlayerState.Playing
|
|
@@ -2784,16 +2790,22 @@
|
|
}),
|
|
PlayerIpc_ipc.on(
|
|
"channel-player-track-update",
|
|
- (event, track, player) => {
|
|
- media.setPlayerInfo(player), media.setTrackInfo(track);
|
|
+ (event, track, player, data) => {
|
|
+ media.setPlayerInfo(player, data), media.setTrackInfo(track, data);
|
|
}
|
|
),
|
|
- PlayerIpc_ipc.on("channel-player-shuffle-update", (event, player) => {
|
|
- media.setPlayerInfo(player);
|
|
- }),
|
|
- PlayerIpc_ipc.on("channel-player-repeat-mode-update", (event, player) => {
|
|
- media.setPlayerInfo(player);
|
|
- });
|
|
+ PlayerIpc_ipc.on(
|
|
+ "channel-player-shuffle-update",
|
|
+ (event, player, data) => {
|
|
+ media.setPlayerInfo(player, data);
|
|
+ }
|
|
+ ),
|
|
+ PlayerIpc_ipc.on(
|
|
+ "channel-player-repeat-mode-update",
|
|
+ (event, player, data) => {
|
|
+ media.setPlayerInfo(player, data);
|
|
+ }
|
|
+ );
|
|
const UpdaterIpc_ipc = main_di.get(SERVICE_IPC),
|
|
autoUpdater = main_di.get(SERVICE_UPDATER);
|
|
UpdaterIpc_ipc.on("channel-updater-install", () => {
|
|
@@ -2801,8 +2813,8 @@
|
|
});
|
|
const UserIpc_ipc = main_di.get(SERVICE_IPC),
|
|
user = main_di.get(SERVICE_USER);
|
|
- UserIpc_ipc.on("channel-user-store-updated", (event, userData) => {
|
|
- user.setUserInfo(userData);
|
|
+ UserIpc_ipc.on("channel-user-store-updated", (event, userData, data) => {
|
|
+ user.setUserInfo(userData, data);
|
|
});
|
|
var application_awaiter = function (thisArg, _arguments, P, generator) {
|
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
diff --git a/build/renderer.js b/build/renderer.js
|
|
index 212c12d..1f7b1b7 100644
|
|
--- a/build/renderer.js
|
|
+++ b/build/renderer.js
|
|
@@ -349,23 +349,31 @@
|
|
isFamily =
|
|
multiAccount &&
|
|
(multiAccount.ENABLED || multiAccount.CHILD_COUNT > 0);
|
|
- renderer_ipc.send("channel-user-store-updated", {
|
|
- id: userMetadata.USER_ID,
|
|
- isFamily,
|
|
- isEmployee: userMetadata.SETTING.global.is_employee,
|
|
- offerId: user.OFFER_ID,
|
|
- country: user.COUNTRY,
|
|
- gatekeeps: user.__DZR_GATEKEEPS__,
|
|
- });
|
|
+ renderer_ipc.send(
|
|
+ "channel-user-store-updated",
|
|
+ {
|
|
+ id: userMetadata.USER_ID,
|
|
+ isFamily,
|
|
+ isEmployee: userMetadata.SETTING.global.is_employee,
|
|
+ offerId: user.OFFER_ID,
|
|
+ country: user.COUNTRY,
|
|
+ gatekeeps: user.__DZR_GATEKEEPS__,
|
|
+ },
|
|
+ event.data
|
|
+ );
|
|
break;
|
|
}
|
|
case "player-repeat-changed":
|
|
- renderer_ipc.send("channel-player-repeat-mode-update", {
|
|
- repeatMode: event.data.player.repeat,
|
|
- canPrev: event.data.player.hasPrev,
|
|
- canNext: event.data.player.hasNext,
|
|
- canRepeat: event.data.player.hasRepeat,
|
|
- });
|
|
+ renderer_ipc.send(
|
|
+ "channel-player-repeat-mode-update",
|
|
+ {
|
|
+ repeatMode: event.data.player.repeat,
|
|
+ canPrev: event.data.player.hasPrev,
|
|
+ canNext: event.data.player.hasNext,
|
|
+ canRepeat: event.data.player.hasRepeat,
|
|
+ },
|
|
+ event.data
|
|
+ );
|
|
break;
|
|
case "player-shuffle-changed":
|
|
renderer_ipc.send("channel-player-shuffle-update", {
|
|
@@ -380,7 +388,11 @@
|
|
!0 === event.data.isPlaying
|
|
? MediaPlayerState.Playing
|
|
: MediaPlayerState.Paused;
|
|
- renderer_ipc.send("channel-player-state-update", state);
|
|
+ renderer_ipc.send(
|
|
+ "channel-player-state-update",
|
|
+ state,
|
|
+ event.data
|
|
+ );
|
|
break;
|
|
}
|
|
case "player-track-updated": {
|
|
@@ -409,7 +421,12 @@
|
|
canRepeat: event.data.player.hasRepeat,
|
|
canShuffle: event.data.player.hasShuffle,
|
|
};
|
|
- renderer_ipc.send("channel-player-track-update", track, player);
|
|
+ renderer_ipc.send(
|
|
+ "channel-player-track-update",
|
|
+ track,
|
|
+ player,
|
|
+ event.data
|
|
+ );
|
|
break;
|
|
}
|
|
}
|
|
--
|
|
2.43.0
|
|
|