mirror of
https://github.com/Mastermindzh/tidal-hifi.git
synced 2025-08-03 11:31:20 +02:00
Add Discord RPC & fix artist in mediainfo (#40)
This commit is contained in:
52
src/scripts/discord.js
Normal file
52
src/scripts/discord.js
Normal file
@@ -0,0 +1,52 @@
|
||||
const discordrpc = require("discord-rpc");
|
||||
const clientId = '833617820704440341';
|
||||
const mediaInfoModule = require("./mediaInfo");
|
||||
|
||||
const discordModule = [];
|
||||
|
||||
let discord;
|
||||
let rpc;
|
||||
|
||||
const idleStatus = {
|
||||
details: `Browsing Tidal`,
|
||||
largeImageKey: 'tidal-hifi-icon',
|
||||
largeImageText: 'Tidal HiFi 2.0.0',
|
||||
instance: false,
|
||||
}
|
||||
|
||||
discordModule.initRPC = function () {
|
||||
rpc = new discordrpc.Client({ transport: 'ipc' });
|
||||
rpc.login({ clientId }).catch(console.error);
|
||||
discordModule.rpc = rpc;
|
||||
|
||||
rpc.on('ready', () => {
|
||||
rpc.setActivity(idleStatus);
|
||||
})
|
||||
|
||||
discord = setInterval(() => {
|
||||
if (mediaInfoModule.mediaInfo.status == 'paused' && rpc) {
|
||||
rpc.setActivity(idleStatus);
|
||||
} else if (rpc) {
|
||||
rpc.setActivity({
|
||||
details: `Listening to ${mediaInfoModule.mediaInfo.title}`,
|
||||
state: mediaInfoModule.mediaInfo.artist,
|
||||
largeImageKey: 'tidal-hifi-icon',
|
||||
largeImageText: 'Tidal HiFi 2.0.0',
|
||||
buttons: [
|
||||
{ label: "Play on Tidal", url: mediaInfoModule.mediaInfo.url }
|
||||
],
|
||||
instance: false,
|
||||
});
|
||||
}
|
||||
}, 15e3);
|
||||
}
|
||||
|
||||
discordModule.unRPC = function () {
|
||||
clearInterval(discord);
|
||||
rpc.clearActivity();
|
||||
rpc.destroy();
|
||||
rpc = false;
|
||||
discordModule.rpc = rpc;
|
||||
}
|
||||
|
||||
module.exports = discordModule;
|
@@ -5,6 +5,7 @@ const mediaInfo = {
|
||||
artist: "",
|
||||
icon: "",
|
||||
status: statuses.paused,
|
||||
url: ""
|
||||
};
|
||||
const mediaInfoModule = {
|
||||
mediaInfo,
|
||||
@@ -17,6 +18,7 @@ mediaInfoModule.update = function(arg) {
|
||||
mediaInfo.title = propOrDefault(arg.title);
|
||||
mediaInfo.artist = propOrDefault(arg.message);
|
||||
mediaInfo.icon = propOrDefault(arg.icon);
|
||||
mediaInfo.url = propOrDefault(arg.url);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -17,6 +17,7 @@ const store = new Store({
|
||||
trayIcon: true,
|
||||
mpris: false,
|
||||
enableCustomHotkeys: false,
|
||||
enableDiscord: false,
|
||||
windowBounds: { width: 800, height: 600 },
|
||||
},
|
||||
});
|
||||
|
Reference in New Issue
Block a user