0
0
2025-04-23 17:56:21 +02:00

5342 lines
210 KiB
JavaScript

// ==UserScript==
// @name Bypass Paywalls Clean - en
// @version 4.1.1.1
// @description Bypass Paywalls of news sites
// @author magnolia1234
// @downloadURL https://gitflic.ru/project/magnolia1234/bypass-paywalls-clean-filters/blob/raw?file=userscript/bpc.en.user.js
// @updateURL https://gitflic.ru/project/magnolia1234/bypass-paywalls-clean-filters/blob/raw?file=userscript/bpc.en.user.js
// @homepageURL https://gitflic.ru/project/magnolia1234/bypass-paywalls-clean-filters
// @supportURL https://gitflic.ru/project/magnolia1234/bypass-paywalls-clean-filters
// @license MIT; https://gitflic.ru/project/magnolia1234/bypass-paywalls-clean-filters/blob/raw?file=LICENSE
// @match *://*.com/*
// @match *://*.co.uk/*
// @match *://*.com.au/*
// @match *://*.co/*
// @match *://*.io/*
// @match *://*.net/*
// @match *://*.net.au/*
// @match *://*.org/*
// @match *://*.pub/*
// @match *://*.businessdesk.co.nz/*
// @match *://*.businesspost.ie/*
// @match *://*.businesstimes.com.sg/*
// @match *://*.capital.bg/*
// @match *://*.dnevnik.bg/*
// @match *://*.epoch.org.il/*
// @match *://*.europower.no/*
// @match *://*.fiskeribladet.no/*
// @match *://*.forbes.ua/*
// @match *://*.ftm.eu/*
// @match *://*.gitflic.ru/*
// @match *://*.haaretz.co.il/*
// @match *://*.independent.ie/*
// @match *://*.indiatoday.in/*
// @match *://*.intrafish.no/*
// @match *://*.ipolitics.ca/*
// @match *://*.japantimes.co.jp/*
// @match *://*.livelaw.in/*
// @match *://*.nation.africa/*
// @match *://*.nautil.us/*
// @match *://*.niagarafallsreview.ca/*
// @match *://*.nv.ua/*
// @match *://*.nzherald.co.nz/*
// @match *://*.puck.news/*
// @match *://*.sloanreview.mit.edu/*
// @match *://*.stcatharinesstandard.ca/*
// @match *://*.tempo.co/*
// @match *://*.theleaflet.in/*
// @match *://*.uxdesign.cc/*
// @match *://*.wellandtribune.ca/*
// @connect archive.fo
// @connect archive.is
// @connect archive.li
// @connect archive.md
// @connect archive.ph
// @connect archive.vn
// @connect djservices.io
// @connect dowjones.io
// @exclude *://*.amazon-adsystem.com/*
// @exclude *://*.consentmanager.net/*
// @exclude *://*.dailymotion.com/*
// @exclude *://*.doubleclick.net/*
// @exclude *://*.dwcdn.net/*
// @exclude *://*.facebook.com/*
// @exclude *://*.google.com/*
// @exclude *://*.googleapis.com/*
// @exclude *://*.googletagmanager.com/*
// @exclude *://*.instagram.com/*
// @exclude *://*.klarna.com/*
// @exclude *://*.mediafire.com/*
// @exclude *://*.openx.net/*
// @exclude *://*.outbrain.com/*
// @exclude *://*.pinterest.com/*
// @exclude *://*.rubiconproject.com/*
// @exclude *://*.seedtag.com/*
// @exclude *://*.smartadserver.com/*
// @exclude *://*.stripe.com/*
// @exclude *://*.tinypass.com/*
// @exclude *://*.twitter.com/*
// @exclude *://*.youtube.com/*
// @exclude *://*.abcmais.com/*
// @exclude *://*.artsenkrant.com/*
// @exclude *://*.cambiocolombia.com/*
// @exclude *://*.clarin.com/*
// @exclude *://*.connaissancedesarts.com/*
// @exclude *://*.cronista.com/*
// @exclude *://*.diariocordoba.com/*
// @exclude *://*.diariovasco.com/*
// @exclude *://*.elconfidencial.com/*
// @exclude *://*.elcorreo.com/*
// @exclude *://*.elespanol.com/*
// @exclude *://*.elespectador.com/*
// @exclude *://*.elmercurio.com/*
// @exclude *://*.elpais.com/*
// @exclude *://elpais.com/*
// @exclude *://*.elperiodico.com/*
// @exclude *://*.elperiodicodearagon.com/*
// @exclude *://*.elperiodicoextremadura.com/*
// @exclude *://*.elperiodicomediterraneo.com/*
// @exclude *://*.eltiempo.com/*
// @exclude *://*.eltribuno.com/*
// @exclude *://*.eluniverso.com/*
// @exclude *://*.exame.com/*
// @exclude *://*.expansion.com/*
// @exclude *://*.faz.net/*
// @exclude *://*.globo.com/*
// @exclude *://*.handelsblatt.com/*
// @exclude *://*.ilsole24ore.com/*
// @exclude *://*.jeuneafrique.com/*
// @exclude *://*.journaldunet.com/*
// @exclude *://*.larioja.com/*
// @exclude *://*.latercera.com/*
// @exclude *://*.lavenir.net/*
// @exclude *://*.ledevoir.com/*
// @exclude *://*.lerevenu.com/*
// @exclude *://*.lesinrocks.com/*
// @exclude *://*.levante-emv.com/*
// @exclude *://*.loeildelaphotographie.com/*
// @exclude *://*.marca.com/*
// @exclude *://*.marianne.net/*
// @exclude *://*.parismatch.com/*
// @exclude *://*.parkiet.com/*
// @exclude *://*.politicaexterior.com/*
// @exclude *://*.pourleco.com/*
// @exclude *://*.projectcargojournal.com/*
// @exclude *://*.quotidiano.net/*
// @exclude *://*.railfreight.cn/*
// @exclude *://*.railfreight.com/*
// @exclude *://*.railtech.com/*
// @exclude *://*.reforme.net/*
// @exclude *://*.revistaoeste.com/*
// @exclude *://*.science-et-vie.com/*
// @exclude *://*.topagrar.com/*
// @exclude *://*.tt.com/*
// @exclude *://*.tuttosport.com/*
// @exclude *://*.wochenblatt.com/*
// @grant GM.xmlHttpRequest
// ==/UserScript==
(function() {
//'use strict';
var usa_adv_local_domains = ['al.com', 'cleveland.com', 'lehighvalleylive.com', 'masslive.com', 'mlive.com', 'nj.com', 'oregonlive.com', 'pennlive.com', 'silive.com', 'syracuse.com'];
if (matchDomain('nzherald.co.nz')) {
function nzherald_main() {
if (window.Fusion)
window.Fusion.globalContent.isPremium = false;
}
window.setTimeout(function () {
insert_script(nzherald_main);
}, 100);
}
else if (matchDomain(['thehindu.com', 'thehindubusinessline.com'])) {
function hindu_main() {
if (window) {
window.Adblock = false;
window.isNonSubcribed = false;
}
}
window.setTimeout(function () {
insert_script(hindu_main);
}, 100);
}
else if (matchDomain(usa_adv_local_domains)) {
function adv_main() {
if (window.adiData) {
window.adiData.entryTags = 0;
}
}
window.setTimeout(function () {
insert_script(adv_main);
}, 100);
}
var func_post;
var fetch_headers = {};
window.setTimeout(function () {
var domain;
var mobile = window.navigator.userAgent.toLowerCase().includes('mobile');
var csDoneOnce;
var cs_param = {};
var overlay = document.querySelector('body.didomi-popup-open');
if (overlay)
overlay.classList.remove('didomi-popup-open');
var ads = 'div.OUTBRAIN, div[id^="taboola-"], div.ad-container, div[class*="-ad-container"], div[class*="_ad-container"], div.arc_ad, div[id^="poool-"], amp-ad, amp-embed[type="mgid"], amp-embed[type="outbrain"], amp-embed[type="taboola"]';
hideDOMStyle(ads, 10);
var ca_torstar_domains = ['niagarafallsreview.ca', 'stcatharinesstandard.ca', 'thepeterboroughexaminer.com', 'therecord.com', 'thespec.com', 'thestar.com', 'wellandtribune.ca'];
var ke_nation_media_domains = ['businessdailyafrica.com', 'nation.africa'];
var medium_custom_domains = ['betterprogramming.pub', 'towardsdatascience.com'];
var no_dn_media_domains = ['dn.no', 'europower.no', 'fiskeribladet.no', 'hydrogeninsight.com', 'intrafish.com', 'intrafish.no', 'rechargenews.com', 'tradewindsnews.com', 'upstreamonline.com'];
var sg_sph_media_domains = ['businesstimes.com.sg', 'straitstimes.com'];
var timesofindia_domains = ['epaper.indiatimes.com', 'timesofindia.indiatimes.com'];
var uk_nat_world_domains = ['scotsman.com', 'yorkshirepost.co.uk'];
var usa_arizent_custom_domains = ['accountingtoday.com', 'benefitnews.com', 'bondbuyer.com', 'dig-in.com', 'financial-planning.com', 'nationalmortgagenews.com'];
var usa_conde_nast_domains = ['architecturaldigest.com', 'bonappetit.com', 'cntraveler.com', 'epicurious.com', 'gq.com' , 'newyorker.com', 'vanityfair.com', 'vogue.co.uk', 'vogue.com', 'wired.com'];
var usa_craincomm_domains = ['360dx.com', 'adage.com', 'chicagobusiness.com', 'crainscleveland.com', 'crainsdetroit.com', 'crainsgrandrapids.com', 'crainsnewyork.com', 'european-rubber-journal.com', 'genomeweb.com', 'modernhealthcare.com', 'pionline.com', 'plasticsnews.com', 'precisionmedicineonline.com', 'rubbernews.com', 'sustainableplastics.com', 'tirebusiness.com', 'utech-polyurethane.com'];
var usa_gannett_domains = ['azcentral.com', 'cincinnati.com', 'commercialappeal.com', 'courier-journal.com', 'democratandchronicle.com', 'desmoinesregister.com', 'detroitnews.com', 'dispatch.com', 'freep.com', 'indystar.com', 'jacksonville.com', 'jsonline.com', 'knoxnews.com', 'news-press.com', 'northjersey.com', 'oklahoman.com', 'statesman.com', 'tennessean.com'];
var usa_hearst_comm_domains = ['ctpost.com', 'expressnews.com', 'houstonchronicle.com', 'nhregister.com', 'sfchronicle.com', 'timesunion.com'];
var usa_lee_ent_domains = ['buffalonews.com', 'journalnow.com', 'journalstar.com', 'madison.com', 'nwitimes.com', 'omaha.com', 'richmond.com', 'stltoday.com', 'tucson.com', 'tulsaworld.com'];
var usa_mcc_domains = ['bnd.com', 'charlotteobserver.com', 'elnuevoherald.com', 'fresnobee.com', 'kansas.com', 'kansascity.com', 'kentucky.com', 'mcclatchydc.com', 'miamiherald.com', 'newsobserver.com', 'sacbee.com', 'star-telegram.com', 'thestate.com', 'tri-cityherald.com'];
var usa_mng_domains = ['bostonherald.com', 'denverpost.com', 'eastbaytimes.com', 'mercurynews.com', 'ocregister.com', 'pressenterprise.com', 'sandiegouniontribune.com', 'twincities.com'];
var usa_nymag_domains = ['curbed.com', 'grubstreet.com', 'nymag.com', 'thecut.com', 'vulture.com'];
var usa_outside_mag_domains = ["backpacker.com", "betamtb.com", "betternutrition.com", "cleaneatingmag.com", "climbing.com", "outsideonline.com", "oxygenmag.com", "skimag.com", "trailrunnermag.com", "triathlete.com", "vegetariantimes.com", "womensrunning.com", "yogajournal.com"];
var usa_penske_media_domains = ['billboard.com', 'rollingstone.com', 'sourcingjournal.com', 'sportico.com', 'variety.com', 'wwd.com'];
var usa_tribune_domains = ['baltimoresun.com', 'capitalgazette.com', 'chicagotribune.com', 'courant.com', 'dailypress.com', 'mcall.com', 'nydailynews.com', 'orlandosentinel.com', 'pilotonline.com', 'sun-sentinel.com'];
if (matchDomain('gitflic.ru')) {
if (window.location.pathname.startsWith('/project/magnolia1234/bpc_uploads') && document.head) {
let sheet = document.createElement('style');
let path_short = window.location.pathname.replace('/project/magnolia1234/bpc_uploads', '');
if (!path_short)
sheet.innerText = 'div[data-cell-type="commit"], div[data-cell-type="date"] {display: none !important;} div[data-cell-type="filename"] {flex: 0 0 100% !important;}';
else if (path_short.match(/^\/(blob|file)/))
sheet.innerText = 'div.project-files-tree, div.project-files-list {flex: 0 0 50% !important; max-width: 50% !important;}';
if (sheet.innerText)
document.head.appendChild(sheet);
}
}
if (matchDomain('medium.com') || matchDomain(medium_custom_domains) || document.querySelector('head > link[href*=".medium.com/"]')) {
let url = window.location.href;
let paywall = document.querySelector('article.meteredContent');
if (paywall) {
paywall.removeAttribute('class');
let header = paywall.querySelector('h1');
if (header) {
header.before(freediumLink(url));
header.before(readMediumLink(url));
}
}
window.setTimeout(function () {
let banner = pageContains('div > div > p', /author made this story available to/);
if (banner.length)
removeDOMElement(banner[0].parentNode.parentNode);
}, 1000);
}
else if (window.location.hostname.match(/\.(au|nz)$/) || matchDomain(['afr.com'])) {//australia & new zealand
if (matchDomain('afr.com')) {
let error = document.querySelector('div[data-testid="DefaultError"]');
if (error)
refreshCurrentTab();
let article_sel = '#endOfArticle:not(:empty)';
let article = document.querySelector(article_sel);
if (!article) {
article_sel = 'section#body-content';
article = document.querySelector(article_sel);
}
if (article) {
window.setTimeout(function () {
let pars = article.querySelectorAll('p:not([class]), figure:not(:empty)');
let pagination = document.querySelector('div > span#pagination-top');
if ((pars.length && pars.length < 5) || pagination) {
if (pagination) {
removeDOMElement(pagination.parentNode);
} else {
let loading = pageContains(article_sel + ' div', 'Loading...');
removeDOMElement(...pars, ...loading);
}
let url = window.location.href.split(/[#\?]/)[0];
fetch(url)
.then(response => {
if (response.ok) {
response.text().then(html => {
if (html.includes('__REDUX_STATE__=')) {
try {
let json = JSON.parse(html.split('__REDUX_STATE__=')[1].split('};')[0].replace(/:undefined([,}])/g, ':"undefined"$1') + '}');
if (json) {
let placeholders;
function find_item(match, p1, offset, string) {
let placeholder_id = p1;
let result = '';
if (placeholder_id && placeholders[placeholder_id]) {
let item = placeholders[placeholder_id];
if (item.data) {
if (['linkArticle', 'linkExternal'].includes(item.type)) {
if (item.data.text) {
if (item.data.url)
result = '<a href="' + item.data.url + '"' + (item.data.newTab ? 'target="_blank"' : '') + '>' + item.data.text + '</a>';
else
result = item.data.text;
}
} else if (item.type === 'image') {
if (item.data.fileName)
result = '<figure><img src="https://static.ffx.io/images/w_960/' + item.data.fileName + '" style="width: 100%;"><figcaption>' + (item.data.caption ? item.data.caption : '') + (item.data.source ? '<span style="font-weight: bold;">&nbsp;' + item.data.source + '</span>' : '') + '</figcaption></figure>';
} else if (item.type === 'youtube') {
if (item.data.url) {
if (item.data.url.includes('watch?v='))
result = '<iframe src="' + item.data.url.replace('watch?v=', 'embed/') + '" style="width: 100%; height: 400px;"></iframe>';
else
result = '<a href="' + item.data.url + '" target="_blank">' + item.data.url + '</a>';
}
} else if (['instagram', 'twitter'].includes(item.type)) {
if (item.data.url)
result = '<a href="' + item.data.url + '" target="_blank">' + item.data.url + '</a>';
} else if (item.type === 'iframe') {
if (item.data.url)
result = '<iframe src="' + item.data.url + '" style="width: 100%; height: 200px; border: none;"></iframe>';
} else if (!['callout', 'quote', 'relatedStory', 'video'].includes(item.type)) {
console.log(item);
}
}
}
return result;
}
let json_text = json.page.content.asset.body;
if (json_text) {
placeholders = json.page.content.asset.bodyPlaceholders;
if (placeholders)
json_text = json_text.replace(/<x-placeholder id="(\w+)"><\/x-placeholder>/g, find_item);
let parser = new DOMParser();
let doc = parser.parseFromString('<div id="endOfArticle">' + json_text + '</div>', 'text/html');
let content_new = doc.querySelector('div');
if (article_sel.startsWith('#endOfArticle'))
article.parentNode.replaceChild(content_new, article);
else
article.firstChild.before(content_new);
addStyle(article_sel + ' p {margin: 20px 0px;}');
} else {
let parser = new DOMParser();
let first = true;
let posts = json.page.content.asset.posts;
for (let post of posts) {
if (first) {
first = false;
continue;
}
let asset = post.asset;
if (asset && asset.body) {
let json_text = asset.body;
placeholders = asset.bodyPlaceholders;
if (placeholders)
json_text = json_text.replace(/<x-placeholder id="(\w+)"><\/x-placeholder>/g, find_item);
let doc = parser.parseFromString('<section>' + json_text + '</section>', 'text/html');
let par = doc.querySelector('section');
let header;
if (asset.headlines && asset.headlines.headline) {
header = document.createElement('h2');
header.innerText = asset.headlines.headline;
header.id = post.id;
}
let byline;
if (asset.byline) {
byline = document.createElement('p');
byline.innerText = asset.byline;
byline.style = 'margin-bottom: 24px;'
}
article.append(header, byline, par);
}
}
addStyle('section:not([class]) > p {margin: 24px 0px;}');
let key_posts = document.querySelectorAll('li > a[href*="?post="]');
for (let elem of key_posts)
elem.href = elem.href.replace('?post=', '#');
}
}
} catch (err) {
console.log(err);
}
}
});
}
}).catch(function (err) {
false;
});
}
}, 1000);
}
}
else if (matchDomain('businessdesk.co.nz')) {
let paywall = document.querySelector('div.paywall');
if (paywall) {
paywall.classList.remove('paywall');
let signup_box = document.querySelector('div.signup-box-container');
removeDOMElement(signup_box);
let url = window.location.href.split(/[#\?]/)[0];
fetch(url, {headers: {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}})
.then(response => {
if (response.ok) {
response.text().then(html => {
let match = html.match(/:query="'([^"]+)'"/);
if (match) {
let parser = new DOMParser();
let src_text = breakText(parseHtmlEntities(match[1])).replace(/\n\n/g, '<br><br>').replace(/\.([^\s\d]|&)/g, ". $1");
let doc = parser.parseFromString('<div>' + src_text + '</div>', 'text/html');
let content_new = doc.querySelector('div');
paywall.innerHTML = '';
paywall.appendChild(content_new);
}
})
}
})
}
}
else if (matchDomain(['crikey.com.au', 'smartcompany.com.au', 'themandarin.com.au'])) {
let ads = 'div.wp-block-pm-ad-placeholder-block';
hideDOMStyle(ads);
}
else if (matchDomain('forbes.com.au')) {
setCookie('blaize_session', '', 'forbes.com.au', '/', 0);
getJsonUrl('div[class*="_gate"]', '', 'div.article-page__content-body');
let fade = document.querySelector('div[style*="background-image: linear-gradient"]');
removeDOMElement(fade);
}
else if (matchDomain('macrobusiness.com.au')) {
let paywall = pageContains('div > p', 'The full text of this article is available');
if (paywall[0]) {
let fade = document.querySelector('div.bg-gradient-to-t');
removeDOMElement(paywall[0].parentNode, fade);
let json_script = document.querySelector('script#__NUXT_DATA__');
if (json_script) {
try {
let json = JSON.parse(json_script.text);
let json_text = json.filter(x => typeof x === 'string' && x.match(/(<|\\u003C)p>/))[0];
let parser = new DOMParser();
let doc = parser.parseFromString('<div>' + json_text + '</div>', 'text/html');
let content_new = doc.querySelector('div');
let article = document.querySelector('div.content');
if (article) {
article.innerHTML = '';
article.appendChild(content_new);
}
} catch (err) {
console.log(err);
}
}
}
}
else if (matchDomain('nzherald.co.nz')) {
// use bpc adblocker filter
let premium_toaster = '#premium-toaster';
hideDOMStyle(premium_toaster);
}
else if (matchDomain('spectator.com.au')) {
getJsonUrl('section.paywall', '', 'div.article-body', {art_append: 1});
}
else if (matchDomain('thesaturdaypaper.com.au')) {
let hide_end = document.querySelector('div.hide-end');
if (hide_end)
refreshCurrentTab();
let paywall = document.querySelector('div.paywall-hard-always-show');
removeDOMElement(paywall);
}
else if (matchDomain(['brisbanetimes.com.au', 'smh.com.au', 'theage.com.au', 'watoday.com.au'])) {
if (!window.location.hostname.startsWith('amp.')) {
amp_redirect('head > meta[content^="FOR SUBSCRIBERS"], #paywall_prompt');
} else {
amp_unhide_subscr_section();
}
}
else {
// Australian Community Media newspapers
let au_comm_media_domains = ['bendigoadvertiser.com.au', 'bordermail.com.au', 'canberratimes.com.au', 'centralwesterndaily.com.au', 'dailyadvertiser.com.au', 'dailyliberal.com.au', 'examiner.com.au', 'illawarramercury.com.au', 'newcastleherald.com.au', 'northerndailyleader.com.au', 'standard.net.au', 'theadvocate.com.au', 'thecourier.com.au', 'westernadvocate.com.au'];
let au_comm_media_link = document.querySelector('a[href^="https://austcommunitymedia.my.site.com/"]');
if (matchDomain(au_comm_media_domains) || au_comm_media_link) {
let mask = document.querySelector('div[class^="gradient-mask-"]');
if (mask) {
mask.removeAttribute('class');
let div_hidden = document.querySelectorAll('div.flex-col div.hidden');
for (let elem of div_hidden)
elem.classList.remove('hidden');
} else {
let subscribe_truncate = document.querySelector('.subscribe-truncate');
if (subscribe_truncate)
subscribe_truncate.classList.remove('subscribe-truncate');
let subscriber_hiders = document.querySelectorAll('.subscriber-hider');
for (let subscriber_hider of subscriber_hiders)
subscriber_hider.classList.remove('subscriber-hider');
}
let noscroll = document.querySelectorAll('html[style], body[style]');
for (let elem of noscroll)
elem.removeAttribute('style');
let story_generic_iframe = '.story-generic__iframe';
let blocker = 'div.blocker';
let overlays = 'div.transition-all, div[id^="headlessui-dialog"]';
let ads = '.ad-placeholder, .sticky, [id*="-container"], #hindsight-ads-iframe';
hideDOMStyle(story_generic_iframe + ', ' + blocker + ', ' + overlays + ', ' + ads);
} else if (window.location.hostname.endsWith('.com.au')) {
// Australia News Corp
let au_news_corp_domains = ['adelaidenow.com.au', 'cairnspost.com.au', 'codesports.com.au', 'couriermail.com.au', 'dailytelegraph.com.au', 'geelongadvertiser.com.au', 'goldcoastbulletin.com.au', 'heraldsun.com.au', 'theaustralian.com.au', 'thechronicle.com.au', 'themercury.com.au', 'townsvillebulletin.com.au', 'weeklytimesnow.com.au'];
if (matchDomain(au_news_corp_domains) || matchDomain('ntnews.com.au')) {
let url = window.location.href;
if (window.location.pathname.startsWith('/subscribe/') && !url.includes('/digitalprinteditions')) {
let og_url = document.querySelector('head > meta[property="og:url"][content]');
if (og_url) {
let url_new = og_url.content;
if (matchDomain('ntnews.com.au')) {
let article = document.querySelector('div.dsf-article-preview');
if (article) {
article.before(googleSearchToolLink(url_new));
}
} else {
url_new += '?amp';
window.setTimeout(function () {
window.location.href = url_new;
}, 500);
}
}
} else if (window.location.search.match(/[&\?]amp/)) {
amp_unhide_subscr_section('[id^="ad-mrec-"]', false);
let figure_stretch = document.querySelectorAll('figure.stretch');
for (let elem of figure_stretch)
elem.classList.remove('stretch');
let comments = document.querySelector('#comments-load, .comments-module');
removeDOMElement(comments);
} else {
if (window.location.pathname.includes('/video/') && document.querySelector('div.vms-premium-video'))
header_nofix('div.video-hub');
let ads = '.header_ads-container, .ad-block';
hideDOMStyle(ads);
}
} else {
// Australian Seven West Media
if (matchDomain('thewest.com.au') || document.querySelector('head > link[href="https://images.thewest.com.au"]')) {
function thewest_main(node) {
let filter = /^window\.PAGE_DATA\s?=\s?/;
let json_script = getSourceJsonScript(filter);
if (json_script) {
let json_text = json_script.text.split(filter)[1];
json_text = json_text.replace(/:undefined([,}])/g, ':"undefined"$1');
try {
let json_article = JSON.parse(json_text);
let json_pub;
for (let key in json_article) {
let json_resolution = json_article[key].data.result.resolution;
if (json_resolution && json_resolution.publication) {
json_pub = json_resolution.publication;
break;
}
}
let json_content = [];
let url_loaded;
if (json_pub) {
json_content = json_pub.content.blocks;
url_loaded = json_pub._self;
} else
refreshCurrentTab();
//let json_video = json_pub.mainVideo;
let url = window.location.href;
if (!url_loaded || !url.includes(url_loaded.slice(-10)))
refreshCurrentTab();
let par_elem, par_sub1, par_sub2;
let par_dom = document.createElement('div');
let tweet_id = 1;
for (let par of json_content) {
par_elem = '';
if (par.kind === 'text') {
par_elem = document.createElement('p');
par_elem.innerText = par.text;
} else if (par.kind === 'subhead') {
par_elem = document.createElement('h2');
par_elem.innerText = par.text;
} else if (par.kind === 'pull-quote') {
par_elem = document.createElement('i');
par_elem.innerText = (par.attribution ? par.attribution + ': ' : '') + par.text;
} else if (par.kind === 'embed') {
if (par.reference.includes('https://omny.fm/') || par.reference.includes('https://docdro.id/')) {
par_elem = document.createElement('embed');
par_elem.src = par.reference;
par_elem.style = 'height:500px; width:100%';
par_elem.frameborder = '0';
} else {
par_elem = document.createElement('a');
par_elem.href = par.reference;
par_elem.innerText = par.reference.split('?')[0];
console.log('embed: ' + par.reference);
}
} else if (par.kind === 'unordered-list') {
if (par.items) {
par_elem = document.createElement('ul');
for (let item of par.items)
if (item.text) {
par_sub1 = document.createElement('li');
if (item.intentions[0] && item.intentions[0].href) {
par_sub2 = document.createElement('a');
par_sub2.href = item.intentions[0].href;
} else {
par_sub2 = document.createElement('span');
}
par_sub2.innerText = item.text;
par_sub1.appendChild(par_sub2);
par_elem.appendChild(par_sub1);
}
}
} else if (par.kind === 'inline') {
if (par.asset.kind === 'image' && par.asset.original && par.asset.original.reference) {
par_elem = makeFigure(par.asset.original.reference, par.asset.captionText, {style: 'width:100%'});
}
} else if (par.kind === 'inline-related') {
par_elem = document.createElement('p');
if (par.publications) {
for (let elem of par.publications) {
let par_link = document.createElement('a');
par_link.href = elem._self;
par_link.innerText = elem.heading;
par_elem.appendChild(par_link);
par_elem.appendChild(document.createElement('br'));
}
}
} else {
par_elem = document.createElement('p');
par_elem.innerText = par.text;
console.log(par.kind);
}
if (par_elem)
par_dom.appendChild(par_elem);
}
let content = document.querySelector('div[class*="StyledArticleContent"]');
if (content) {
content.innerHTML = '';
content.appendChild(par_dom);
} else {
par_dom.setAttribute('style', 'margin: 20px;');
node.before(par_dom);
}
} catch (err) {
console.log(err);
}
}
removeDOMElement(node);
}
let paywall_sel = 'div.paywall div[data-testid*="BreachScreen"], div[class*="StyledBreachWallContent"]';
let paywall = document.querySelector(paywall_sel);
if (paywall)
thewest_main(paywall);
else {
waitDOMElement(paywall_sel, 'DIV', thewest_main, true);
}
let ads = 'div.headerAdvertisement, div.disabled-ad';
hideDOMStyle(ads);
} else if (document.querySelector('head > link[rel="dns-prefetch"][href="//static.ew.mmg.navigacloud.com"]')) { // McPherson Media Group
let paywall = document.querySelector('div#content-Load-message');
if (paywall) {
removeDOMElement(paywall);
let lockable = document.querySelectorAll('div[id^="lockable-"]');
for (let elem of lockable) {
elem.removeAttribute('style');
elem.removeAttribute('id');
}
let gradient = document.querySelector('div.gradienttext');
if (gradient)
gradient.removeAttribute('class');
}
}
}
}
}
} else if ((window.location.hostname.match(/\.(ie|uk)$/) && !matchDomain(['vogue.co.uk'])) || matchDomain(['apollo-magazine.com', 'autosport.com', 'decanter.com', 'fnlondon.com', 'ft.com', 'gbnews.com', 'granta.com', 'motorsportmagazine.com', 'newstatesman.com', 'scotsman.com', 'tes.com', 'thelawyer.com', 'thetimes.com', 'unherd.com'])) {//united kingdom/ireland
if (matchDomain('apollo-magazine.com')) {
setCookie('blaize_session', '', 'apollo-magazine.com', '/', 0);
let banner = document.querySelector('#subscribe-ribbon');
removeDOMElement(banner);
}
else if (matchDomain('autocar.co.uk')) {
let paywall = document.querySelector('div.ms-block, div.register-block');
if (paywall) {
removeDOMElement(paywall);
let json_script = getArticleJsonScript();
if (json_script) {
let json = JSON.parse(json_script.text);
if (json) {
let json_text = json.articleBody;
let article = document.querySelector('div.block-node');
if (json_text && article) {
article.innerHTML = '';
let article_new = document.createElement('p');
article_new.innerText = json_text;
let fade = document.querySelector('div.article-section > div[style*="max-height"]');
removeDOMElement(fade);
let url = window.location.href;
article.append(article_new, 'Text-only > for missing media/links: ', googleSearchToolLink(url));
}
}
}
}
let ads = 'div[class*="-ads-"]';
hideDOMStyle(ads);
}
else if (matchDomain('autosport.com')) {
header_nofix('div.ms-article-content > p', 'div.ms-piano_article-banner');
}
else if (matchDomain(['belfasttelegraph.co.uk', 'independent.ie'])) {
let paywall = document.querySelector('div[class*="_fadetowhite"]');
if (paywall) {
let content = document.querySelector('script[data-fragment-type="ArticleContent"]');
if (content) {
removeDOMElement(paywall);
let flip_pay = 'div#flip-pay';
hideDOMStyle(flip_pay, 5);
let intro = document.querySelector('div > div[data-auth-intro="article"]');
if (intro) {
let intro_par = intro.querySelector('p[class]');
let intro_par_class;
if (intro_par)
intro_par_class = intro_par.getAttribute('class');
let content_text = content.innerText;
if (content_text.includes('__PRELOADED_STATE_GRAPH')) {
content_text = content_text.replace(/window\["__PRELOADED_STATE_GRAPH__.+"\]\s=\s/, '');
try {
let json = JSON.parse(content_text);
if (Object.keys(json).length) {
let key = Object.keys(json)[0];
let pars = json[key].data.article.body;
let parser = new DOMParser();
for (let par of pars) {
for (let type in par) {
let item = par[type];
let elem = document.createElement('p');
elem.setAttribute('style', "margin: 10px;");
if (type === 'bullet_list') {
let ul = document.createElement('ul');
for (let sub_item of item) {
li.innerText = parseHtmlEntities(sub_item.replace(/<[^<]*>/g, ''));
li.innerText = sub_item;
ul.appendChild(li);
}
elem.appendChild(ul);
} else if (type === 'image') {
let url = item.url;
if (item.cropped && item.cropped.url)
url = item.cropped.url;
let figure = makeFigure(url, item.caption);
elem.appendChild(figure);
} else if (type === 'related') {
if (item.articles) {
let articles = item.articles;
for (let article of articles) {
let elem_link = document.createElement('a');
elem_link.href = article.webcmsRelativeUrl;
elem_link.innerText = article.title;
elem_link.style = 'text-decoration: underline;';
elem.append(elem_link, document.createElement('br'));
}
}
} else if (!['ad', 'quote', 'streamone'].includes(type)) {
let html = parser.parseFromString('<p class="' + intro_par_class + '">' + item + '</p>', 'text/html');
elem = html.querySelector('p');
let error_iframes = elem.querySelectorAll('iframe[allow*="fullscreen"][allowfullscreen]');
for (let iframe of error_iframes)
iframe.removeAttribute('allowfullscreen');
if (!['p', 'subhead', 'legacy-ml'].includes(type)) {
console.log(type);
console.log(item);
}
}
window.setTimeout(function () {
if (elem)
intro.parentNode.appendChild(elem);
}, 500);
}
}
}
} catch (err) {
console.log(err);
}
}
}
}
}
let ads = 'div.ad';
hideDOMStyle(ads);
}
else if (matchDomain('businesspost.ie')) {
function bpie_main() {
if ($) {
let article_id_dom = document.querySelector('article[id]');
let article_id;
if (article_id_dom)
article_id = article_id_dom.id;
if (article_id) {
let bp_ajaxurl = 'https://www.businesspost.ie/wp-admin/admin-ajax.php';
let data_ajax = {
action: 'fetch_article_content',
type: 'POST',
data: {
id: article_id
},
dataType: 'json',
contentType: 'application/json'
};
$.ajax({
type: 'POST',
url: bp_ajaxurl,
data: data_ajax,
success: function (data) {
$('main article .article-body-section').html(data);
}
});
}
} else
refreshCurrentTab();
}
window.setTimeout(function () {
let paywall = document.querySelector('div#bp_paywall_content');
let article_id_dom = document.querySelector('article[id]');
let article_id;
if (article_id_dom)
article_id = article_id_dom.id;
if (paywall || article_id) {
removeDOMElement(paywall);
insert_script(bpie_main);
}
}, 500);
}
else if (matchDomain('decanter.com')) {
let paywall = document.querySelector('div[id^="react_subscriber_content_"]');
if (paywall) {
removeDOMElement(paywall);
let data = document.querySelector('div[data-dom-id^="react_subscriber_content_"][data-props]');
if (data) {
try {
let json = JSON.parse(data.getAttribute('data-props'));
if (json && json.content) {
let content = decode_utf8(atob(json.content));
let parser = new DOMParser();
let doc = parser.parseFromString('<div>' + content + '</div>', 'text/html');
let content_new = doc.querySelector('div');
data.before(content_new);
header_nofix('div.collection-wrapper', '', 'BPC > no fix for reviews');
let fade = 'div.piano-container-fade';
hideDOMStyle(fade);
}
} catch (err) {
console.log(err);
}
}
}
}
else if (matchDomain('fnlondon.com')) {
func_post = function () {
if (mobile) {
let lazy_images = document.querySelectorAll('picture > img[loading="lazy"][style]');
for (let elem of lazy_images) {
elem.style = 'width: 95%;';
elem.parentNode.removeAttribute('style');
}
}
}
let url = window.location.href;
getArchive(url, 'div[data-testid="articleSignInSubscribeWrapper"]', '', 'article');
let fade = 'div#cx-snippet';
hideDOMStyle(fade);
function fnlondon_main(node) {
window.setTimeout(function () {
let signin_links = node.querySelectorAll('a[href^="https://www.fnlondon.com/client/login?target="]');
for (let elem of signin_links) {
elem.href = '#';//elem.href.split('target=')[1].split('&')[0];
elem.innerText = 'Open';
elem.addEventListener('click', function () { window.location.reload(); });
}
}, 500);
}
waitDOMElement('div[id^="continuous_article_"]', 'DIV', fnlondon_main, true);
}
else if (matchDomain('ft.com')) {
func_post = function () {
let lazy_images = document.querySelectorAll('figure > picture > img[loading="lazy"][src^="data:image/gif"][new-cursrc]');
for (let elem of lazy_images) {
elem.removeAttribute('loading');
elem.style = 'width: 100%;';
let figure = elem.parentNode.parentNode;
if (figure.parentNode && figure.parentNode.nodeName === 'DIV')
figure.parentNode.removeAttribute('style');
elem.src = elem.getAttribute('new-cursrc');
}
if (mobile) {
let grids = document.querySelectorAll('div[style*="grid-template-areas"], article#site-content');
for (let elem of grids)
elem.style = 'margin: 10px;';
}
}
let url = window.location.href;
getArchive(url, 'div#barrier-page', '', 'div.n-layout__row--content', '', 'div[style*="article-body"]', 'body');
}
else if (matchDomain('gbnews.com')) {
let ads = 'div.ad--billboard, div.ad--placeholder, div.video-inbody';
hideDOMStyle(ads);
}
else if (matchDomain('granta.com')) {
getJsonUrl('div.article-sign-up-container', '', 'div.article-excerpt');
}
else if (matchDomain('literaryreview.co.uk')) {
getJsonUrl('p.subscribe-for-more', '', 'div#_articlereview');
}
else if (matchDomain('motorsportmagazine.com')) {
getJsonUrl('aside.paywall', '', 'div[data-behaviour="post-content"]');
let banner = document.querySelector('div[data-behaviour="react-paywall-threshold"]');
removeDOMElement(banner);
let ads = 'aside.ad-space';
hideDOMStyle(ads);
}
else if (matchDomain('newstatesman.com')) {
let ads = 'div.ad';
hideDOMStyle(ads);
}
else if (matchDomain('spectator.co.uk')) {
setCookie(['blaize_session', 'userArticleViews'], '', 'spectator.co.uk', '/', 0);
let paywall_sel = 'section.paywall, div.paywall-magazine';
let entry_content = document.querySelector('div.entry-content');
if (entry_content)
getJsonUrl(paywall_sel, '', 'div.entry-content', {art_append: 1});
else
getJsonUrl(paywall_sel, '', 'div.entry-content__wrapper', {art_append:1, art_hold:1, art_class: 'entry-content'});
let ads = '#subscribe-ribbon, div.ad-slot, div[style*="background-image: linear-gradient"]';
hideDOMStyle(ads);
}
else if (matchDomain('stylist.co.uk')) {
let paywall = document.querySelector('div[data-testid="paywall-component"]');
if (paywall) {
removeDOMElement(paywall);
let json_script = document.querySelector('script#__NEXT_DATA__');
if (json_script) {
try {
let json = JSON.parse(json_script.text);
if (json.props.pageProps.data.post.acf.widgets) {
let url_next = json.props.pageProps.data.post.id;
if (url_next && !window.location.pathname.endsWith(url_next))
refreshCurrentTab();
let pars = json.props.pageProps.data.post.acf.widgets;
let first_par = document.querySelector('main div[data-column="true"] > p');
if (first_par) {
let article = first_par.parentNode;
let teaser = article.querySelectorAll('div > p:not([class])');
removeDOMElement(...teaser);
if (article) {
let parser = new DOMParser();
for (let par of pars) {
let elem = document.createElement('p');
if (par.paragraph) {
let content = par.paragraph;
let content_new = parser.parseFromString('<div>' + content + '</div>', 'text/html');
elem = content_new.querySelector('div');
} else if (par.acf_fc_layout === 'heading') {
if (par.text)
elem.appendChild(document.createTextNode(par.text));
} else if (['image', 'interactive_image'].includes(par.acf_fc_layout)) {
let image_array = [];
if (par.image)
image_array = [par.image];
else if (par.image_collection)
image_array = par.image_collection;
for (let img_elem of image_array) {
let figure = makeFigure(img_elem.url, img_elem.caption ? (img_elem.caption + ' ' + img_elem.description) : img_elem.alt, {alt: img_elem.alt, style: 'width: 95%;'});
elem.appendChild(figure);
}
} else if (par.acf_fc_layout === 'listicle') {
let ul = document.createElement('ul');
for (let sub_item of par.item) {
let li = document.createElement('li');
if (sub_item.url) {
let par_link = document.createElement('a');
par_link.href = sub_item.url;
par_link.innerText = sub_item.title;
par_link.target = '_blank';
li.appendChild(par_link);
} else
li.innerText = sub_item.title;
if (sub_item.paragraph) {
let content = sub_item.paragraph;
let content_new = parser.parseFromString('<div>' + content + '</div>', 'text/html');
let par_elem = content_new.querySelector('div');
li.appendChild(par_elem);
}
if (sub_item.image) {
let img = document.createElement('img');
img.src = sub_item.image.url;
img.alt = sub_item.image.alt;
img.style = 'width: 95%;';
li.appendChild(img);
li.appendChild(document.createElement('br'));
}
li.style = 'font-size: 20px; margin: 20px 0px;';
ul.appendChild(li);
}
elem.appendChild(ul);
} else if (par.embed_link) {
let par_link = document.createElement('a');
par_link.href = par.embed_link;
par_link.innerText = 'Embedded link: ' + par.embed_link;
par_link.target = '_blank';
elem.appendChild(par_link);
} else if (par.acf_fc_layout === 'divider') {
elem.appendChild(document.createElement('hr'));
} else if (par.acf_fc_layout === 'related_articles') {
if (par.posts) {
for (let post of par.posts) {
if (post.link && post.title.rendered) {
let par_link = document.createElement('a');
par_link.href = post.link;
par_link.innerText = 'You may also like: ' + post.title.rendered;
elem.appendChild(par_link);
elem.appendChild(document.createElement('br'));
}
}
}
} else if (!['newsletter_signup', 'pull-quote'].includes(par.acf_fc_layout))
console.log(par);
if (elem.hasChildNodes()) {
elem.style = 'font-family: "Source Serif Pro"; font-size: 20px; line-height: 34px;';
article.appendChild(elem);
}
}
}
}
}
} catch (err) {
console.log(err);
}
}
}
}
else if (matchDomain('telegraph.co.uk')) {
let subwall = '[class^="subwall"]';
let ads = '.advert, .commercial-unit';
hideDOMStyle(subwall + ', ' + ads);
}
else if (matchDomain('tes.com')) {
let paywall = document.querySelector('div.tg-paywall-message');
if (paywall) {
removeDOMElement(paywall);
let overlay = document.querySelector('div.tg-paywall-body-overlay');
if (overlay)
overlay.removeAttribute('class');
}
let banner = document.querySelector('div.js-paywall-info');
removeDOMElement(banner);
}
else if (matchDomain('the-tls.co.uk')) {
getJsonUrl('div.tls-single-article__closed-paywall', '', 'div.tls-article-body', {art_class: 'tls-article-body'});
let fade = 'div.tls-single-article__closed-paywall-wrapper';
let ads = 'div[class*="tls-single-article__ad-slot"]';
hideDOMStyle(fade + ', ' + ads);
}
else if (matchDomain('thelawyer.com')) {
if (window.location.pathname.startsWith('/mda/')) {
header_nofix('div.sf-content__post', 'div.sf-login-form', 'BPC > no fix');
} else if (true) {
let body = document.querySelector('body[class*="postid-"]');
if (body) {
let article_id = body.className.split('postid-')[1].split(' ')[0];
if (article_id) {
func_post = function () {
let lazy_images = document.querySelectorAll('img.lazy[data-src]:not([src])');
for (let elem of lazy_images) {
elem.src = elem.getAttribute('data-src');
elem.removeAttribute('class');
}
}
getJsonUrl('div.sf-login-form', '', 'div.sf-content-body__text', {art_append: 1}, article_id, '', false, true);
}
}
}
}
else if (matchDomain('theneweuropean.co.uk')) {
let paywall = document.querySelector('div[data-show-fade-on-noaccess]');
if (paywall) {
removeDOMElement(paywall);
let content = document.querySelector('div[data-show-has-access]');
if (content)
content.removeAttribute('data-show-has-access');
}
let banners = document.querySelectorAll('div[data-show-subs-blocked]');
removeDOMElement(...banners);
}
else if (matchDomain('thenewslens.com')) {
let paywall = document.querySelector('div.article-mask-box');
if (paywall) {
removeDOMElement(paywall);
let json_script = getArticleJsonScript();
if (json_script) {
let json = JSON.parse(json_script.text);
if (json) {
let json_text = json.articleBody;
let article = document.querySelector('section.article-body');
if (json_text && article) {
let article_text = article.innerText.replace(/\n/g, '');
let split = json_text.split('。');
for (let elem of split) {
if (!elem.includes('(function(') && !article_text.includes(elem)) {
let par_new = document.createElement('p');
par_new.innerText = elem + '。';
article.append(par_new);
}
}
}
}
}
}
}
else if (matchDomain('thestage.co.uk')) {
let url = window.location.href;
getArchive(url, 'div#ao-MeteringDNAllow', '', 'div[id^="aos-FeatureArticle2Col-"], div[id^="aos-ReviewArticle-"]');
}
else if (matchDomain(['thesun.co.uk', 'thescottishsun.co.uk'])) {
let ads = 'div.billboard, div.advert-wrapper';
hideDOMStyle(ads);
}
else if (matchDomain('thetimes.com')) {
if (!matchDomain('epaper.thetimes.com')) {
func_post = function () {
let article = document.querySelector(article_sel);
if (article) {
if (mobile) {
let inline_images = article.querySelectorAll('img[style]');
for (let elem of inline_images) {
elem.style = 'display: block; margin-left: auto; margin-right: auto; width: 90%;';
let parent_node = elem.parentNode;
if (parent_node.tagName === 'PICTURE')
parent_node = parent_node.parentNode;
parent_node.removeAttribute('style');
}
}
let embed_iframes = article.querySelectorAll('div > times-embed-iframe-max[src]');
for (let elem of embed_iframes) {
let iframe_link = document.createElement('a');
iframe_link.href = iframe_link.innerText = elem.getAttribute('src');
iframe_link.target = '_blank';
let container = elem.parentNode;
container.parentNode.replaceChild(iframe_link, container);
}
}
}
let article_sel = 'article:not([id]) > div';
if (!window.location.search.startsWith('?shareToken=')) {
let teaser = document.querySelector('body[data-view-name="teaser-article"]');
if (teaser) {
let url = window.location.href;
getArchive(url, 'div#paywall-portal-article-footer', '', article_sel);
let scroll_style = 'html, body {overflow: auto !important;}';
addStyle(scroll_style);
}
}
let banners = 'div#paywall-portal-page-footer, .subscription-block';
let ads = 'div.channel-header-ad, div[id^="advert-"], div[class*="InlineAdWrapper"], div:has(> div > div#ad-header)';
hideDOMStyle(banners + ', ' + ads);
}
}
else if (matchDomain('unherd.com')) {
let preview = document.querySelector('div#premiumpreview');
if (preview) {
removeDOMElement(preview);
let premium = document.querySelector('div#premiumcontent');
if (premium)
premium.removeAttribute('id');
}
}
else if (matchDomain(uk_nat_world_domains) || document.querySelector('footer > div a[href^="https://www.nationalworldplc.com"]')) {
let premium = document.querySelector('div.premium.no-entitlement');
if (premium)
premium.classList.remove('premium', 'no-entitlement');
let ads = 'div[class^="MarkupAds__Container-"], div[class*="_AdContainer-"], div[class^="Dailymotion__Wrapper-"], div.banner';
hideDOMStyle(ads);
}
} else {
if (matchDomain(usa_adv_local_domains)) {
if (!window.location.search.startsWith('?outputType=amp')) {
amp_redirect('div.paywall', '', window.location.pathname + '?outputType=amp');
}
let ads = 'div.ad, div.ad-inner, div.ad-unit, div#below-toprail, div[id^="taboola"]';
hideDOMStyle(ads);
}
else if (matchDomain('adweek.com')) {
setCookie('blaize_session', '', '.www.adweek.com', '/', 0);
let paywall = document.querySelector('div#paywall-subscribe');
if (paywall) {
let fade = document.querySelector('div[style*="linear-gradient"]');
removeDOMElement(paywall, fade);
let json_script = getArticleJsonScript();
if (json_script) {
try {
let json = JSON.parse(json_script.text);
if (json) {
let json_text = json.sharedContent.articleBody;
let content = document.querySelector('div.aw-article-content');
if (json_text && content) {
let url = window.location.href;
content.before(archiveLink(url));
content.innerHTML = '';
let article_new = document.createElement('p');
article_new.innerText = json_text;
content.appendChild(article_new);
}
}
} catch (err) {
console.log(err);
}
}
}
}
else if (matchDomain('ajc.com')) {
let paygate = document.querySelector('div.story-paygate_placeholder');
if (paygate)
paygate.removeAttribute('class');
let video_blocker = document.querySelector('div.video-blocker');
removeDOMElement(video_blocker);
}
else if (matchDomain('americanbanker.com') || matchDomain(usa_arizent_custom_domains)) {
let inline_gate = document.querySelector('.inline-gate');
if (inline_gate) {
inline_gate.classList.remove('inline-gate');
let inline_gated = document.querySelectorAll('.inline-gated');
for (let elem of inline_gated)
elem.classList.remove('inline-gated');
}
}
else if (matchDomain('artnet.com')) {
if (window.location.pathname.endsWith('/amp-page')) {
amp_unhide_subscr_section();
} else {
let body_hidden = document.querySelector('.article-body');
if (body_hidden)
body_hidden.style = 'display:block;';
let banner = document.querySelector('div[id^="issuem-leaky-paywall-"]');
removeDOMElement(banner);
}
}
else if (matchDomain('asia.nikkei.com')) {
let paywall = document.querySelector('div#paywall-offer');
if (paywall) {
removeDOMElement(paywall);
let article = document.querySelector('div#article-body-preview > div');
if (article) {
let json_script = document.querySelector('script#__NEXT_DATA__');
if (json_script) {
try {
let json = JSON.parse(json_script.text);
if (json && json.props.pageProps.data.body) {
let json_text = json.props.pageProps.data.body;
if (!json_text.includes('<div>'))
json_text = '<div>' + json_text + '</div>';
let parser = new DOMParser();
let doc = parser.parseFromString(json_text, 'text/html');
let article_new = doc.querySelector('div');
article.parentNode.replaceChild(article_new, article);
} else
refreshCurrentTab();
} catch (err) {
console.log(err);
}
}
}
}
let banners = 'div#pianoj_ribbon, div#paywall-offer';
hideDOMStyle(banners);
}
else if (matchDomain('axios.com')) {
function axios_noscroll(node) {
node.removeAttribute('style');
let overlay = 'div[class^="Modal_paywall"], div[class^="Modal_cta"]';
hideDOMStyle(overlay, 2);
}
let noscroll = document.querySelector('html[style]');
if (noscroll)
axios_noscroll(noscroll);
waitDOMAttribute('html', 'HTML', 'style', axios_noscroll, true);
let banners = 'div[data-cy="pro-paywall"], div.apexAd, div[class*="NativeAd"], span[data-ad-type]';
hideDOMStyle(banners);
}
else if (matchDomain('balkaninsight.com')) {
getJsonUrl('div.subscribeWrapper', '', 'div.post_teaser', {art_append: 1, art_hold: 1});
}
else if (matchDomain(['barandbench.com', 'theleaflet.in', 'thenewsminute.com'])) {
let paywall = document.querySelector('div[id*="paywall-banner"]');
if (paywall) {
removeDOMElement(paywall);
let article = document.querySelector('div.paywall');
if (article) {
let article_new = getArticleQuintype();
if (article_new && article.parentNode)
article.parentNode.replaceChild(article_new, article);
}
}
}
else if (matchDomain('barrons.com')) {
if (window.location.pathname.startsWith('/livecoverage/')) {
window.setTimeout(function () {
fix_dowjones_live();
}, 1500);
} else {
let paywall = document.querySelector('div#cx-interstitial-snippet, div[data-id^="ArticleRoadblock_"]');
if (paywall) {
removeDOMElement(paywall);
window.setTimeout(function () {
let articles = document.querySelectorAll('article > div.crawler');
let article;
for (let elem of articles) {
let paragraph = elem.querySelector('p[class*="Paragraph"]');
if (paragraph) {
article = elem;
break;
}
}
if (article) {
let article_id_dom = document.querySelector('head > meta[name="article.id"][content]');
if (article_id_dom) {
let article_id = article_id_dom.content;
let url_src = 'https://barrons.djmedia.djservices.io/apps/barrons/theaters/default-article?screen_ids=' + article_id;
let x_access_token = "eyJhbGciOiJSUzI1NiJ9.WFZsaHN3MXd3Smw0V3kwRXBzclQ.qwwBedAUNXHTQchowQZ5zMwmnXqDKeMhoRJlkB7drjWmb0ktZCScIhq5lpIiWaMyNJA_ODYgHAfIoi7DKWkS8g8GunFNAXpJDUOLdI2rtQkTEi_E3o90rdZHunPR7p0ULjRmHCnDofAdpTQdJtTXjQ9eEDZT2xoooVGdBpoVKhE";
getExtFetch(url_src, '', {"app-identifier": "http://com.news.screens", "device-type": "phone", "x-access-token": x_access_token}, main_barrons);
function main_barrons(url_src, data) {
try {
if (data) {
let json = JSON.parse(data);
if (json && json.screens[0] && json.screens[0].frames) {
let pars = json.screens[0].frames;
let par_class;
let intro = article.querySelector('p[class]');
if (intro)
par_class = intro.className;
let body_first = true;
article.innerHTML = '';
for (let par of pars) {
let elem = document.createElement('p');
if (par_class)
elem.className = par_class;
if (par.type === 'body') {
if (par.body && par.styleID !== 'article-summary-body') {
if (body_first && intro) {
elem = intro;
body_first = false;
} else
elem.innerText = par.body.text.replace(/\s_/g, '');
}
} else if (par.type === 'listelement') {
if (par.body)
elem.innerText = ' • ' + par.body.text;
} else if (par.type === 'image') {
if (par.image && par.image.url) {
let caption = (par.caption ? par.caption.text + ' - ' : '') + (par.credit ? par.credit.text : '');
elem = makeFigure(par.image.url, caption, {style: 'width: 80%; margin: auto;'});
}
} else if (par.type === 'dynamicinset') {
if (par.webview && par.webview.value) {
let iframe = document.createElement('iframe');
iframe.src = par.webview.value;
iframe.style = 'height: 600px; width: 100%; border: none;';
elem.appendChild(iframe);
}
} else if (par.type === 'video') {
let video_thumbnail = makeFigure(par.thumbnail.url, par.description.text, {style: 'width: 80%; margin: auto;'});
let video_link = document.createElement('a');
video_link.href = par.url;
video_link.innerText = 'Video-link (open in media player): ' + par.url;
elem.append(video_thumbnail, video_link);
} else if (!['ad', 'audioplayer', 'byline', 'caption', 'title'].includes(par.type)) {
console.log(par);
}
if (elem.hasChildNodes())
article.appendChild(elem);
}
}
}
} catch (err) {
console.log(err);
}
}
}
}
}, 2000);
}
}
let signin_links = document.querySelectorAll('p > a[href^="https://www.barrons.com/client/login"][href*="target="]');
for (let elem of signin_links) {
elem.href = decodeURIComponent(elem.href.split('target=')[1].split('&')[0]);
elem.innerText = 'Open';
elem.target = '_top';
}
let ads = document.querySelectorAll('div[class] > div.uds-ad-container');
for (let ad of ads)
hideDOMElement(ad.parentNode);
}
else if (matchDomain('benzinga.com')) {
function benz_main(node) {
removeDOMElement(node);
let blurred = document.querySelector('div.article-content-paywalled');
if (blurred) {
blurred.classList.remove('article-content-paywalled');
let key_points = document.querySelectorAll('li.blur-sm');
for (let elem of key_points)
elem.classList.remove('blur-sm');
let article = document.querySelector('div#article-body');
if (article) {
let json_script = document.querySelector('script#__NEXT_DATA__');
if (json_script) {
try {
let json = JSON.parse(json_script.text);
if (json && json.props.pageProps.article.primaryImage) {
let img_data = json.props.pageProps.article.primaryImage;
if (img_data.url) {
let img = document.createElement('img');
img.src = img_data.url;
img.alt = img_data.alt;
article.before(img);
}
}
} catch (err) {
console.log(err);
}
}
}
}
}
waitDOMElement('div.paywall-content', 'DIV', benz_main, false);
}
else if (matchDomain('bhaskar.com')) {
if (!window.location.pathname.startsWith('/amp/')) {
let paywall_sel = 'div.paywallBlockedContent';
let paywall = document.querySelector(paywall_sel);
if (paywall) {
let banner = document.querySelector(paywall_sel + ' ~ div');
if (banner)
removeDOMElement(banner);
paywall.removeAttribute('class');
}
let ads = document.querySelectorAll('div[style*="overflow:hidden"][style*="max-height:"], div[id^="Ad--"], article div:empty');
if (ads)
removeDOMElement(...ads);
} else
ampToHtml();
}
else if (matchDomain('bizjournals.com')) {
if (window.location.pathname.includes('/subscriber-only/')) {
header_nofix('div.primary');
} else {
let paywall_content = document.querySelectorAll('.paywall-content[style]');
for (let elem of paywall_content)
elem.removeAttribute('style');
window.setTimeout(function () {
let dialog = document.querySelector('div[id^="headlessui-dialog-"], div.sheet-overlay');
if (dialog) {
removeDOMElement(dialog);
let html = document.querySelector('html[style]');
if (html)
html.removeAttribute('style');
let overlays = document.querySelectorAll('html.is-overlaid, body.is-overlaid');
for (let elem of overlays)
elem.classList.remove('is-overlaid');
let nuxt_inert = document.querySelector('div#__nuxt[inert]');
if (nuxt_inert)
nuxt_inert.removeAttribute('inert');
}
}, 1000);
}
let ads = 'div.adwrap';
hideDOMStyle(ads);
}
else if (matchDomain('bloomberg.com')) {
let paywall_sel = 'div[id^="fortress-"]';
let leaderboard = 'div[id^="leaderboard"], div[class^="leaderboard"], div.canopy-container';
let ads = 'div[data-ad-status], div[data-ad-type], div[class*="FullWidthAd_"], div.adWrapper';
hideDOMStyle(paywall_sel + ', ' + leaderboard + ', ' + ads);
waitDOMElement(paywall_sel, 'DIV', removeDOMElement, true);
waitDOMAttribute('body', 'BODY', 'data-paywall-overlay-status', node => node.removeAttribute('data-paywall-overlay-status'), true);
if (window.location.pathname.startsWith('/live/')) {
setInterval(function () {
window.localStorage.clear();
}, 15 * 60 * 1000);
} else
window.localStorage.clear();
window.setTimeout(function () {
let shimmering = document.querySelector('article.first-story div[class*="Placeholder_placeholderParagraphWrapper-"]');
if (shimmering) {
header_nofix(shimmering.parentNode, '', 'BPC > disable Dark Reader or enable JavaScript for site');
}
}, 5000);
}
else if (matchDomain('bloombergadria.com')) {
let article_hidden = document.querySelector('article[style]');
if (article_hidden)
article_hidden.removeAttribute('style');
let ads = '.banner';
hideDOMStyle(ads);
}
else if (matchDomain('bostonglobe.com')) {
if (window.location.search.startsWith('?outputType=amp'))
amp_unhide_subscr_section();
}
else if (matchDomain('business-standard.com')) {
function bs_main(node) {
removeDOMElement(node);
let json_script = document.querySelector('script#__NEXT_DATA__');
if (json_script) {
try {
let json = JSON.parse(json_script.text);
if (json && json.props.pageProps.data.htmlContent) {
let json_text = json.props.pageProps.data.htmlContent;
let content = document.querySelector('div[class^="MainStory_storycontent__"');
if (json_text && content) {
content.innerHTML = '';
let intro = content.querySelectorAll('div:not([class]');
removeDOMElement(...intro);
let parser = new DOMParser();
let doc = parser.parseFromString('<div>' + json_text + '</div>', 'text/html');
let content_new = doc.querySelector('div');
window.setTimeout(function () {
content.appendChild(content_new);
}, 1000);
}
} else
refreshCurrentTab();
} catch (err) {
console.log(err);
}
}
}
if (!window.location.pathname.startsWith('/amp/')) {
if (true) {
let paywall_sel = 'div.subscribe-page';
let paywall = document.querySelector(paywall_sel);
if (paywall) {
bs_main(paywall)
} else {
waitDOMElement(paywall_sel, 'DIV', bs_main, false);
}
}
let banner = 'section.sbcrbtmlfull';
let ads = 'div.advertisement-bg, div[id^="between_article_content_"]';
hideDOMStyle(banner + ', ' + ads);
} else
ampToHtml();
}
else if (matchDomain('businessinsider.com')) {
let ads = 'div.masthead-ad, div.l-ad, div.in-post-sticky, aside.has-video-ad, div.ad-callout-wrapper';
hideDOMStyle(ads);
}
else if (matchDomain('businessinsider.jp')) {
let paywall = document.querySelector('div.piano-paywall-container[hidden]');
if (paywall)
paywall.removeAttribute('hidden');
}
else if (matchDomain('businessoffashion.com')) {
let ads = 'div[class^="default__AdsBlockWrapper"], div[data-test="common-nbabanner"]';
hideDOMStyle(ads);
}
else if (matchDomain('capital.bg')) {
let paywall = document.querySelector('div.paywall-story');
if (paywall) {
removeDOMElement(paywall);
let json_script = getArticleJsonScript();
if (json_script) {
let json = JSON.parse(json_script.text);
if (json) {
let json_text = json.articleBody;
let img_main = document.querySelector('div.story--header picture > img[src]');
let article = document.querySelector('div.story-content');
if (json_text && article) {
let article_new = document.createElement('p');
let json_pars = parseHtmlEntities(json_text).replace(/\s{2,}/g, '\r\n\r\n').split(/[\[\]]{2}/);
for (let elem of json_pars) {
let par;
if (!elem.match(/[\[\]]{2}/)) {
if (elem.match(/img:\d+/)) {
if (img_main) {
let img_new_id = elem.split('img:')[1];
if (img_new_id) {
par = document.createElement('img');
par.src = img_main.src.replace(/_\d+\./, '_' + img_new_id + '.').split('?')[0];
par.style = 'margin: 20px; width: 90%;';
}
}
} else if (!elem.match(/quote:\d+/)) {
par = document.createElement('p');
par.innerText = elem;
}
}
if (par)
article.appendChild(par);
}
}
}
}
}
}
else if (matchDomain(['chronicle.com', 'philanthropy.com'])) {
let preview = document.querySelector('div[data-content-summary]');
removeDOMElement(preview);
let article_hidden = document.querySelector('div[class~="contentBody" i][hidden]');
if (article_hidden) {
let attributes = [...article_hidden.attributes].filter(x => x.name !== 'class');
for (let elem of attributes)
article_hidden.removeAttribute(elem.name);
}
let ads = 'div.GoogleDfpAd-container';
hideDOMStyle(ads);
}
else if (matchDomain('cnbc.com')) {
let paywall = document.querySelector('div.ArticleGate-proGate');
if (paywall) {
removeDOMElement(paywall);
let article = document.querySelector('div.ArticleBody-articleBody');
if (article)
article.style = "margin: 20px; font-family: Lyon,Helvetica,Arial,sans-serif; font-size: 18px; line-height: 1.66";
let span_hidden = document.querySelectorAll('span[hidden]');
for (let elem of span_hidden) {
elem.removeAttribute('hidden');
elem.removeAttribute('class');
if (elem.innerText)
elem.innerText = elem.innerText.split('DISCLOSURES: (None)')[0];
}
let inline_image = document.querySelector('div[data-test="InlineImage"]');
if (inline_image)
article.firstChild.before(inline_image);
}
}
else if (matchDomain('cnn.com')) {
let subwall = document.querySelector('div[data-component-id="subwall"]');
if (subwall) {
removeDOMElement(subwall);
let noscroll = document.querySelectorAll('html[style], body[style]');
for (let elem of noscroll)
elem.removeAttribute('style');
waitDOMAttribute('html', 'HTML', 'style', node => node.removeAttribute('style'), true);
waitDOMAttribute('body', 'BODY', 'style', node => node.removeAttribute('style'), true);
}
let regwall_keys = Object.keys(window.localStorage).filter(x => x.match(/reg_?wall/i));
for (let item of regwall_keys)
window.localStorage.removeItem(item);
let ads = 'div[class^="ad-slot-"], div.container__ads';
hideDOMStyle(ads);
}
else if (matchDomain('columbian.com')) {
setCookie('blaize_session', '', 'columbian.com', '/', 0);
let paywall = document.querySelectorAll('div#inline-paywall, div#paywall-modal');
if (paywall) {
removeDOMElement(...paywall);
let article = document.querySelector('article');
if (article) {
let url = window.location.href;
article.firstChild.before(googleSearchToolLink(url));
}
}
}
else if (matchDomain('csmonitor.com')) {
let paywall = document.querySelector('div.paywall');
removeDOMElement(paywall);
window.localStorage.clear();
}
else if (matchDomain('cyclingnews.com')) {
let paywall = document.querySelector('div.paywall-locker');
if (paywall) {
paywall.classList.remove('paywall-locker');
let banner = 'div.kiosq-main-layer';
hideDOMStyle(banner);
}
}
else if (matchDomain('dailywire.com')) {
let paywall = document.querySelector('div#payed-article-paywall');
if (paywall) {
removeDOMElement(paywall);
let div_hidden = document.querySelector('#post-body-text > div > div[class]');
if (div_hidden)
div_hidden.removeAttribute('class');
}
let ads = 'div.ad-wrapper';
hideDOMStyle(ads);
}
else if (matchDomain('dallasnews.com')) {
if (window.location.search.startsWith('?outputType=amp')) {
amp_unhide_subscr_section();
}
}
else if (matchDomain('defector.com')) {
let paywall = document.querySelector('div[class^="ContentGate_wrapper__"]');
if (paywall) {
removeDOMElement(paywall);
let article_sel = 'div[class^="PostContent_wrapper__"]';
let article = document.querySelector(article_sel);
if (article) {
window.setTimeout(function () {
let pars = article.querySelectorAll('p');
if (pars.length < 3) {
let url = window.location.href.split('?')[0];
replaceDomElementExt(url, false, false, article_sel);
}
}, 1000);
}
}
}
else if (matchDomain('denik.cz')) {
let video_sources = document.querySelectorAll('video[id] > source[src]');
for (let elem of video_sources) {
let iframe = document.createElement('iframe');
iframe.src = elem.src;
iframe.style = 'width: 100%; height: 100%;';
let video = elem.parentNode;
video.parentNode.replaceChild(iframe, video);
}
}
else if (matchDomain(['digiday.com', 'glossy.co', 'modernretail.co'])) {
let ads = 'div[class^="ad_"]';
hideDOMStyle(ads);
}
else if (matchDomain('discovermagazine.com')) {
window.setTimeout(function () {
let body = document.querySelector('body');
if (body)
body.style = 'overflow: auto !important;';
let banners = 'div.fIkXwQ, div[style*="fadeIn"], div[role="button"][aria-label="Dismiss Dialog"]';
hideDOMStyle(banners);
}, 1000);
}
else if (matchDomain('dwell.com')) {
if (window.location.pathname.match(/^(\/amp)?\/article\//)) {
if (!window.location.search.startsWith('?rel=plus')) {
let paywall = pageContains('div > a', /Try Dwell\+ for FREE/);
if (paywall.length) {
removeDOMElement(paywall[0]);
window.location.href = window.location.pathname.replace(/^\/amp/, '') + '?rel=plus';
}
} else {
let paywall = document.querySelector('div#mainPanel div[class^="FCR_"]');
let article = document.querySelector('div > section[class]');
if (paywall && article) {
removeDOMElement(paywall);
article.classList.remove('_2S7l9_l2eDI5b8DSR29ijf');
let filter = /^window\.INITIAL_STATE\s?=\s?/;
let json_script = getSourceJsonScript(filter);
if (json_script) {
let split1 = json_script.text.split(filter)[1];
let state = (split1.split('};')[0] + '}');
if (state) {
try {
let json = JSON.parse(state);
if (json) {
let items = json.articles.items;
let id = Object.keys(items)[0];
let photos = json.photos ? json.photos.items : '';
let json_text = items[id].attributes.body.replace(/(<br>|<span style=".+;">|<\/span>)/g, '');
function find_img_url(match, p1, p2, offset, string) {
let contributorId;
let format;
if (photos && photos[p1]) {
contributorId = photos[p1].attributes.userId;
format = photos[p1].attributes.format;
}
let result = '<p>missing photo: ' + p1 + '</p>';
if (contributorId)
result = '<figure><img src="https://images2.dwell.com/photos/' + contributorId + '/' + p1 + '/original.' + format + '?auto=format&q=35&w=1280"><figcaption>' + p2 + '</figcaption></figure>';
return result;
}
json_text = json_text.replace(/<dwell-photo photoId="(\d+)"\scaption="([^"]+)"[^<]+photoUserId="\d*"\/>/g, find_img_url);
let parser = new DOMParser();
let doc = parser.parseFromString('<section class="' + article.className + '">' + json_text + '</section>', 'text/html');
let article_new = doc.querySelector('section');
article.parentNode.replaceChild(article_new, article);
}
} catch (err) {
console.log(err);
}
}
}
}
let photo_links = document.querySelectorAll('div > a[href^="' + window.location.pathname.replace(/\/\d{8,}/, '') + '"]');
for (let elem of photo_links)
elem.href += '?rel=plus';
let close_button = document.querySelector('header > div > span > svg');
if (!document.querySelector('a#bpc_close') && close_button) {
let elem = document.createElement('a');
elem.href = window.location.pathname.split('?')[0].replace(/\/\d{8,}/, '');
elem.id = 'bpc_close';
elem.innerText = 'close';
elem.style.color = 'white';
close_button.parentNode.parentNode.appendChild(elem);
}
}
}
let ads = 'div.EYrS5iukqzJMkNAcFQ0ho';
hideDOMStyle(ads);
}
else if (matchDomain('economictimes.com')) {
if (window.location.pathname.includes('/amp_')) {
let paywall = document.querySelector('.paywall_wrap');
if (paywall) {
let content = document.querySelector('.paywall[style="display:none;"]');
if (content) {
let parser = new DOMParser();
let doc = parser.parseFromString('<div style="margin: 20px 0px;">' + content.innerText + '</div>', 'text/html');
let content_new = doc.querySelector('div');
if (content_new && content.parentNode)
content.parentNode.replaceChild(content_new, content);
} else
window.location.href = 'https://economictimes.indiatimes.com' + window.location.pathname.replace('amp_prime', 'prime');
let intro = document.querySelector('.art_wrap');
let article_blocker = document.querySelector('.articleBlocker');
removeDOMElement(paywall, intro, article_blocker);
let ads = 'amp-ad';
hideDOMStyle(ads);
}
} else {
window.setTimeout(function () {
let paywall = document.querySelector('div#blocker_layer');
let data_prime = document.querySelector('div[data-prime="1"]');
let amphtml = document.querySelector('head > link[rel="amphtml"]');
if (paywall || data_prime) {
removeDOMElement(paywall);
if (data_prime)
data_prime.removeAttribute('data-prime');
if (amphtml)
amp_redirect_not_loop(amphtml);
else if (window.location.pathname.startsWith('/epaper/'))
window.location.href = 'https://economictimes.indiatimes.com' + window.location.pathname;
} else {
let ads = '.adContainer';
hideDOMStyle(ads);
}
}, 500);
}
}
else if (matchDomain('economictimes.indiatimes.com')) {
let paywall = document.querySelector('section.prime_paywall');
if (paywall) {
removeDOMElement(paywall);
let content = document.querySelector('div.content1, div.artText');
let full_text = document.querySelector('div.paywall.p1');
if (content && full_text)
content.innerText = full_text.innerText;
let page_content = document.querySelector('div.pageContent:not([style])');
if (page_content)
page_content.setAttribute('style', 'height: auto !important;');
let article_wrap = document.querySelector('div.article_wrap[style]');
if (article_wrap)
article_wrap.removeAttribute('style');
}
if (mobile) {
let pageholder = document.querySelector('main.pageHolder');
if (pageholder) {
pageholder.classList.remove('pageHolder');
let header = document.querySelector('header');
if (header)
header.style = 'width: 100% !important;';
let f_col = document.querySelector('div.f_col');
removeDOMElement(f_col);
}
}
}
else if (matchDomain('economist.com')) {
if (window.location.pathname.includes('/podcasts/')) {
header_nofix('section[data-body-id]', 'div[aria-labelledby="paywall-heading"]');
} else if (!window.location.pathname.startsWith('/interactive/')) {
let paywall_sel = 'div#tp-regwall';
let article_sel = 'main';
let video = document.querySelector('iframe[src^="https://www.youtube.com/"]');
func_post = function () {
if (video) {
let video_new = document.querySelector('div[old-src^="https://www.youtube.com/"]');
if (video_new && video_new.parentNode)
video_new.parentNode.replaceChild(video, video_new);
}
if (mobile) {
let grids = document.querySelectorAll('div[style*="grid-template-columns"]');
for (let elem of grids)
elem.removeAttribute('style');
let lazy_images = document.querySelectorAll('figure img[loading="lazy"][style]');
for (let elem of lazy_images)
elem.style = 'width: 95%;';
}
}
let url = window.location.href;
getArchive(url, paywall_sel, '', 'main');
}
let ads = 'div[class*="adComponent"]';
hideDOMStyle(ads);
}
else if (matchDomain('enotes.com')) {
let paywall = document.querySelector('section#enotes-paywall');
if (paywall) {
let section_words = pageContains('p', /\(This entire section contains/);
removeDOMElement(paywall, ...section_words);
setCookie('ENOTESID', '', 'enotes.com', '/', 0);
let blurred = document.querySelectorAll('div.u-paywall');
for (let elem of blurred)
elem.className = 'o-rte-text u-space--top';
let ads = document.querySelectorAll('div:not([class]) > div[id^="div-gpt-ad-"]');
for (let ad of ads)
hideDOMElement(ad.parentNode);
}
}
else if (matchDomain('epoch.org.il')) {
getJsonUrl('div.register-login-box', '', 'div.paywall');
}
else if (matchDomain('espn.com')) {
let url = window.location.href;
getArchive(url, 'aside.espn-plus-container-wrapper', '', 'section#article-feed > article');
}
else if (matchDomain('euobserver.com')) {
let paywall = pageContains('div > div > button > div > span', /^Register$/);
if (paywall.length) {
let article = paywall[0].parentNode.parentNode.parentNode.parentNode;
if (article) {
let filter = /^window\.__basedcache__\s?=\s?/;
let json_script = getSourceJsonScript(filter);
if (json_script) {
try {
let json = JSON.parse(json_script.text.split(filter)[1]);
if (json) {
let body = findKeyJson(json, ['body']);
if (body) {
article.innerHTML = '';
let parser = new DOMParser();
let doc = parser.parseFromString('<div class="w" style="font-size: 18px; line-height: 30px; position: relative;">' + body + '</div>', 'text/html');
let article_new = doc.querySelector('div');
let pars = article_new.querySelectorAll('p.rte-p');
for (let par of pars)
par.style = 'margin: 20px 0px;';
article.appendChild(article_new);
}
}
} catch (err) {
console.log(err);
}
}
}
}
}
else if (matchDomain('fastcompany.com')) {
let paywall = document.querySelector('div.paywall');
if (paywall) {
removeDOMElement(paywall);
let filter = /\\"content\\":\[/;
let json_script = getSourceJsonScript(filter, ':not([id], [src], [type])');
if (json_script) {
try {
let json = JSON.parse('[' + json_script.text.split(filter)[1].split(/\],\\"/)[0].replace(/\\\\\\"/g, '\\"').replace(/(\[|,)\\"/g, '$1"').replace(/\\"(\]|,)/g, '"$1').replace(/\\\\n/g, '') + ']');
if (json) {
let article = document.querySelector('article');
if (article) {
article.innerHTML = '';
article.className = 'article-container';
let parser = new DOMParser();
for (let pars of json)
for (let par of pars) {
if (!par.match(/^\$\w{2}$/)) {
let content_new = parser.parseFromString('<div class="content-chunk">' + par + '</div>', 'text/html');
let elem = content_new.querySelector('div');
let img_srcset_drop = elem.querySelectorAll('figure > img[srcset]');
for (let img of img_srcset_drop)
img.removeAttribute('srcset');
article.appendChild(elem);
}
}
}
}
} catch (err) {
console.log(err);
}
}
}
let ads = 'div[class*="ad-wrapper"]';
hideDOMStyle(ads);
}
else if (matchDomain('fieldandstream.com')) {
let overlay = document.querySelectorAll('div[class^="mailmunch-"]');
removeDOMElement(...overlay);
let noscroll = document.querySelector('html.mailmunch-pop-open');
if (noscroll)
noscroll.removeAttribute('class');
}
else if (matchDomain('financialexpress.com')) {
let paywall = document.querySelector('div.paywall');
if (paywall)
paywall.classList.remove('paywall');
let register = 'div.pcl-wrap';
let ads_selector = window.location.pathname.endsWith('/lite/') ? '.ad-bg-container' : 'div[class*="-ads-blocks-ad-unit"]';
hideDOMStyle(register + ', ' + ads_selector);
}
else if (matchDomain('forbes.com')) {
waitDOMAttribute('html', 'HTML', 'class', node => node.removeAttribute('class'), true);
waitDOMAttribute('body', 'BODY', 'class', node => node.removeAttribute('class'), true);
if (window.location.pathname.startsWith('/newsletters/')) {
let paywall = document.querySelector('div > div.newsletter-teaser');
if (paywall) {
paywall.classList.remove('newsletter-teaser');
let header = paywall.parentNode;
header_nofix(header);
}
}
let ads = 'fbs-ad, div.inlineAdContainer';
hideDOMStyle(ads);
}
else if (matchDomain('forbes.ua')) {
let paywall = document.querySelector('div.js-closed-part');
if (paywall) {
removeDOMElement(paywall);
let json_script = getArticleJsonScript();
if (json_script) {
let json = JSON.parse(json_script.text);
if (json) {
let json_text = parseHtmlEntities(json.articleBody).replace(/\n/g, "$&\r\n");
let article = document.querySelector('div.c-post-text');
if (json_text && article)
article.innerText = json_text;
}
}
}
}
else if (matchDomain('foreignaffairs.com')) {
let paywall = document.querySelector('.paywall');
let loading_indicator = document.querySelector('.loading-indicator');
let msg_bottom = document.querySelector('.messages--container--bottom');
removeDOMElement(paywall, loading_indicator, msg_bottom);
let article_dropcap = document.querySelectorAll('.article-dropcap');
for (let elem of article_dropcap)
elem.classList.add('loaded');
}
else if (matchDomain('foreignpolicy.com')) {
let content_ungated = document.querySelector('div.content-ungated');
if (content_ungated) {
removeDOMElement(content_ungated);
let content_gated = document.querySelector('div.content-gated');
if (content_gated) {
let insider = document.querySelector('body.is-fp-insider');
if (insider) {
getJsonUrl('div.content-gated', {rm_class: 'content-gated'}, 'div.content-gated');
window.setTimeout(function () {
let lazy_images = document.querySelectorAll('img[loading="lazy"]');
for (let elem of lazy_images)
elem.removeAttribute('loading');
}, 1000);
} else
content_gated.classList.remove('content-gated');
}
}
}
else if (matchDomain('fortune.com')) {
let paywall = document.querySelector('div.paywallActive');
if (window.location.pathname.match(/\/amp(\/)?/)) {
amp_unhide_access_hide('="NOT p.showRegWall AND NOT p.showPayWall"', '="p.showPayWall"', '[class^="amp-ad"], div.paywall');
} else {
if (paywall)
paywall.removeAttribute('class');
let banners = 'div.daBnAu, div.trinity-player, div:empty';
hideDOMStyle(banners);
}
}
else if (matchDomain('foxnews.com')) {
let paywall = document.querySelector('div.article-gating-wrapper');
removeDOMElement(paywall);
let overlay = document.querySelector('div[class*="gated-overlay"]');
if (overlay)
overlay.removeAttribute('class');
}
else if (matchDomain('ftm.eu')) {
let videos = document.querySelectorAll('div.body > div.video-pp');
for (let video of videos) {
let video_id_dom = video.querySelector('a.video[data-youtube-id]');
if (video_id_dom) {
video_new = document.createElement('iframe');
video_new.src = 'https://www.youtube.com/embed/' + video_id_dom.getAttribute('data-youtube-id');
video_new.style = 'width: 95%; height: 400px; margin: 0px 20px;';
video.parentNode.replaceChild(video_new, video);
}
}
let audio_controls = document.querySelectorAll('audio[controls][style]');
for (let elem of audio_controls)
elem.removeAttribute('style');
document.querySelectorAll('div.foldable').forEach(e => e.classList.remove('foldable'));
let banners = 'div.banner-pp';
hideDOMStyle(banners);
}
else if (matchDomain(['haaretz.co.il', 'haaretz.com', 'themarker.com'])) {
if (window.location.pathname.match(/\/ty-article/)) {
let body_wrapper_sel = 'section[data-testid="article-body-wrapper"]';
let paywall_sel = 'div[data-test="paywallMidpage"], ' + body_wrapper_sel + ' div[data-testid="logo-loading-indicator"]';
let article_sel = 'main';
let article_link_sel = 'main header, main.article-page p:not([id]), h1#article-header, ' + body_wrapper_sel;
let url = window.location.href;
if (!mobile) {
func_post = function () {
let disabled_items = 'section[data-testid="zoidberg-list"], section#comments-section, div[old-position="sticky"]';
hideDOMStyle(disabled_items);
}
getArchive(url, paywall_sel, '', article_sel, '', article_sel, article_link_sel);
} else {
let paywall = document.querySelector(paywall_sel);
if (paywall) {
removeDOMElement(paywall);
let article_link = document.querySelector(article_link_sel);
if (article_link)
article_link.before(archiveLink(url));
}
}
}
let history_keys = Object.keys(window.localStorage).filter(x => x.match(/^(reading(Count)?History|raData)/i));
for (let item of history_keys)
window.localStorage.removeItem(item);
}
else if (matchDomain('harpers.org')) {
setCookie('hr_session', '', 'harpers.org', '/', 0);
}
else if (matchDomain('hbr.org')) {
if (window.location.pathname.startsWith('/data-visuals')) {
let feed_entries = document.querySelectorAll('li.feed-entry');
for (let feed_entry of feed_entries) {
let download = feed_entry.querySelector('span.entry-download > a[href*="/undefined/"]');
if (download) {
let figure = feed_entry.querySelector('figure.entry-image > img[src]');
if (figure) {
download.href = figure.src;
download.setAttribute('download', '');
}
}
}
} else {
function hbr_main() {
window.top.postMessage({type: 'article-paywall:full-content'}, '*');
}
let popup = document.querySelector('.persistent-banner');
removeDOMElement(popup);
let paywall = document.querySelector('div[id^="paywall"]');
if (paywall) {
removeDOMElement(paywall);
insert_script(hbr_main);
}
}
}
else if (matchDomain('hilltimes.com')) {
function hilltimes_main(node) {
getJsonUrl('div.paywallcont', '', 'div#entry-content');
}
let paywall_sel = 'div.paywallcont';
let paywall = document.querySelector(paywall_sel);
if (true) {
if (paywall)
hilltimes_main(paywall);
else
waitDOMElement(paywall_sel, 'DIV', hilltimes_main, false);
}
let banner = 'section.hide_this_section';
hideDOMStyle(banner);
}
else if (matchDomain('hindustantimes.com')) {
let paywall = document.querySelector('.freemium-card');
if (paywall) {
removeDOMElement(paywall);
let freemium_text = document.querySelector('.freemiumText');
if (freemium_text)
freemium_text.classList.remove('freemiumText');
}
let noscroll = document.querySelector('body.open-popup');
if (noscroll)
noscroll.classList.remove('open-popup');
let close_story = '.closeStory';
let ads = 'div[class^="adHeight"]';
hideDOMStyle(close_story + ', ' + ads);
}
else if (matchDomain('historyextra.com')) {
let article_masked = document.querySelector('.template-article__masked');
if (article_masked) {
let extra_pars = document.querySelectorAll('div.template-article__masked > p');
removeDOMElement(...extra_pars);
article_masked.classList.remove('template-article__masked');
}
let ad_banner = document.querySelector('.ad-banner-container');
removeDOMElement(ad_banner);
}
else if (matchDomain('historytoday.com')) {
if (window.location.hostname.startsWith('app.')) {
restorePugpigPage();
} else {
let paywall = document.querySelector('div.nopremium-message');
if (paywall) {
let app_link = document.createElement('a');
let app_url = 'app.historytoday.com';
app_link.href = 'https://' + app_url;
app_link.innerText = 'BPC > no fix, search article on: ' + app_url;
app_link.style = 'color: red; font-weight: bold;';
let app_div = document.createElement('div');
app_div.style = 'margin: 20px;';
app_div.appendChild(app_link);
paywall.before(app_div);
removeDOMElement(paywall);
}
}
}
else if (matchDomain('inc.com')) {
let paywall = document.querySelector('div.paywall');
if (paywall) {
removeDOMElement(paywall);
let locked = document.querySelector('div.article-container--locked');
if (locked)
locked.className = 'article-container';
}
let ads = 'div.second-scroll-border';
hideDOMStyle(ads);
}
else if (matchDomain('inc42.com')) {
if (window.location.pathname.endsWith('/amp/')) {
amp_unhide_access_hide('="status"', '="NOT status"', 'div.wru-widget');
} else {
let banner = document.querySelector('div[id*="_leaderboard_"]');
removeDOMElement(banner);
}
}
else if (matchDomain('indianexpress.com')) {
if (window.location.pathname.endsWith('/lite/'))
amp_unhide_access_hide('="metering.result=\'ALLOW_ACCESS\'"');
else {
let ads = 'div[class^="adsbox"], div.adboxtop, div.add-first, div.osv-ad-class, div.ie-int-campign-ad';
hideDOMStyle(ads);
}
}
else if (matchDomain('indiatoday.in')) {
if (window.location.pathname.match(/(\/amp)?\/magazine\//)) {
let url = window.location.href;
if (!url.includes('/amp/')) {
amp_redirect('div#csc-paywall');
} else {
amp_unhide_access_hide('="granted"', '="NOT NOT granted"');
}
}
}
else if (matchDomain('infzm.com')) {
let url = window.location.href;
if (url.includes('.com/wap/#/content/')) {
let container = document.querySelector('section.container');
if (container)
container.classList.remove('container');
let overlay = document.querySelector('div.article-content[style]');
if (overlay)
overlay.removeAttribute('style');
} else if (url.includes('.com/contents/')) {
let paywall = document.querySelector('div.nfzm-article-jumbotron--unauth');
if (paywall) {
removeDOMElement(paywall);
window.location.href = url.replace('.com/contents/', '.com/wap/#/content/').split('?')[0];
}
}
}
else if (matchDomain('inkl.com')) {
let url = window.location.href;
if (url.includes('/signin?') && url.includes('redirect_to=')) {
window.setTimeout(function () {
window.location.href = 'https://www.inkl.com' + decodeURIComponent(url.split('redirect_to=')[1]);
}, 500);
} else {
let paywall = document.querySelector('div.paywall');
if (paywall) {
paywall.removeAttribute('class');
let gradient_container = document.querySelector('div.gradient-container');
removeDOMElement(gradient_container);
}
let what_is_inkl = document.querySelector('.what-is-inkl-container, .features-panel');
let signup = document.querySelectorAll('.article-signup-container, .locked-sign-up-container, div[class*="/inkl-watermark.svg"]');
let shared_banner = document.querySelector('div.shared-article-inline-banner');
removeDOMElement(what_is_inkl, ...signup, shared_banner);
let dismiss_button = document.querySelector('div.dismiss-button-container button.btn');
if (dismiss_button)
dismiss_button.click();
let dive_deeper_summary_bodies = document.querySelectorAll('div.dive-deeper-container div.summary-body');
if (dive_deeper_summary_bodies) {
for (let summary_body of dive_deeper_summary_bodies) {
if (!summary_body.querySelector('a')) {
let ng_click = summary_body.getAttribute('ng-click').replace("showArticle('", '').replace("')", '');
let weblink = document.createElement('a');
weblink.text = 'open';
weblink.href = 'https://www.inkl.com/news/' + ng_click;
summary_body.appendChild(weblink);
}
}
}
}
}
else if (matchDomain('insidehighered.com')) {
let ads = 'div[id^="block-dfptag"], div.wp-block-ihe-ad, section.section-ad_slot, div#roadblock';
hideDOMStyle(ads);
}
else if (matchDomain('interestingengineering.com')) {
let paywall = document.querySelector('div.paywall-main-wrapper');
if (paywall) {
removeDOMElement(paywall);
let blurred = document.querySelectorAll('.blurFilter');
for (let elem of blurred)
elem.classList.remove('blurFilter');
}
}
else if (matchDomain('ipolitics.ca')) {
let login = document.querySelector('div.login');
if (login) {
removeDOMElement(login);
let json_script = document.querySelector('script#__NEXT_DATA__');
if (json_script) {
try {
let json = JSON.parse(json_script.innerText);
if (json && json.props.pageProps.post && json.props.pageProps.post.content) {
let url_next = json.props.pageProps.post.slug;
if (url_next && !window.location.pathname.includes(url_next))
refreshCurrentTab();
let article_new = json.props.pageProps.post.content;
let article = document.querySelector('.post-body');
if (article) {
article.innerHTML = '';
article.classList.remove('locked');
let parser = new DOMParser();
let doc = parser.parseFromString('<div>' + article_new + '</div>', 'text/html');
let content_new = doc.querySelector('div');
article.appendChild(content_new);
}
} else {
refreshCurrentTab();
}
} catch (err) {
console.log(err);
}
}
}
}
else if (matchDomain('japantimes.co.jp')) {
setCookie('xbc', '', 'japantimes.co.jp', '/', 0);
let url = window.location.href;
getArchive(url, 'div.blocker', '', 'div#jtarticle');
let banner = document.querySelector('div.subscribe');
removeDOMElement(banner);
let ads = 'div.DisplayAd';
hideDOMStyle(ads);
}
else if (matchDomain('jpost.com')) {
let premium_banners = document.querySelectorAll('.hide-for-premium, #hiddenPremiumForm, #hiddenLink');
removeDOMElement(...premium_banners);
}
else if (matchDomain('kathimerini.gr')) {
let ads = 'div.nx-billboard-ad-row';
hideDOMStyle(ads);
}
else if (matchDomain('kompas.id')) {
let url_artikel = window.location.pathname.startsWith('/artikel/');
let delay = url_artikel ? 2500 : 0;
window.setTimeout(function () {
let paywall = document.querySelector('kompasid-paywall');
if (paywall) {
removeDOMElement(paywall);
if (url_artikel) {
let intro = document.querySelector('div.paywall');
removeDOMElement(intro);
let art_hidden = document.querySelector('div.non-paywall[style]');
if (art_hidden)
art_hidden.removeAttribute('style');
} else {
let art_hidden = document.querySelector('section.paywall.hidden');
if (art_hidden)
art_hidden.classList.remove('hidden');
}
}
}, delay);
}
else if (matchDomain('latimes.com')) {
let subscribers = pageContains('div.infobox > p.infobox-title', /subscribers/i);
if (subscribers.length)
removeDOMElement(subscribers[0].parentNode);
let ads = 'div.google-dfp-ad-wrapper, div.revcontent';
hideDOMStyle(ads);
}
else if (matchDomain('livelaw.in')) {
let amp = window.location.pathname.startsWith('/amp/');
let paywall = document.querySelector(amp ? 'div.subscribeNow' : 'div#subscription_paid_message');
if (paywall) {
let intro = document.querySelector(amp ? 'div.story' : 'div.details-story-wrapper');
removeDOMElement(paywall, intro);
let paywall_content = document.querySelector('div.paywall-content.hide');
if (paywall_content)
paywall_content.className = amp ? '' : 'news_details_page_row2 details-story-wrapper';
}
let ads = 'inside-post-ad, amp-ad';
hideDOMStyle(ads);
}
else if (matchDomain('livemint.com')) {
if (window.location.pathname.includes('/amp-')) {
let paywall = document.querySelectorAll('[amp-access="NOT subscribed"]');
removeDOMElement(...paywall);
} else {
let paywall = document.querySelector('div.paywall');
if (paywall)
paywall.classList.remove('paywall');
let ads = '[class^="ad"], [id^="ad"], #subscribeAd, .taboolaHeight';
hideDOMStyle(ads);
}
}
else if (matchDomain('magazine.atavist.com')) {
let bottom_notification = document.querySelector('div.bottom-notification');
let overlay = document.querySelector('div.notification-overlay');
removeDOMElement(bottom_notification, overlay);
let paywall = document.querySelector('body.paywall-notification-visible');
if (paywall)
paywall.classList.remove('paywall-notification-visible');
window.localStorage.clear();
}
else if (matchDomain('manoramaonline.com')) {
if (!window.location.pathname.endsWith('.amp.html')) {
amp_redirect('ev-engagement');
} else {
amp_unhide_access_hide("=\"result='ALLOW_ACCESS'\"");
}
}
else if (matchDomain('marketwatch.com')) {
setCookie('cX_P', '', 'marketwatch.com', '/', 0);
let ads = 'div.element--ad, div.j-ad, div.adWrapper, div#cx-articlecover';
hideDOMStyle(ads);
}
else if (matchDomain('medscape.com')) {
let ads = '.AdUnit, [id^="ads-"]';
hideDOMStyle(ads);
}
else if (matchDomain('mexiconewsdaily.com')) {
let div_hidden = document.querySelector('body.single div.td-post-content > div.tdb-block-inner');
if (div_hidden)
div_hidden.classList.remove('tdb-block-inner');
}
else if (matchDomain('mid-day.com')) {
if (window.location.pathname.startsWith('/amp/')) {
amp_unhide_access_hide('="granted"', '="NOT granted"', '[class*="BannerAd"], div.midday-wrapper');
} else {
amp_redirect('div#myModalFullscreen');
let read_more = document.querySelector('#read-more-my');
if (read_more)
read_more.click();
}
}
else if (matchDomain('nationalgeographic.com')) {
function natgeo_func(node) {
removeDOMElement(node);
let body = document.querySelector('body[class]');
if (body) {
body.removeAttribute('class');
body.removeAttribute('style');
}
}
let paywall = document.querySelector('div[id^="fittPortal"]');
if (paywall)
natgeo_func(paywall);
waitDOMElement('div[id^="fittPortal"]', 'DIV', natgeo_func, false);
window.setTimeout(function () {
let url = window.location.href;
let subscribed = document.querySelector('div.Article__Content--gated');
let msg = document.querySelector('div#bpc_archive');
if (subscribed && !msg) {
subscribed.appendChild(archiveLink(url));
subscribed.setAttribute('style', 'overflow: visible !important;');
}
let overlay = document.querySelector('div.Article__Content__Overlay--gated');
if (overlay)
overlay.classList.remove('Article__Content__Overlay--gated');
}, 2000);
let ads = 'div.ad-slot, div.InsertedAd, div.natgeo-ad';
hideDOMStyle(ads);
}
else if (matchDomain('nationalreview.com')) {
if (!window.location.pathname.endsWith('/amp/')) {
let paywall_sel = 'div.continue-reading';
let paywall = document.querySelector(paywall_sel);
if (paywall) {
let amphtml = document.querySelector('head > link[rel="amphtml"][href]');
if (amphtml && !amphtml.href.includes(window.location.pathname)) {
removeDOMElement(paywall);
refreshCurrentTab();
} else
getJsonUrl(paywall_sel, '', 'div.article-content', {art_class: 'article-content article-content--headless'});
}
}
let banners = 'div.zephr-wrapper, div#bc-root, div.cookie-text';
let ads = 'amp-ad, .ad-unit, .ad-skeleton, amp-connatix-player, div[class*="-connatix-"]';
hideDOMStyle(banners + ', ' + ads);
}
else if (matchDomain('nautil.us')) {
setCookie(['arc', 'sfa'], '');
let banners = document.querySelectorAll('div[class^="a__sc-np"], div.subscibe-bar');
removeDOMElement(...banners);
}
else if (matchDomain('ndtvprofit.com')) {
if (window.location.pathname.startsWith('/amp/')) {
amp_unhide_subscr_section();
} else {
window.setTimeout(function () {
amp_redirect('div[class^="hard-paywall"], div[class*="geotag-container_"]');
}, 1000);
}
let ads = 'div.responsive-ad';
hideDOMStyle(ads);
}
else if (matchDomain('newcriterion.com')) {
getJsonUrl('div.paywall-overlay', '', 'div.entry-content');
}
else if (matchDomain('newrepublic.com')) {
let modal = document.querySelector('div.article-scheduled-modal');
let pw_popups = document.querySelector('div#pwPopups');
removeDOMElement(modal, pw_popups);
let ads = '.ad-unit';
hideDOMStyle(ads);
}
else if (matchDomain('newscientist.com')) {
if (!window.location.hostname.startsWith('appan.')) {
let paywall = document.querySelector('section#subscription-barrier');
if (paywall) {
removeDOMElement(paywall);
let json_script = document.querySelector('script#ns-seo-schema');
if (json_script) {
try {
let json = JSON.parse(json_script.text);
if (json && json.datePublished) {
let date = json.datePublished.split(/T\d/)[0].replace(/-/g, '/');
let path_new = window.location.pathname.split(/\/article\/(\d+-|mg\d+-\d+-)/)[2];
if (path_new) {
let url = 'https://appan.newscientist.com/' + date + '/' + path_new + 'content.html';
func_post = function () {
let lazy_images = document.querySelectorAll('img[src^="../"][data-src]');
for (let elem of lazy_images) {
elem.src = elem.getAttribute('data-src');
elem.removeAttribute('height');
elem.removeAttribute('width');
}
let videos = document.querySelectorAll('figure > div.pugpig-video[data-video-url]');
for (let elem of videos) {
let iframe = document.createElement('iframe');
iframe.src = elem.getAttribute('data-video-url');
iframe.style = 'width: 100%; height: 400px; margin: 20px 0px;';
elem.parentNode.replaceChild(iframe, elem);
}
}
replaceDomElementExt(url, false, false, 'section.ArticleContent', 'BPC > no fix (source file)', 'section[class$="-article__body"]');
}
}
} catch (err) {
console.log(err);
}
}
}
let ads = 'div[class*="Advert"]';
hideDOMStyle(ads);
} else {
restorePugpigPage();
}
}
else if (matchDomain('newsday.com')) {
let nd_lock = document.querySelector('html[class]');
if (nd_lock)
nd_lock.removeAttribute('class');
let ads = 'div.ad';
hideDOMStyle(ads);
}
else if (matchDomain('newslaundry.com')) {
let paywall = document.querySelector('div > div > img[alt^="paywall"]');
if (paywall) {
let banner = document.querySelector('div.FrsvM');
removeDOMElement(paywall.parentNode.parentNode, banner);
let json_script = getArticleJsonScript();
if (json_script) {
let json = JSON.parse(json_script.text);
if (json) {
let json_text = parseHtmlEntities(json.articleBody).replace(/<\/p>\./g, '</p>');
let article = document.querySelector('div.story-element-text');
if (json_text && article) {
let parser = new DOMParser();
let doc = parser.parseFromString('<div>' + json_text + '</div>', 'text/html');
let article_new = doc.querySelector('div');
article.innerHTML = '';
article.appendChild(article_new);
}
}
}
}
}
else if (matchDomain('newsweek.com')) {
let ads = 'div#topad, div[id^="dfp-ad-"]';
hideDOMStyle(ads);
}
else if (matchDomain(['nola.com', 'shreveportbossieradvocate.com', 'theadvocate.com'])) {
if (window.location.pathname.endsWith('.amp.html')) {
let body_hidden = document.querySelector('.site-container');
if (body_hidden)
body_hidden.setAttribute('style', 'display:block;');
} else {
let ads = 'div.tnt-ads-container, div.asset-breakout-ads';
hideDOMStyle(ads);
}
}
else if (matchDomain('nv.ua')) {
if (!window.location.pathname.includes('/amp/')) {
amp_redirect('div[id^="media_paywall"]');
} else {
let paywall = document.querySelector('div.paywall-area');
if (paywall) {
paywall.removeAttribute('class');
let subscr = paywall.querySelector('div.make-subscription');
removeDOMElement(subscr);
}
let article = document.querySelector('div.article__content');
if (article)
article.removeAttribute('class');
}
}
else if (matchDomain('nybooks.com')) {
let paywall_article = document.querySelector('.paywall-article');
if (paywall_article)
paywall_article.classList.remove('paywall-article');
let banners = 'div.toast-cta, div.inline-ad';
hideDOMStyle(banners);
}
else if (matchDomain('nytimes.com')) {
if (!window.location.pathname.startsWith('/athletic/')) {
waitDOMElement('div#dock-container', 'DIV', removeDOMElement, false);
let banners = 'div[data-testid="inline-message"], div[id^="ad-"], div.pz-ad-box';
hideDOMStyle(banners);
}
}
else if (matchDomain('outlookbusiness.com')) {
let paywall = document.querySelector('div#csc-paywall');
if (paywall) {
removeDOMElement(paywall);
let json_script = document.querySelector('script#__NEXT_DATA__');
if (json_script) {
let json = JSON.parse(json_script.innerText);
if (json && json.props.initialState.dashboard.ARTICLE_POST_DETAIL_API.data.article_data.description) {
let article_new = json.props.initialState.dashboard.ARTICLE_POST_DETAIL_API.data.article_data.description;
let article = document.querySelector('div.story-content');
if (article) {
article.innerHTML = '';
let parser = new DOMParser();
let doc = parser.parseFromString('<div>' + article_new + '</div>', 'text/html');
let content_new = doc.querySelector('div');
article.appendChild(content_new);
}
}
}
}
}
else if (matchDomain('outlookindia.com')) {
let paywall = document.querySelector('div.paywall');
if (paywall) {
removeDOMElement(paywall);
let json_script = getArticleJsonScript();
if (json_script) {
let json = JSON.parse(json_script.text);
if (json) {
let json_text = parseHtmlEntities(json.articleBody).replace(/\n/g, "$&\r\n");
let content = document.querySelector('div#articleBody');
if (json_text && content) {
content.innerHTML = '';
let article_new = document.createElement('p');
article_new.innerText = json_text;
content.appendChild(article_new);
}
}
}
}
}
else if (matchDomain('philonomist.com')) {
let paywall = document.querySelector('div.content-bandeau');
if (paywall && window.location.pathname.startsWith('/en/')) {
removeDOMElement(paywall);
let json_script = getArticleJsonScript();
if (json_script) {
let json = JSON.parse(json_script.text);
if (json) {
let json_text = parseHtmlEntities(findKeyJson(json, ['articleBody'])).replace(/\s{2,}/g, '\r\n\r\n');
let article = document.querySelector('div.main-body');
if (json_text && article) {
let par_last = article.querySelector('div > p:last-child');
if (par_last) {
let par_last_str = par_last.innerText.substring(0, 50);
if (json_text.replace(/<[^<]*>/g, '').includes(par_last_str)) {
par_last.innerText = json_text.substring(json_text.indexOf(par_last_str));
} else {
article.innerHTML = ' ';
let article_new = document.createElement('p');
article_new.innerText = json_text;
article.appendChild(article_new);
}
}
}
}
}
}
}
else if (matchDomain('project-syndicate.org')) {
func_post = function () {
let hidden_images = document.querySelectorAll('img[src][new-cursrc]');
for (let elem of hidden_images) {
if (elem.src.startsWith('data:image/'))
elem.src = elem.getAttribute('new-cursrc');
elem.style = 'width: 95%;';
}
}
let url = window.location.href;
getArchive(url, 'div.paywall--base', '', 'main > article');
}
else if (matchDomain('puck.news')) {
let url = window.location.href;
getArchive(url, 'div[class*="paywall"]', '', 'article');
let modal = document.querySelector('div#paywall-modal');
removeDOMElement(modal);
let overlay = document.querySelector('body.paywall-active');
if (overlay)
overlay.classList.remove('paywall-active');
}
else if (matchDomain('reuters.com')) {
let ads = 'div[data-testid="ResponsiveAdSlot"], div[data-testid="Dianomi"]';
hideDOMStyle(ads);
}
else if (matchDomain('rugbypass.com')) {
if (window.location.pathname.match(/^\/plus\/\w/)) {
let paywall = document.querySelector('.premium-fold-bottom');
if (paywall) {
paywall.classList.remove('premium-fold-bottom');
let offer = document.querySelector('.plus-article-offer');
removeDOMElement(offer);
let fade = document.querySelector('.fade');
if (fade)
fade.classList.remove('fade');
}
let lazy_images = document.querySelectorAll('figure > img.lazy[data-src]:not([src])');
for (let elem of lazy_images) {
elem.src = elem.getAttribute('data-src');
elem.removeAttribute('class');
}
}
}
else if (matchDomain('scientificamerican.com')) {
setCookie('article_meter', '', 'scientificamerican.com', '/', 0);
}
else if (matchDomain('scholastic.com')) {
let paywall = document.querySelector('div.paywallModalElement');
if (paywall) {
let modal = document.querySelector('div.modal-backdrop');
removeDOMElement(paywall, modal);
let body_modal = document.querySelector('body.modal-open');
if (body_modal)
body_modal.removeAttribute('class');
}
}
else if (matchDomain('science.org')) {
let paywall = document.querySelector('div.alert-read-limit');
removeDOMElement(paywall);
let overlay = document.querySelector('body.alert-read-limit__overlay');
if (overlay)
overlay.classList.remove('alert-read-limit__overlay');
}
else if (matchDomain('scmp.com')) {
window.setTimeout(function () {
if (matchDomain('amp.scmp.com')) {
amp_unhide_subscr_section('div.ad-banner, div.advert-fly-carpet-container, div.inline-advert');
let amp_images = document.querySelectorAll('section.article-body amp-img[src]');
for (let elem of amp_images) {
let img = document.createElement('img');
img.src = elem.getAttribute('src');
img.alt = elem.getAttribute('alt');
img.style = 'width: 90%;';
elem.parentNode.replaceChild(img, elem);
}
let default_meters = document.querySelectorAll('div[id^="default-meter-page-views"]');
removeDOMElement(...default_meters);
} else {
let paywall = document.querySelectorAll('div[data-qa="GenericArticle-PaywallContainer"], div.js-reading-0-percent-completion-tracker');
if (paywall.length) {
removeDOMElement(...paywall);
let article = document.querySelector('section[data-qa="ContentBody-ContentBodyContainer"]');
if (article) {
let json_script = document.querySelector('script#__NEXT_DATA__');
if (json_script) {
try {
let json = JSON.parse(json_script.text);
if (json && json.props.pageProps.payload.data.article.body.json) {
let pars = json.props.pageProps.payload.data.article.body.json;
if (pars && pars.length)
article.innerHTML = '';
for (let par of pars) {
let elem = document.createElement('p');
if (window.location.pathname.startsWith('/magazines/'))
elem.style = 'margin: 20px 0px;';
if (['p', 'h3'].includes(par.type)) {
for (let sub_elem of par.children) {
if (sub_elem.type === 'text') {
if (sub_elem.data)
elem.appendChild(document.createTextNode(sub_elem.data));
} else if (['a', 'em', 'span', 'strong'].includes(sub_elem.type)) {
let first_child = sub_elem.children && sub_elem.children[0];
if (sub_elem.children && sub_elem.children.length > 1) {
let elem_text = sub_elem.children.map(x => x.data || x.children[0].data).join('');
first_child = {type: 'text', data: elem_text};
}
if (first_child) {
if (first_child.type === 'text') {
if (first_child.data) {
let a_link = document.createElement('span');
if (sub_elem.attribs && sub_elem.attribs.href) {
a_link = document.createElement('a');
a_link.style = 'text-decoration: underline;';
a_link.href = sub_elem.attribs.href;
if (!matchUrlDomain(window.location.hostname, sub_elem.attribs.href))
a_link.target = '_blank';
} else if (sub_elem.type === 'em')
a_link.style = 'font-style: italic;';
else if (sub_elem.type === 'strong')
a_link.style = 'font-weight: bold;';
a_link.innerText = first_child.data;
elem.appendChild(a_link);
}
}
}
} else if (sub_elem.type === 'img') {
if (sub_elem.attribs) {
let attribs = sub_elem.attribs;
if (attribs.src)
elem = makeFigure(attribs.src, attribs.title, {alt: attribs.alt, style: 'width: 100%;'}, {style: 'font-size: 80%;'});
}
} else {
console.log(sub_elem);
}
}
} else if (par.type === 'div') {
if (par.attribs) {
if (par.attribs.class === 'image-inline-container') {
if (par.children && par.children[0]) {
let attribs = par.children[0].attribs;
if (attribs.src)
elem = makeFigure(attribs.src, attribs.title, {alt: attribs.alt, style: 'width: 100%;'}, {style: 'font-size: 80%;'});
}
} else if (par.attribs.class.match(/(methode-html|oembed|video)-wrapper/) && par.children) {
addIframe(par.children);
function addIframe(par_children) {
for (let sub_elem of par_children) {
if (sub_elem.children)
addIframe(sub_elem.children);
if (sub_elem.type === 'iframe') {
let attribs = sub_elem.attribs;
if (attribs.src) {
let figure = document.createElement('figure');
let iframe = document.createElement('iframe');
iframe.src = attribs.src;
if (attribs.width && attribs.height) {
if (!attribs.width.includes('%')) {
let ratio = attribs.width / (article.offsetWidth);
iframe.width = attribs.width / ratio;
iframe.height = attribs.height / ratio;
} else {
iframe.width = attribs.width;
iframe.height = attribs.height;
}
} else if (attribs.style) {
iframe.style = attribs.style;
if (attribs.height)
iframe.height = attribs.height;
}
figure.appendChild(iframe);
if (attribs.title) {
let iframe_title = document.createElement('figcaption');
iframe_title.innerText = attribs.title;
iframe_title.style = 'font-size: 80%;';
figure.appendChild(iframe_title);
}
elem.appendChild(figure);
}
}
}
}
} else if (par.attribs.class)
console.log(par);
}
} else if (!['blockquote-quote', 'inline-ad-slot', 'track-viewed-percentage'].includes(par.type))
console.log(par);
if (elem.hasChildNodes())
article.appendChild(elem);
}
}
} catch (err) {
console.log(err);
}
}
}
}
}
}, 0);
let ads = 'div[data-qa*="AdSlot"], div.adblock-message';
hideDOMStyle(ads);
}
else if (matchDomain('seattletimes.com')) {
let ads = 'div.top-ad-wrapper, div.ad, div.native-ad-article';
hideDOMStyle(ads);
}
else if (matchDomain('sfstandard.com')) {
setCookie('zephr-session', '', 'sfstandard.com', '/', 0);
let ads = 'div.sticky';
hideDOMStyle(ads);
}
else if (matchDomain(sg_sph_media_domains)) {
if (matchDomain('straitstimes.com')) {
func_post = function () {
header_nofix('main', 'div#sph_cdp_4:not(:empty)', 'BPC > no archive-fix');
}
let url = window.location.href;
getArchive(url, 'div[id][data-sdkids-campaignname^="OVR_Anon_Locked_"]', '', 'main');
} else if (matchDomain('businesstimes.com.sg')) {
let article = document.querySelector('div.body-content > div[class]');
if (article) {
let par_hidden = article.querySelectorAll('p.hidden');
if (par_hidden.length) {
par_hidden[0].parentNode.removeAttribute('class');
for (let elem of par_hidden)
elem.classList.remove('hidden');
let fade = article.querySelector('p[class*="bg-gradient-to-t"]');
if (fade)
fade.className = par_hidden[0].className;
}
}
}
let ads = 'div.ads, div[id^="dfp-ad-"], div.cx_paywall_placeholder, div[data-testid="cas-block-component"]';
hideDOMStyle(ads);
}
else if (matchDomain('slate.com')) {
let slate_roadblock = '.slate-roadblock';
let ads = 'section[class*="-ad"]';
hideDOMStyle(slate_roadblock + ', ' + ads);
}
else if (matchDomain('slideshare.net')) {
window.localStorage.clear();
let limit_overlay = document.querySelector('.limit-overlay');
if (limit_overlay)
limit_overlay.classList.remove('limit-overlay');
}
else if (matchDomain('sloanreview.mit.edu')) {
if (window.location.pathname.startsWith('/article/')) {
window.setTimeout(function () {
let pars = document.querySelectorAll('div.article-content > p');
if (pars.length && pars.length < 7)
refreshCurrentTab();
}, 1000);
}
}
else if (matchDomain('sofrep.com')) {
setCookie('sofrep_news_ids', '', 'sofrep.com', '/', 0);
let paywall = document.querySelector('div.paywall');
if (paywall) {
paywall.removeAttribute('class');
let intro = document.querySelector('div.non-paywall');
removeDOMElement(intro);
waitDOMElement('div#paywall_wrap', 'DIV', node => removeDOMElement(node.parentNode));
}
let banners = document.querySelectorAll('#scrollerCTA, #botCta');
removeDOMElement(...banners);
}
else if (matchDomain('spglobal.com')) {
setCookie('count', '', 'spglobal.com', '/', 0);
}
else if (matchDomain('standardmedia.co.ke')) {
let paywall = document.querySelector('div.fade-out-container');
if (paywall) {
removeDOMElement(paywall);
let json_script = getArticleJsonScript();
if (json_script) {
try {
let json = JSON.parse(json_script.text.replace(/[\r\n]/g, ''));
if (json) {
let json_text = parseHtmlEntities(breakText(json.articleBody)).replace(/[\r\n]/g, '<br>').replace(/[^<]+<br><br>/, '');
let article = document.querySelector('div.content');
if (json_text && article) {
let parser = new DOMParser();
let doc = parser.parseFromString('<p>' + json_text + '</p>', 'text/html');
let article_new = doc.querySelector('p');
let pars_old = article.querySelectorAll('p:not([class])');
removeDOMElement(...pars_old);
article.appendChild(article_new);
}
}
} catch (err) {
console.log(err);
}
}
}
let ads = 'div.ad';
hideDOMStyle(ads);
}
else if (matchDomain('staradvertiser.com')) {
let paywall = document.querySelectorAll('div.fade');
if (paywall.length) {
removeDOMElement(...paywall);
let div_hidden = document.querySelector('div#hsa-paywall-content[style]');
if (div_hidden)
div_hidden.removeAttribute('style');
let noscroll = document.querySelector('body.overflow-hidden');
if (noscroll)
noscroll.classList.remove('overflow-hidden');
}
let ads = 'div.promo-container, div.teads-inread';
hideDOMStyle(ads);
}
else if (matchDomain('startribune.com')) {
let ads = 'div[data-testid$="-ad"]';
hideDOMStyle(ads);
}
else if (matchDomain('statnews.com')) {
let paywall = document.querySelector('div.restricted-content-breaker');
if (paywall) {
removeDOMElement(paywall);
let article = document.querySelector('div.entry-content, section.the-content');
if (article) {
let url = window.location.href;
article.before(googleSearchToolLink(url));
}
}
let ads = 'div.header-ad-wrap, div[class*="dfp-ad"]';
hideDOMStyle(ads);
}
else if (matchDomain('stereogum.com')) {
let paywall = document.querySelector('div.members-only-overlay-wrapper');
if (paywall) {
removeDOMElement(paywall);
let json_url_dom = document.querySelector('head > link[rel="alternate"][type="application/json"][href]');
if (json_url_dom) {
let json_url = json_url_dom.href;
fetch(json_url)
.then(response => {
if (response.ok) {
response.json().then(json => {
try {
let json_text = json.acf.article_modules[0].copy.replace(/data-src/g, 'src');
let content = document.querySelector('div.article__content div.text-block__inner');
if (json_text && content) {
let parser = new DOMParser();
let doc = parser.parseFromString('<div>' + json_text + '</div>', 'text/html');
let content_new = doc.querySelector('div');
content.innerHTML = '';
content.appendChild(content_new);
}
} catch (err) {
console.log(err);
}
});
}
});
}
}
}
else if (matchDomain('stocknews.com')) {
let hideme = document.querySelector('div#hideme');
removeDOMElement(hideme);
let blurmes = document.querySelectorAll('div[id^="blurme"]');
for (let i = 0; i < blurmes.length; i++)
blurmes[i].setAttribute('id', 'blurmenot' + i);
}
else if (matchDomain('stratfor.com')) {
let url = window.location.href;
getArchive(url, 'div#paywallCTAContainer:not(:empty)', '', 'main', '', 'main', 'h1');
}
else if (matchDomain('study.com')) {
let faded_content = document.querySelector('div.faded-content');
if (faded_content)
faded_content.removeAttribute('class');
let div_hidden = document.querySelector('div.hidden[ng-non-bindable]');
if (div_hidden)
div_hidden.removeAttribute('class');
let banners = document.querySelectorAll('div.article-cutoff-div');
removeDOMElement(...banners);
}
else if (matchDomain('swarajyamag.com')) {
if (!window.location.pathname.startsWith('/amp/')) {
let paywall = pageContains('h2', /Please Sign In To Continue Reading/);
let amphtml = document.querySelector('head > link[rel="amphtml"]');
if (paywall.length) {
removeDOMElement(...paywall);
if (amphtml)
amp_redirect_not_loop(amphtml);
}
}
}
else if (matchDomain(['techtarget.com', 'computerweekly.com'])) {
let paywall = document.querySelector('div.paywall');
if (paywall) {
paywall.classList.remove('paywall');
let banners = document.querySelectorAll('p#firstP, div#inlineRegistrationWrapper');
removeDOMElement(...banners);
}
}
else if (matchDomain('tempo.co')) {
if (matchDomain('magz.tempo.co')) {
header_nofix('article', 'div.pw-containers');
} else {
let paywall = document.querySelector('div.bg-black > div > img[src="/_ipx/_/icons/paywallatas.svg"]');
if (paywall) {
removeDOMElement(paywall.parentNode.parentNode);
let article_hidden = document.querySelector('article > div:not([class]) div.overflow-hidden');
if (article_hidden)
article_hidden.removeAttribute('class');
let article = document.querySelector('div#content-wrapper');
if (article) {
let json_script = document.querySelector('script#__NUXT_DATA__');
if (json_script) {
try {
let json = JSON.parse(json_script.text);
if (json) {
let article_index = json.indexOf('published') + 2;
if (article_index) {
let parser = new DOMParser();
for (let i = article_index; i < article_index + 50; i++) {
let par = json[i];
if (par && typeof par === 'string' && par.match(/^<(p|div)/)) {
let doc = parser.parseFromString(par, 'text/html');
let par_new = doc.querySelector('p, div');
article.appendChild(par_new);
} else if (!Array.isArray(par))
console.log(par);
else
break;
}
}
}
} catch (err) {
console.log(err);
}
}
}
}
}
let ads = 'div.ads';
hideDOMStyle(ads);
}
else if (matchDomain('the-american-interest.com')) {
let counter = document.getElementById('article-counter');
removeDOMElement(counter);
}
else if (matchDomain('the-scientist.com')) {
let paywall = document.querySelector('div.paywall');
if (paywall) {
paywall.classList.remove('paywall');
let fader = document.querySelector('div.gated-fader');
let modal = document.querySelector('div#Modal');
removeDOMElement(fader, modal);
}
}
else if (matchDomain('theamericanconservative.com')) {
let paywall_sel = 'section.c-blog-post__body--locked';
let paywall = document.querySelector(paywall_sel);
if (paywall) {
let art_options = {
art_append: 1,
func_text: function (json_text) {
if (json_text.includes('<p class="has-drop-cap">')) {
let split = json_text.split(/(<p class="has-drop-cap">)/);
json_text = split[1] + split[2];
};
return json_text;
}
};
getJsonUrl(paywall_sel, {rm_class: 'c-blog-post__body--locked'}, 'div.c-blog-post__content', art_options);
} else {
let img_dark = document.querySelector('div.c-hero-article__image-img.o-image');
if (img_dark)
img_dark.removeAttribute('class');
}
let modal = document.querySelector('div#emailsub-modal');
removeDOMElement(modal);
let noscroll = document.querySelector('body.modal-open');
if (noscroll)
noscroll.classList.remove('modal-open');
}
else if (matchDomain('theamericanscholar.org')) {
getJsonUrl('div.ssagk-form', '', 'div.post_summary');
}
else if (matchDomain('theatlantic.com')) {
let banners = 'aside#paywall, div[class^="LostInventoryMessage_"]';
hideDOMStyle(banners);
}
else if (matchDomain('thebulletin.org')) {
getJsonUrl('div.article--cropped', '', 'div#body-copy', {art_append: 1});
}
else if (matchDomain('thedailybeast.com')) {
let paywall = document.querySelector('div.Body__paywall-container');
if (paywall) {
removeDOMElement(paywall);
let json_script = document.querySelector('script[displayName="initialState"]');
if (json_script) {
let json_str = json_script.text.substring(json_script.textContent.indexOf('{'));
try {
let json = JSON.parse(json_str);
if (json.body) {
let pars = json.body.sections;
let cards = json.body.cards;
if (pars) {
let mobile_doc = document.querySelector('div.Mobiledoc');
if (mobile_doc) {
let mobile_doc_text = mobile_doc.innerText.replace(/(\r|\n)/g, '');
for (let elem of pars) {
let par_elem = '';
if (elem[0] === 1) {
if (elem[1] === 'p') {
let par = '';
for (let part of elem[2])
par += part[3];
if (par && !mobile_doc_text.includes(par)) {
par_elem = document.createElement('p');
par_elem.innerText = par;
}
}
} else if (elem[0] === 10) {
if (cards && cards[elem[1]]) {
let card = cards[elem[1]];
if (card[0] === 'pt-image') {
par_elem = document.createElement('p');
let par_fig = makeFigure(card[1].url, card[1].title + ' ' + card[1].credit);
par_elem.appendChild(par_fig);
} else if (card[0] === 'pt-fancy-links-card') {
par_elem = document.createElement('p');
let par_link = document.createElement('a');
par_link.href = card[1].links;
par_link.innerText = card[1].linksData[0].long_headline;
par_elem.appendChild(par_link);
}
}
}
if (par_elem)
mobile_doc.appendChild(par_elem);
}
}
}
}
} catch (err) {
console.log(err);
}
}
}
let ads = document.querySelectorAll('div > div.tdb-ads-block');
for (let ad of ads)
hideDOMElement(ad.parentNode);
}
else if (matchDomain('thediplomat.com')) {
if (matchDomain('magazine.thediplomat.com')) {
let article = document.querySelector('article > section.h-96');
if (article)
article.classList.remove('h-96');
let fade = 'aside.bg-gradient-to-b';
hideDOMStyle(fade, 2);
}
let ads = 'aside.td-ad-container--labeled, div[data-actirise]';
hideDOMStyle(ads);
}
else if (matchDomain('theglobeandmail.com')) {
let lazy_images = document.querySelectorAll('img[src^="data:image/"][data-src]');
for (let elem of lazy_images)
elem.src = elem.getAttribute('data-src');
let ads = 'div.c-ad--base';
hideDOMStyle(ads);
}
else if (matchDomain(['thehindu.com', 'thehindubusinessline.com'])) {
if (!window.location.pathname.endsWith('/amp/')) {
let counter = '#test';
let ads = 'div.ad, div.article-ad, div.dfp-ad, div#paywallbox, div[id^="piano-art-"]';
hideDOMStyle(counter + ', ' + ads);
} else {
let ads = '[class^="height"], [class^="advt"], [id^="piano"]';
hideDOMStyle(ads);
}
function hindu_main() {
if (window) {
window.Adblock = false;
window.isNonSubcribed = false;
}
}
insert_script(hindu_main);
}
else if (matchDomain(['thejuggernaut.com', 'jgnt.co'])) {
let paywall = pageContains('div.font-mono', /(Read this article and many more by subscribing today|Join today to read the full story)/);
if (paywall.length) {
removeDOMElement(paywall[0].parentNode);
let json_script = document.querySelector('script#__NEXT_DATA__');
if (json_script) {
try {
let json = JSON.parse(json_script.text);
if (json && json.props.pageProps.post.fields) {
let url_next = json.query.slug;
if (url_next && !window.location.pathname.includes(url_next))
refreshCurrentTab();
let fields = json.props.pageProps.post.fields;
let pars = fields.fullText ? fields.fullText.content : fields.textEssay.fields.body.content;
window.setTimeout(function () {
let article = document.querySelector('div[class*="opacity-"]');
if (article) {
article.innerHTML = '';
article.removeAttribute('class');
let fade = document.querySelectorAll('div.bg-gradient-to-b');
for (let elem of fade)
elem.removeAttribute('class');
let modal = document.querySelector('div#headlessui-portal-root');
removeDOMElement(modal);
let par_first = true;
function attach_text(sub_item, elem) {
if (sub_item.value) {
let sub_elem = document.createElement('span');
sub_elem.innerText = sub_item.value;
if (sub_item.marks && sub_item.marks.length) {
let style = '';
for (let mark of sub_item.marks) {
if (mark.type === 'bold')
style += 'font-weight: bold;';
else if (mark.type === 'italic')
style += 'font-style: italic;';
else if (mark.type === 'underline')
style += 'text-decoration: underline;';
}
sub_elem.style = style;
}
elem.appendChild(sub_elem);
}
}
function attach_hyperlink(sub_item, elem) {
if (sub_item.content && sub_item.content[0] && sub_item.content[0].value && sub_item.data && sub_item.data.uri) {
let sub_elem = document.createElement('a');
sub_elem.href = sub_item.data.uri;
sub_elem.innerText = sub_item.content[0].value;
if (!matchUrlDomain(['thejuggernaut.com', 'jgnt.co'], sub_item.data.uri))
sub_elem.target = '_blank';
sub_elem.style = 'text-decoration: underline;';
elem.appendChild(sub_elem);
}
}
function attach_paragraph(par, elem) {
if (par.content && par.content.length) {
let span_elem = document.createElement('span');
for (let item of par.content) {
if (item.nodeType === 'text') {
attach_text(item, span_elem);
} else if (item.nodeType === 'hyperlink') {
attach_hyperlink(item, span_elem);
} else
console.log(item);
}
elem.appendChild(span_elem);
}
}
for (let par of pars) {
let elem = document.createElement('p');
if (par.nodeType.match(/^(paragraph|heading-\d)$/)) {
attach_paragraph(par, elem);
} else if (['blockquote'].includes(par.nodeType)) {
if (par.content && par.content.length) {
for (let item of par.content) {
if (item.nodeType === 'paragraph') {
elem.style = 'margin: 0px 20px; font-style: italic;';
attach_paragraph(item, elem);
} else
console.log(item);
}
}
} else if (par.nodeType === 'hr') {
elem.appendChild(document.createElement('hr'));
} else if (par.nodeType === 'embedded-asset-block') {
if (!par_first) {
if (par.data && par.data.target && par.data.target.fields) {
if (par.data.target.fields.file && par.data.target.fields.file.url) {
let figure = makeFigure(par.data.target.fields.file.url, par.data.target.fields.description);
elem.appendChild(figure);
}
}
} else
par_first = false;
} else if (par.nodeType === 'unordered-list') {
if (par.content && par.content.length) {
let ul = document.createElement('ul');
for (let item of par.content) {
if (item.nodeType === 'list-item') {
if (item.content) {
for (let sub_item_par of item.content) {
if (sub_item_par.nodeType === 'paragraph') {
let li = document.createElement('li');
attach_paragraph(sub_item_par, li);
ul.appendChild(li);
}
}
}
} else
console.log(item);
}
elem.appendChild(ul);
}
} else {
console.log(par);
}
if (elem.hasChildNodes()) {
article.appendChild(document.createElement('br'));
article.appendChild(elem);
}
}
}
}, 1000);
} else
refreshCurrentTab();
} catch (err) {
console.log(err);
}
}
}
}
else if (matchDomain('thelampmagazine.com')) {
let paywall = document.querySelector('div.paywall-gradient');
if (paywall) {
paywall.removeAttribute('class');
let banner = document.querySelector('section.p-8');
removeDOMElement(banner);
}
let login = document.querySelectorAll('a.js-login-modal-trigger');
for (let elem of login) {
elem.removeAttribute('class');
let url_search = '/search?q=' + elem.innerText.replace(/\s/g, '+');
elem.href = url_search;
elem.onclick = x => window.location.href = url_search;
}
}
else if (matchDomain('thenewatlantis.com')) {
let article_gated = document.querySelector('.article-gated');
if (article_gated)
article_gated.classList.remove('article-gated');
}
else if (matchDomain('thenewsminute.com')) {
let paywall = document.querySelector('div#paywall-banner');
if (paywall) {
removeDOMElement(paywall);
let fade = document.querySelector('div[class^="paywall-story-styles-"]');
if (fade)
fade.removeAttribute('class');
let json_script = getArticleJsonScript();
if (json_script) {
let json = JSON.parse(json_script.text);
if (json) {
let json_text = breakText(parseHtmlEntities(json.articleBody.replace(/\.\./g, '.\r\n\r\n')));
let article = document.querySelector('div.arr--story-page-card-wrapper');
if (json_text && article) {
article.innerHTML = '';
let article_new = document.createElement('p');
article_new.innerText = json_text;
article.appendChild(article_new);
}
}
}
}
}
else if (matchDomain('thepointmag.com')) {
setCookie('monthly_history', '', 'thepointmag.com', '/', 0);
let overlay = document.querySelectorAll('div.overlay, div#tpopup-');
removeDOMElement(...overlay);
}
else if (matchDomain('thequint.com')) {
window.setTimeout(function () {
let lock = document.querySelector('div > img[alt^="lock"]');
if (lock) {
lock.removeAttribute('alt');
let paywall = document.querySelector('div#paywall-widget');
if (paywall) {
removeDOMElement(paywall);
let article = document.querySelector('div.story-element');
if (article) {
let article_new = getArticleQuintype();
if (article_new && article.parentNode)
article.parentNode.replaceChild(article_new, article);
}
}
let body_hidden = document.querySelector('div#story-body-wrapper');
if (body_hidden) {
body_hidden.removeAttribute('class');
body_hidden.removeAttribute('style');
}
function thequint_unhide(node) {
node.removeAttribute('style');
}
waitDOMAttribute('div#story-body-wrapper', 'DIV', 'style', thequint_unhide, true);
}
}, 4000);
}
else if (matchDomain('thespectator.com')) {
let div_hidden = document.querySelector('div.ev-meter-content-class');
if (div_hidden)
div_hidden.classList.remove('ev-meter-content-class');
}
else if (matchDomain('theweek.com')) {
let paywall = document.querySelector('div.kiosq-main-layer');
removeDOMElement(paywall);
let locker = document.querySelector('div.paywall-locker');
if (locker)
locker.classList.remove('paywall-locker');
}
else if (matchDomain('thewrap.com')) {
setCookie('blaize_session', '', 'thewrap.com', '/', 0);
getJsonUrl('div#zephr-payment-form-root', '', 'div.entry-content', {art_append: 1});
let fade = document.querySelector('div.content-area div[style*="background-image: linear-gradient"]');
removeDOMElement(fade);
}
else if (matchDomain('timeshighereducation.com')) {
let paywall = document.querySelector('div.paywall-active');
if (paywall) {
removeDOMElement(paywall);
let fade = document.querySelectorAll('div.paywall-fade');
for (let elem of fade)
elem.classList.remove('paywall-fade');
}
let hidden_images = document.querySelectorAll('img.b-lazy[src^="data:image/"][data-src]');
for (let hidden_image of hidden_images) {
hidden_image.setAttribute('src', hidden_image.getAttribute('data-src'));
hidden_image.classList.remove('b-lazy');
hidden_image.parentElement.classList.remove('media--loading');
}
let ads = 'div[data-ad-page], section.block-the-dfp';
hideDOMStyle(ads);
}
else if (matchDomain(timesofindia_domains)) {
if (matchDomain('epaper.indiatimes.com')) {
let blocker = document.querySelector('div.epaperBlockerWrap');
removeDOMElement(blocker);
if (window.location.pathname.startsWith('/english-news-paper-today-toi-print-edition/')) {
let paywall = document.querySelector('section#blocker');
if (paywall) {
let fq = document.querySelector('section#fq');
removeDOMElement(paywall, fq);
let json_script = getArticleJsonScript();
if (json_script) {
let json = JSON.parse(json_script.text);
if (json) {
let json_text = json.articleBody;
let content = document.querySelector('section[type="synopsis"]');
if (json_text && content) {
let article_new = document.createElement('p');
article_new.innerText = breakText(json_text);
content.innerHTML = '';
addStyle('[type="synopsis"]::after {background: none !important;}');
content.appendChild(article_new);
}
}
}
}
}
} else {
let url = window.location.href;
let region_block = document.querySelector('div.plan-popup.active');
if (region_block) {
removeDOMElement(region_block);
let overflow = document.querySelector('html[style]');
if (overflow)
overflow.removeAttribute('style');
}
if (!window.location.pathname.includes('/amp_')) {
let paywall = document.querySelector('div[id^="story-blocker"]');
if (paywall) {
removeDOMElement(paywall);
let json_script = getArticleJsonScript();
if (json_script) {
try {
let json = JSON.parse(json_script.text);
if (json) {
let json_text = json.articleBody;
let article = document.querySelector('div.paywall');
if (json_text && article) {
if (!json_text.match(/\s(src|href)=/))
json_text = breakText(json_text).replace(/\n\n/g, '<br><br>');
window.setTimeout(function () {
let parser = new DOMParser();
let doc = parser.parseFromString('<div>' + parseHtmlEntities(json_text) + '</div>', 'text/html');
let article_new = doc.querySelector('div');
if (article_new) {
article.innerHTML = '';
article.appendChild(article_new);
}
}, 1500);
addStyle('div.paywall::after {background-image: none !important;}');
}
}
} catch (err) {
console.log(err);
}
}
window.setTimeout(function () {
let popup_button = document.querySelector('div.primeshow button:not([data-type])');
if (popup_button)
popup_button.click();
}, 1000);
let banners = 'div.bannerBenefitsWrapper';
hideDOMStyle(banners);
}
} else {
ampToHtml();
}
}
}
else if (matchDomain(no_dn_media_domains)) {
if (matchDomain('tradewindsnews.com')) {
if (window.location.pathname.startsWith('/markets/')) {
let paywall = document.querySelector('iframe[src]');
removeDOMElement(paywall);
let overflow = document.querySelector('body[style]');
if (overflow)
overflow.removeAttribute('style');
let blurred = document.querySelector('body > div[style]');
if (blurred)
blurred.removeAttribute('style');
} else {
header_nofix('div.article-body > div', 'div[style*="background-image: linear-gradient"]');
}
} else {
window.setTimeout(function () {
let paywall = document.querySelector('div.dn-paywall > div#sub-paywall-container');
if (paywall) {
removeDOMElement(paywall.parentNode);
let article = document.querySelector('div#dn-content');
let json_script = document.querySelector('script#__NUXT_DATA__');
if (json_script) {
try {
let pars = JSON.parse(json_script.text);
let article_id_index = pars.indexOf('global-article') + 1;
if (article_id_index) {
let article_id = pars[article_id_index];
if (article_id && !window.location.pathname.endsWith(article_id)) {
refreshCurrentTab();
return;
}
}
article.innerHTML = '';
article.classList.remove('shadow');
let img_first = true;
let parser = new DOMParser();
for (let par of pars) {
let elem;
if (par && par.type) {
let type = pars[par.type];
if (['text', 'subhead'].includes(type)) {
if (par.html || par.value) {
let index = par.html || par.value;
let json_text = pars[index];
let content_new = parser.parseFromString('<p class="dn-text">' + json_text + '</p>', 'text/html');
elem = content_new.querySelector('p');
if (par.value)
elem.style = 'font-weight: bold;';
}
} else if (type === 'picture') {
if (img_first)
img_first = false;
else {
let caption_text = pars[par.caption];
if (par.credit)
caption_text += ' (' + pars[par.credit] + ')';
elem = makeFigure(pars[par.src], caption_text);
elem.className = 'dn-image';
}
} else if (type === 'factbox') {
elem = document.createElement('p');
if (par.title)
elem.innerText = pars[par.title];
if (par.html) {
let content_new = parser.parseFromString('<div>' + pars[par.html] + '</div>', 'text/html');
let box = content_new.querySelector('div');
elem.appendChild(box);
}
} else if (type === 'news' && par.title && par.url) {
elem = document.createElement('p');
let sub_elem = document.createElement('a');
sub_elem.href = pars[par.url];
sub_elem.innerText = 'Related: ' + pars[par.title];
sub_elem.style = 'font-weight: bold;';
elem.appendChild(sub_elem);
} else if (!['ad', 'adobetarget', 'author', 'break', 'embed', 'Emne', 'Location', 'news', 'Organisasjon', 'Organisation', 'Organization', 'promobox', 'Person', 'Personer', 'Region', 'Regions', 'related', 'Sector', 'Sectors', 'Selskap', 'Sted', 'Topic'].includes(type)) {
for (let item in par) {
console.log(item);
console.log(pars[par[item]]);
}
}
if (elem)
article.appendChild(elem);
}
}
} catch (err) {
console.log(err);
}
}
} else if (matchDomain('dn.no') && window.location.pathname.match(/^\/(d2|magasinet|smak)\//)) {
let paywall = document.querySelector('div#sub-paywall-container');
if (paywall) {
removeDOMElement(paywall);
let article = document.querySelector('p.vrs-article-header__summary');
if (article) {
let url = window.location.href;
article.firstChild.before(googleSearchToolLink(url));
}
}
}
}, 1000);
}
}
else if (matchDomain(usa_conde_nast_domains)) {
let maps = document.querySelectorAll('div.map_wrapper');
for (let elem of maps)
elem.style.visibility = 'visible';
let banners = 'div.ad, aside.paywall-bar, div[class^="MessageBannerWrapper-"], div.ad-stickyhero, div.ad_wrapper';
hideDOMStyle(banners);
}
else if (matchDomain(usa_craincomm_domains)) {
if (matchDomain('adage.com')) {
let paywall = document.querySelector('div#piano-paywall-container');
let article = document.querySelector('article.b-article-body');
if (paywall && article) {
removeDOMElement(paywall);
let fusion_script = document.querySelector('script#fusion-metadata');
if (fusion_script && fusion_script.text.includes('Fusion.globalContent=')) {
try {
let json = JSON.parse(fusion_script.text.split('Fusion.globalContent=')[1].split(';Fusion.')[0]);
if (json) {
article.innerHTML = '';
let parser = new DOMParser();
let pars = json.content_elements;
for (let par of pars) {
let par_new;
if (['header', 'text'].includes(par.type)) {
if (par.content) {
let doc = parser.parseFromString('<p class="c-paragraph">' + par.content + '</p>', 'text/html');
par_new = doc.querySelector('p');
}
} else if (par.type === 'image') {
if (par.url) {
let caption_text = par.caption;
if (par.credits && par.credits.affiliation && par.credits.affiliation[0] && par.credits.affiliation[0].name)
caption_text += ' (' + par.credits.affiliation[0].name + ')';
par_new = makeFigure(par.url, caption_text);
}
} else if (par.type === 'raw_html') {
let doc = parser.parseFromString('<div>' + par.content + '</div>', 'text/html');
par_new = doc.querySelector('div');
} else if (par.raw_oembed) {
if (par.raw_oembed._id) {
par_new = document.createElement('p');
let par_link = document.createElement('a');
par_link.href = par_link.innerText = par.raw_oembed._id.replace(/\/$/, '');
par_link.target = '_blank';
par_new.appendChild(par_link);
}
} else if (par.type === 'video') {
if (par.canonical_url) {
if (par.canonical_website === 'adage') {
par_new = document.createElement('p');
let par_link = document.createElement('a');
par_link.href = par_link.innerText = 'https://www.adage.com' + par.canonical_url.replace(/\/$/, '');
par_link.target = '_blank';
par_new.appendChild(par_link);
} else
console.log(par);
}
} else if (par.type === 'list') {
if (par.items) {
par_new = document.createElement('ul');
for (let item of par.items) {
let li = document.createElement('li');
let doc = parser.parseFromString('<span>' + item.content + '</span>', 'text/html');
let span = doc.querySelector('span');
li.appendChild(span);
par_new.appendChild(li);
}
}
} else if (!['custom_embed'].includes(par.type)) {
console.log(par);
}
if (par_new)
article.appendChild(par_new);
}
}
} catch (err) {
console.log(err);
}
}
}
} else if (matchDomain('european-rubber-journal.com')) {
let paywall = document.querySelector('div.article-overlay');
if (paywall) {
let fade = document.querySelector('div.gradient');
removeDOMElement(paywall, fade);
let truncated = document.querySelector('div.truncated');
if (truncated)
truncated.classList.remove('truncated');
}
} else if (matchDomain(['pionline.com', 'rubbernews.com'])) {
let body_hidden = document.querySelector('body[class]');
if (body_hidden)
body_hidden.removeAttribute('class');
let lazy_images = document.querySelectorAll('img.lazy[data-src]');
for (let lazy_image of lazy_images) {
lazy_image.src = lazy_image.getAttribute('data-src');
lazy_image.removeAttribute('class');
}
let lazy_sources = document.querySelectorAll('source[srcset^="data:image"]');
removeDOMElement(...lazy_sources);
} else {
let sponsored_article = document.querySelector('div.sponsored-article');
if (sponsored_article)
sponsored_article.classList.remove('sponsored-article');
}
let ads = 'div.footer__ads-footer';
hideDOMStyle(ads);
}
else if (matchDomain(usa_nymag_domains)) {
let ads = 'div.m-ad, section.ad-splash, aside.ad_static';
hideDOMStyle(ads);
}
else if (matchDomain(usa_outside_mag_domains)) {
let ads = 'div.js-ad';
hideDOMStyle(ads);
}
else if (matchDomain(usa_penske_media_domains)) {
let ads = 'div.admz';
hideDOMStyle(ads);
}
else if (matchDomain(usa_tribune_domains)) {
getJsonUrl('div.paywall-container', '', 'div.body-copy', {art_class: 'body-copy'});
let ads = 'div.dfp-ad';
hideDOMStyle(ads);
}
else if (matchDomain('usatoday.com')) {
if (window.location.hostname.startsWith('amp.')) {
amp_unhide_access_hide('="gup.hasAssetAccess"', '', 'div[class*="ad-"]');
} else {
amp_redirect('div.gnt_rb');
let roadblock = document.querySelector('.roadblock-container');
if (roadblock) {
removeDOMElement(roadblock);
article_next = document.querySelector('article.next-in-depth-story > div.article-inner');
if (article_next) {
let url = article_next.getAttribute('data-url');
let weblink = document.createElement('a');
weblink.href = url;
weblink.innerText = 'open next in-depth story';
article_next.appendChild(weblink);
}
}
}
}
else if (matchDomain('vice.com')) {
let paywall = document.querySelectorAll('iframe.swg-dialog, swg-popup-background');
removeDOMElement(...paywall);
let noscroll = document.querySelector('body.swg-disable-scroll');
if (noscroll)
noscroll.classList.remove('swg-disable-scroll');
}
else if (matchDomain('vikatan.com')) {
window.setTimeout(function () {
let paywall = document.querySelector('div#paywallDisplay');
if (paywall) {
removeDOMElement(paywall);
let json_script = getArticleJsonScript();
if (json_script) {
let json = JSON.parse(json_script.text);
if (json) {
let json_text = parseHtmlEntities(json.articleBody);
let content = document.querySelector('div.story-element > div');
if (json_text && content) {
let parser = new DOMParser();
let doc = parser.parseFromString('<div>' + json_text + '</div>', 'text/html');
let content_new = doc.querySelector('div');
content.parentNode.replaceChild(content_new, content);
}
}
}
}
let story_hidden = document.querySelector('div[class^="styles-m__story-card-wrapper_"]');
if (story_hidden)
story_hidden.removeAttribute('class');
}, 500);
}
else if (matchDomain('voguebusiness.com')) {
setCookie('userId', '', 'voguebusiness.com', '/', 0);
let article = document.querySelector('article');
if (article) {
let pars = article.querySelectorAll('p:not([class]), p.paywall');
if (pars.length < 5) {
removeDOMElement(...pars);
let filter = /^window\.__PRELOADED_STATE__\s?=\s?/;
let json_script = getSourceJsonScript(filter, '[type]:not([src])');
if (json_script) {
try {
let json = JSON.parse(json_script.text.split(filter)[1].split('};')[0] + '}');
let body = document.querySelector('div.body__inner-container');
if (body) {
let pars = json.transformed.article.body;
function makeElem(elem, par_elem) {
if (Array.isArray(elem) && elem.length) {
let elem_new;
let item = elem[0];
if (typeof item === 'string') {
if (['p', 'h2', 'em', 'strong'].includes(item)) {
elem_new = document.createElement(item);
par_elem.appendChild(elem_new);
elem.shift();
makeElem(elem, elem_new);
} else if (item === 'a' && elem.length > 2) {
elem_new = document.createElement('a');
let a_data = elem[1];
elem_new.href = a_data.href;
if (a_data.isExternal)
elem_new.target = '_blank';
makeElem(elem.slice(2), elem_new);
par_elem.appendChild(elem_new);
} else if (item === 'inline-embed' || !(['ad', 'cm-unit', 'inline-newsletter', 'journey-inline-newsletter', 'native-ad'].includes(item) || (item.length < 30 && item.includes('inline-embed')))) {
if (item === 'inline-embed') {
let img_data = elem[1];
if (img_data && img_data.type === 'image') {
if (img_data.props && img_data.props.image && img_data.props.image.sources) {
let caption_text;
if (img_data.props.dangerousCaption) {
caption_text = img_data.props.dangerousCaption.replace(/<\/?\w+>/g, '');
if (img_data.props.dangerousCredit)
caption_text += ' ' + img_data.props.dangerousCredit;
}
let figure = makeFigure(img_data.props.image.sources.lg.url, caption_text);
par_elem.appendChild(figure);
}
}
} else {
elem_new = document.createTextNode(item);
par_elem.appendChild(elem_new);
elem.shift();
makeElem(elem, par_elem);
}
}
} else if (Array.isArray(item)) {
if (['a', 'em', 'strong'].includes(item[0])) {
makeElem(item, par_elem);
elem.shift();
makeElem(elem, par_elem);
} else {
console.log(item);
}
} else if (typeof item === 'object') {
if (!item.class)
console.log(item);
elem.shift();
makeElem(elem, par_elem);
}
} else if (typeof elem === 'string' && !['div'].includes(elem)) {
par_elem.appendChild(document.createTextNode(elem));
}
}
for (let par of pars)
makeElem(par, body);
}
} catch (err) {
console.log(err);
}
}
}
}
}
else if (matchDomain('vox.com')) {
let ads = 'div[id^="div-gpt-ad-"]';
hideDOMStyle(ads);
}
else if (matchDomain('washingtonpost.com')) {
let leaderboard = '#leaderboard-wrapper';
let ads = 'div[data-qa$="-ad"], div[data-component="Ad"], div[data-qa="outbrain"]';
hideDOMStyle(leaderboard + ', ' + ads);
}
else if (matchDomain('winnipegfreepress.com')) {
let ads = '.billboard-ad-space, .ad, .article-ad, .fixed-sky';
hideDOMStyle(ads);
}
else if (matchDomain('wsj.com')) {
if (window.location.pathname.startsWith('/livecoverage/')) {
window.setTimeout(function () {
fix_dowjones_live();
}, 1500);
} else {
let paywall = document.querySelector('.snippet-promotion, div[id*="-snippet-overlay"]');
if (paywall) {
removeDOMElement(paywall);
let article = document.querySelector('article section');
let article_id_dom = document.querySelector('head > meta[name="article.id"][content]');
if (article && article_id_dom) {
article.removeAttribute('class');
let article_id = article_id_dom.content;
let url_src = 'https://mats.mobile.dowjones.io/translate/' + article_id + '/jpml';
let x_api_key = 'e05995ff442143255eb8381f72d4913bf7503d6c';
getExtFetch(url_src, '', {"x-api-key": x_api_key}, main_wsj_pro);
function main_wsj_pro(url_src, data) {
try {
if (data) {
let intro = article.querySelectorAll('p[class][data-type="paragraph"]');
let par_class;
if (intro[0]) {
par_class = intro[0].className;
removeDOMElement(...intro);
}
let parser = new DOMParser();
let doc = parser.parseFromString(data, "application/xml");
let body = doc.querySelector('panel#body');
if (body) {
let media_bucket = doc.querySelector('panel#metadata > p#media-bucket');
let media_items = [];
let schema_data = [];
if (media_bucket) {
media_items = JSON.parse(media_bucket.innerHTML).items.filter(x => ['image', 'video', 'youtube'].includes(x.type));
if (media_items.length) {
let video = document.querySelector('div[data-type="video"]');
if (!(video && media_items[0].type !== 'video'))
media_items = media_items.slice(1);
let schema_script = document.querySelector('script#articleschema');
if (schema_script)
schema_data = JSON.parse(schema_script.text);
}
}
let pars = body.querySelectorAll('p[class], h2, h3, panel.media-item');
let par_first = true;
let image_nr = 0;
let par_new;
for (let par of pars) {
if (par.tagName === 'p') {
if (par_first)
par_first = false;
let doc = parser.parseFromString('<p class="' + par_class + '" data-type="paragraph">' + par.innerHTML.replace(/(<\/?mark([^>]+)?>)/g, '') + '</p>', 'text/html');
par_new = doc.querySelector('p');
if (par_new) {
let app_links = par_new.querySelectorAll('a[data-canonical-url][href^="wsj:"], a[data-canonical-url]:not([href])');
for (let elem of app_links)
elem.href = elem.getAttribute('data-canonical-url');
}
} else if (!par_first && par.tagName === 'panel') {
if (media_items[image_nr]) {
let media_item = media_items[image_nr];
if (media_item.type === 'image' && media_item['manifest-url']) {
par_new = makeFigure(media_item['manifest-url'], media_item.caption + ' PHOTO: ' + media_item.credit.toUpperCase(), {style: 'width: 100%;'});
} else if (media_item.type === 'video' && media_item.sourceid) {
par_new = document.createElement('p');
par_new.className = par_class;
let title = document.createTextNode(media_item.title);
let video = document.createElement('iframe');
video.src = schema_data.find(x => x['@type'] === 'VideoObject' && x.embedUrl.includes(media_item.sourceid)).embedUrl;
video.style = 'width: ' + article.offsetWidth + 'px; height: ' + article.offsetWidth * 3 / 4 + 'px;';
let caption = document.createTextNode(media_item.caption + ' ' + media_item.credit);
par_new.append(title, video, caption);
} else if (media_item.type === 'youtube' && media_item['sourceid']) {
par_new = document.createElement('iframe');
par_new.src = 'https://www.youtube.com/embed/' + media_item['sourceid'];
par_new.style = 'width: 100%; height: 400px;';
} else {
console.log(media_item);
}
image_nr++;
}
} else if (!par_first && par.tagName) {
let doc = parser.parseFromString('<' + par.tagName + '>' + par.innerHTML + '</' + par.tagName + '>', 'text/html');
par_new = doc.querySelector(par.tagName);
}
if (par_new)
article.appendChild(par_new);
}
}
}
} catch (err) {
console.log(err);
}
}
}
}
}
let ads = 'div.wsj-ad, div.adWrapper, div.css-xgokil-Box, div#cx-article-cover-overlay';
hideDOMStyle(ads);
}
else if (matchDomain('zerohedge.com')) {
let paywall = document.querySelector('div[class^="PremiumOverlay_container__"]');
if (paywall) {
removeDOMElement(paywall);
let json_script = document.querySelector('script#__NEXT_DATA__');
if (json_script) {
try {
let json = JSON.parse(json_script.innerText);
if (json && json.props.pageProps.node.body) {
let article_new = parseHtmlEntities(decode_utf8(atob(json.props.pageProps.node.body.substring(21))));
let article = document.querySelector('div[class^="NodeContent_mainContent__"');
if (article) {
article.innerHTML = '';
let parser = new DOMParser();
let doc = parser.parseFromString('<div>' + article_new + '</div>', 'text/html');
let content_new = doc.querySelector('div');
article.appendChild(content_new);
}
}
} catch (err) {
console.log(err);
}
}
}
}
else if (matchDomain(ke_nation_media_domains)) {
let paywall = document.querySelectorAll('div.modal, [id*="wall"], section.wall-guard');
if (paywall.length) {
removeDOMElement(...paywall);
func_post = function () {
let div_hidden = document.querySelectorAll('div.article-page .nmgp');
for (let elem of div_hidden)
elem.classList.remove('nmgp');
let page_hidden = document.querySelector('div.article-page .hidden');
if (page_hidden)
page_hidden.classList.remove('hidden');
let lazy_images = document.querySelectorAll('img.lazy-img[data-srcset]:not([src])');
for (let elem of lazy_images) {
elem.src = elem.getAttribute('data-srcset').split(',').pop().split(' ')[0];
elem.classList.remove('lazy-img');
elem.style = 'margin: 0px 20px';
}
let videos = document.querySelectorAll('iframe.lazy-iframe_iframe[data-src]:not([src])');
for (let elem of videos) {
elem.src = elem.getAttribute('data-src');
elem.removeAttribute('class');
}
}
let url = window.location.href;
replaceDomElementExt(url, false, false, 'div.blk-txt');
}
let banners = 'div.banner, div.spinner';
hideDOMStyle(banners);
}
else if ((domain = matchDomain(usa_gannett_domains)) || document.querySelector('head > link[href*=".gannettdigital.com/"], head > link[href*=".gannett-cdn.com/"]')) {
if (!domain)
domain = window.location.hostname.replace(/^(www|amp|eu)\./, '');
setCookie('firefly_akamai_meter', '', domain, '/', 0);
if (window.location.pathname.endsWith('/restricted/') && window.location.search.startsWith('?return=')) {
let url = decodeURIComponent(window.location.href.split('?return=')[1]);
let paywall = pageContains('div.message', 'This content is only available to subscribers.');
if (paywall.length) {
removeDOMElement(...paywall);
let article = document.querySelector('article');
if (article)
article.firstChild.before(archiveLink(url));
}
}
}
else if (matchDomain(usa_hearst_comm_domains) || document.querySelector('head > script[src*="/treg.hearstnp.com/"]')) {
let overlay = document.querySelector('div > div#modalOuter');
if (overlay) {
hideDOMElement(overlay.parentNode);
let noscroll = document.querySelector('body[style]');
if (noscroll)
noscroll.removeAttribute('style');
}
let ads = pageContains('div > div > p', 'Article continues below this ad');
for (let elem of ads)
hideDOMElement(elem.parentNode.parentNode);
}
else if ((domain = matchDomain(usa_lee_ent_domains)) || matchDomain(ca_torstar_domains.concat(['abqjournal.com'])) || document.querySelector('head > meta[name="tncms-access-version"]')) {
if (window.location.pathname.endsWith('.amp.html')) {
amp_unhide_access_hide('="hasAccess"', '="NOT hasAccess"', '.amp-ads-container');
let elem_hidden = document.querySelectorAll('html[class], body[class]');
for (let elem of elem_hidden)
elem.removeAttribute('class');
let amp_images = document.querySelectorAll('div.main-content amp-img[src^="https://"]');
for (let amp_image of amp_images) {
let elem = document.createElement('img');
Object.assign(elem, {
src: amp_image.getAttribute('src'),
alt: amp_image.getAttribute('alt'),
height: '400'
});
amp_image.parentNode.replaceChild(elem, amp_image);
}
} else {
if (!domain) {
function unscramble(t) {
for (var n = "", i = 0, r = t.length; i < r; i++) {
var s = t.charCodeAt(i);
if (s >= 33 && s <= 126) {
var sTmp = String.fromCharCode(33 + (s - 33 + 47) % 94);
n += sTmp;
} else
n += t.charAt(i);
}
return n;
}
let paywall = document.querySelector('div.subscriber-offers');
removeDOMElement(paywall);
let subscriber_only = document.querySelectorAll('div.subscriber-only');
for (let elem of subscriber_only) {
if (elem.classList.contains('encrypted-content')) {
elem.innerHTML = unscramble(elem.textContent);
}
elem.removeAttribute('style');
elem.removeAttribute('class');
}
let banners = document.querySelectorAll('div.subscription-required, div.redacted-overlay');
removeDOMElement(...banners);
}
let ads = 'div.tnt-ads-container, div[class*="adLabelWrapper"], div.globalHeaderBillboard';
hideDOMStyle(ads);
}
}
else if (matchDomain(usa_mcc_domains) || document.querySelector('section.bottom-nav > a[href^="https://www.mcclatchy.com/privacy-policy"]')) {
if (window.location.hostname.startsWith('amp.')) {
amp_unhide_subscr_section();
let subscriptions_action = document.querySelector('div[subscriptions-action][subscriptions-display="NOT data.hasError"]');
if (subscriptions_action)
subscriptions_action.removeAttribute('subscriptions-action');
let art_cropped = document.querySelector('div.article-body.cropped');
if (art_cropped)
art_cropped.classList.remove('cropped');
let subscr_tag = document.querySelector('div#subscriber-exclusive-tag');
let amp_players = document.querySelectorAll('amp-connatix-player, amp-iframe.trinity-player');
removeDOMElement(subscr_tag, ...amp_players);
let amp_images = document.querySelectorAll('amp-img[srcset]:not([src])');
for (let elem of amp_images) {
let img = document.createElement('img');
img.src = elem.getAttribute('srcset').split(' ')[0],
img.alt = elem.getAttribute('alt'),
img.style = 'width: 100%;';
elem.parentNode.replaceChild(img, elem);
}
} else {
window.setTimeout(function () {
let paywall = document.querySelector('p#yzwall');
if (paywall) {
removeDOMElement(paywall);
let pars_hidden = document.querySelectorAll('.yzfade, .yzarret');
for (let elem of pars_hidden)
elem.removeAttribute('class');
}
}, 1000);
}
let ads = 'div[data-type="ad"], div.vf-promo, div#ymovrly';
hideDOMStyle(ads);
}
else if (matchDomain(usa_mng_domains) || document.querySelector('head > link[rel="stylesheet"][id^="dfm-accuweather-"], footer li > a[href^="https://www.medianewsgroup.com"]')) {
if (window.location.pathname.endsWith('/amp/'))
amp_unhide_subscr_section('div.ampWrapperInside, div#paywall');
else if (true) {
let paywall_sel = '#server-paywall';
let paywall = document.querySelector(paywall_sel);
let article_sel = 'div.body-copy';
let article = document.querySelector(article_sel);
if (paywall && article) {
func_post = function () {
let slideshow = article.querySelector('div.article-slideshow');
if (slideshow) {
slideshow.removeAttribute('class');
let image_wrappers = slideshow.querySelectorAll('div.image-wrapper');
for (let elem of image_wrappers) {
elem.removeAttribute('class');
elem.style = 'margin: 20px 0px;';
}
let caption = 'div.mng-gallery-information-container, button.icon-close';
hideDOMStyle(caption, 2);
}
if (iframe)
article.appendChild(iframe);
}
let iframe = article.querySelector('iframe');
getJsonUrl(paywall_sel, '', article_sel, {art_append: 1, art_class: 'body-copy'});
}
let ads = 'div.dfp-ad';
hideDOMStyle(ads);
}
}
else if (document.querySelector('head > script[src*=".axate.io/"]')) {
let premium = document.querySelector('.premium, div[class*="-premium"]');
if (premium)
premium.removeAttribute('class');
}
else if (document.querySelector('head > meta[property][content^="https://cdn.forumcomm.com/"]')) {
let ads = 'div.GoogleDfpAd-Content';
hideDOMStyle(ads);
}
else if (document.querySelector('head > script[src*=".postmedia.digital/"], head > meta[content*=".postmedia.digital/"]')) {
let ads = 'div.ad__section-border, div[id^="tbl_"], div.js-widget-content';
hideDOMStyle(ads);
}
}
if (document.querySelector('head > link[href*="/leaky-paywall"], script[src*="/leaky-paywall"], div[id^="issuem-leaky-paywall-"]')) {
let js_cookie = document.querySelector('script#leaky_paywall_cookie_js-js-extra');
if (js_cookie && js_cookie.text.includes('"post_container":"')) {
let post_sel = js_cookie.text.split('"post_container":"')[1].split('"')[0];
if (post_sel) {
let post = document.querySelector(post_sel);
if (post)
post.removeAttribute('class');
}
}
}
}, 1000);
// General Functions
function matchDomain(domains, hostname) {
var matched_domain = false;
if (!hostname)
hostname = window.location.hostname;
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 matchCookies(name) {
return document.cookie.split(';').filter(x => x.trim().match(name)).map(y => y.split('=')[0].trim())
}
function setCookie(names, value, domain = '', path = '/', days = 0) {
var max_age = days * 24 * 60 * 60;
let ck_names = Array.isArray(names) ? names : [];
if (names instanceof RegExp)
ck_names = matchCookies(names);
else if (typeof names === 'string')
ck_names = [names];
for (let ck_name of ck_names) {
document.cookie = ck_name + "=" + (value || "") + (domain ? "; domain=" + domain : '') + (path ? "; path=" + path : '') + "; max-age=" + max_age;
}
window.localStorage.clear();
}
function cookieExists(name) {
return document.cookie.split(';').some(ck => ck.trim().indexOf(name + '=') === 0)
}
function removeDOMElement(...elements) {
for (let element of elements) {
if (element)
element.remove();
}
}
function hideDOMElement(...elements) {
for (let element of elements) {
if (element)
element.style = 'display:none !important;';
}
}
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 addStyle(css, id = 1) {
let style = document.querySelector('head > style#add'+ id);
if (!style && document.head) {
let sheet = document.createElement('style');
sheet.id = 'add' + id;
sheet.innerText = css;
document.head.appendChild(sheet);
}
}
function clearPaywall(paywall, paywall_action) {
if (paywall) {
if (!paywall_action)
removeDOMElement(...paywall);
else {
for (let elem of paywall) {
if (paywall_action.rm_class)
elem.classList.remove(paywall_action.rm_class);
else if (paywall_action.rm_attrib)
elem.removeAttribute(paywall_action.rm_attrib);
}
}
}
}
function makeFigure(url, caption_text, img_attrib = {}, caption_attrib = {}) {
let elem = document.createElement('figure');
let img = document.createElement('img');
img.src = url;
for (let attrib in img_attrib)
if (img_attrib[attrib])
img.setAttribute(attrib, img_attrib[attrib]);
elem.appendChild(img);
if (caption_text) {
let caption = document.createElement('figcaption');
for (let attrib in caption_attrib)
if (caption_attrib[attrib])
caption.setAttribute(attrib, caption_attrib[attrib]);
let cap_par = document.createElement('p');
cap_par.innerText = caption_text;
caption.appendChild(cap_par);
elem.appendChild(caption);
}
return elem;
}
function header_nofix(header, cond_sel = '', msg = 'BPC > no fix') {
if (header && typeof header === 'string')
header = document.querySelector(header);
if (header && !document.querySelector('div#bpc_nofix')) {
if (cond_sel) {
let elem = document.querySelectorAll(cond_sel);
if (elem.length)
removeDOMElement(...elem);
else
return false;
}
let nofix_div = document.createElement('div');
nofix_div.id = 'bpc_nofix';
nofix_div.style = 'margin: 20px; font-size: 20px; font-weight: bold; color: red;';
nofix_div.innerText = msg;
header.before(nofix_div);
}
}
function waitDOMElement(selector, tagName = '', callback, multiple = false) {
new window.MutationObserver(function (mutations) {
for (let mutation of mutations) {
for (let node of mutation.addedNodes) {
if (!tagName || (node.tagName === tagName)) {
if (node.matches(selector)) {
callback(node);
if (!multiple)
this.disconnect();
}
}
}
}
}).observe(document, {
subtree: true,
childList: true
});
}
function waitDOMAttribute(selector, tagName = '', attributeName = '', callback, multiple = false) {
let targetNode = document.querySelector(selector);
if (!targetNode)
return;
new window.MutationObserver(function (mutations) {
for (let mutation of mutations) {
if (mutation.target.attributes[attributeName]) {
callback(mutation.target);
if (!multiple)
this.disconnect();
}
}
}).observe(targetNode, {
attributes: true,
attributeFilter: [attributeName]
});
}
function getSelectorLevel(selector) {
if (selector.replace(/,\s+/g, ',').match(/[>\s]+/))
selector = selector.replace(/,\s+/g, ',').split(',').map(x => x.match(/[>\s]+/) ? x + ', ' + x.split(/[>\s]+/).pop() : x).join(', ');
return selector;
}
function getArticleSrc(url, url_src, proxy, base64, selector, text_fail = '', selector_source = selector, selector_archive = selector) {
let url_fetch = url_src || url;
GM.xmlHttpRequest({
method: "GET",
url: url_fetch,
headers: fetch_headers,
onload: function (response) {
let html = response.responseText;
if (proxy && base64) {
html = decode_utf8(atob(html));
selector_source = 'body';
}
let recursive;
if (url.startsWith('https://archive.')) {
if (url_fetch.includes('/https')) {
if (html.includes('<div class="TEXT-BLOCK"')) {
url_src = html.split('<div class="TEXT-BLOCK"')[1].split('</div>')[0].split('href="')[1].split('"')[0];
getArticleSrc(url, url_src, proxy, base64, selector, text_fail, selector_source, selector_archive);
recursive = true;
} else
html = '';
}
}
if (!recursive)
replaceDomElementExtSrc(url, url_src, html, proxy, base64, selector, text_fail, selector_source, selector_archive);
}
});
}
function replaceDomElementExt(url, proxy, base64, selector, text_fail = '', selector_source = selector, selector_archive = selector) {
let article = document.querySelector(selector);
if (!article)
return;
if (proxy) {
if (!text_fail) {
if (url.startsWith('https://archive.'))
text_fail = 'BPC > Try for full article text (no need to report issue for external site):\r\n';
else if (!matchUrlDomain(window.location.hostname, url))
text_fail = 'BPC > failed to load from external site:\r\n';
}
getArticleSrc(url, '', proxy, base64, selector, text_fail, selector_source, selector_archive);
} else {
fetch(url, {headers: fetch_headers})
.then(response => {
let article = document.querySelector(selector);
if (response.ok) {
response.text().then(html => {
replaceDomElementExtSrc(url, '', html, false, base64, selector, text_fail, selector_source);
});
} else {
replaceTextFail(url, article, proxy, text_fail);
}
}).catch(function (err) {
replaceTextFail(url, article, proxy, text_fail);
});
}
}
var selector_level = false;
function replaceDomElementExtSrc(url, url_src, html, proxy, base64, selector, text_fail = '', selector_source = selector, selector_archive = selector) {
let article = document.querySelector(selector);
let article_link = document.querySelector(selector_archive);
let no_content_msg = '&nbsp;| no article content found! | :';
if (html) {
if (!proxy && base64) {
html = decode_utf8(atob(html));
selector_source = 'body';
}
let parser = new DOMParser();
window.setTimeout(function () {
if (url.startsWith('https://archive.') && url_src) {
let domain_archive = url.match(/^https:\/\/(archive\.\w{2})/)[1];
let pathname = new URL(url_src).pathname;
html = html.replace(new RegExp('https:\\/\\/' + domain_archive.replace('.', '\\.') + '\\/o\\/\\w+\\/', 'g'), '').replace(new RegExp("(src=\"|background-image:url\\(')" + pathname.replace('/', '\\/'), 'g'), "$1" + 'https://' + domain_archive + pathname);
}
let doc = parser.parseFromString(html, 'text/html');
if (selector_level)
selector_source = getSelectorLevel(selector_source);
let article_new = doc.querySelector(selector_source);
if (article_new) {
if (article && article.parentNode) {
if (url.startsWith('https://archive.')) {
let arch_dom = (selector_archive !== selector) ? (article_new.querySelector(selector_archive) || document.querySelector(selector_archive)) : article_new;
if (arch_dom) {
if (arch_dom.firstChild)
arch_dom = arch_dom.firstChild;
let arch_div = document.createElement('div');
arch_div.appendChild(archiveLink_renew(url_src));
arch_div.appendChild(archiveLink(window.location.href, 'BPC > Full article text fetched from (no need to report issue for external site):\r\n'));
arch_div.style = 'margin: 0px 0px 50px;';
arch_dom.before(arch_div);
}
let targets = article_new.querySelectorAll('a[target="_blank"][href^="' + window.location.origin + '"]');
for (let elem of targets)
elem.removeAttribute('target');
let invalid_links = article_new.querySelectorAll('link[rel*="preload"]:not([href])');
removeDOMElement(...invalid_links);
}
window.setTimeout(function () {
if (article.parentNode) {
article.parentNode.replaceChild(article_new, article);
if (func_post)
func_post();
}
}, 200);
}
} else
replaceTextFail(url, article_link, proxy, text_fail.replace(':', no_content_msg));
}, 200);
} else {
replaceTextFail(url, article_link, proxy, url_src ? text_fail.replace(':', no_content_msg) : text_fail);
}
}
function replaceTextFail(url, article, proxy, text_fail) {
if (text_fail && article) {
let text_fail_div = document.createElement('div');
text_fail_div.id = 'bpc_fail';
text_fail_div.setAttribute('style', 'margin: 0px 50px; font-weight: bold; color: red;');
text_fail_div.appendChild(document.createTextNode(text_fail));
if (proxy) {
if (url.startsWith('https://archive.')) {
text_fail_div = archiveLink(url.replace(/^https:\/\/archive\.\w{2}\//, ''), text_fail);
} else {
let a_link = document.createElement('a');
a_link.innerText = url;
a_link.href = url;
a_link.target = '_blank';
text_fail_div.appendChild(a_link);
}
}
if (article.firstChild)
article.firstChild.before(text_fail_div);
else
article.appendChild(text_fail_div);
}
}
function getExtFetch(url, json_key = '', headers = {}, callback = '', args = []) {
GM.xmlHttpRequest({
method: "GET",
url: url,
headers: headers,
onload: function (response) {
let html = response.responseText;
if (json_key) {
try {
let json = JSON.parse(html);
if (json)
html = getNestedKeys(json, json_key);
} catch (err) {
console.log(err);
}
}
callback(url, html, ...args);
}
})
}
function randomInt(max) {
return Math.floor(Math.random() * Math.floor(max));
}
function randomIP(range_low = 0, range_high = 223) {
let rndmIP = [];
for (let n = 0; n < 4; n++) {
if (n === 0)
rndmIP.push(range_low + randomInt(range_high - range_low + 1));
else
rndmIP.push(randomInt(255) + 1);
}
return rndmIP.join('.');
}
function archiveRandomDomain() {
let tld_array = ['fo', 'is', 'li', 'md', 'ph', 'vn'];
let tld = tld_array[randomInt(6)];
return 'archive.' + tld;
}
function getArchive(url, paywall_sel, paywall_action = '', selector, text_fail = '', selector_source = selector, selector_archive = selector) {
let url_archive = 'https://' + archiveRandomDomain() + '/' + url.split(/[#\?]/)[0];
let paywall = document.querySelectorAll(paywall_sel);
if (paywall.length) {
clearPaywall(paywall, paywall_action);
replaceDomElementExt(url_archive, true, false, selector, text_fail, selector_source, selector_archive);
}
}
function archiveLink(url, text_fail = 'BPC > Try for full article text (no need to report issue for external site):\r\n') {
return externalLink(['archive.today', archiveRandomDomain()], 'https://{domain}?run=1&url={url}', url, text_fail);
}
function archiveLink_renew(url, text_fail = 'BPC > Only use to renew if text is incomplete or updated:\r\n') {
return externalLink([new URL(url).hostname], '{url}/again?url=' + window.location.href, url, text_fail);
}
function googleSearchToolLink(url, text_fail = 'BPC > Try for full article text (test url & copy html (tab) code to [https://codebeautify.org/htmlviewer]):\r\n') {
return externalLink(['search.google.com'], 'https://search.google.com/test/rich-results?url={url}', encodeURIComponent(url), text_fail);
}
function nftLink(url, text_fail = 'BPC > Full article text:\r\n') {
return externalLink(['1ft.io'], 'https://{domain}/{url}', url, text_fail);
}
function freediumLink(url, text_fail = 'BPC > Try for full article text:\r\n') {
return externalLink(['freedium.cfd'], 'https://{domain}/{url}', url, text_fail);
}
function readMediumLink(url, text_fail = 'BPC > Try for full article text:\r\n') {
return externalLink(['readmedium.com'], 'https://{domain}/{url}', url, text_fail);
}
function externalLink(domains, ext_url_templ, url, text_fail = 'BPC > Full article text:\r\n') {
let text_fail_div = document.createElement('div');
text_fail_div.id = 'bpc_archive';
text_fail_div.setAttribute('style', 'margin: 20px; font-size: 20px; font-weight: bold; color: red;');
let parser = new DOMParser();
text_fail = text_fail.replace(/\[(?<url>[^\]]+)\]/g, function (match, url) {
return "<a href='" + url + "' target='_blank' style='color: red'>" + new URL(url).hostname + "</a>";
});
let doc = parser.parseFromString('<span>' + text_fail + '</span>', 'text/html');
let elem = doc.querySelector('span');
text_fail_div.appendChild(elem);
for (let domain of domains) {
let ext_url = ext_url_templ.replace('{domain}', domain).replace('{url}', url.split('?')[0]);
let a_link = document.createElement('a');
a_link.innerText = domain;
a_link.href = ext_url;
a_link.target = '_blank';
text_fail_div.appendChild(document.createTextNode(' | '));
text_fail_div.appendChild(a_link);
}
return text_fail_div;
}
function removeClassesByPrefix(el, prefix) {
let el_classes = el.classList;
for (let el_class of el_classes) {
if (el_class.startsWith(prefix))
el_classes.remove(el_class);
}
}
function removeClassesList(list) {
for (let class_item of list) {
let elems = document.querySelectorAll('.' + class_item);
for (let elem of elems)
elem.classList.remove(class_item);
}
}
function amp_images_replace() {
window.setTimeout(function () {
let amp_images = document.querySelectorAll('figure amp-img[src^="http"]');
for (let amp_image of amp_images) {
let elem = document.createElement('img');
elem.src = amp_image.getAttribute('src');
elem.alt = amp_image.getAttribute('alt');
elem.style = 'width: 100%;';
amp_image.parentNode.replaceChild(elem, amp_image);
}
}, 1000);
}
function amp_iframes_replace(weblink = false, source = '') {
let amp_iframes = document.querySelectorAll('amp-iframe' + (source ? '[src*="' + source + '"]' : ''));
let par, elem;
for (let amp_iframe of amp_iframes) {
if (!weblink) {
if (amp_iframe.offsetHeight > 10) {
elem = document.createElement('iframe');
elem.src = amp_iframe.getAttribute('src').replace(/^http:/, 'https:');
elem.style = 'height: ' + amp_iframe.offsetHeight + 'px; width: 100%; border: 0px;';
if (amp_iframe.getAttribute('sandbox'))
elem.sandbox = amp_iframe.getAttribute('sandbox');
amp_iframe.parentNode.replaceChild(elem, amp_iframe);
}
} else {
par = document.createElement('p');
par.style = 'margin: 20px 0px;';
elem = document.createElement('a');
elem.innerText = 'Media-link';
elem.setAttribute('href', amp_iframe.getAttribute('src'));
elem.setAttribute('target', '_blank');
par.appendChild(elem);
amp_iframe.parentNode.replaceChild(par, amp_iframe);
}
}
}
function amp_redirect_not_loop(amphtml) {
if (!check_loop()) {
window.location.href = amphtml.href;
} else {
let header = (document.body && document.body.firstChild) || document.documentElement;
header_nofix(header, '', 'BPC > redirect to amp failed (disable amp-to-html extension/add-on or browser setting)');
}
}
function amp_redirect(paywall_sel, paywall_action = '', amp_url = '') {
let paywall = document.querySelectorAll(paywall_sel);
let amphtml = document.querySelector('head > link[rel="amphtml"]');
if (!amphtml && amp_url)
amphtml = {href: amp_url};
if (paywall.length && amphtml) {
clearPaywall(paywall, paywall_action);
amp_redirect_not_loop(amphtml);
}
}
function amp_unhide_subscr_section(amp_ads_sel = '', replace_iframes = true, amp_iframe_link = false, source = '') {
let preview = document.querySelectorAll('[subscriptions-section="content-not-granted"]');
removeDOMElement(...preview);
let subscr_section = document.querySelectorAll('[subscriptions-section="content"]');
for (let elem of subscr_section)
elem.removeAttribute('subscriptions-section');
hideDOMStyle(amp_ads_sel, 5);
if (replace_iframes)
amp_iframes_replace(amp_iframe_link, source);
}
function amp_unhide_access_hide(amp_access = '', amp_access_not = '', amp_ads_sel = '', replace_iframes = true, amp_iframe_link = false, source = '') {
let access_hide = document.querySelectorAll('[amp-access' + amp_access + '][amp-access-hide]:not([amp-access="error"], [amp-access^="message"], .piano)');
for (let elem of access_hide)
elem.removeAttribute('amp-access-hide');
if (amp_access_not) {
let amp_access_not_dom = document.querySelectorAll('[amp-access' + amp_access_not + ']');
removeDOMElement(...amp_access_not_dom);
}
hideDOMStyle(amp_ads_sel, 6);
if (replace_iframes)
amp_iframes_replace(amp_iframe_link, source);
}
function breakText(str, headers = false) {
str = str.replace(/(?:^|[A-Za-z\"\“\”\)])(\.+|\?|!)(?=[A-ZÖÜ\„\”\d][A-Za-zÀ-ÿ\„\d]{1,})/gm, "$&\n\n");
if (headers)
str = str.replace(/(([a-z]{2,}|[\"\“]))(?=[A-Z](?=[A-Za-zÀ-ÿ]+))/gm, "$&\n\n");
return str;
}
function parseHtmlEntities(encodedString) {
let parser = new DOMParser();
let doc = parser.parseFromString('<textarea>' + encodedString + '</textarea>', 'text/html');
let dom = doc.querySelector('textarea');
return dom.value;
}
function encode_utf8(str) {
return unescape(encodeURIComponent(str));
}
function decode_utf8(str) {
return decodeURIComponent(escape(str));
}
function ampToHtml() {
window.setTimeout(function () {
let canonical = document.querySelector('head > link[rel="canonical"][href]');
if (canonical)
window.location.href = canonical.href;
}, 1000);
}
function check_loop(interval = 2000) {
let loop = true;
let loop_date = Number(sessionStorage.getItem('###_loop'));
if (!(loop_date && (Date.now() - loop_date < interval))) {
sessionStorage.setItem('###_loop', Date.now());
loop = false;
}
return loop;
}
function refreshCurrentTab(not_loop = true) {
if (!not_loop || !check_loop(5000)) {
window.setTimeout(function () {
window.location.reload(true);
}, 500);
} else {
let header = (document.body && document.body.firstChild) || document.documentElement;
header_nofix(header, '', 'BPC > refresh loop stopped');
}
}
function insert_script(func, insertAfterDom) {
let bpc_script = document.querySelector('script#bpc_script');
if (!bpc_script) {
let script = document.createElement('script');
script.setAttribute('id', 'bpc_script');
script.appendChild(document.createTextNode('(' + func + ')();'));
let insertAfter = insertAfterDom ? insertAfterDom : (document.body || document.head || document.documentElement);
insertAfter.appendChild(script);
}
}
function getSourceJsonScript(filter, attributes = ':not([src], [type])') {
if (typeof filter === 'string')
filter = new RegExp(filter.replace(/\./g, '\\.'));
let scripts = document.querySelectorAll('script' + attributes);
for (let script of scripts) {
if (script.text.match(filter))
return script;
}
return false;
}
function getArticleJsonScript() {
let scripts = document.querySelectorAll('script[type="application/ld+json"]');
let json_script;
for (let script of scripts) {
if (script.innerText.match(/"(articlebody|text)":/i)) {
json_script = script;
break;
}
}
return json_script;
}
function restorePugpigLink(node, art_link_sel = '') {
let art_link = !art_link_sel ? node : node.querySelector(art_link_sel);
if (art_link)
art_link.onmousedown = x => window.location.href = art_link.href;
}
function restorePugpigPage() {
let art_link_sel = 'a.pp-widget-article, a.pp-related__link';
document.querySelectorAll(art_link_sel).forEach(e => restorePugpigLink(e));
waitDOMElement(art_link_sel, 'A', restorePugpigLink, true);
waitDOMElement('li[class^="collection_type-"]', 'LI', node => restorePugpigLink(node, art_link_sel), true);
let modal = 'section.modal';
hideDOMStyle(modal);
let paywall = document.querySelector('div.paywall');
if (paywall)
refreshCurrentTab();
}
function getArticleQuintype() {
let article_new;
let json_script = document.querySelector('script#static-page');
if (json_script) {
try {
article_new = document.createElement('div');
let parser = new DOMParser();
let json = JSON.parse(json_script.text);
let slug = json.qt.data.story.slug;
if (slug && !window.location.pathname.includes(slug))
refreshCurrentTab();
let pars = json.qt.data.story.cards;
for (let par of pars) {
let story_elements = par['story-elements'];
for (let elem of story_elements) {
let par_elem;
if (['text', 'title'].includes(elem.type) && elem.text) {
let doc = parser.parseFromString('<div style="margin: 25px 0px">' + elem.text + '</div>', 'text/html');
par_elem = doc.querySelector('div');
} else if (elem.type === 'image') {
if (elem['image-s3-key']) {
par_elem = document.createElement('figure');
let img = document.createElement('img');
img.src = 'https://media.assettype.com/' + elem['image-s3-key'];
par_elem.appendChild(img);
if (elem.title) {
let caption = document.createElement('figcaption');
if (elem.title.includes('</')) {
let doc = parser.parseFromString('<div>' + elem.title + '</div>', 'text/html');
caption.appendChild(doc.querySelector('div'));
} else
caption.innerText = elem.title;
caption.innerText = elem.title;
par_elem.appendChild(caption);
}
}
} else if (elem.type === 'jsembed') {
if (elem.subtype === 'tweet') {
if (elem.metadata && elem.metadata['tweet-url']) {
par_elem = document.createElement('a');
par_elem.href = par_elem.innerText = elem.metadata['tweet-url'];
par_elem.target = '_blank';
} else
console.log(elem);
}
} else if (elem.type === 'youtube-video') {
if (elem['embed-url']) {
par_elem = document.createElement('iframe');
par_elem.src = elem['embed-url'];
par_elem.style = 'width: 100%; height: 400px;';
}
} else if (elem.type === 'file') {
if (elem.url && elem['file-name']) {
par_elem = document.createElement('a');
par_elem.href = elem.url;
par_elem.innerText = elem['file-name'];
par_elem.target = '_blank';
}
} else if (!['widget'].includes(elem.type))
console.log(elem);
if (par_elem)
article_new.appendChild(par_elem);
}
}
if (!article_new.hasChildNodes())
article_new = '';
} catch (err) {
console.log(err);
}
}
return article_new;
}
function matchKeyJson(key, keys) {
let match = false;
if (typeof keys === 'string')
match = (key === keys);
else if (Array.isArray(keys))
match = keys.includes(key);
else if (keys instanceof RegExp)
match = keys.test(key);
return match;
}
function findKeyJson(json, keys, min_val_len = 0) {
let source = '';
if (Array.isArray(json)) {
for (let elem of json)
source = source || findKeyJson(elem, keys, min_val_len);
} else if (typeof json === 'object') {
for (let elem in json) {
let json_elem = json[elem];
if (typeof json_elem === 'string' && matchKeyJson(elem, keys)) {
if (json_elem.length > min_val_len)
return json_elem;
} else if (Array.isArray(json_elem) && json_elem.length > 1 && matchKeyJson(elem, keys)) {
return json_elem;
} else
source = source || findKeyJson(json_elem, keys, min_val_len);
}
}
return source;
}
function getNestedKeys(obj, key) {
if (key in obj)
return obj[key];
let keys = key.split('.');
let value = obj;
for (let i = 0; i < keys.length; i++) {
value = value[keys[i]];
if (value === undefined)
break;
}
return value;
}
function getJsonUrlText(article, callback, article_id = '', key = '', url_rest = false, url_slash = false) {
let json_url_dom = document.querySelector('head > link[rel="alternate"][type="application/json"][href]');
let json_url;
if (json_url_dom)
json_url = json_url_dom.href;
if (!json_url && article_id)
json_url = window.location.origin + '/wp-json/wp/v2/posts/' + article_id;
if (url_rest)
json_url = json_url.replace('/wp-json/', '/?rest_route=/');
else if (url_slash)
json_url = json_url.replace('/wp-json/', '//wp-json/');
if (json_url) {
fetch(json_url)
.then(response => {
if (response.ok) {
response.json().then(json => {
try {
let json_text = parseHtmlEntities(!key ? json.content.rendered : getNestedKeys(json, key));
callback(json_text, article);
} catch (err) {
console.log(err);
}
});
}
});
}
}
function getJsonUrlAdd(json_text, article, art_options = {}) {
let art_type = 'div';
let art_attrib = '';
if (Object.keys(art_options).length) {
if (art_options.art_type)
art_type = art_options.art_type;
if (art_options.art_class)
art_attrib += ' class="' + art_options.art_class + '"';
if (art_options.art_id)
art_attrib += ' id="' + art_options.art_id + '"';
if (art_options.art_style)
art_attrib += ' style="' + art_options.art_style + '"';
if (art_options.func_text)
json_text = art_options.func_text(json_text);
}
let parser = new DOMParser();
let doc = parser.parseFromString('<' + art_type + art_attrib + '>' + json_text + '</' + art_type + '>', 'text/html');
let article_new = doc.querySelector(art_type);
if (art_options.art_append || !article.parentNode) {
if (!art_options.art_hold)
article.innerHTML = '';
article.appendChild(article_new);
} else
article.parentNode.replaceChild(article_new, article);
if (func_post)
func_post();
}
function getJsonUrl(paywall_sel, paywall_action = '', article_sel, art_options = {}, article_id = '', key = '', url_rest = false, url_slash = false) {
let paywall = document.querySelectorAll(paywall_sel);
let article = document.querySelector(article_sel);
if (paywall.length && article) {
clearPaywall(paywall, paywall_action);
getJsonUrlText(article, (json_text, article) => {
if (json_text && article)
getJsonUrlAdd(json_text, article, art_options);
}, article_id, key, url_rest, url_slash);
}
}
function pageContains(selector, text) {
let elements = document.querySelectorAll(selector);
return Array.prototype.filter.call(elements, function (element) {
return RegExp(text).test(element.textContent);
});
}
function fix_dowjones_live() {
let paywall = document.querySelector('div#cx-lc-snippet');
if (paywall) {
removeDOMElement(paywall);
let json_script = getArticleJsonScript();
if (json_script) {
try {
let json = JSON.parse(json_script.text);
if (json) {
let article = document.querySelector('div[data-id="StreamBody_index_MainContainer"]');
if (article) {
let pars = json[0].liveBlogUpdate;
for (let par of pars) {
if (par.headline && par.articleBody) {
let headline = document.createElement('p');
headline.innerText = par.headline;
headline.style = 'font-weight: bold;';
let author = document.createElement('a');
if (par.author && par.author.sameAs) {
author.href = par.author.sameAs[0];
author.innerText = par.author.name;
}
let date = document.createElement('p');
if (par.dateModified && par.datePublished) {
date.innerText = 'Updated ' + par.dateModified.replace(/(T|:\d+\.\d+Z$)/g, ' ') + ' ET / Original ' + par.datePublished.replace(/(T|:\d+\.\d+Z$)/g, ' ') + ' ET';
}
let body = document.createElement('p');
body.innerText = par.articleBody;
article.after(headline, author, date, body);
}
}
}
}
} catch (err) {
console.log(err);
}
}
let fade = document.querySelectorAll('div[class*="-CardWrapper"]');
for (let elem of fade)
elem.removeAttribute('class');
}
}
})();