Alternate storage lib fix
This commit is contained in:
parent
6e1816d973
commit
186d6c9bc5
|
@ -22,6 +22,53 @@ var _mainWindow;
|
|||
var _cfg = {};
|
||||
var _extData = {};
|
||||
|
||||
var bdStorage = {};
|
||||
var bdPluginStorage = {};
|
||||
|
||||
bdStorage.defaults = {
|
||||
data: {}
|
||||
};
|
||||
|
||||
bdPluginStorage.defaults = {
|
||||
data: {}
|
||||
};
|
||||
|
||||
function initStorage() {
|
||||
if(!_fs.existsSync(_cfg.dataPath + "/bdstorage.json")) {
|
||||
bdStorage.data = bdStorage.defaults.data;
|
||||
_fs.writeFileSync(_cfg.dataPath + "/bdstorage.json", JSON.stringify(bdStorage, null, 4));
|
||||
} else {
|
||||
bdStorage.data = JSON.parse(_fs.readFileSync(_cfg.dataPath + "/bdStorage.json"));
|
||||
}
|
||||
if(!_fs.existsSync(_cfg.dataPath + "/bdPluginStorage.json")) {
|
||||
bdPluginStorage.data = bdPluginStorage.defaults.data;
|
||||
_fs.writeFileSync(_cfg.dataPath + "/bdPluginStorage.json", JSON.stringify(bdPluginStorage, null, 4));
|
||||
} else {
|
||||
bdPluginStorage.data = JSON.parse(_fs.readFileSync(_cfg.dataPath + "/bdPluginStorage.json"));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
bdStorage.get = function(i, m, pn) {
|
||||
if(m) return bdStorage.data[i] || "";
|
||||
if(bdPluginStorage.data[pn] === undefined) bdPluginStorage.data[pn] = {};
|
||||
return bdPluginStorage.data[pn][i] || "";
|
||||
};
|
||||
|
||||
bdStorage.set = function(i, v, m, pn) {
|
||||
if(m) {
|
||||
bdStorage.data[i] = v;
|
||||
_fs.writeFileSync(_cfg.dataPath + "/bdstorage.json", JSON.stringify(bdStorage.data, null, 4));
|
||||
} else {
|
||||
if(bdPluginStorage.data[pn] === undefined) bdPluginStorage.data[pn] = {};
|
||||
bdPluginStorage.data[pn][i] = v;
|
||||
_fs.writeFileSync(_cfg.dataPath + "/bdPluginStorage.json", JSON.stringify(bdPluginStorage.data, null, 4));
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
|
||||
|
||||
function BetterDiscord(mainWindow) {
|
||||
_mainWindow = mainWindow;
|
||||
_cfg = _config.cfg;
|
||||
|
@ -86,6 +133,7 @@ function init() {
|
|||
getUtils().attempt(getHash, 3, 0, "Failed to load hash", initUpdater, function() {
|
||||
exit("Failed to load hash after 3 attempts");
|
||||
});
|
||||
initStorage();
|
||||
}
|
||||
|
||||
function getHash(callback) {
|
||||
|
@ -94,11 +142,11 @@ function getHash(callback) {
|
|||
_cfg.hash = JSON.parse(data).sha;
|
||||
getUtils().injectVar("_bdhash", _cfg.hash);
|
||||
}catch(err) {
|
||||
callback(false);
|
||||
callback(false, err);
|
||||
return;
|
||||
}
|
||||
if(_cfg.hash == undefined) {
|
||||
callback(false);
|
||||
callback(false, "_cfg.hash == undefined");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -111,7 +159,7 @@ function getHash(callback) {
|
|||
function initUpdater() {
|
||||
getUtils().log("Getting updater");
|
||||
getUtils().attempt(getUpdater, 3, 0, "Failed to load updater", waitForDom, function() {
|
||||
exit("Failed to load updater after 3 attempts");
|
||||
exit("Failed to load updater after 3 attempts.");
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -120,17 +168,22 @@ function getUpdater(callback) {
|
|||
try {
|
||||
_cfg.updater = JSON.parse(data);
|
||||
} catch(err) {
|
||||
callback(false);
|
||||
callback(false, err);
|
||||
return;
|
||||
}
|
||||
|
||||
if(_cfg.updater == undefined) {
|
||||
callback(false);
|
||||
callback(false, "_cfg.updater == undefined");
|
||||
return;
|
||||
}
|
||||
|
||||
if(_cfg.updater.LatestVersion == undefined || _cfg.updater.CDN == undefined) {
|
||||
callback(false);
|
||||
if(_cfg.updater.LatestVersion == undefined) {
|
||||
callback(false, "_cfg.updater.LatestVersion == undefined");
|
||||
return;
|
||||
}
|
||||
|
||||
if(_cfg.updater.CDN == undefined) {
|
||||
callback(false, "_cfg.updater.CDN == undefined");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -170,7 +223,7 @@ function updateExtData() {
|
|||
'resource': 'Main JS',
|
||||
'domain': _cfg.updater.CDN,
|
||||
'url': '//' + _cfg.updater.CDN + '/' + _cfg.repo + '/BetterDiscordApp/' + _cfg.hash + '/js/main.min.js',
|
||||
'localurl': _cfg.localServer + '/BetterDiscordApp/js/main.js',
|
||||
'localurl': _cfg.localServer + '/BetterDiscordApp/js/main.js?v=1.1',
|
||||
'message': 'load-emoteData-twitchGlobal',
|
||||
'cacheable': false,
|
||||
'variable': null
|
||||
|
@ -357,6 +410,7 @@ function load(reload) {
|
|||
}
|
||||
getUtils().log("Hooking ipc async");
|
||||
_bdIpc.on('asynchronous-message', function(event, arg) { ipcAsyncMessage(event, arg); });
|
||||
_bdIpc.on('synchronous-message', function(event, arg) { ipcSyncMessage(event, arg); });
|
||||
getUtils().log("Hooked ipc async");
|
||||
}
|
||||
initLoaders();
|
||||
|
@ -511,8 +565,32 @@ function loadApp() {
|
|||
getUtils().injectJavaScriptSync("//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js", "load-jQueryCookie");
|
||||
}
|
||||
|
||||
function ipcAsyncMessage(event, arg) {
|
||||
function ipcSyncMessage(event, arg) {
|
||||
if(typeof(arg) === "object") {
|
||||
switch(arg.arg) {
|
||||
case "storage":
|
||||
if(arg.cmd == "get") {
|
||||
event.returnValue = bdStorage.get(arg.var, true);
|
||||
}
|
||||
if(arg.cmd == "set") {
|
||||
bdStorage.set(arg.var, arg.data, true);
|
||||
event.returnValue = "saved";
|
||||
}
|
||||
break;
|
||||
case "pluginstorage":
|
||||
if(arg.cmd == "get") {
|
||||
event.returnValue = bdStorage.get(arg.var, false, arg.pn);
|
||||
}
|
||||
if(arg.cmd == "set") {
|
||||
bdStorage.set(arg.var, arg.data, false, arg.pn);
|
||||
event.returnValue = "saved";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function ipcAsyncMessage(event, arg) {
|
||||
if(typeof(arg) === "object") {
|
||||
switch(arg.arg) {
|
||||
case "opendir":
|
||||
|
@ -530,6 +608,18 @@ function ipcAsyncMessage(event, arg) {
|
|||
}
|
||||
getUtils().openDir(arg.path);
|
||||
break;
|
||||
case "storage":
|
||||
if(arg.cmd == "set") {
|
||||
bdStorage.set(arg.var, arg.data);
|
||||
break;
|
||||
}
|
||||
if(arg.cmd == "get") {
|
||||
var get = bdStorage.get(arg.var);
|
||||
console.log(get);
|
||||
event.sender.send('asynchronous-reply', get);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue