vericudebuget commited on
Commit
4b456c3
·
verified ·
1 Parent(s): 9356a9b

Upload folder using huggingface_hub

Browse files
background.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ chrome.runtime.onInstalled.addListener(() => {
2
+ chrome.storage.sync.set({ blockedSites: [] });
3
+ });
4
+
5
+ chrome.webRequest.onBeforeRequest.addListener(
6
+ (details) => {
7
+ return { cancel: true };
8
+ },
9
+ { urls: ["*://*.example.com/*"], types: ["script"] },
10
+ ["blocking"]
11
+ );
brainly.crx ADDED
Binary file (8.48 kB). View file
 
brainly.pem ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ -----BEGIN PRIVATE KEY-----
2
+ MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCjG4MmKn4D6DRH
3
+ RtCQNZ7vmETLjMDSIhBbP8G1Jmrjhm5Vq9hy0+fZSQcc3PgN/JFCkTkeVSIxiskp
4
+ MYKLEc9BfBzwT4e0zVLfxER+QyDepKZ2HMD59CzuEm6mdPwts5XAF2PKQuAUPloB
5
+ IWHUMZQiUZdX2j8e1TCKkjGobki/VjDfmJakjkeDhF7vNdUvBvxnV5e1KaKXY84G
6
+ Nl/tpj/aMMCaJSHoQfgDGFdhQ6BXaZmKRekG/CYXrZosgfdjB7lf1rYP8W6kepyZ
7
+ wB4RIAIMkER9aDhehTOAyLrSonk7FkiFsOFBbTGdKY3udhVvTeFW8WXCOVML15gH
8
+ lL7D+eKPAgMBAAECggEAQxny8vUhQZc6RqZ18BX3LGeOydS+kNRNuVR56v4ClFb+
9
+ NkWLtvXBmK0H/ZJUhGCHHAUlo/pvJkWL62QAahkqFC0stJprYHDl6sPST8VrFN1U
10
+ 1BuRMmOHRmwT1GwlQOH0NgIJXjD0AbADFBr5JbQ91n6NjilttVAMd72cK0gvqnLx
11
+ P6n0Mgvai2Eiv4RHgJA1TvuBVbkWwxkBjCZbVd+CZ7bDxv2TRBK3n7IecZQ8aTbS
12
+ 18H9xvVCStJvWfNoF8biQYt1PM6NBD4MB5xFrt+Px3MWZ7ILCn8W7/Hnd06QZW/J
13
+ WpcHiHsU8f0kEy54uxD6RquIy7hcI+OCEIEQ+6m7IQKBgQDVUij6j8bGpfUOZ0Lv
14
+ W+zSVA5FqE4u+oPyP1yD9qGuJGBTDP/nS0/sDspG8kkaKUzwD9y2oah/ECd2ZjCo
15
+ 3NLI67qgyBoVTt1Ql+mUvxajQaHvpLxg9ZT05Bl2DPBNRX3SA4w62QG1JfZ1KSgA
16
+ k5SeYWqYphmlLlGVIAGuqXaUoQKBgQDDvYa9q3g1qG739I6usENSXZsPZJxmau2X
17
+ d9WYmuTVjM22Yp5eZf0Mr66fWv1pJRNBtND9yM0O49DYTMKI0TLdQpJ4F8F0gtpV
18
+ Q2mbU42xAo3YK1hK4hugwcrtsQBVMjvYgfWI2YwVU0Y89TsN5ejsXisR9LG2woI8
19
+ zhuKKiT5LwKBgQCU5TQVMCXeohfaZdkimVdDt8f+duubfuB6Rh+dPJi9pEZXscss
20
+ 9jRi4C/wNU0xJYK+TVQRZeTmS7A/xDRSqU+3TlKFxyXtmY6Aoog3eumiKj2Nt76F
21
+ LuU5yby72Wwhg0+/Nxq6OJ4ogsb0IDX7sQcbRYPR6J4d3aa0IBMMhtxuAQKBgDXi
22
+ 5Uct/2f2OKZ2YxlgWQhB0MBKGGxxn3sFeH4Mllbb7n35ZFPki+eELfSc3gqmNEjw
23
+ eGCFeT5SJVqGtz9nKDOVcjExiQaER4sVhetG80j5xQbv19y1ppl5AF6zTb4mmCcg
24
+ j/HewhvU0w9RC7LlylvYCM9mp84Cekw3CYnd1FPtAoGAGi9lMQnH63bz/uoN3Htj
25
+ MTJwz4xqWZ3UaSeaGUZLa/IZWJC4ba2UjMqQ2QYzNll3vaBA+LMPPtEq2Mbih4Bi
26
+ ovAAnxKVXvvdWJrFb2+14DpT9AFH2oD1yi6gs4QiJvfLgmMaQn7sVwoArEoKNWX7
27
+ NIs+aUIdgfNZgbN2vSGzdTY=
28
+ -----END PRIVATE KEY-----
brainly/background.js ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ chrome.runtime.onInstalled.addListener(() => {
2
+ chrome.storage.sync.set({ blockedSites: [] });
3
+ updateDeclarativeNetRequestRules();
4
+ });
5
+
6
+ chrome.storage.onChanged.addListener((changes, namespace) => {
7
+ if (namespace === 'sync' && changes.blockedSites) {
8
+ updateDeclarativeNetRequestRules();
9
+ }
10
+ });
11
+
12
+ async function updateDeclarativeNetRequestRules() {
13
+ const { blockedSites } = await chrome.storage.sync.get('blockedSites');
14
+ const rules = blockedSites.map((site, index) => ({
15
+ id: index + 1,
16
+ priority: 1,
17
+ action: { type: 'block' },
18
+ condition: {
19
+ urlFilter: `||${site}^`,
20
+ resourceTypes: ['script']
21
+ }
22
+ }));
23
+
24
+ await chrome.declarativeNetRequest.updateDynamicRules({
25
+ removeRuleIds: rules.map(rule => rule.id),
26
+ addRules: rules
27
+ });
28
+ }
brainly/icons/64.png ADDED
brainly/icons/icon128.png ADDED
brainly/icons/icon16.png ADDED
brainly/icons/icon48.png ADDED
brainly/manifest.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "manifest_version": 3,
3
+ "name": "JavaScript Disabler",
4
+ "version": "1.0",
5
+ "description": "Disables JavaScript on specified websites and their subdomains.",
6
+ "permissions": [
7
+ "storage",
8
+ "declarativeNetRequest"
9
+ ],
10
+ "host_permissions": [
11
+ "<all_urls>"
12
+ ],
13
+ "background": {
14
+ "service_worker": "background.js"
15
+ },
16
+ "action": {
17
+ "default_popup": "popup.html",
18
+ "default_icon": {
19
+ "16": "icons/icon16.png",
20
+ "48": "icons/icon48.png",
21
+ "128": "icons/icon128.png"
22
+ }
23
+ },
24
+ "icons": {
25
+ "16": "icons/icon16.png",
26
+ "48": "icons/icon48.png",
27
+ "128": "icons/icon128.png"
28
+ }
29
+ }
brainly/popup.html ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>JavaScript Disabler</title>
5
+ <style>
6
+ body { width: 300px; padding: 10px; }
7
+ ul { list-style-type: none; padding: 0; }
8
+ li { margin-bottom: 5px; }
9
+ button { margin-left: 5px; }
10
+ </style>
11
+ </head>
12
+ <body>
13
+ <h1>JavaScript Disabler</h1>
14
+ <input type="text" id="site" placeholder="Enter domain (e.g., example.com)">
15
+ <button id="addSite">Add Site</button>
16
+ <h2>Blocked Sites:</h2>
17
+ <ul id="siteList"></ul>
18
+ <script src="popup.js"></script>
19
+ </body>
20
+ </html>
brainly/popup.js ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ document.getElementById('addSite').addEventListener('click', addSite);
2
+
3
+ function addSite() {
4
+ const site = document.getElementById('site').value.trim();
5
+ if (site) {
6
+ chrome.storage.sync.get('blockedSites', (data) => {
7
+ const blockedSites = new Set(data.blockedSites || []);
8
+ blockedSites.add(site);
9
+ chrome.storage.sync.set({ blockedSites: Array.from(blockedSites) }, () => {
10
+ updateSiteList();
11
+ document.getElementById('site').value = '';
12
+ });
13
+ });
14
+ }
15
+ }
16
+
17
+ function removeSite(site) {
18
+ chrome.storage.sync.get('blockedSites', (data) => {
19
+ const blockedSites = new Set(data.blockedSites || []);
20
+ blockedSites.delete(site);
21
+ chrome.storage.sync.set({ blockedSites: Array.from(blockedSites) }, updateSiteList);
22
+ });
23
+ }
24
+
25
+ function updateSiteList() {
26
+ chrome.storage.sync.get('blockedSites', (data) => {
27
+ const siteList = document.getElementById('siteList');
28
+ siteList.innerHTML = '';
29
+ (data.blockedSites || []).forEach((site) => {
30
+ const li = document.createElement('li');
31
+ li.textContent = site;
32
+ const removeButton = document.createElement('button');
33
+ removeButton.textContent = 'Remove';
34
+ removeButton.onclick = () => removeSite(site);
35
+ li.appendChild(removeButton);
36
+ siteList.appendChild(li);
37
+ });
38
+ });
39
+ }
40
+
41
+ updateSiteList();
popup.html ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>JavaScript Disabler</title>
5
+ <script src="popup.js"></script>
6
+ </head>
7
+ <body>
8
+ <h1>JavaScript Disabler</h1>
9
+ <input type="text" id="site" placeholder="Enter site URL">
10
+ <button id="addSite">Add Site</button>
11
+ <ul id="siteList"></ul>
12
+ </body>
13
+ </html>