From 90717ed9600e253add46114c90be43de8bf6e372 Mon Sep 17 00:00:00 2001 From: HorizonCode Date: Mon, 11 Mar 2024 18:06:24 +0100 Subject: [PATCH] display user as small image, fix dynamic beatmap images --- electron/richPresence.js | 6 ++--- main.js | 57 +++++++++++++++++++++++++++------------- 2 files changed, 42 insertions(+), 21 deletions(-) diff --git a/electron/richPresence.js b/electron/richPresence.js index f0b39d0..0132998 100644 --- a/electron/richPresence.js +++ b/electron/richPresence.js @@ -56,9 +56,9 @@ module.exports = { currentStatus.details = details ?? " "; currentStatus.largeImageKey = largeImageKey ?? "ezppfarm"; }, - updateVersion: (osuVersion) => { - currentStatus.smallImageKey = osuVersion ? "osu" : " "; - currentStatus.smallImageText = osuVersion ? `osu! ${osuVersion}` : " "; + updateUser: ({ username, id }) => { + currentStatus.smallImageKey = id ? `https://a.ez-pp.farm/${id}` : " "; + currentStatus.smallImageText = username ? username : " "; }, update: () => { if (richPresence && richPresence.user) { diff --git a/main.js b/main.js index 8dd3c3a..a467ec2 100644 --- a/main.js +++ b/main.js @@ -73,6 +73,25 @@ function startOsuStatus() { if (firstInstance) { if (!osuLoaded) { osuLoaded = true; + + try { + const currentUserInfo = await fetch(`https://api.ez-pp.farm/get_player_info?name=${currentUser.username}&scope=info`); + const currentUserInfoJson = await currentUserInfo.json(); + if ("player" in currentUserInfoJson && currentUserInfoJson.player != null) { + if ("info" in currentUserInfoJson.player && currentUserInfoJson.player.info != null) { + const id = currentUserInfoJson.player.info.id; + const username = currentUserInfoJson.player.info.name; + richPresence.updateUser({ + id, + username, + }); + richPresence.update(); + } + } + } catch { + + } + setTimeout(() => { if (patch) { const patcherExecuteable = path.join( @@ -107,12 +126,14 @@ function startOsuStatus() { currentStatus.player_status.status.beatmap !== null ) { const setId = currentStatus.player_status.status.beatmap.set_id; - const coverImage = - `https://assets.ppy.sh/beatmaps/${setId}/covers/list@2x.jpg`; - if ( - checkImageExists(coverImage) - ) { - largeImageKey = coverImage; + if (setId) { + const coverImage = + `https://assets.ppy.sh/beatmaps/${setId}/covers/list@2x.jpg`; + if ( + checkImageExists(coverImage) + ) { + largeImageKey = coverImage; + } } } @@ -120,6 +141,7 @@ function startOsuStatus() { case 1: details = "AFK..."; infoText = " "; + largeImageKey = "ezppfarm"; break; case 2: details = "Playing..."; @@ -133,6 +155,7 @@ function startOsuStatus() { case 5: details = "Multiplayer: Selecting a Beatmap..."; infoText = " "; + largeImageKey = "ezppfarm"; break; case 6: details = "Watching..."; @@ -142,10 +165,12 @@ function startOsuStatus() { break; case 9: details = "Submitting..."; + largeImageKey = "ezppfarm"; break; case 11: details = "Multiplayer: Idle..."; infoText = " "; + largeImageKey = "ezppfarm"; break; case 12: details = "Multiplayer: Playing..."; @@ -153,6 +178,7 @@ function startOsuStatus() { case 13: details = "Browsing osu!direct..."; infoText = " "; + largeImageKey = "ezppfarm"; break; } @@ -402,9 +428,8 @@ function registerIPCPipes() { progress: Math.ceil(data.progress), }); mainWindow.webContents.send("ezpplauncher:launchstatus", { - status: `Downloading ${data.fileName}(${formatBytes(data.loaded)}/${ - formatBytes(data.total) - })...`, + status: `Downloading ${data.fileName}(${formatBytes(data.loaded)}/${formatBytes(data.total) + })...`, }); }); await uiDownloader.startDownload(); @@ -433,9 +458,8 @@ function registerIPCPipes() { progress: Math.ceil(data.progress), }); mainWindow.webContents.send("ezpplauncher:launchstatus", { - status: `Downloading ${data.fileName}(${formatBytes(data.loaded)}/${ - formatBytes(data.total) - })...`, + status: `Downloading ${data.fileName}(${formatBytes(data.loaded)}/${formatBytes(data.total) + })...`, }); }); await updateDownloader.startDownload(); @@ -480,9 +504,8 @@ function registerIPCPipes() { progress: Math.ceil(data.progress), }); mainWindow.webContents.send("ezpplauncher:launchstatus", { - status: `Downloading ${data.fileName}(${formatBytes(data.loaded)}/${ - formatBytes(data.total) - })...`, + status: `Downloading ${data.fileName}(${formatBytes(data.loaded)}/${formatBytes(data.total) + })...`, }); }); await patcherDownloader.startDownload(); @@ -554,11 +577,9 @@ function registerIPCPipes() { }); } } - } catch {} + } catch { } const userConfig = getUserConfig(osuPath); - richPresence.updateVersion(await userConfig.get("LastVersion")); - richPresence.update(); if (richPresence.hasPresence) { await userConfig.set("DiscordRichPresence", "0"); }