From fb65965d82f1a7a778f8f41f05096fffd9a02fae Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Fri, 11 Feb 2022 19:05:59 -0800 Subject: [PATCH 1/2] added ipcRenderer.send("get-github-theme", "url") --- package.json | 5 +++-- src/main/base/browserwindow.ts | 15 +++++++++++++++ src/renderer/index.js | 5 +++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index f4ed5a4b..e3a751ef 100644 --- a/package.json +++ b/package.json @@ -23,8 +23,8 @@ "start:darwin": "yarn build && ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers", "pack": "electron-builder --dir", "dist": "yarn build && electron-builder", - "dist:macarm" : "yarn build && electron-builder --mac --arm64", - "dist:universalNotWorking": "yarn build && electron-builder --mac --universal", + "dist:macarm": "yarn build && electron-builder --mac --arm64", + "dist:universalNotWorking": "yarn build && electron-builder --mac --universal", "dist:all": "yarn build && electron-builder -mwl", "msft": "yarn build && electron-builder -c msft-package.json", "postinstall": "electron-builder install-app-deps", @@ -33,6 +33,7 @@ "dependencies": { "@sentry/electron": "^2.5.4", "@sentry/integrations": "^6.17.4", + "adm-zip": "^0.5.9", "discord-rpc": "^4.0.1", "ejs": "^3.1.6", "electron-fetch": "^1.7.4", diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index 49cdf84b..1f581fb1 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -13,6 +13,7 @@ import {wsapi} from "./wsapi"; import {jsonc} from "jsonc"; import {AppImageUpdater, NsisUpdater} from "electron-updater"; import {utils} from './utils'; +const AdmZip = require("adm-zip"); export class BrowserWindow { @@ -370,6 +371,20 @@ export class BrowserWindow { event.returnValue = process.platform; }); + ipcMain.on("get-github-theme", async (event, url) => { + if (url.endsWith("/")) url = url.slice(0, -1); + let response = await fetch( + `${url}/archive/refs/heads/main.zip` + ); + let zip = await response.buffer(); + let zipFile = new AdmZip(zip); + zipFile.extractAllTo(utils.getPath("themes"), true); + BrowserWindow.win.webContents.send("theme-installed", ""); + event.returnValue = { + success: true, + }; + }); + ipcMain.on("get-themes", (event, _key) => { if (existsSync(utils.getPath("themes"))) { // return any .less files and scan any folders in the themes folder for .less files diff --git a/src/renderer/index.js b/src/renderer/index.js index 7ed2b57c..ae5bad38 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -693,6 +693,11 @@ const app = new Vue({ console.log(e) } + ipcRenderer.on("theme-installed", (event, arg) => { + notyf.success("Theme installed") + //app.setTheme(arg) + }) + MusicKit.getInstance().videoContainerElement = document.getElementById("apple-music-video-player") ipcRenderer.on('SoundCheckTag', (event, tag) => { From 0aaa40f4e5fe3b232a3071b16e5e92de03ad501a Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Fri, 11 Feb 2022 19:07:05 -0800 Subject: [PATCH 2/2] if theme folder does not exist create one --- src/main/base/browserwindow.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index 1f581fb1..d5ebe168 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -372,6 +372,9 @@ export class BrowserWindow { }); ipcMain.on("get-github-theme", async (event, url) => { + if (!existsSync(utils.getPath("themes"))) { + mkdirSync(utils.getPath("themes")); + } if (url.endsWith("/")) url = url.slice(0, -1); let response = await fetch( `${url}/archive/refs/heads/main.zip`