Skip to content

Commit aee3bdc

Browse files
committed
Refactoring
1 parent c586704 commit aee3bdc

11 files changed

Lines changed: 72 additions & 359 deletions

annoyance-level-warning.user.js

Lines changed: 2 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
// ==UserScript==
22
// @name Label the links with CAPTCHA/PoW annoyance
33
// @description Helps to prefer visiting sites that aren't associated with the irrational businesses that keep "fighting" the spammy traffic by disrupting the UX with cringe challenges (rather than transforming the traffic into useful (UPoW) and profitable computations) as well as sites with PoW-based DDoS-protection pages (useless anti-ecological computations).
4-
// @version 0.4
4+
// @version 0.5
55
// @downloadURL https://userscripts.codonaft.com/annoyance-level-warning.user.js
6+
// @require https://userscripts.codonaft.com/utils.js
67
// @grant GM.getValue
78
// @grant GM.xmlHttpRequest
89
// @grant GM_addStyle
@@ -98,11 +99,6 @@ const addCompany = async (ip, company) => {
9899
GM_setValue(IP_TO_COMPANY_KEY, records);
99100
};
100101

101-
const err = (e, data) => {
102-
console.log(data);
103-
console.error(e);
104-
};
105-
106102
const setWarning = (node, level) => {
107103
if ([LEVEL_UNKNOWN, LEVEL_OK].includes(level)) return;
108104

@@ -132,9 +128,6 @@ const resolveCompany = async (ip, hostname) => {
132128
return company;
133129
};
134130

135-
const random = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);
136-
const pickRandom = xs => xs[random(0, xs.length - 1)];
137-
138131
const enqueuedChecks = new Set;
139132
const check = async hostname => {
140133
try {
@@ -177,34 +170,6 @@ const check = async hostname => {
177170
}
178171
};
179172

180-
const subscribeOnChanges = (node, selector, f) => {
181-
const apply = (node, observer) => {
182-
if (node?.nodeType !== 1) return;
183-
184-
let observeChildren = true;
185-
if (node?.matches?.(selector)) {
186-
try {
187-
observeChildren = f(node, observer);
188-
} catch (e) {
189-
err(e, node);
190-
if (e.name === 'SecurityError') {
191-
observer.disconnect();
192-
return;
193-
}
194-
}
195-
}
196-
197-
if (observeChildren) {
198-
const children = node?.childNodes || [];
199-
children.forEach(i => apply(i, observer));
200-
}
201-
};
202-
203-
const observer = new MutationObserver(mutations => mutations.forEach(m => m.addedNodes.forEach(i => apply(i, observer))));
204-
observer.observe(node, { childList: true, subtree: true });
205-
node.querySelectorAll(selector).forEach(i => apply(i, observer));
206-
};
207-
208173
await loadRecords();
209174
await loadIpToCompany();
210175

bypass-various-popups.user.js

Lines changed: 4 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
// ==UserScript==
22
// @name Bypass Various Popups
3-
// @version 0.18
3+
// @version 0.19
44
// @downloadURL https://userscripts.codonaft.com/bypass-various-popups.user.js
5+
// @require https://userscripts.codonaft.com/utils.js
56
// @match https://*.archive.org/*
67
// @match https://*.pornhub.com/*
78
// @match https://chat.deepseek.com/*
@@ -22,8 +23,6 @@
2223

2324
if (performance.getEntriesByType('navigation')[0]?.responseStatus !== 200) return;
2425

25-
const randomPause = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);
26-
2726
const simulateMouse = (document, node, events = ['mouseenter', 'mouseover', 'mousemove', 'mousedown', 'mouseup', 'click']) => {
2827
if (!node) return;
2928

@@ -64,7 +63,7 @@ const process = (node, observer) => {
6463
i.click();
6564
}
6665
});
67-
}, randomPause(1000, 1500));
66+
}, random(1000, 1500));
6867
observer.disconnect();
6968
return false;
7069
}
@@ -87,7 +86,7 @@ const process = (node, observer) => {
8786
}
8887

8988
if (node.tagName === 'BUTTON' && (node.getAttribute('data-role') === 'parental-control-confirm-button' || node.textContent?.includes('Stay logged out'))) {
90-
setTimeout(_ => node.click(), randomPause(1000, 1500));
89+
setTimeout(_ => node.click(), random(1000, 1500));
9190
return false;
9291
}
9392

@@ -129,38 +128,5 @@ const process = (node, observer) => {
129128
return true;
130129
};
131130

132-
const subscribeOnChanges = (node, selector, f) => {
133-
const apply = (node, observer) => {
134-
if (node?.nodeType !== 1) return;
135-
136-
let observeChildren = true;
137-
if (node?.matches?.(selector)) {
138-
try {
139-
observeChildren = f(node, observer);
140-
} catch (e) {
141-
err(e, node);
142-
if (e.name === 'SecurityError') {
143-
observer.disconnect();
144-
return;
145-
}
146-
}
147-
}
148-
149-
if (observeChildren) {
150-
const children = node?.childNodes || [];
151-
children.forEach(i => apply(i, observer));
152-
}
153-
};
154-
155-
const observer = new MutationObserver(mutations => mutations.forEach(m => m.addedNodes.forEach(i => apply(i, observer))));
156-
observer.observe(node, { childList: true, subtree: true });
157-
node.querySelectorAll(selector).forEach(i => apply(i, observer));
158-
};
159-
160-
const err = (e, node) => {
161-
console.log(node);
162-
console.error(e);
163-
};
164-
165131
subscribeOnChanges(document.body, 'button, div, span', process);
166132
})();

bypass-youtube-popups.user.js

Lines changed: 3 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
// ==UserScript==
22
// @name Bypass YouTube Popups
33
// @icon https://external-content.duckduckgo.com/ip3/youtube.com.ico
4-
// @version 0.8
4+
// @version 0.9
55
// @downloadURL https://userscripts.codonaft.com/bypass-youtube-popups.user.js
6+
// @require https://userscripts.codonaft.com/utils.js
67
// @match https://www.youtube.com/*
78
// ==/UserScript==
89

@@ -11,11 +12,7 @@
1112

1213
if (performance.getEntriesByType('navigation')[0]?.responseStatus !== 200) return;
1314

14-
const randomPause = _ => {
15-
const min = 3000;
16-
const max = 5000;
17-
return Math.floor(Math.random() * (max - min + 1) + min);
18-
};
15+
const randomPause = _ => random(3000, 5000);
1916

2017
const process = (node, observer) => {
2118
if (node.classList.contains('yt-spec-button-shape-next')) {
@@ -48,38 +45,5 @@ const process = (node, observer) => {
4845
return true;
4946
};
5047

51-
const subscribeOnChanges = (node, selector, f) => {
52-
const apply = (node, observer) => {
53-
if (node?.nodeType !== 1) return;
54-
55-
let observeChildren = true;
56-
if (node?.matches?.(selector)) {
57-
try {
58-
observeChildren = f(node, observer);
59-
} catch (e) {
60-
err(e, node);
61-
if (e.name === 'SecurityError') {
62-
observer.disconnect();
63-
return;
64-
}
65-
}
66-
}
67-
68-
if (observeChildren) {
69-
const children = node?.childNodes || [];
70-
children.forEach(i => apply(i, observer));
71-
}
72-
};
73-
74-
const observer = new MutationObserver(mutations => mutations.forEach(m => m.addedNodes.forEach(i => apply(i, observer))));
75-
observer.observe(node, { childList: true, subtree: true });
76-
node.querySelectorAll(selector).forEach(i => apply(i, observer));
77-
};
78-
79-
const err = (e, node) => {
80-
console.log(node);
81-
console.error(e);
82-
};
83-
8448
subscribeOnChanges(document.body, 'button, div, span', process);
8549
})();
Lines changed: 2 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,21 @@
11
// ==UserScript==
22
// @name Disable Embedded YouTube Videos
33
// @icon https://external-content.duckduckgo.com/ip3/youtube.com.ico
4-
// @version 0.2
4+
// @version 0.3
55
// @downloadURL https://userscripts.codonaft.com/disable-embedded-youtube-videos.user.js
6+
// @require https://userscripts.codonaft.com/utils.js
67
// ==/UserScript==
78

89
(_ => {
910
'use strict';
1011

11-
const random = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);
12-
const pickRandom = xs => xs[random(0, xs.length - 1)];
13-
1412
const PROXY = pickRandom(['imgproxy.nosotros.app/_/feed_img/plain/', 'wsrv.nl/?url=']);
1513

1614
const imageURL = url => {
1715
if (!PROXY) return url;
1816
return `https://${PROXY}${encodeURIComponent(url)}`;
1917
};
2018

21-
const subscribeOnChanges = (node, selector, f) => {
22-
const apply = (node, observer) => {
23-
if (node?.nodeType !== 1) return;
24-
25-
let observeChildren = true;
26-
if (node?.matches?.(selector)) {
27-
try {
28-
observeChildren = f(node, observer);
29-
} catch (e) {
30-
err(e, node);
31-
if (e.name === 'SecurityError') {
32-
observer.disconnect();
33-
return;
34-
}
35-
}
36-
}
37-
38-
if (observeChildren) {
39-
const children = node?.childNodes || [];
40-
children.forEach(i => apply(i, observer));
41-
}
42-
};
43-
44-
const observer = new MutationObserver(mutations => mutations.forEach(m => m.addedNodes.forEach(i => apply(i, observer))));
45-
observer.observe(node, { childList: true, subtree: true });
46-
node.querySelectorAll(selector).forEach(i => apply(i, observer));
47-
};
48-
4919
subscribeOnChanges(document.body, 'iframe[src^="https://www.youtube.com/"], iframe[src^="https://www.youtube-nocookie.com/embed/"]', node => {
5020
const src = node.getAttribute('src');
5121
const videoId = src.split('?v=')[1] || src.split('/embed/')[1];
@@ -65,9 +35,4 @@ subscribeOnChanges(document.body, 'iframe[src^="https://www.youtube.com/"], ifra
6535

6636
return false;
6737
});
68-
69-
const err = (e, node) => {
70-
console.log(node);
71-
console.error(e);
72-
};
7338
})();
Lines changed: 2 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
// ==UserScript==
22
// @name Disable YouTube Channel Intro
33
// @icon https://external-content.duckduckgo.com/ip3/youtube.com.ico
4-
// @version 0.12
4+
// @version 0.13
55
// @downloadURL https://userscripts.codonaft.com/disable-youtube-channel-intro.user.js
6+
// @require https://userscripts.codonaft.com/utils.js
67
// @exclude https://www.youtube.com/watch?*
78
// @match https://www.youtube.com/*
89
// ==/UserScript==
@@ -12,34 +13,6 @@
1213

1314
if (performance.getEntriesByType('navigation')[0]?.responseStatus !== 200) return;
1415

15-
const subscribeOnChanges = (node, selector, f) => {
16-
const apply = (node, observer) => {
17-
if (node?.nodeType !== 1) return;
18-
19-
let observeChildren = true;
20-
if (node?.matches?.(selector)) {
21-
try {
22-
observeChildren = f(node, observer);
23-
} catch (e) {
24-
err(e, node);
25-
if (e.name === 'SecurityError') {
26-
observer.disconnect();
27-
return;
28-
}
29-
}
30-
}
31-
32-
if (observeChildren) {
33-
const children = node?.childNodes || [];
34-
children.forEach(i => apply(i, observer));
35-
}
36-
};
37-
38-
const observer = new MutationObserver(mutations => mutations.forEach(m => m.addedNodes.forEach(i => apply(i, observer))));
39-
observer.observe(node, { childList: true, subtree: true });
40-
node.querySelectorAll(selector).forEach(i => apply(i, observer));
41-
};
42-
4316
subscribeOnChanges(document.body, 'div#c4-player video, button.ytp-play-button[data-title-no-tooltip="Pause"]', (node, observer) => {
4417
observer.disconnect();
4518
node.click();
@@ -62,9 +35,4 @@ subscribeOnChanges(document.body, 'div#c4-player video, button.ytp-play-button[d
6235

6336
return false;
6437
});
65-
66-
const err = (e, node) => {
67-
console.log(node);
68-
console.error(e);
69-
};
7038
})();

force-searxng-parameters.user.js

Lines changed: 4 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
// ==UserScript==
22
// @name Force SearXNG Parameters
33
// @icon https://external-content.duckduckgo.com/ip3/searx.space.ico
4-
// @version 0.18
4+
// @version 0.19
55
// @downloadURL https://userscripts.codonaft.com/force-searxng-parameters.user.js
6+
// @require https://userscripts.codonaft.com/utils.js
67
// ==/UserScript==
78

89
(_ => {
@@ -57,8 +58,6 @@ const params = {
5758
...Object.fromEntries(Array.from(hashParams.entries())), // NOTE: fails on Firefox without Array.from
5859
};
5960

60-
const random = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);
61-
const pickRandom = xs => xs[random(0, xs.length - 1)];
6261
const enginesCookie = (engines, excluded) => Object
6362
.entries(engines)
6463
.flatMap(([category, v]) => v.filter(i => !excluded.includes(i))
@@ -122,34 +121,7 @@ if (!params.autocomplete) {
122121
}
123122
}
124123

125-
/*const subscribeOnChanges = (node, selector, f) => {
126-
const apply = (node, observer) => {
127-
if (node?.nodeType !== 1) return;
128-
129-
let observeChildren = true;
130-
if (node?.matches?.(selector)) {
131-
try {
132-
observeChildren = f(node, observer);
133-
} catch (e) {
134-
err(e, node);
135-
if (e.name === 'SecurityError') {
136-
observer.disconnect();
137-
return;
138-
}
139-
}
140-
}
141-
142-
if (observeChildren) {
143-
const children = node?.childNodes || [];
144-
children.forEach(i => apply(i, observer));
145-
}
146-
};
147-
148-
const observer = new MutationObserver(mutations => mutations.forEach(m => m.addedNodes.forEach(i => apply(i, observer))));
149-
observer.observe(node, { childList: true, subtree: true });
150-
node.querySelectorAll(selector).forEach(i => apply(i, observer));
151-
};
152-
124+
/*
153125
subscribeOnChanges(b, 'div#results div.engines span', (node, observer) => {
154126
if (disabledEnginesSet.has(node.textContent)) {
155127
console.warn('unexpected engine, press the search button to retry');
@@ -159,9 +131,5 @@ subscribeOnChanges(b, 'div#results div.engines span', (node, observer) => {
159131
}
160132
return true;
161133
});
162-
163-
const err = (e, node) => {
164-
console.log(node);
165-
console.error(e);
166-
};*/
134+
*/
167135
})();

0 commit comments

Comments
 (0)