Merge pull request #13 from joncrangle/main
Enable multiple domains to apply the same rule and add rules to ruleset
This commit is contained in:
@@ -172,7 +172,10 @@ func applyRules(domain string, path string, body string) string {
|
||||
}
|
||||
|
||||
for _, rule := range rulesSet {
|
||||
if rule.Domain != domain {
|
||||
// rule.Domain can be multiple domains delimited by "|"
|
||||
domains := strings.Split(rule.Domain, "|")
|
||||
for _, ruleDomain := range domains {
|
||||
if ruleDomain != domain {
|
||||
continue
|
||||
}
|
||||
if len(rule.Paths) > 0 && !StringInSlice(path, rule.Paths) {
|
||||
@@ -202,6 +205,7 @@ func applyRules(domain string, path string, body string) string {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return body
|
||||
}
|
||||
|
||||
71
ruleset.yaml
71
ruleset.yaml
@@ -53,3 +53,74 @@
|
||||
removeDOMElement(paywall)
|
||||
});
|
||||
</script>
|
||||
- domain: www.architecturaldigest.com|www.bonappetit.com|www.cntraveler.com|www.epicurious.com|www.gq.com|www.newyorker.com|www.vanityfair.com|www.vogue.com|www.wired.com
|
||||
injections:
|
||||
- position: head
|
||||
append: |
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
const banners = document.querySelectorAll('.paywall-bar, div[class^="MessageBannerWrapper-"');
|
||||
banners.forEach(el => { el.remove(); });
|
||||
});
|
||||
</script>
|
||||
- domain: www.nytimes.com|www.time.com
|
||||
injections:
|
||||
- position: head
|
||||
append: |
|
||||
<script>
|
||||
window.localStorage.clear();
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
const banners = document.querySelectorAll('div[data-testid="inline-message"], div[id^="ad-"], div[id^="leaderboard-"], div.expanded-dock, div.pz-ad-box, div[id="top-wrapper"], div[id="bottom-wrapper"]');
|
||||
banners.forEach(el => { el.remove(); });
|
||||
});
|
||||
</script>
|
||||
- domain: www.thestar.com|www.niagarafallsreview.ca|www.stcatharinesstandard.ca|www.thepeterboroughexaminer.com|www.therecord.com|www.thespec.com|www.wellandtribune.ca
|
||||
injections:
|
||||
- position: head
|
||||
append: |
|
||||
<script>
|
||||
window.localStorage.clear();
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
const paywall = document.querySelectorAll('div.subscriber-offers');
|
||||
paywall.forEach(el => { el.remove(); });
|
||||
const subscriber_only = document.querySelectorAll('div.subscriber-only');
|
||||
for (const elem of subscriber_only) {
|
||||
if (elem.classList.contains('encrypted-content') && dompurify_loaded) {
|
||||
const parser = new DOMParser();
|
||||
const doc = parser.parseFromString('<div>' + DOMPurify.sanitize(unscramble(elem.innerText)) + '</div>', 'text/html');
|
||||
const content_new = doc.querySelector('div');
|
||||
elem.parentNode.replaceChild(content_new, elem);
|
||||
}
|
||||
elem.removeAttribute('style');
|
||||
elem.removeAttribute('class');
|
||||
}
|
||||
const banners = document.querySelectorAll('div.subscription-required, div.redacted-overlay, div.subscriber-hide, div.tnt-ads-container');
|
||||
banners.forEach(el => { el.remove(); });
|
||||
const ads = document.querySelectorAll('div.tnt-ads-container, div[class*="adLabelWrapper"]');
|
||||
ads.forEach(el => { el.remove(); });
|
||||
const recommendations = document.querySelectorAll('div[id^="tncms-region-article"]');
|
||||
recommendations.forEach(el => { el.remove(); });
|
||||
});
|
||||
</script>
|
||||
- domain: www.usatoday.com
|
||||
injections:
|
||||
- position: head
|
||||
append: |
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
const banners = document.querySelectorAll('div.roadblock-container, .gnt_nb, [aria-label="advertisement"], div[id="main-frame-error"]');
|
||||
banners.forEach(el => { el.remove(); });
|
||||
});
|
||||
</script>
|
||||
- domain: www.washingtonpost.com
|
||||
injections:
|
||||
- position: head
|
||||
append: |
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
let paywall = document.querySelectorAll('div[data-qa$="-ad"], div[id="leaderboard-wrapper"], div[data-qa="subscribe-promo"]');
|
||||
paywall.forEach(el => { el.remove(); });
|
||||
const images = document.querySelectorAll('img');
|
||||
images.forEach(image => { image.parentElement.style.filter = ''; });
|
||||
});
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user