diff --git a/build.sh b/build.sh old mode 100755 new mode 100644 index ec70316..feb23a5 --- a/build.sh +++ b/build.sh @@ -1,2 +1,2 @@ -npm run package -./dist/linux-unpacked/armcord +npm i +npm run make diff --git a/main.js b/main.js index 45091cd..0ba5b21 100644 --- a/main.js +++ b/main.js @@ -4,7 +4,7 @@ const path = require("path"); const contextMenu = require("electron-context-menu"); const os = require("os"); require("v8-compile-cache"); - +require("./utils/updater"); if (os.type() == 'Linux'){ var iconformat = __dirname + "/discord.png" diff --git a/package-lock.json b/package-lock.json index 4897a2b..d83411e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,13 @@ { - "name": "armcord", + "name": "ArmCord", "version": "2.5.0", "lockfileVersion": 2, "requires": true, "packages": { "": { + "name": "ArmCord", "version": "2.5.0", - "license": "OSL-3.0", + "license": "MIT", "dependencies": { "custom-electron-titlebar": "3.2.7", "electron-context-menu": "^3.0.0", diff --git a/package.json b/package.json index 12c855a..7efe416 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "armcord", - "version": "2.5.0", + "name": "ArmCord", + "version": "2.5.0-TESTING", "description": "ArmCord is a Discord client made for ARM Linux that allows you to customize your experience.", "main": "main.js", "scripts": { @@ -12,7 +12,7 @@ "windows-build": "electron-builder --windows nsis portable zip appx" }, "author": "smartfrigde ", - "license": "OSL-3.0", + "license": "MIT", "dependencies": { "custom-electron-titlebar": "3.2.7", "electron-context-menu": "^3.0.0", @@ -46,8 +46,7 @@ "deb", "tar.gz", "rpm", - "AppImage" - ] + "AppImage"] } }, "bugs": { diff --git a/utils/csp.js b/utils/csp.js new file mode 100644 index 0000000..f2cbd51 --- /dev/null +++ b/utils/csp.js @@ -0,0 +1,15 @@ +const { session } = require("electron"); + +session.defaultSession.webRequest.onHeadersReceived.addListener( + (h) => { + h.responseHeaders.forEach((e, i) => { + if (e.name.toLowerCase() === "content-security-policy") { + e.value = ""; + } + }); + return { responseHeaders: h.responseHeaders }; + }, + { urls: ["*://*.discord.com/*"] }, + ["blocking", "responseHeaders"] +); +//csp thingz diff --git a/utils/plugin.js b/utils/plugin.js index 14af4a5..46997e0 100644 --- a/utils/plugin.js +++ b/utils/plugin.js @@ -37,7 +37,7 @@ if (!fs.existsSync(pluginFolder)) { electron.dialog.showMessageBox({ title: "ArmCord", type: "warning", - message: "ArmCord has installed GooseMod onto your client.", + message: "ArmCord installed GooseMod onto your client.", detail: "If you wish to use it restart your ArmCord completely using tray icon. It should appear in next session. GooseMod is reccomended to every user of ArmCord due to various improvements and bugfixes it ships with.", }); @@ -49,12 +49,14 @@ if (!fs.existsSync(pluginFolder)) { } app.whenReady().then(() => { fs.readdirSync(pluginFolder).forEach((file) => { + console.log(file); try { const manifest = fs.readFileSync( `${userDataPath}/plugins/${file}/manifest.json`, "utf8" ); var pluginFile = JSON.parse(manifest); + console.log(pluginFile); session.defaultSession.loadExtension(`${userDataPath}/plugins/${file}`); console.log( `%cLoaded ${pluginFile.name} made by ${pluginFile.author}`, diff --git a/utils/theme.js b/utils/theme.js index da5bacf..9b98d90 100644 --- a/utils/theme.js +++ b/utils/theme.js @@ -11,9 +11,12 @@ if (!fs.existsSync(themeFolder)) { window.addEventListener("DOMContentLoaded", () => { console.log("Theme Module Loaded"); fs.readdirSync(themeFolder).forEach((file) => { + console.log(file); try { const manifest = fs.readFileSync(`${userDataPath}/themes/${file}/manifest.json`, "utf8"); var themeFile = JSON.parse(manifest); + console.log(themeFile.theme); + console.log(themeFile) const theme = fs.readFileSync(`${userDataPath}/themes/${file}/${themeFile.theme}`, "utf8"); if (themeFile.theme.endsWith(".scss")) { console.log( diff --git a/utils/updater.js b/utils/updater.js new file mode 100644 index 0000000..ba21936 --- /dev/null +++ b/utils/updater.js @@ -0,0 +1,66 @@ +const electron = require("electron"); +const APP_VERSION = require("../package.json").version; + +/* IMPORTANT! + This url will need to be modified for yours */ +// The url that the application is going to query for new release +const AUTO_UPDATE_URL = + 'https://api.update.rocks/update/github.com/smartfrigde/armcord/stable/' + process.platform + '/' + APP_VERSION + +function init() { + if (process.platform === "linux") { + /* There is no auto update for linux however you can still + notify the user that a new update has been released + our service will return an answer with the latest version. */ + console.log("Auto updates not available on linux"); + } else { + initDarwinWin32(); + } +} + +function initDarwinWin32() { + electron.autoUpdater.on("error", (err) => + console.error(`Update error: ${err.message}`) + ); + + electron.autoUpdater.on("checking-for-update", () => + console.log("Checking for update") + ); + + electron.autoUpdater.on("update-available", () => + console.log("Update available") + ); + + electron.autoUpdater.on("update-not-available", () => + console.log("No update available") + ); + + // Ask the user if he wants to update if update is available + electron.autoUpdater.on( + "update-downloaded", + (event, releaseNotes, releaseName) => { + dialog.showMessageBox( + window, + { + type: "question", + buttons: ["Update", "Cancel"], + defaultId: 0, + message: `Version ${releaseName} is available, do you want to install it now?`, + title: "Update available", + }, + (response) => { + if (response === 0) { + electron.autoUpdater.quitAndInstall(); + } + } + ); + } + ); + + electron.autoUpdater.setFeedURL(AUTO_UPDATE_URL); + electron.autoUpdater.checkForUpdates(); +} + +module.exports = { + init, +};