From fde1aac7d437338e88c7bd4668ecebe8a854b82b Mon Sep 17 00:00:00 2001 From: Oj Date: Thu, 21 Apr 2022 20:48:19 +0100 Subject: [PATCH] [Bootstrap] Deep integrate NoTrack --- src/bootstrap.js | 22 ++++++++++++++++++++-- src/noTrack.js | 27 --------------------------- 2 files changed, 20 insertions(+), 29 deletions(-) delete mode 100644 src/noTrack.js diff --git a/src/bootstrap.js b/src/bootstrap.js index f93bb77..d592828 100644 --- a/src/bootstrap.js +++ b/src/bootstrap.js @@ -1,5 +1,6 @@ -const { app, dialog } = require('electron'); +const { app, session, dialog } = require('electron'); const { readFileSync } = require('fs'); +const get = require('request'); const { join } = require('path'); const Constants = require('./Constants'); @@ -77,7 +78,24 @@ const startCore = () => { }; const startUpdate = async () => { - if (oaConfig.noTrack !== false) require('./noTrack'); + if (oaConfig.noTrack !== false) { + const bl = { cancel: true }; // Standard block callback response + + let sentry; + session.defaultSession.webRequest.onBeforeRequest({ + urls: [ + 'https://*.discord.com/assets/*.js', + 'https://*/api/*/science' + ] + }, async ({ url }, cb) => { + if (url.endsWith('/science')) return cb(bl); + + if (!sentry && (await new Promise((res) => get(url, (e, r, b) => res(b)))).includes('RecipeWebview')) sentry = url; + if (sentry === url) return cb(bl); + + cb({}); + }); + } const startMin = process.argv.includes('--start-minimized'); diff --git a/src/noTrack.js b/src/noTrack.js deleted file mode 100644 index 8d7d22b..0000000 --- a/src/noTrack.js +++ /dev/null @@ -1,27 +0,0 @@ -const { get } = require('https'); -const { session } = require('electron'); - -const bl = { cancel: true }; // Standard block callback response - -let sentry; -session.defaultSession.webRequest.onBeforeRequest({ - urls: [ - 'https://*.discord.com/assets/*.js', - 'https://*/api/*/science' - ] -}, async ({ url }, cb) => { - if (url.endsWith('/science')) return cb(bl); - - if (!sentry) { - if ((await new Promise((res) => get(url, (r) => { // Get content (js code) from URL - let t = ''; - - r.on('data', c => t += c.toString()); - r.on('end', () => res(t)); - }))).includes('RecipeWebview')) sentry = url; - } - - if (sentry === url) return cb(bl); - - cb({}); -}); \ No newline at end of file