diff options
author | RaindropsSys <contact@minteck.org> | 2023-08-02 14:08:49 +0200 |
---|---|---|
committer | RaindropsSys <contact@minteck.org> | 2023-08-02 14:08:49 +0200 |
commit | ed17209337ed99f18950a25db50a3551d00b2aa9 (patch) | |
tree | e7e17701f402d73f5c40fea7f87d07aadf7c571a /main.js | |
parent | fe1efac144f79b466f079e03f945b43dc702af28 (diff) | |
download | menubarusic-ed17209337ed99f18950a25db50a3551d00b2aa9.tar.gz menubarusic-ed17209337ed99f18950a25db50a3551d00b2aa9.tar.bz2 menubarusic-ed17209337ed99f18950a25db50a3551d00b2aa9.zip |
Updated 7 files, added .idea/vcs.xml and deleted 2246 files (automated)
Diffstat (limited to 'main.js')
-rw-r--r-- | main.js | 55 |
1 files changed, 54 insertions, 1 deletions
@@ -1,6 +1,33 @@ const { app, Tray, nativeImage } = require('electron'); const child_process = require("child_process"); const fs = require("fs"); +const { Client } = require('@xhayper/discord-rpc'); + +function loadDiscord() { + global.discord = new Client({ + clientId: "1136028963903385610" + }); + + discord.on("ready", () => { + setInterval(() => { + refreshDiscord(discord); + }, 15000); + }); + + discord.login(); +} + +let discordData = null; + +function refreshDiscord(discord) { + if (discordData === null) { + discord.user.clearActivity(); + } else { + discord.user.setActivity(discordData); + } +} + +loadDiscord(); app.disableHardwareAcceleration(); let lastID = ""; @@ -54,14 +81,40 @@ async function refresh() { height: 24 }); - tray.setTitle(" " + data.artist + " - " + data.name); + tray.setTitle("\xa0\xa0" + data.artist + " - " + data.name); tray.setImage(img); + let albumArt = "https://cdn.discordapp.com/app-icons/1136028963903385610/9f14e1a37ee238abd3c5f28a8f083daf.png"; + let query = "?query=" + encodeURIComponent(`"${data.albumArtist}" "${data.album}"`) + "&limit=1&fmt=json"; + + let musicbrainzData = await (await fetch("https://musicbrainz.org/ws/2/release-group" + query)).json(); + + if (musicbrainzData['release-groups'].length > 0) { + let id = musicbrainzData['release-groups'][0].id; + let coverData = await (await fetch("https://coverartarchive.org/release-group/" + id + "/")).json(); + + if (coverData['images'].length > 0) { + albumArt = coverData['images'][0]['thumbnails']['250'] ?? coverData['images'][0]['image']; + } + } + + console.log(data); + + discordData = { + details: data.name, + state: data.artist, + largeImageText: data.album, + largeImageKey: albumArt + } + refreshDiscord(discord); + lastID = data['persistentID']; } catch (e) { tray.setTitle(""); tray.setImage(__dirname + "/tray/empty.png"); lastID = null; + + discordData = null; } } |