mirror of
https://github.com/agam778/MS-365-Electron.git
synced 2026-02-17 09:02:10 +00:00
Welcome back, Discord RPC
- Use new image for the RPC - Switch to an updated library
This commit is contained in:
22
app/main.js
22
app/main.js
@@ -6,7 +6,7 @@ const contextMenu = require("electron-context-menu");
|
||||
const path = require("path");
|
||||
const store = require("./store");
|
||||
const log = require("electron-log");
|
||||
|
||||
const { setActivity, loginToRPC, clearActivity } = require("./rpc");
|
||||
const useragents = require("./useragents.json");
|
||||
|
||||
log.transports.file.level = "verbose";
|
||||
@@ -116,9 +116,14 @@ function createWindow() {
|
||||
}
|
||||
);
|
||||
|
||||
require("./rpc.js");
|
||||
|
||||
win.webContents.on("did-finish-load", () => {
|
||||
splash.destroy();
|
||||
win.show();
|
||||
if (store.get("discordrpcstatus") === "true") {
|
||||
setActivity(`On "${win.webContents.getTitle()}"`);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -133,9 +138,19 @@ app.on("web-contents-created", (event, contents) => {
|
||||
return { action: "allow" };
|
||||
} else {
|
||||
BrowserWindow.getFocusedWindow().loadURL(url);
|
||||
if (store.get("discordrpcstatus") === "true") {
|
||||
setActivity(
|
||||
`On "${BrowserWindow.getFocusedWindow().webContents.getTitle()}"`
|
||||
);
|
||||
}
|
||||
return { action: "deny" };
|
||||
}
|
||||
} else {
|
||||
if (store.get("discordrpcstatus") === "true") {
|
||||
setActivity(
|
||||
`On "${BrowserWindow.getFocusedWindow().webContents.getTitle()}"`
|
||||
);
|
||||
}
|
||||
return { action: "allow" };
|
||||
}
|
||||
});
|
||||
@@ -145,6 +160,7 @@ app.on("window-all-closed", () => {
|
||||
if (process.platform !== "darwin") {
|
||||
app.quit();
|
||||
}
|
||||
clearActivity();
|
||||
});
|
||||
|
||||
app.on("activate", () => {
|
||||
@@ -173,4 +189,8 @@ app.on("ready", function () {
|
||||
});
|
||||
});
|
||||
autoUpdater.checkForUpdatesAndNotify();
|
||||
if (store.get("discordrpcstatus") === "true") {
|
||||
loginToRPC();
|
||||
setActivity(`Opening Microsoft 365...`);
|
||||
}
|
||||
});
|
||||
|
||||
36
app/menu.js
36
app/menu.js
@@ -2,6 +2,7 @@ const store = require("./store");
|
||||
const useragents = require("./useragents.json");
|
||||
const { app, dialog, BrowserWindow } = require("electron");
|
||||
const axios = require("axios");
|
||||
const { clearActivity, setActivity } = require("./rpc");
|
||||
|
||||
function getValueOrDefault(key, defaultValue) {
|
||||
const value = store.get(key);
|
||||
@@ -87,6 +88,7 @@ function setUserAgent(useragent) {
|
||||
getValueOrDefault("enterprise-or-normal", "https://microsoft365.com/?auth=1");
|
||||
getValueOrDefault("autohide-menubar", "false");
|
||||
getValueOrDefault("useragentstring", useragents.Windows);
|
||||
getValueOrDefault("discordrpcstatus", "false");
|
||||
|
||||
const menulayout = [
|
||||
{
|
||||
@@ -187,6 +189,40 @@ const menulayout = [
|
||||
: false,
|
||||
},
|
||||
{ type: "separator" },
|
||||
{
|
||||
label: "Enable Discord RPC",
|
||||
type: "checkbox",
|
||||
click: () => {
|
||||
if (store.get("discordrpcstatus") === "true") {
|
||||
store.set("discordrpcstatus", "false");
|
||||
dialog.showMessageBoxSync({
|
||||
type: "info",
|
||||
title: "Discord RPC",
|
||||
message: "Discord RPC has been disabled.",
|
||||
buttons: ["OK"],
|
||||
});
|
||||
clearActivity();
|
||||
return;
|
||||
} else if (
|
||||
store.get("discordrpcstatus") === "false" ||
|
||||
store.get("discordrpcstatus") === undefined
|
||||
) {
|
||||
store.set("discordrpcstatus", "true");
|
||||
dialog.showMessageBoxSync({
|
||||
type: "info",
|
||||
title: "Discord RPC",
|
||||
message: "Discord RPC has been enabled.",
|
||||
buttons: ["OK"],
|
||||
});
|
||||
setActivity(
|
||||
`On ${BrowserWindow.getFocusedWindow().webContents.getTitle()}`
|
||||
);
|
||||
return;
|
||||
}
|
||||
},
|
||||
checked: store.get("discordrpcstatus") === "true",
|
||||
},
|
||||
{ type: "separator" },
|
||||
{
|
||||
label: "Windows User-Agent String",
|
||||
type: "radio",
|
||||
|
||||
57
app/rpc.js
Normal file
57
app/rpc.js
Normal file
@@ -0,0 +1,57 @@
|
||||
const { Client } = require("@xhayper/discord-rpc");
|
||||
const { dialog, BrowserWindow } = require("electron");
|
||||
|
||||
const client = new Client({
|
||||
clientId: "942637872530460742",
|
||||
});
|
||||
|
||||
async function clearActivity() {
|
||||
await client.user?.clearActivity().catch((err) => {
|
||||
dialog.showMessageBox(BrowserWindow.getFocusedWindow(), {
|
||||
type: "error",
|
||||
title: "Discord RPC Error",
|
||||
message: "Oops! An Error occured while clearing Discord RPC.",
|
||||
buttons: ["OK"],
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async function setActivity(details) {
|
||||
if (!client.user) {
|
||||
await loginToRPC();
|
||||
}
|
||||
await client.user
|
||||
?.setActivity({
|
||||
details: details,
|
||||
startTimestamp: Date.now(),
|
||||
largeImageKey: "icon",
|
||||
largeImageText: "MS-365-Electron",
|
||||
})
|
||||
.catch((err) => {
|
||||
dialog.showMessageBox(BrowserWindow.getFocusedWindow(), {
|
||||
type: "error",
|
||||
title: "Discord RPC Error",
|
||||
message: "Oops! An Error occured while setting Discord RPC.",
|
||||
buttons: ["OK"],
|
||||
});
|
||||
console.error(err);
|
||||
});
|
||||
}
|
||||
|
||||
async function loginToRPC() {
|
||||
await client.login().catch((err) => {
|
||||
dialog.showMessageBox(BrowserWindow.getFocusedWindow(), {
|
||||
type: "error",
|
||||
title: "Discord RPC Error",
|
||||
message: "Oops! An Error occured while connecting to Discord RPC.",
|
||||
buttons: ["OK"],
|
||||
});
|
||||
console.error(err);
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
clearActivity,
|
||||
setActivity,
|
||||
loginToRPC,
|
||||
};
|
||||
Reference in New Issue
Block a user