/
contentScript.js
101 lines (95 loc) · 3.92 KB
/
contentScript.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
var
stop = false, // stop checkings
removed_first = false, // when 1st element is removed
alpha = /(?:\d+, ){3}([\d.]+)/, // find alpha channel in rgba
instagram = Boolean(~window.location.hostname.indexOf('instagram.com')), // returns true if it's instagram
oath = Boolean(~window.location.href.indexOf('oath.com/collectConsent')), // returns true if it's oath
position = ['fixed', 'sticky'],
specific = ['div#cnsh', 'div#cnso', // google
'div#ticker', // youtube
'div[data-testid="cookie-policy-banner"]', // facebook
'div#global-alert-queue', // linkedin
'div.eu-cookie-notice', // twitter
'div#j-aliexpress-notice' // aliexpress
],
keywords = ['cookie', 'privacy settings', // en
'бисквитки', 'приемам', 'съгласен', // bg
'kolačiće', // bs/hr/sr
'piškotke', // sl
'küpsiseid', // et
'evästeitä', // fi
'slapukus', 'slapukų', // lt
'sīkfailus', 'sīkfaili', // lv
'fótspor', // is
'kabul' // tr
];
main();
document.onreadystatechange = () => {
if (document.readyState === 'complete') {
main();
setTimeout(main, 500);
}
};
function removeEl (el) {
el.parentNode.removeChild(el);
console.log('>>> COOKIE FUCKER >>> REMOVED THE ELEMENT:', el);
!removed_first && removedFirst();
return true;
}
function removedFirst() {
removed_first = true;
document.body.style.overflow = 'auto';
var minetilbud_dk = document.querySelector('section.site-container');
minetilbud_dk && (minetilbud_dk.style.filter = 'none');
}
function main () {
!stop && oath && document.body.querySelector('form[action="/consent"]').submit();
!stop && specific.some( el => {
var el_qs = document.body.querySelector(el);
return el_qs && removeEl(el_qs);
}) && (stop = true);
!stop && (function iterateNodes (current) {
if (current) {
var children = current.children;
for (let i = 0, len = children.length; i < len; i++) {
var el = children[i];
if (el instanceof Element) {
var el_html = el.outerHTML.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '');
var el_css = window.getComputedStyle(el);
var positionIsFixed = ~position.indexOf(el_css['position']);
var containsSpecialKeywords = keywords.some(keyword => find(el_html, keyword));
var overlapsWholePage = (
el_css['z-index'] > 100 &&
el_css['top'] === '0px' &&
el_css['left'] === '0px' &&
el_css['bottom'] === '0px' &&
el_css['right'] === '0px' &&
el_css['display'] !== 'none' &&
el_css['visibility'] !== 'hidden' &&
(
el_css['background-color'].match(alpha) && el_css['background-color'].match(alpha)[1] < 1 ||
el_css['background-color'] === 'rgb(0, 0, 0)'
)
);
var trustarc_com = find(el.className, 'truste_');
var clickInstagramButton = (
instagram &&
containsSpecialKeywords &&
(stop = true) &&
el.querySelector('button.coreSpriteDismissLarge') &&
el.querySelector('button.coreSpriteDismissLarge').click() // click returns false
);
var elToBeRemoved = (
positionIsFixed && (containsSpecialKeywords || overlapsWholePage) ||
trustarc_com ||
clickInstagramButton
);
elToBeRemoved && removeEl(el) ? i-- && len-- : iterateNodes(el);
}
}
}
})(document.body);
}
function find (inp, chk) {
return inp && typeof inp === 'string' && ~inp.toLowerCase().indexOf(chk);
}