mirror of
				https://github.com/Mastermindzh/tidal-hifi.git
				synced 2025-11-04 02:39:13 +01: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