BetterDiscordApp-v2/Installers/Electron/src/data/js/main.js

202 lines
4.9 KiB
JavaScript

'use strict';
const ipcRenderer = require('electron').ipcRenderer;
var config = {
urls: {
package: "https://github.com/Jiiks/BetterDiscordApp/archive/stable16.zip",
finish: "https://betterdiscord.net/installed"
},
discord: {
lastKnownVersion: "0.0.291"
},
import: "BetterDiscordApp-stable16",
cache: [
"emotes_bttv.json",
"emotes_bttv_2.json",
"emotes_ffz.json",
"emotes_twitch_global.json",
"emotes_twitch_subscriber.json",
"user.json"
]
};
(function() {
//Pass latest config to core application
ipcSendAsync("config", config);
//Get Discord installation path
ipcSendAsync("get", "discordpath" );
//Get BetterDiscord installation path
ipcSendAsync("get", "libpath");
})();
//Listeners
(function() {
$("#cd").on("change", () => {
$("#next").prop("disabled", !$("#cd").prop("checked"));
});
var currentPanel = 0;
function switchPanel() {
var container = $(".panel-container");
var main = $(".main-container");
main.removeClass();
main.addClass(`main-container panel-${currentPanel}`)
switch(currentPanel) {
case 0:
$("#next").text("Next");
//$("#next").prop("disabled", !$("#cd").prop("checked"));
break;
case 1:
$("#next").text("Next");
//$("#next").prop("disabled", !$("#accept").prop("checked"));
break;
case 2:
$("#next").text("Install");
$("#cancel").text("Cancel");
break;
case 3:
$("#cancel").text("Abort");
ipcSendAsync("install");
break;
}
}
$("#next").on("click", function() {
currentPanel++;
switchPanel();
});
$("#back").on("click", function() {
currentPanel--;
switchPanel();
});
$("#cancel").on("click", function() {
$("#quit").show();
});
$("#uninstall").on("click", function() {
});
$("#accept").on("change", function() {
// $("#next").prop("disabled", !$(this).prop("checked"));
});
$("#decline").on("change", function() {
// $("#next").prop("disabled", $(this).prop("checked"));
});
$("#licensetext").on("scroll", function() {
var e = $(this);
if(e.height() + e.scrollTop() >= e[0].scrollHeight) {
$("#accept").prop("disabled", false);
} else {
$("#accept").prop("disabled", true);
$("#decline").prop("checked", true)
// $("#next").prop("disabled", true);
}
});
$(".modal").on("click", function(e) {
if(e.target.className !== "modal") return;
$(this).hide();
});
$("#modal-cancel").on("click", function() {
$(".modal").hide();
});
$("#modal-exit").on("click", function() {
ipcRenderer.send("async", {arg: "quit", data: []});
});
$("#path").on("click", () => {
ipcRenderer.send("async", { arg: "browsedialog", data: "discordpath" });
});
$("#libpathbtn").on("click", () => {
ipcRenderer.send("async", { arg: "browsedialog", data: "libpath" });
});
$("#advanced-settings").on("click", function() {
currentPanel = "advanced";
switchPanel();
});
$("#advanced-close").on("click", function() {
var main = $(".main-container");
currentPanel = 2;
switchPanel();
});
})();
ipcRenderer.on("async-reply", (event, arg) => {
var data = arg.data;
arg = arg.arg;
switch(arg) {
case "discordpath":
$("#discordPath").val(data);
break;
case "libpath":
$("#libpath").val(data);
break;
}
});
/*ipcRenderer.on('async-reply', (event, arg) => {
switch(arg.arg) {
case "exists":
switch(arg.file) {
case "install":
if(arg.exists) {
appendLog("Located app package");
appendLog("Downloading latest BetterDiscord package");
ipcRenderer.send('async', '{"arg": "download", "package": "https://github.com/Jiiks/BetterDiscordApp/archive/stable16.zip" }');
} else {
appendLog("Unable to locate app.asar. Check your install path.");
}
}
break;
case "discordpath":
$("#discordPath").val(arg.path);
break;
case "locate-app.asar":
appendLog(arg.data);
break;
}
});*/
function ipcSendAsync(arg, data) {
ipcRenderer.send("async", { arg: arg, data: data });
}
function install() {
appendLog("Initiating installation");
appendLog("Locating Discord package");
ipcRenderer.send('async', { "arg": "install" });
}
function appendLog(text) {
var log = $("#log");
log.append(text+"\n");
var sh = log[0].scrollHeight - 40;
if(log.height() + log.scrollTop() >= sh) {
log.scrollTop(sh);
}
}
function updatePbar(cur, max) {
var pbar = $("#logpbar");
pbar.val(cur);
pbar.prop("max", max);
}