Compare commits

..

No commits in common. "4f4ec74fcdbc216723180d68306de9f2d68dc94c" and "7e9e43fa6ac749d965132c64c34062a94651f8b4" have entirely different histories.

12 changed files with 46 additions and 42 deletions

View file

@ -1,13 +0,0 @@
name: Publish to WinGet
on:
release:
types: [released]
jobs:
publish:
runs-on: windows-latest # Action can only be run on windows
steps:
- uses: vedantmgoyal2009/winget-releaser@latest
with:
identifier: ArmCord.ArmCord
token: ${{ secrets.WINGET_TOKEN }}

View file

@ -34,19 +34,6 @@
### Recommended:
Check releases tab for precompiled packages for Linux, Windows and Mac OS. Alternatively use our Sourceforge mirror.
<a href="https://sourceforge.net/projects/armcord/files/latest/download"><img alt="Download ArmCord" src="https://a.fsdn.com/con/app/sf-download-button" width=276 height=48 srcset="https://a.fsdn.com/con/app/sf-download-button?button_size=2x 2x"></a>
### Winget Package
ArmCord is also available on the [winget-pkgs](https://github.com/microsoft/winget-pkgs) repository:
```
winget install ArmCord.ArmCord
```
### Scoop package
ArmCord is also available on [Scoop extras](https://github.com/ScoopInstaller/Extras) repo:
```
scoop bucket add extras
```
```
scoop install armcord
```
### AUR Package
ArmCord is also available on the Arch User Repository (AUR) [here](https://aur.archlinux.org/packages/armcord-bin/).

View file

@ -7,7 +7,6 @@
"build": "tsc && copyfiles -u 1 src/**/*.html src/**/**/*.css ts-out/ && copyfiles package.json ts-out/ && copyfiles assets/**/** ts-out/",
"watch": "tsc -w",
"start": "npm run build && electron ./ts-out/main.js",
"startNoSandbox": "npm run build && electron ./ts-out/main.js --no-sandbox",
"package": "npm run build && electron-builder",
"packageQuick": "npm run build && electron-builder --dir",
"format": "prettier --write src/**/*",

View file

@ -111,6 +111,7 @@ div {
width: 292px;
}
[armcord-platform="win32"] .titlebar #window-controls-container #maximize,
[armcord-platform="linux"] .titlebar #window-controls-container #maximize {
display: none;

View file

@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/ico" href="./favicon.ico" />
<link rel="icon" type="image/ico" href="./favicon.ico">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>ArmCord Setup</title>
@ -53,7 +53,9 @@
<p class="text-center setup-ask" id="setup_question4">Select a client mod you want to install:</p>
<div class="center">
<select name="mod" id="mod" class="dropdown-button">
<option value="none">None (check Discord)</option>
<option value="cumcord">Cumcord</option>
<option value="goosemod">GooseMod</option>
<option value="flicker">Flicker (Heavily WIP)</option>
</select>
</div>
<p class="text-center" id="setup_question4_clientmodnotice">
@ -118,7 +120,7 @@
minimizeToTray: true,
alternativePaste: false,
automaticPatches: false,
mods: "none",
mods: "cumcord",
inviteWebsocket: true,
mobileMode: false,
trayIcon: "default",

View file

@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/ico" href="./favicon.ico" />
<link rel="icon" type="image/ico" href="./favicon.ico">
<title>ArmCord</title>
<style>
@import url("css/splash.css");

View file

@ -21,7 +21,15 @@ const unstrictCSP = () => {
const cspAllowAll = ["connect-src", "style-src", "img-src", "font-src"];
const corsAllowUrls = ["https://raw.githubusercontent.com/Cordwood/builds/master/index.js"];
const corsAllowUrls = [
"https://github.com/GooseMod/GooseMod/releases/download/dev/index.js",
"https://github-releases.githubusercontent.com/",
"https://api.goosemod.com/inject.js",
"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://raw.githubusercontent.com/Cordwood/builds/master/index.js"
];
electron.session.defaultSession.webRequest.onHeadersReceived(({responseHeaders, url}, done) => {
let csp = responseHeaders!["content-security-policy"];

View file

@ -15,6 +15,7 @@ contextBridge.exposeInMainWorld("armcord", {
},
electron: process.versions.electron,
channel: ipcRenderer.sendSync("channel"),
setLang: (lang: string) => ipcRenderer.send("setLang", lang),
setPingCount: (pingCount: number) => ipcRenderer.send("setPing", pingCount),
setTrayIcon: (favicon: string) => ipcRenderer.send("sendTrayIcon", favicon),
getLang: (toGet: string) =>

View file

@ -4,7 +4,7 @@ import "./patch";
import * as fs from "fs";
import * as path from "path";
import {injectHummusTitlebar, injectTitlebar} from "./titlebar";
import {sleep, addStyle, injectJS} from "../utils";
import {sleep, addStyle, injectJS, addScript} from "../utils";
import {ipcRenderer} from "electron";
import {injectMobileStuff} from "./mobile";
var version = ipcRenderer.sendSync("displayVersion");
@ -13,9 +13,9 @@ async function updateLang() {
if (window.location.href.indexOf("setup.html") > -1) {
console.log("Setup, skipping lang update");
} else {
const value = `; ${document.cookie}`;
const parts: any = value.split(`; locale=`);
if (parts.length === 2) ipcRenderer.send("setLang", parts.pop().split(";").shift());
addScript(`function getDiscordLang() {
{const _w=webpackChunkdiscord_app;let lang;_w.push([[Symbol()],{},e=>{for(const k in e.c){const m=e.c[k].exports;const mDef=m?.default&&m.__esModule?m.default:m;if(mDef?._chosenLocale&&!lang)lang=mDef}}]);_w.pop();window.armcord.setLang(lang._chosenLocale);return lang._chosenLocale;void 0}}
getDiscordLang();`);
}
}
declare global {
@ -25,6 +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",
cordwood: "https://raw.githubusercontent.com/Cordwood/builds/master/index.js"
};
@ -55,6 +57,16 @@ if (window.location.href.indexOf("splash.html") > -1) {
console.log("Loading GooseMod...");
await updateLang();
break;
case "cumcord":
injectJS(clientMods.cumcord);
console.log("Loading Cumcord...");
await updateLang();
break;
case "flicker":
injectJS(clientMods.flicker);
console.log("Loading FlickerMod...");
await updateLang();
break;
case "cordwood":
injectJS(clientMods.cordwood);
console.log("Loading Cordwood...");

View file

@ -143,8 +143,8 @@
<br />
<div class="switch acAdvSettings">
<h1 class="center advancedText">⚠️ Advanced User Zone ⚠️</h1>
<br />
<br />
<br>
<br>
<label class="header" 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>
@ -210,7 +210,7 @@
doneSetup: true
});
alert(`Your settings have been saved!
Some changes may require the app to restart before taking effect.`);
Some changes may require the app to restart before taking effect.`)
});
document.getElementById("settings-restart").addEventListener("click", function () {
settings.restart();

View file

@ -123,7 +123,9 @@
<br />
<div class="switch acClientMod">
<select name="mod" id="mod" class="left dropdown">
<option value="cumcord">Cumcord</option>
<option value="goosemod">GooseMod</option>
<option value="flicker">Flicker</option>
<option value="none">None</option>
</select>
<p class="header" id="settings-mod">Client mod</p>
@ -131,8 +133,13 @@
Client mods are programs that allow you customize your Discord experience. They can change appearance of
the client, modify behaviours or add new features!
<br />
<b>Cumcord</b> - focuses on making the Discord plugin development experience easier. Minimal and
lightweight.
<br />
<b>GooseMod</b> - light, secure, and easy to use, with out of the box experience. Features a built-in
store for plugins.
<br />
<b>Flicker</b> - heavily work in progress, doesn't have a working UI.
</p>
</div>
<br />
@ -171,8 +178,8 @@
<br />
<div class="switch acAdvSettings">
<h1 class="center advancedText">⚠️ Advanced User Zone ⚠️</h1>
<br />
<br />
<br>
<br>
<label class="header" 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>

View file

@ -40,7 +40,7 @@ export function setup() {
minimizeToTray: true,
automaticPatches: false,
alternativePaste: false,
mods: "none",
mods: "cumcord",
performanceMode: "none",
skipSplash: false,
inviteWebsocket: true,