Introducing ads/tracking blocker!

This commit is contained in:
Agampreet Singh
2023-06-10 01:24:08 +05:30
parent 5f69e53123
commit 2a0b175c78
27 changed files with 328 additions and 0 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -8,6 +8,7 @@ const store = require("./store");
const log = require("electron-log");
const { setActivity, loginToRPC, clearActivity } = require("./rpc");
const useragents = require("./useragents.json");
const { ElectronBlocker } = require("@cliqz/adblocker-electron");
log.transports.file.level = "verbose";
console.log = log.log;
@@ -124,6 +125,16 @@ function createWindow() {
if (store.get("discordrpcstatus") === "true") {
setActivity(`On "${win.webContents.getTitle()}"`);
}
if (store.get("blockads") === "true") {
ElectronBlocker.fromPrebuiltAdsOnly(fetch).then((blocker) => {
blocker.enableBlockingInSession(win.webContents.session);
});
}
if (store.get("blockadsandtrackers") === "true") {
ElectronBlocker.fromPrebuiltAdsAndTracking(fetch).then((blocker) => {
blocker.enableBlockingInSession(win.webContents.session);
});
}
});
}
@@ -233,6 +244,19 @@ app.on("web-contents-created", (event, contents) => {
});
});
app.on("browser-window-created", (event, window) => {
if (store.get("blockads") === "true") {
ElectronBlocker.fromPrebuiltAdsOnly(fetch).then((blocker) => {
blocker.enableBlockingInSession(window.webContents.session);
});
}
if (store.get("blockadsandtrackers") === "true") {
ElectronBlocker.fromPrebuiltAdsAndTracking(fetch).then((blocker) => {
blocker.enableBlockingInSession(window.webContents.session);
});
}
});
app.on("window-all-closed", () => {
if (process.platform !== "darwin") {
app.quit();

View File

@@ -5,6 +5,8 @@ const axios = require("axios");
const { clearActivity, setActivity } = require("./rpc");
const { shell } = require("electron");
const { autoUpdater } = require("electron-updater");
const { ElectronBlocker } = require("@cliqz/adblocker-electron");
const fetch = require("cross-fetch");
function getValueOrDefault(key, defaultValue) {
const value = store.get(key);
@@ -105,6 +107,8 @@ getValueOrDefault("enterprise-or-normal", "https://microsoft365.com/?auth=1");
getValueOrDefault("autohide-menubar", "false");
getValueOrDefault("useragentstring", useragents.Windows);
getValueOrDefault("discordrpcstatus", "false");
getValueOrDefault("blockads", "false");
getValueOrDefault("blockadsandtrackers", "false");
const menulayout = [
...(process.platform === "darwin"
@@ -297,6 +301,96 @@ const menulayout = [
checked: store.get("discordrpcstatus") === "true",
},
{ type: "separator" },
{
label: "Block Ads",
type: "checkbox",
click: () => {
if (store.get("blockads") === "true") {
store.set("blockads", "false");
dialog.showMessageBoxSync({
type: "info",
title: "Block Ads",
message: "Ads will no longer be blocked.",
buttons: ["OK"],
});
if (!store.get("blockadsandtrackers") === "true") {
ElectronBlocker.fromPrebuiltAdsOnly(fetch).then((blocker) =>
blocker.disableBlockingInSession(
BrowserWindow.getFocusedWindow().webContents.session
)
);
}
return;
}
if (
store.get("blockads") === "false" ||
store.get("blockads") === undefined
) {
store.set("blockads", "true");
ElectronBlocker.fromPrebuiltAdsOnly(fetch).then((blocker) =>
blocker.enableBlockingInSession(
BrowserWindow.getFocusedWindow().webContents.session
)
);
dialog.showMessageBoxSync({
type: "info",
title: "Block Ads",
message: "Ads will now be blocked.",
buttons: ["OK"],
});
return;
}
},
checked: store.get("blockads") === "true",
},
{
label: "Block Ads and Trackers",
type: "checkbox",
click: () => {
if (store.get("blockadsandtrackers") === "true") {
store.set("blockadsandtrackers", "false");
dialog.showMessageBoxSync({
type: "info",
title: "Block Ads and Trackers",
message: "Ads and trackers will no longer be blocked.",
buttons: ["OK"],
});
if (!store.get("blockads") === "true") {
ElectronBlocker.fromPrebuiltAdsAndTracking(fetch).then(
(blocker) => {
blocker.disableBlockingInSession(
BrowserWindow.getFocusedWindow().webContents.session
);
}
);
}
return;
}
if (
store.get("blockadsandtrackers") === "false" ||
store.get("blockadsandtrackers") === undefined
) {
store.set("blockadsandtrackers", "true");
ElectronBlocker.fromPrebuiltAdsAndTracking(fetch).then(
(blocker) => {
blocker.enableBlockingInSession(
BrowserWindow.getFocusedWindow().webContents.session
);
dialog.showMessageBoxSync({
type: "info",
title: "Block Ads and Trackers",
message: "Ads and trackers will now be blocked.",
buttons: ["OK"],
});
}
);
return;
}
},
checked: store.get("blockadsandtrackers") === "true",
},
{ type: "separator" },
{
label: "Windows User-Agent String",
type: "radio",

View File

@@ -72,9 +72,11 @@
"eslint": "^8.42.0"
},
"dependencies": {
"@cliqz/adblocker-electron": "^1.26.6",
"@xhayper/discord-rpc": "^1.0.17",
"axios": "^1.4.0",
"check-internet-connected": "^2.0.6",
"cross-fetch": "^3.1.6",
"electron-context-menu": "^3.6.1",
"electron-dl": "^3.5.0",
"electron-log": "^5.0.0-beta.24",

208
yarn.lock
View File

@@ -12,6 +12,62 @@ __metadata:
languageName: node
linkType: hard
"@cliqz/adblocker-content@npm:^1.26.6":
version: 1.26.6
resolution: "@cliqz/adblocker-content@npm:1.26.6"
dependencies:
"@cliqz/adblocker-extended-selectors": ^1.26.6
checksum: a24dded5d5de5b2a02db083539fdc5a27f819a6fc5c8f97ad383b77c1eec53d8f6c9a182a1d86c8299e190d314ac0de034700368a63b86b99c16d0c9166949d8
languageName: node
linkType: hard
"@cliqz/adblocker-electron-preload@npm:^1.26.6":
version: 1.26.6
resolution: "@cliqz/adblocker-electron-preload@npm:1.26.6"
dependencies:
"@cliqz/adblocker-content": ^1.26.6
peerDependencies:
electron: ">11"
checksum: 4fadea3544c8d717120146f56fc73133bed78b1c065da7ae97619e3e2feb758de72d63447704bed743200d15274353d8d1f9ff1638b79b3cbc7c6c425f9c8724
languageName: node
linkType: hard
"@cliqz/adblocker-electron@npm:^1.26.6":
version: 1.26.6
resolution: "@cliqz/adblocker-electron@npm:1.26.6"
dependencies:
"@cliqz/adblocker": ^1.26.6
"@cliqz/adblocker-electron-preload": ^1.26.6
tldts-experimental: ^6.0.1
peerDependencies:
electron: ">11"
checksum: a1312d92e93556103d33c79d0a5fa0c845cc88ae75d87f8e2f03cd276b1db90d3f5a8be01d992beadffe398c7dab16db2df5e0168c36488b56059320f9731fc5
languageName: node
linkType: hard
"@cliqz/adblocker-extended-selectors@npm:^1.26.6":
version: 1.26.6
resolution: "@cliqz/adblocker-extended-selectors@npm:1.26.6"
checksum: b5f2cb61cf05f4924bc019d95db46ade901486f3d107510bc57606867a601a46422128c0bf7e23f59f5717a32f6c975bd505a5ff6efd8d7faa9038aa27149c6e
languageName: node
linkType: hard
"@cliqz/adblocker@npm:^1.26.6":
version: 1.26.6
resolution: "@cliqz/adblocker@npm:1.26.6"
dependencies:
"@cliqz/adblocker-content": ^1.26.6
"@cliqz/adblocker-extended-selectors": ^1.26.6
"@remusao/guess-url-type": ^1.1.2
"@remusao/small": ^1.1.2
"@remusao/smaz": ^1.7.1
"@types/chrome": ^0.0.228
"@types/firefox-webext-browser": ^111.0.0
tldts-experimental: ^6.0.1
checksum: 95a4732f1d08b3f704e981448f351da82629ee0dabc442106f5272e37f83e86a53a683788d8dfd0e760012bfa4519a6d3f9f729e23d301c6b8271d0da7194736
languageName: node
linkType: hard
"@develar/schema-utils@npm:~2.6.5":
version: 2.6.5
resolution: "@develar/schema-utils@npm:2.6.5"
@@ -198,6 +254,53 @@ __metadata:
languageName: node
linkType: hard
"@remusao/guess-url-type@npm:^1.1.2":
version: 1.2.1
resolution: "@remusao/guess-url-type@npm:1.2.1"
checksum: 37a5142c970b6fb0c217c87a554add83b370dabd7f9f191e61747ba0979d8ceede5bea74cd00896641eab1ef3f23f37398d050a2e0de2adb719c556087cd623a
languageName: node
linkType: hard
"@remusao/small@npm:^1.1.2":
version: 1.2.1
resolution: "@remusao/small@npm:1.2.1"
checksum: e9c6a6d117754a86064c6a65f256ec7d0a0a73e0096ef522ea036d702477c5d4ace3349a5236ebcc2809dc887a60bf627eed0e45fd3416f3a6051e3a3436c712
languageName: node
linkType: hard
"@remusao/smaz-compress@npm:^1.9.1":
version: 1.9.1
resolution: "@remusao/smaz-compress@npm:1.9.1"
dependencies:
"@remusao/trie": ^1.4.1
checksum: e01875f4bb2508316f234c2bf662d8aab3ecaddd5cea516a6822954533e4305ff6d5f90e9e53f5bcababf203d515e9b99da9e7f6e58007aabcb90f5e4c5c9669
languageName: node
linkType: hard
"@remusao/smaz-decompress@npm:^1.9.1":
version: 1.9.1
resolution: "@remusao/smaz-decompress@npm:1.9.1"
checksum: 6abc127dd3ff79b63bb469ae265ab568d1b9a4234f759cbff8c7688a4adf78141c0913255eb281fee03fc9250bc3ee36494999f01a7950c3a86bb5b9e7ab4dcc
languageName: node
linkType: hard
"@remusao/smaz@npm:^1.7.1":
version: 1.9.1
resolution: "@remusao/smaz@npm:1.9.1"
dependencies:
"@remusao/smaz-compress": ^1.9.1
"@remusao/smaz-decompress": ^1.9.1
checksum: 0a7607daccd751b21a2baf43eff5b82948bfe666353612510c3c34bc3a864a40ffd8cfa5f4c29ae240426d400e95e0816bb581b3233be78ed05a315b53d65df1
languageName: node
linkType: hard
"@remusao/trie@npm:^1.4.1":
version: 1.4.1
resolution: "@remusao/trie@npm:1.4.1"
checksum: 0df106a649fd1b33cfa78712518e59b9c4b00c06dbdd0cda17f0ae8a6e661996a3b84161139eacb9578e8ee0a03564a860875537414b906c1dddf39a05db7570
languageName: node
linkType: hard
"@sindresorhus/is@npm:^4.0.0":
version: 4.6.0
resolution: "@sindresorhus/is@npm:4.6.0"
@@ -233,6 +336,16 @@ __metadata:
languageName: node
linkType: hard
"@types/chrome@npm:^0.0.228":
version: 0.0.228
resolution: "@types/chrome@npm:0.0.228"
dependencies:
"@types/filesystem": "*"
"@types/har-format": "*"
checksum: 7878706b040036c1ff59094d5d996033d5a3b6d2f88116a053007e1fbd0a7d1cb158d4130798142db4ba5187ac1fc9503312945892743a5107022742bf06d7cc
languageName: node
linkType: hard
"@types/debug@npm:^4.1.6":
version: 4.1.7
resolution: "@types/debug@npm:4.1.7"
@@ -242,6 +355,29 @@ __metadata:
languageName: node
linkType: hard
"@types/filesystem@npm:*":
version: 0.0.32
resolution: "@types/filesystem@npm:0.0.32"
dependencies:
"@types/filewriter": "*"
checksum: 4b9079d200a3b241722b90e1c5806c4b32c4dac87d42a1c7ef76a2c0dafdbe7d5f1a379b873ad5de73622b44de6599e1522908f67b938d54e785bd1c36e302a0
languageName: node
linkType: hard
"@types/filewriter@npm:*":
version: 0.0.29
resolution: "@types/filewriter@npm:0.0.29"
checksum: 0c58aa875c2c245be7dbc42b20212f3203e13d11ec013a4a5cd0febf0e8b87214be5882c05ff9d7bdf0398f145a4fdbc24b7e6cf7b094e134a3b4c7a0598502f
languageName: node
linkType: hard
"@types/firefox-webext-browser@npm:^111.0.0":
version: 111.0.1
resolution: "@types/firefox-webext-browser@npm:111.0.1"
checksum: 1730c2e303cb502dd3e85aeb6ac645e3526c1583da0ae02ea1203ac002485ba5bf045f7183840b6bde4055f43818b366db6dd112e0d611ec1d82c86c74a4589b
languageName: node
linkType: hard
"@types/fs-extra@npm:^9.0.11":
version: 9.0.13
resolution: "@types/fs-extra@npm:9.0.13"
@@ -261,6 +397,13 @@ __metadata:
languageName: node
linkType: hard
"@types/har-format@npm:*":
version: 1.2.11
resolution: "@types/har-format@npm:1.2.11"
checksum: f36add1ac253c99b594231783cc9ca75b6226df60ba2924351dcad4d0fcd0d7e62188c530a981b4dad8c2a9fcf10ea312f8c75ebc7ddbfae7e1a979635b04780
languageName: node
linkType: hard
"@types/http-cache-semantics@npm:*":
version: 4.0.1
resolution: "@types/http-cache-semantics@npm:4.0.1"
@@ -1025,6 +1168,15 @@ __metadata:
languageName: node
linkType: hard
"cross-fetch@npm:^3.1.6":
version: 3.1.6
resolution: "cross-fetch@npm:3.1.6"
dependencies:
node-fetch: ^2.6.11
checksum: 704b3519ab7de488328cc49a52cf1aa14132ec748382be5b9557b22398c33ffa7f8c2530e8a97ed8cb55da52b0a9740a9791d361271c4591910501682d981d9c
languageName: node
linkType: hard
"cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3":
version: 7.0.3
resolution: "cross-spawn@npm:7.0.3"
@@ -2590,9 +2742,11 @@ __metadata:
version: 0.0.0-use.local
resolution: "ms-365-electron@workspace:."
dependencies:
"@cliqz/adblocker-electron": ^1.26.6
"@xhayper/discord-rpc": ^1.0.17
axios: ^1.4.0
check-internet-connected: ^2.0.6
cross-fetch: ^3.1.6
electron: ^25.0.0
electron-builder: ^23.6.0
electron-context-menu: ^3.6.1
@@ -2649,6 +2803,20 @@ __metadata:
languageName: node
linkType: hard
"node-fetch@npm:^2.6.11":
version: 2.6.11
resolution: "node-fetch@npm:2.6.11"
dependencies:
whatwg-url: ^5.0.0
peerDependencies:
encoding: ^0.1.0
peerDependenciesMeta:
encoding:
optional: true
checksum: 249d0666a9497553384d46b5ab296ba223521ac88fed4d8a17d6ee6c2efb0fc890f3e8091cafe7f9fba8151a5b8d925db2671543b3409a56c3cd522b468b47b3
languageName: node
linkType: hard
"node-gyp@npm:^9.3.1":
version: 9.3.1
resolution: "node-gyp@npm:9.3.1"
@@ -3386,6 +3554,22 @@ __metadata:
languageName: node
linkType: hard
"tldts-core@npm:^6.0.5":
version: 6.0.5
resolution: "tldts-core@npm:6.0.5"
checksum: 8f63ff15f04898525749009551fc87afa21d87268fce548bc0062256d71ccbb68145aa4be965de8ce7669466be88b8c87c3a710df0956e75e38cfdc216458679
languageName: node
linkType: hard
"tldts-experimental@npm:^6.0.1":
version: 6.0.5
resolution: "tldts-experimental@npm:6.0.5"
dependencies:
tldts-core: ^6.0.5
checksum: 4351a38459b9057a33f715137b843446eab4ce0fa5dd090607fdcb178e3bc0ae568abbc09b61107a277c6b8dc027412632f66693ad79c2ba2cf85fdda269f271
languageName: node
linkType: hard
"tmp-promise@npm:^3.0.2":
version: 3.0.3
resolution: "tmp-promise@npm:3.0.3"
@@ -3404,6 +3588,13 @@ __metadata:
languageName: node
linkType: hard
"tr46@npm:~0.0.3":
version: 0.0.3
resolution: "tr46@npm:0.0.3"
checksum: 726321c5eaf41b5002e17ffbd1fb7245999a073e8979085dacd47c4b4e8068ff5777142fc6726d6ca1fd2ff16921b48788b87225cbc57c72636f6efa8efbffe3
languageName: node
linkType: hard
"truncate-utf8-bytes@npm:^1.0.0":
version: 1.0.2
resolution: "truncate-utf8-bytes@npm:1.0.2"
@@ -3538,6 +3729,23 @@ __metadata:
languageName: node
linkType: hard
"webidl-conversions@npm:^3.0.0":
version: 3.0.1
resolution: "webidl-conversions@npm:3.0.1"
checksum: c92a0a6ab95314bde9c32e1d0a6dfac83b578f8fa5f21e675bc2706ed6981bc26b7eb7e6a1fab158e5ce4adf9caa4a0aee49a52505d4d13c7be545f15021b17c
languageName: node
linkType: hard
"whatwg-url@npm:^5.0.0":
version: 5.0.0
resolution: "whatwg-url@npm:5.0.0"
dependencies:
tr46: ~0.0.3
webidl-conversions: ^3.0.0
checksum: b8daed4ad3356cc4899048a15b2c143a9aed0dfae1f611ebd55073310c7b910f522ad75d727346ad64203d7e6c79ef25eafd465f4d12775ca44b90fa82ed9e2c
languageName: node
linkType: hard
"which@npm:^2.0.1, which@npm:^2.0.2":
version: 2.0.2
resolution: "which@npm:2.0.2"