From 21aa2a7f99f4de87560efb744b5263e4d38792b2 Mon Sep 17 00:00:00 2001 From: thororen1234 <78185467+thororen1234@users.noreply.github.com> Date: Sat, 5 Apr 2025 18:48:55 -0400 Subject: [PATCH] Revert "Revert Asar" This reverts commit ba8d88cb409a80afeb8ed1f15546396fd646b629. --- src/main/index.ts | 4 +-- src/main/ipcMain.ts | 2 +- src/main/patcher.ts | 5 +-- src/main/updater/common.ts | 7 +---- src/main/updater/http.ts | 64 +++++++------------------------------- src/preload.ts | 2 +- 6 files changed, 17 insertions(+), 67 deletions(-) diff --git a/src/main/index.ts b/src/main/index.ts index e487231e..760233cc 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -43,11 +43,9 @@ if (IS_VESKTOP || !IS_VANILLA) { } switch (url) { case "renderer.js.map": - case "equibopRenderer.js.map": case "preload.js.map": - case "equibopPreload.js.map": case "patcher.js.map": - case "equibopMain.js.map": + case "main.js.map": cb(join(__dirname, url)); break; default: diff --git a/src/main/ipcMain.ts b/src/main/ipcMain.ts index 7b34eb8c..43fd2099 100644 --- a/src/main/ipcMain.ts +++ b/src/main/ipcMain.ts @@ -119,7 +119,7 @@ ipcMain.handle(IpcEvents.OPEN_MONACO_EDITOR, async () => { autoHideMenuBar: true, darkTheme: true, webPreferences: { - preload: join(__dirname, IS_DISCORD_DESKTOP ? "preload.js" : "equibopPreload.js"), + preload: join(__dirname, "preload.js"), contextIsolation: true, nodeIntegration: false, sandbox: false diff --git a/src/main/patcher.ts b/src/main/patcher.ts index f91182d4..822dab49 100644 --- a/src/main/patcher.ts +++ b/src/main/patcher.ts @@ -29,11 +29,8 @@ console.log("[Equicord] Starting up..."); // Our injector file at app/index.js const injectorPath = require.main!.filename; -// special discord_arch_electron injection method -const asarName = require.main!.path.endsWith("app.asar") ? "_app.asar" : "app.asar"; - // The original app.asar -const asarPath = join(dirname(injectorPath), "..", asarName); +const asarPath = join(dirname(injectorPath), "..", "_app.asar"); const discordPkg = require(join(asarPath, "package.json")); require.main!.filename = join(asarPath, discordPkg.main); diff --git a/src/main/updater/common.ts b/src/main/updater/common.ts index 475435e8..bd77c417 100644 --- a/src/main/updater/common.ts +++ b/src/main/updater/common.ts @@ -16,12 +16,7 @@ * along with this program. If not, see . */ -export const EQUICORD_FILES = [ - IS_DISCORD_DESKTOP ? "patcher.js" : "equibopMain.js", - IS_DISCORD_DESKTOP ? "preload.js" : "equibopPreload.js", - IS_DISCORD_DESKTOP ? "renderer.js" : "equibopRenderer.js", - IS_DISCORD_DESKTOP ? "renderer.css" : "equibopRenderer.css", -]; +export const ASAR_FILE = IS_VESKTOP ? "vesktop.asar" : IS_EQUIBOP ? "equibop.asar" : "desktop.asar"; export function serializeErrors(func: (...args: any[]) => any) { return async function () { diff --git a/src/main/updater/http.ts b/src/main/updater/http.ts index 6015b039..c0affa69 100644 --- a/src/main/updater/http.ts +++ b/src/main/updater/http.ts @@ -16,26 +16,19 @@ * along with this program. If not, see . */ -import { isLegacyNonAsarVencord } from "@main/patcher"; import { get } from "@main/utils/simpleGet"; import { IpcEvents } from "@shared/IpcEvents"; import { VENCORD_USER_AGENT } from "@shared/vencordUserAgent"; -import { app, dialog, ipcMain } from "electron"; -import { writeFile } from "fs/promises"; -import { - existsSync, - unlinkSync, - writeFileSync, -} from "original-fs"; -import { join } from "path"; +import { ipcMain } from "electron"; +import { writeFileSync as originalWriteFileSync } from "original-fs"; import gitHash from "~git-hash"; import gitRemote from "~git-remote"; -import { EQUICORD_FILES, serializeErrors } from "./common"; +import { ASAR_FILE, serializeErrors } from "./common"; const API_BASE = `https://api.github.com/repos/${gitRemote}`; -let PendingUpdates = [] as [string, string][]; +let PendingUpdate: string | null = null; async function githubGet(endpoint: string) { return get(API_BASE + endpoint, { @@ -72,56 +65,23 @@ async function fetchUpdates() { return false; - data.assets.forEach(({ name, browser_download_url }) => { - if (EQUICORD_FILES.some(s => name.startsWith(s))) { - PendingUpdates.push([name, browser_download_url]); - } - }); + const asset = data.assets.find(a => a.name === ASAR_FILE); + PendingUpdate = asset.browser_download_url; return true; } async function applyUpdates() { - await Promise.all(PendingUpdates.map( - async ([name, data]) => writeFile( - join(__dirname, name), - await get(data) - ) - )); - PendingUpdates = []; + if (!PendingUpdate) return true; + + const data = await get(PendingUpdate); + originalWriteFileSync(__dirname, data); + + PendingUpdate = null; return true; } -async function migrateAsarToLegacy() { - try { - const isFlatpak = process.platform === "linux" && !!process.env.FLATPAK_ID; - if (isFlatpak) throw "Flatpak Discord can't automatically be migrated."; - - const asarPath = join(__dirname, "../equicord.asar"); - if (existsSync(asarPath)) { - unlinkSync(asarPath); - } - - writeFileSync(__filename, "// Shim for legacy Equicord\n\nrequire(\"./index.js\");"); - - app.relaunch(); - app.exit(); - } catch (e) { - console.error("Failed to migrate to legacy", e); - - app.whenReady().then(() => { - dialog.showErrorBox( - "Migration Error", - "Failed to migrate back to the legacy version. Please reinstall using the Equicord Installer." - ); - app.exit(1); - }); - } -} - -if (!isLegacyNonAsarVencord) migrateAsarToLegacy(); - ipcMain.handle(IpcEvents.GET_REPO, serializeErrors(() => `https://github.com/${gitRemote}`)); ipcMain.handle(IpcEvents.GET_UPDATES, serializeErrors(calculateGitChanges)); ipcMain.handle(IpcEvents.UPDATE, serializeErrors(fetchUpdates)); diff --git a/src/preload.ts b/src/preload.ts index 96b07246..7c61a181 100644 --- a/src/preload.ts +++ b/src/preload.ts @@ -28,7 +28,7 @@ contextBridge.exposeInMainWorld("VencordNative", VencordNative); // Discord if (location.protocol !== "data:") { // #region cssInsert - const rendererCss = join(__dirname, IS_DISCORD_DESKTOP ? "renderer.css" : "equibopRenderer.css"); + const rendererCss = join(__dirname, "renderer.css"); const style = document.createElement("style"); style.id = "vencord-css-core";