202 lines
4.9 KiB
JavaScript
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);
|
|
} |