From 0c73e4160865e79a543fd6de7f7ece12992b222c Mon Sep 17 00:00:00 2001 From: alastairR Date: Thu, 15 Oct 2020 19:09:55 +1300 Subject: [PATCH] NZ Herald update (#962) * Update NZ Herald to make menu work * NZ Herald update --- src/js/background.js | 1 + src/js/contentScript.js | 78 ++++++++++++++++++++++++++++------------- 2 files changed, 54 insertions(+), 25 deletions(-) diff --git a/src/js/background.js b/src/js/background.js index 32360cb..63d3358 100644 --- a/src/js/background.js +++ b/src/js/background.js @@ -178,6 +178,7 @@ const blockedRegexes = { 'inquirer.com': /.+\.tinypass\.com\/.+/, 'lastampa.it': /.+\.repstatic\.it\/minify\/sites\/lastampa\/.+\/config\.cache\.php\?name=social_js/, 'lrb.co.uk': /.+\.tinypass\.com\/.+/, + 'nzherald.co.nz': /(.+nzherald\.co\.nz\/.+\/subs\/p\.js|.+nzherald\.co\.nz\/.+\/react\.js|.+nzherald\.co\.nz\/.+\/appear\.js|.+nzherald\.co\.nz\/.+\/tracking\/.+|.+nzherald\.co\.nz\/.+\/default\.js|.+\/newsbarscript\.js)/, 'medscape.com': /.+\.medscapestatic\.com\/.*medscape-library\.js/, 'interest.co.nz': /(.+\.presspatron\.com.+|.+interest\.co\.nz.+pp-ablock-banner\.js)/, 'repubblica.it': /scripts\.repubblica\.it\/pw\/pw\.js.+/, diff --git a/src/js/contentScript.js b/src/js/contentScript.js index a1fad63..e13d424 100644 --- a/src/js/contentScript.js +++ b/src/js/contentScript.js @@ -134,31 +134,7 @@ if (matchDomain('elmercurio.com')) { const counter = document.getElementById('article-counter'); removeDOMElement(counter); } else if (matchDomain('nzherald.co.nz')) { - const articleContent = document.querySelector('.article__content'); - if (articleContent) { - const articleOffer = document.querySelector('.article-offer'); - if (articleOffer) { - const cssSelector = articleContent.querySelectorAll('p')[5].getAttribute('class'); - const hiddenNotPars = articleContent.querySelectorAll('.' + cssSelector + ':not(p)'); - for (const hiddenNotPar of hiddenNotPars) { - hiddenNotPar.classList.remove(cssSelector); - hiddenNotPar.removeAttribute('style'); - } - const hiddenPars = articleContent.querySelectorAll('p.' + cssSelector); - let parHtml, parDom; - const parser = new DOMParser(); - for (const hiddenPar of hiddenPars) { - const parHtml = parser.parseFromString('
' + hiddenPar.innerHTML + '
', 'text/html'); - const parDom = parHtml.querySelector('div'); - articleContent.insertBefore(parDom, hiddenPar); - } - const firstSpan = document.querySelector('p > span'); - if (firstSpan) { firstSpan.removeAttribute('class'); } - removeDOMElement(articleOffer); - } - } - const premiumToaster = document.querySelector('#premium-toaster'); - removeDOMElement(premiumToaster); + NZHerald(); } else if (matchDomain('interest.co.nz')) { const wrapper = document.getElementById('pp-ablock-banner-wrapper'); const overlay = document.querySelector('.black-overlay'); @@ -518,3 +494,55 @@ function pageContains (selector, text) { return RegExp(text).test(element.textContent); }); } + +function NZHerald() { + window.setTimeout(function () { + const articleBody = document.querySelector('.article__body'); + if (articleBody) { + const childItems = articleBody.getElementsByTagName('*'); + let classHidden = ''; + for (const el of childItems) { + if (el.getAttribute('class') !== null && el.getAttribute('style') !== null && classHidden === '') { + classHidden = el.getAttribute('class'); + } + } + if (classHidden !== '') { + for (const el of childItems) { + el.classList.remove(classHidden); + el.removeAttribute('style'); + } + } + } + const overlay = document.querySelector('#premium-toaster'); + if (overlay) { + overlay.style.display = 'none'; + } + const advert = document.querySelector('.section-iframe.both'); + if (advert) { + advert.style.display = 'none'; + } + const els = document.querySelectorAll('.header__navigation-toggle-button'); + for (var i = 0; i < els.length; i++) { + els[i].addEventListener("click", function(ev) { + document.querySelector('.container').classList.toggle('container--sidebar-is-active'); + ev.stopImmediatePropagation(); + }); + } + const sub_els = document.querySelectorAll('.subnavigation'); + for (var i = 0; i < sub_els.length; i++) { + sub_els[i].addEventListener("mouseover", function() { + this.childNodes[1].classList.add('subnavigation__item-wrapper--is-active'); + }); + sub_els[i].addEventListener("mouseleave", function() { + this.childNodes[1].classList.remove('subnavigation__item-wrapper--is-active'); + }); + } + const acc_els = document.querySelectorAll('.accordion__button'); + for (var i = 0; i < acc_els.length; i++) { + acc_els[i].addEventListener("click", function(ev) { + this.parentNode.classList.toggle('accordion--is-expanded'); + ev.stopImmediatePropagation(); + }); + } + }, 1000); +}