summaryrefslogtreecommitdiff
path: root/desktop/main.js
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/main.js')
-rw-r--r--desktop/main.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/desktop/main.js b/desktop/main.js
index 5efb923..509bd06 100644
--- a/desktop/main.js
+++ b/desktop/main.js
@@ -1,6 +1,43 @@
const { app, BrowserWindow, shell, ipcMain, session, Notification, nativeImage, Menu } = require('electron');
const path = require('node:path');
const http = require('http');
+const {Client} = require("@xhayper/discord-rpc");
+
+global.rpcStatus = null;
+global.rpcHandleError = false;
+
+setInterval(async () => {
+ if (mainWindow && !mainWindow.isDestroyed() && client && client.isConnected) {
+ global.rpcStatus = await mainWindow.webContents.executeJavaScript("window.discordRichPresenceData");
+
+ if (rpcStatus === null) {
+ await client.user?.clearActivity();
+ } else {
+ await client.user?.setActivity(rpcStatus);
+ }
+ }
+}, 5000);
+
+function loadRPC() {
+ try {
+ const { Client } = require('@xhayper/discord-rpc');
+
+ global.client = new Client({
+ clientId: "1167169806127071333"
+ });
+
+ client.on("ready", () => {
+ global.rpcHandleError = true;
+ });
+
+ client.login();
+ } catch (e) {
+ console.error(e);
+ if (global.rpcHandleError) loadRPC();
+ }
+}
+
+loadRPC();
function updateMenu(mainWindow) {
let template = [