Compare commits

...

4 commits

Author SHA1 Message Date
dependabot[bot]
1ead7d6638
Update ws requirement from ^8.8.0 to ^8.8.1
Updates the requirements on [ws](https://github.com/websockets/ws) to permit the latest version.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/8.8.0...8.8.1)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-18 18:54:47 +00:00
KayoticCarnige
cb69a35dd6
2 new things (Read desc.) (#159)
- Cleaned up ASAR packaging, ignoring unneeded files for building
- Moved install location for Windows users ("AppData\Local\Programs" -> "AppData\Local"
2022-07-18 20:53:25 +02:00
smartfridge
408c4b5f7b Merge remote-tracking branch 'origin/dev' into dev 2022-07-18 17:14:01 +02:00
smartfridge
0fb71dfe2b Add Cordwood, better Hummus support and skip splash 2022-07-18 17:13:52 +02:00
8 changed files with 110 additions and 8 deletions

8
build/installer.nsh Normal file
View file

@ -0,0 +1,8 @@
!macro preInit
SetRegView 64
WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "$LocalAppData\ArmCord"
WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "$LocalAppData\ArmCord"
SetRegView 32
WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "$LocalAppData\ArmCord"
WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "$LocalAppData\ArmCord"
!macroend

View file

@ -37,9 +37,20 @@
"electron-context-menu": "github:ArmCord/electron-context-menu",
"os-locale": "^6.0.2",
"v8-compile-cache": "^2.3.0",
"ws": "^8.8.0"
"ws": "^8.8.1"
},
"build": {
"nsis": {
"include": "build/installer.nsh"
},
"files": [
"!*",
"assets",
"node_modules",
"ts-out",
"package.json",
"LICENSE"
],
"appId": "com.smartfridge.armcord",
"productName": "ArmCord",
"mac": {

View file

@ -28,7 +28,7 @@ const unstrictCSP = () => {
"https://raw.githubusercontent.com/Cumcord/Cumcord/stable/dist/build.js",
"https://raw.githubusercontent.com/Cumcord/Cumcord/master/dist/build.js",
"https://raw.githubusercontent.com/FlickerMod/dist/main/build.js",
"https://localhost:1234/dist.js"
"https://raw.githubusercontent.com/Cordwood/builds/master/index.js"
];
electron.session.defaultSession.webRequest.onHeadersReceived(({responseHeaders, url}, done) => {

View file

@ -3,7 +3,7 @@ import "./capturer";
import "./patch";
import * as fs from "fs";
import * as path from "path";
import {injectTitlebar} from "./titlebar";
import {injectHummusTitlebar, injectTitlebar} from "./titlebar";
import {sleep, addStyle, injectJS, addScript} from "../utils";
import {ipcRenderer} from "electron";
import {injectMobileStuff} from "./mobile";
@ -25,7 +25,8 @@ declare global {
const clientMods = {
goosemod: "https://api.goosemod.com/inject.js",
cumcord: "https://raw.githubusercontent.com/Cumcord/Cumcord/stable/dist/build.js",
flicker: "https://raw.githubusercontent.com/FlickerMod/dist/main/build.js"
flicker: "https://raw.githubusercontent.com/FlickerMod/dist/main/build.js",
cordwood: "https://raw.githubusercontent.com/Cordwood/builds/master/index.js"
};
console.log("ArmCord " + version);
@ -36,7 +37,11 @@ if (window.location.href.indexOf("splash.html") > -1) {
console.log("Skipping titlebar injection and client mod injection.");
} else {
if (ipcRenderer.sendSync("titlebar")) {
injectTitlebar();
if (ipcRenderer.sendSync("channel")) {
injectHummusTitlebar();
} else {
injectTitlebar();
}
}
if (ipcRenderer.sendSync("mobileMode")) {
injectMobileStuff();
@ -61,6 +66,11 @@ if (window.location.href.indexOf("splash.html") > -1) {
console.log("Loading FlickerMod...");
await updateLang();
break;
case "cordwood":
injectJS(clientMods.cordwood);
console.log("Loading Cordwood...");
await updateLang();
break;
}
});
}

View file

@ -54,3 +54,42 @@ export function injectTitlebar() {
});
});
}
export function injectHummusTitlebar() {
document.addEventListener("DOMContentLoaded", function (event) {
var elem = document.createElement("div");
elem.innerHTML = `
<button class="win-minimize" id="minimize"></button><button class="win-maximize" id="maximize"></button><button class="win-close" id="quit"></button>
`;
elem.classList.add("win-buttons");
elem.classList.add("win-buttons-light");
document.getElementsByClassName("titlebar")[0].appendChild(elem);
document.body.setAttribute("customTitlebar", "");
document.body.setAttribute("armcord-platform", os.platform());
addStyle(".chat>.title-wrap {width: 87% !important;}");
addStyle(".friends-header {width: 91% !important;}");
var minimize = document.getElementById("minimize");
var maximize = document.getElementById("maximize");
var quit = document.getElementById("quit");
minimize!.addEventListener("click", () => {
ipcRenderer.send("win-minimize");
});
maximize!.addEventListener("click", () => {
if (ipcRenderer.sendSync("win-isMaximized") == true) {
ipcRenderer.send("win-unmaximize");
document.body.removeAttribute("isMaximized");
} else if (ipcRenderer.sendSync("win-isNormal") == true) {
ipcRenderer.send("win-maximize");
}
});
quit!.addEventListener("click", () => {
if (ipcRenderer.sendSync("minimizeToTray") === true) {
ipcRenderer.send("win-hide");
} else if (ipcRenderer.sendSync("minimizeToTray") === false) {
ipcRenderer.send("win-quit");
}
});
});
}

View file

@ -112,8 +112,9 @@
<b>PTB</b> - public test build. Receives features earlier than stable but is a bit older than
Canary.
<br />
<b>Hummus</b> - unofficial instance of Discord that takes you back to 2016! None of the client mods
bundled with ArmCord work with it. It's run by community, so you take all the risk by using it.
<b>Hummus</b> - unofficial instance of Discord that takes you back to 2016! Only client mod
available to run alongside with it is Cordwood. It's run by community, so you take all the risk by
using it.
</p>
</div>
</div>
@ -168,6 +169,13 @@
<br />
<br />
<h1 class="center advancedText">Advanced user zone⚠</h1>
<div class="switch acAltPaste">
<label class="header2" id="settings-skipSplash">Skip splash screen (experimental)</label>
<input class="tgl tgl-light left" id="skipSplash" type="checkbox" />
<label class="tgl-btn left" for="skipSplash"></label>
<p class="description2">Skips ArmCord splash screen when you start up the app.</p>
</div>
<br />
<button id="settings-pluginsFolder" class="center">Open plugins folder</button>
<br />
<button id="settings-themesFolder" class="center">Open themes folder</button>
@ -206,6 +214,7 @@
document.getElementById("tray").checked = await settings.get("minimizeToTray");
document.getElementById("websocket").checked = await settings.get("inviteWebsocket");
document.getElementById("alternativePaste").checked = await settings.get("alternativePaste");
document.getElementById("skipSplash").checked = await settings.get("skipSplash");
document.getElementById("mobile").checked = await settings.get("mobileMode");
document.getElementById("patches").value = await settings.get("automaticPatches");
document.getElementById("mod").value = await settings.get("mods");
@ -222,6 +231,7 @@
armcordCSP: document.getElementById("csp").checked,
minimizeToTray: document.getElementById("tray").checked,
alternativePaste: document.getElementById("alternativePaste").checked,
skipSplash: document.getElementById("skipSplash").checked,
automaticPatches: document.getElementById("patches").checked,
mods: document.getElementById("mod").value,
mobileMode: document.getElementById("mobile").checked,

View file

@ -42,6 +42,7 @@ export function setup() {
alternativePaste: false,
mods: "cumcord",
performanceMode: "none",
skipSplash: false,
inviteWebsocket: true,
mobileMode: false,
trayIcon: "ac_plug_colored",
@ -191,6 +192,7 @@ export interface Settings {
alternativePaste: boolean;
mods: string;
mobileMode: boolean,
skipSplash: boolean,
performanceMode: string;
inviteWebsocket: boolean;
trayIcon: string;

View file

@ -126,7 +126,29 @@ async function doAfterDefiningTheWindow() {
mainWindow.setSize(390, 470);
await mainWindow.loadFile(path.join(__dirname, "/content/setup.html"));
} else {
await mainWindow.loadFile(path.join(__dirname, "/content/splash.html"));
if (await getConfig("skipSplash") == true) {
switch (await getConfig("channel")) {
case "stable":
mainWindow.loadURL("https://discord.com/app");
break;
case "canary":
mainWindow.loadURL("https://canary.discord.com/app");
break;
case "ptb":
mainWindow.loadURL("https://ptb.discord.com/app");
break;
case "hummus":
mainWindow.loadURL("https://hummus.sys42.net/");
break;
case undefined:
mainWindow.loadURL("https://discord.com/app");
break;
default:
mainWindow.loadURL("https://discord.com/app");
}
} else {
await mainWindow.loadFile(path.join(__dirname, "/content/splash.html"));
}
}
}
export function createCustomWindow() {