From 693b574a4883afdfb75c666dad57b7f7bd265979 Mon Sep 17 00:00:00 2001 From: Mirco Wittrien Date: Mon, 5 Sep 2022 10:09:06 +0200 Subject: [PATCH] Update 0BDFDB.plugin.js --- Library/0BDFDB.plugin.js | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/Library/0BDFDB.plugin.js b/Library/0BDFDB.plugin.js index a3f3834a28..690c0f5f0e 100644 --- a/Library/0BDFDB.plugin.js +++ b/Library/0BDFDB.plugin.js @@ -1113,7 +1113,7 @@ module.exports = (_ => { let InternalData, libHashes = {}, oldLibHashes = BDFDB.DataUtils.load(BDFDB, "hashes"), libraryCSS; const getBackup = (fileName, path) => { - return libHashes[fileName] && oldLibHashes[fileName] && libHashes[fileName] == oldLibHashes[fileName] && fs.existsSync(path) && (fs.readFileSync(path) || "").toString(); + return {backup: fs.existsSync(path) && (fs.readFileSync(path) || "").toString(), hashIsSame: libHashes[fileName] && oldLibHashes[fileName] && libHashes[fileName] == oldLibHashes[fileName]}; }; const requestLibraryHashes = tryAgain => { request("https://api.github.com/repos/mwittrien/BetterDiscordAddons/contents/Library/_res/", {headers: {"user-agent": "node.js"}}, (e, r, b) => { @@ -1122,7 +1122,7 @@ module.exports = (_ => { b = JSON.parse(b); libHashes[cssFileName] = (b.find(n => n && n.name == cssFileName) || {}).sha; libHashes[dataFileName] = (b.find(n => n && n.name == dataFileName) || {}).sha; - BDFDB.DataUtils.save(libHashes, BDFDB, "hashes") + BDFDB.DataUtils.save(libHashes, BDFDB, "hashes"); requestLibraryData(true); } catch (err) {requestLibraryData(true);} @@ -1132,11 +1132,18 @@ module.exports = (_ => { const parseCSS = css => { libraryCSS = css; - const backupData = getBackup(dataFileName, dataFilePath); - if (backupData) parseData(backupData); + const backupObj = getBackup(dataFileName, dataFilePath); + if (backupObj.backup && backupObj.hashIsSame) parseData(backupObj.backup); else request.get(`https://mwittrien.github.io/BetterDiscordAddons/Library/_res/${dataFileName}`, (e, r, b) => { if ((e || !b || r.statusCode != 200) && tryAgain) return BDFDB.TimeUtils.timeout(_ => requestLibraryData(), 10000); - if (!e && b && r.statusCode == 200) parseData(b, true); + if (!e && b && r.statusCode == 200) { + if (backupObj.backup.replace(/\s/g, "") == b.replace(/\s/g, "")) console.log("yes"); + if (backupObj.backup && backupObj.backup.replace(/\s/g, "") == b.replace(/\s/g, "")) { + libHashes[dataFileName] = oldLibHashes[dataFileName]; + BDFDB.DataUtils.save(libHashes, BDFDB, "hashes"); + } + parseData(b, true); + } else parseData(fs.existsSync(dataFilePath) && (fs.readFileSync(dataFilePath) || "").toString()); }); }; @@ -1169,11 +1176,15 @@ module.exports = (_ => { else BdApi.alert("Error", "Could not initiate BDFDB Library Plugin. Check your Internet Connection and make sure GitHub isn't blocked by your Network or try disabling your VPN/Proxy."); }; - const backupCSS = getBackup(cssFileName, cssFilePath); - if (backupCSS) parseCSS(backupCSS); + const backupObj = getBackup(cssFileName, cssFilePath); + if (backupObj.backup && backupObj.hashIsSame) parseCSS(backupObj.backup); else request.get(`https://mwittrien.github.io/BetterDiscordAddons/Library/_res/${cssFileName}`, (e, r, b) => { if ((e || !b || r.statusCode != 200) && tryAgain) return BDFDB.TimeUtils.timeout(_ => requestLibraryData(), 10000); if (!e && b && r.statusCode == 200) { + if (backupObj.backup && backupObj.backup.replace(/\s/g, "") == b.replace(/\s/g, "")) { + libHashes[cssFileName] = oldLibHashes[cssFileName]; + BDFDB.DataUtils.save(libHashes, BDFDB, "hashes"); + } fs.writeFile(cssFilePath, b, _ => {}); parseCSS(b); }