mirror of
https://github.com/aamitn/bpc.git
synced 2025-06-27 10:21:48 +05:30
155 lines
6.4 KiB
JavaScript
155 lines
6.4 KiB
JavaScript
|
|
if (window.location.href === 'https://codebeautify.org/htmlviewer') {
|
|
let htmlviewer = document.querySelector('head > link[rel="canonical"][href="https://codebeautify.org/htmlviewer"]');
|
|
if (!htmlviewer) {
|
|
let ads = 'div.OUTBRAIN, div[id^="taboola-"], div.ad-container, div[class*="-ad-container"], div[class*="_ad-container"], div.arc_ad, div[id^="adv-"], div[class^="ad-"], div[class^="ad_"], div[class^="advert"], aside.ad';
|
|
hideDOMStyle(ads, 10);
|
|
let cookie_consent = 'div#didomi-host, div#onetrust-consent-sdk, div[id^="sp_message_container"], div#CybotCookiebotDialog, div#usercentrics-root, div.cmp-root-container';
|
|
hideDOMStyle(cookie_consent, 11);
|
|
let cybot_fade = document.querySelector('div#CybotCookiebotDialogBodyUnderlay');
|
|
if (cybot_fade)
|
|
cybot_fade.remove();
|
|
let html_noscroll = ['cmp-modal-open', 'sp-message-open'];
|
|
for (let elem of html_noscroll) {
|
|
let noscroll = document.querySelector('html[class~="' + elem + '"]');
|
|
if (noscroll)
|
|
noscroll.classList.remove(elem);
|
|
}
|
|
let body_noscroll = ['no-scroll', 'overflowHidden', 'showFirstLayer'];
|
|
for (let elem of body_noscroll) {
|
|
let noscroll = document.querySelector('body[class~="' + elem + '"]');
|
|
if (noscroll)
|
|
noscroll.classList.remove(elem);
|
|
}
|
|
let overflow_hidden = document.querySelector('body[style*="overflow: hidden;"]');
|
|
if (overflow_hidden)
|
|
overflow_hidden.style.overflow = 'auto';
|
|
|
|
unhideDataImages()
|
|
let hide;
|
|
let canonical = document.querySelector('head > link[rel="canonical"][href], link[rel="canonical"][href]');
|
|
if (canonical) {
|
|
let canonical_url = canonical.href;
|
|
let hostname = urlHost(canonical_url);
|
|
correctLinks(hostname);
|
|
unhideHostImages(hostname);
|
|
|
|
if (hostname.endsWith('.de')) {
|
|
if (matchUrlDomain('augsburger-allgemeine.de', canonical_url)) {
|
|
hide = 'div.pt_onlinestory';
|
|
} else if (matchUrlDomain('die-tagespost.de', canonical_url)) {
|
|
hide = 'section#footer-popup';
|
|
} else if (matchUrlDomain('lkz.de', canonical_url)) {
|
|
let article_hidden = document.querySelector('div#main');
|
|
if (article_hidden)
|
|
article_hidden.removeAttribute('id');
|
|
hide = 'div.nfy-element-ad, div.error-screen';
|
|
} else if (matchUrlDomain('main-echo.de', canonical_url)) {
|
|
let hidden_elems = document.querySelectorAll('[hidden]');
|
|
for (let elem of hidden_elems)
|
|
elem.removeAttribute('hidden');
|
|
hide = 'div[id^="traffective-ad-"]';
|
|
} else if (matchUrlDomain('mainpost.de', canonical_url)) {
|
|
hide = 'div.aa-first-layer';
|
|
} else if (matchUrlDomain(['noz.de', 'shz.de'], canonical_url)) {
|
|
hide = 'div.msn-ads';
|
|
}
|
|
} else if (hostname.endsWith('.fi')) {
|
|
if (matchUrlDomain(['aamulehti.fi', 'hs.fi', 'is.fi'], canonical_url)) {
|
|
hide = 'header, footer, div.article-actions, div.skip-link, article.list, iframe[data-testid="iframe-embed"]';
|
|
let image_containers = document.querySelectorAll('div.aspect-ratio-container');
|
|
for (let elem of image_containers)
|
|
elem.classList.remove('aspect-ratio-container');
|
|
}
|
|
} else if (hostname.endsWith('.fr')) {
|
|
if (matchUrlDomain('humanite.fr', canonical_url)) {
|
|
hide = 'tab-bar-component, div#form_don';
|
|
}
|
|
} else {
|
|
if (matchUrlDomain(['businesslive.co.za', 'timeslive.co.za'], canonical_url)) {
|
|
hide = 'div#gdpr-overlay';
|
|
} else if (matchUrlDomain('ibj.com', canonical_url)) {
|
|
hide = 'header#masthead, nav, footer, aside#secondary, div.article-audio, div.article-left-rail, div.promo-container, div.toolbar';
|
|
} else if (matchUrlDomain('investorschronicle.co.uk', canonical_url)) {
|
|
hide = 'div#specialist__renderer--header';
|
|
} else if (matchUrlDomain('nouvelobs.com', canonical_url)) {
|
|
hide = 'div.paywall';
|
|
} else if (matchUrlDomain('repubblica.it', canonical_url)) {
|
|
hide = 'div.cookiewall, div[data-src^="//box.kataweb.it/"]';
|
|
} else if (matchUrlDomain('telecompaper.com', canonical_url)) {
|
|
hide = 'div[role="dialog"]';
|
|
}
|
|
}
|
|
} else {
|
|
if (document.querySelector('head > link[as="image"][imagesrcset^="https://photos.watchmedier.dk/"]')) {// ###_dk_watch_media
|
|
hide = 'header, footer, img, svg, section[data-sentry-component="ListCard"]';
|
|
}
|
|
}
|
|
if (hide)
|
|
hideDOMStyle(hide);
|
|
}
|
|
}
|
|
|
|
function matchDomain(domains, hostname = window.location.hostname) {
|
|
let matched_domain = false;
|
|
if (typeof domains === 'string')
|
|
domains = [domains];
|
|
domains.some(domain => (hostname === domain || hostname.endsWith('.' + domain)) && (matched_domain = domain));
|
|
return matched_domain;
|
|
}
|
|
|
|
function urlHost(url) {
|
|
if (/^http/.test(url)) {
|
|
try {
|
|
return new URL(url).hostname;
|
|
} catch (e) {
|
|
console.log(`url not valid: ${url} error: ${e}`);
|
|
}
|
|
}
|
|
return url;
|
|
}
|
|
|
|
function matchUrlDomain(domains, url) {
|
|
return matchDomain(domains, urlHost(url));
|
|
}
|
|
|
|
function hideDOMStyle(selector, id = 1) {
|
|
let style = document.querySelector('head > style#ext'+ id);
|
|
if (!style && document.head) {
|
|
let sheet = document.createElement('style');
|
|
sheet.id = 'ext' + id;
|
|
sheet.innerText = selector + ' {display: none !important;}';
|
|
document.head.appendChild(sheet);
|
|
}
|
|
}
|
|
|
|
function correctLinks(hostname) {
|
|
let links = document.querySelectorAll('a[href^="/"], link[rel="stylesheet"][href^="/"]');
|
|
for (let elem of links)
|
|
elem.href = elem.href.replace('codebeautify.org', hostname);
|
|
}
|
|
|
|
function unhideHostImages(hostname) {
|
|
let hidden_images = document.querySelectorAll('img[src^="/"]');
|
|
for (let elem of hidden_images) {
|
|
elem.src = elem.src.replace('codebeautify.org', hostname);
|
|
elem.removeAttribute('srcset');
|
|
let sources = elem.parentNode.querySelectorAll('source[srcset]');
|
|
for (let source of sources)
|
|
source.removeAttribute('srcset');
|
|
}
|
|
}
|
|
|
|
function unhideDataImages() {
|
|
let hidden_images = document.querySelectorAll('img[src^="data:image/"]');
|
|
for (let elem of hidden_images) {
|
|
if (elem.getAttribute('data-src'))
|
|
elem.src = elem.getAttribute('data-src');
|
|
else if (elem.parentNode) {
|
|
let source = elem.parentNode.querySelector('source[data-srcset]');
|
|
if (source) {
|
|
elem.src = source.getAttribute('data-srcset').split(/[\?\s]/)[0];
|
|
}
|
|
}
|
|
}
|
|
}
|