summaryrefslogtreecommitdiff
path: root/main.js
diff options
context:
space:
mode:
authorRaindropsSys <contact@minteck.org>2023-08-02 14:08:49 +0200
committerRaindropsSys <contact@minteck.org>2023-08-02 14:08:49 +0200
commited17209337ed99f18950a25db50a3551d00b2aa9 (patch)
treee7e17701f402d73f5c40fea7f87d07aadf7c571a /main.js
parentfe1efac144f79b466f079e03f945b43dc702af28 (diff)
downloadmenubarusic-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.js55
1 files changed, 54 insertions, 1 deletions
diff --git a/main.js b/main.js
index 4357a63..b3b1556 100644
--- a/main.js
+++ b/main.js
@@ -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;
}
}