Compare commits
199 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c66fb6d18a | ||
![]() |
7029ba34ef | ||
![]() |
a93a4beb34 | ||
![]() |
badfe3685a | ||
![]() |
97b84f0951 | ||
![]() |
747dddda71 | ||
![]() |
38027f3840 | ||
![]() |
416bf48643 | ||
![]() |
3c737d3f4b | ||
![]() |
5bb7dc1665 | ||
![]() |
29b2089437 | ||
![]() |
fbe4106b0c | ||
![]() |
997f83c778 | ||
![]() |
d7a511000b | ||
![]() |
5726649002 | ||
![]() |
66e3afed16 | ||
![]() |
94c8ab1b4c | ||
![]() |
fc159b5b7e | ||
![]() |
ce655fc33d | ||
![]() |
7fb401d4d1 | ||
![]() |
780c7854a0 | ||
![]() |
de3051da61 | ||
![]() |
02063e0032 | ||
![]() |
17ef75f259 | ||
![]() |
d72c4ee7fb | ||
![]() |
e15bc95ae4 | ||
![]() |
5adc770a05 | ||
![]() |
ecb7c22ddd | ||
![]() |
348310235a | ||
![]() |
88715d1187 | ||
![]() |
b7a7fe0906 | ||
![]() |
b30fbf0471 | ||
![]() |
4b6a389715 | ||
![]() |
0e81cdacfe | ||
![]() |
3a837ab312 | ||
![]() |
dc2da541ad | ||
![]() |
4506b13240 | ||
![]() |
9181725487 | ||
![]() |
9370072a21 | ||
![]() |
586e48d65b | ||
![]() |
c5d321b13c | ||
![]() |
ae7703fdfc | ||
![]() |
efc397e6f2 | ||
![]() |
1b18c8f766 | ||
![]() |
e51bc6ac10 | ||
![]() |
d5b191dc8f | ||
![]() |
78b75141f3 | ||
![]() |
6d5a47d34e | ||
![]() |
8aa8f4ed1e | ||
![]() |
167d1420d3 | ||
![]() |
ccafc3d5b6 | ||
![]() |
b57c72d41b | ||
![]() |
6e78f24f74 | ||
![]() |
58a88498c0 | ||
![]() |
17504c5a45 | ||
![]() |
7c9163ae66 | ||
![]() |
5a861cc1c4 | ||
![]() |
87e64c495d | ||
![]() |
e2d95e8d1a | ||
![]() |
f9ae3fba66 | ||
![]() |
1948b580f9 | ||
![]() |
a9387ba409 | ||
![]() |
416d0c11ab | ||
![]() |
a6eacfb4c0 | ||
![]() |
d2ec215627 | ||
![]() |
767c100d12 | ||
![]() |
85266f2f67 | ||
![]() |
d0ceb4346c | ||
![]() |
fc346f0641 | ||
![]() |
0f2975ecff | ||
![]() |
a521b432d6 | ||
![]() |
4052a3203c | ||
![]() |
1f5e6b214d | ||
![]() |
45ab0e86ab | ||
![]() |
dac780498d | ||
![]() |
ef0d40be15 | ||
![]() |
6f652eedf2 | ||
![]() |
5c85219e78 | ||
![]() |
7e97ffaac9 | ||
![]() |
782a297666 | ||
![]() |
28acbaad77 | ||
![]() |
9165b3ede9 | ||
![]() |
ef837f80cc | ||
![]() |
a9238013e6 | ||
![]() |
a13aa7c514 | ||
![]() |
36e46ffc04 | ||
![]() |
5bb50e82f3 | ||
![]() |
74b11cd8b6 | ||
![]() |
19c8554c12 | ||
![]() |
f5a21be23e | ||
![]() |
5a37f29fef | ||
![]() |
4ed27cd374 | ||
![]() |
af8b6ce081 | ||
![]() |
312c36f415 | ||
![]() |
ddc315b0ca | ||
![]() |
4d50bc78e6 | ||
![]() |
fd17b82387 | ||
![]() |
5d919d7db6 | ||
![]() |
c23d1ea34c | ||
![]() |
e6addf4ee1 | ||
![]() |
1b2b9733fc | ||
![]() |
2cd984c897 | ||
![]() |
9523440d22 | ||
![]() |
f8675eeaf0 | ||
![]() |
fff7f483db | ||
![]() |
db35e85f1f | ||
![]() |
44f3d1b114 | ||
![]() |
0cbe35992f | ||
![]() |
c0efe01ce2 | ||
![]() |
0f129c5d6c | ||
![]() |
c0fc6a98cd | ||
![]() |
044ed46fde | ||
![]() |
dea868548c | ||
![]() |
f9ee00af73 | ||
![]() |
936be59d43 | ||
![]() |
712ad03c1e | ||
![]() |
cac301136f | ||
![]() |
8aa3e684f3 | ||
![]() |
3e26362d68 | ||
![]() |
a14ddb07b8 | ||
![]() |
92adc11ce3 | ||
![]() |
ef6ee239d7 | ||
![]() |
6ed8d338a4 | ||
![]() |
0c73e41608 | ||
![]() |
0363b4a198 | ||
![]() |
7e7964c3c0 | ||
![]() |
656ebd15d0 | ||
![]() |
7c804a2b9a | ||
![]() |
c5684c52df | ||
![]() |
1c20520975 | ||
![]() |
c714bf64a5 | ||
![]() |
0eea1dc0b4 | ||
![]() |
99a95884e1 | ||
![]() |
859ca5cfa0 | ||
![]() |
87a1a77d39 | ||
![]() |
078dd30d5c | ||
![]() |
a94dd2dfef | ||
![]() |
32641f9937 | ||
![]() |
b23aa3819a | ||
![]() |
55886ce748 | ||
![]() |
7e9c054e93 | ||
![]() |
533a058d7b | ||
![]() |
d01b72549e | ||
![]() |
58b14a94b3 | ||
![]() |
7dbd4201a9 | ||
![]() |
acf454c5b7 | ||
![]() |
f5288a1d4e | ||
![]() |
025a8fa033 | ||
![]() |
150f8b7252 | ||
![]() |
b978e4eacd | ||
![]() |
452e2c9932 | ||
![]() |
b74edee2d7 | ||
![]() |
31a976f855 | ||
![]() |
d5992ce8e9 | ||
![]() |
13c39f2a9d | ||
![]() |
27de9ed853 | ||
![]() |
b879a9fb22 | ||
![]() |
543bd2db52 | ||
![]() |
5a9093bfd6 | ||
![]() |
f33493d9ad | ||
![]() |
c13820c8d1 | ||
![]() |
129188f62a | ||
![]() |
cb5afd527d | ||
![]() |
58f06d975c | ||
![]() |
b4f18dbc29 | ||
![]() |
317f07c906 | ||
![]() |
c12ea5014e | ||
![]() |
e2444aa650 | ||
![]() |
c963e0eeac | ||
![]() |
bcd73a95ea | ||
![]() |
58b60f03f0 | ||
![]() |
596d85fcea | ||
![]() |
050022bba6 | ||
![]() |
86699790e7 | ||
![]() |
67b59dc8ae | ||
![]() |
326b910182 | ||
![]() |
93372d008d | ||
![]() |
2659570b65 | ||
![]() |
8301a3bc97 | ||
![]() |
643faee8f6 | ||
![]() |
5574026889 | ||
![]() |
b2f5e7248e | ||
![]() |
639eaf7ffb | ||
![]() |
ae7cf1f359 | ||
![]() |
8bd81dd81d | ||
![]() |
b8f4458d1e | ||
![]() |
76fcd58e69 | ||
![]() |
44394e8072 | ||
![]() |
1893cfcc9f | ||
![]() |
9722bdb875 | ||
![]() |
f26117646c | ||
![]() |
545d512872 | ||
![]() |
cec5d46f3d | ||
![]() |
8adffed422 | ||
![]() |
e33f019c1f | ||
![]() |
ad1afe9b63 | ||
![]() |
ab79f28867 | ||
![]() |
d3eeb9ad66 | ||
![]() |
389a055dc9 |
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
name: New site request template
|
name: New site request
|
||||||
about: New site request
|
about: New site request
|
||||||
title: 'New site request: [site here]'
|
title: 'New site request: [site here]'
|
||||||
labels: new site request
|
labels: new site request
|
||||||
@ -9,12 +9,12 @@ assignees: ''
|
|||||||
|
|
||||||
### New site requests - Before submitting an issue please read the following:
|
### New site requests - Before submitting an issue please read the following:
|
||||||
|
|
||||||
Only large or major sites will be considered. For small sites try the [Cookie Remover](https://chrome.google.com/webstore/detail/cookie-remover/kcgpggonjhmeaejebeoeomdlohicfhce) extension to remove cookies (might not work though).
|
Only large or major sites will be considered. Usually premium articles cannot be bypassed as they are behind a hard paywall.
|
||||||
Usually premium articles cannot be bypassed as they are behind a hard paywall.
|
|
||||||
|
|
||||||
1. Install the uBlock Origin extension if it hasn't been installed already. See if you are still getting a paywall. If so, continue to the next step.
|
1. Install the uBlock Origin extension if it hasn't been installed already. See if you are still getting a paywall.
|
||||||
2. First search 'Issues' to see if the site has been requested already.
|
2. Check if using Cookie Remover can bypass the paywall. If not, continue to the next step.
|
||||||
3. Visit an article on the site you want to bypass the paywall for and copy the article title.
|
3. First search 'Issues' to see if the site has been requested already.
|
||||||
4. Open up a new incognito window (Ctrl+Shift+N on Chrome) or Private window (Ctrl+Shift+P on Firefox), and paste the article title into Google.
|
4. Visit an article on the site you want to bypass the paywall for and copy the article title.
|
||||||
5. Click on the same article from the Google search results page.
|
5. Open up a new incognito window (Ctrl+Shift+N on Chrome) or Private window (Ctrl+Shift+P on Firefox), and paste the article title into Google.
|
||||||
6. If it loads without a paywall replace this entire template text with the word "Confirmed" and submit the request. Otherwise please do not submit an issue as this extension cannot bypass it either.
|
6. Click on the same article from the Google search results page.
|
||||||
|
7. If it loads without a paywall replace this entire template text with the word "Confirmed" and submit the request. Otherwise please do not submit an issue as this extension cannot bypass it either.
|
||||||
|
7
.github/ISSUE_TEMPLATE/other.md
vendored
@ -8,3 +8,10 @@ assignees: ''
|
|||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
1. First search [Issues](https://github.com/iamadamdev/bypass-paywalls-chrome/issues) to see if your problem has already been reported.
|
||||||
|
2. Make sure uBlock Origin is installed.
|
||||||
|
3. Chrome or Firefox?
|
||||||
|
4. Paste the article URL for the site you are having issues with.
|
||||||
|
5. Describe the issue.
|
||||||
|
###
|
||||||
|
17
.github/workflows/ci.yml
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
name: ci
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: Build
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Build
|
||||||
|
run: cd build && ./build.sh
|
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
build/output
|
95
README.md
Normal file → Executable file
@ -7,30 +7,33 @@
|
|||||||
*Bypass Paywalls is a web browser extension to help bypass paywalls for selected sites.*
|
*Bypass Paywalls is a web browser extension to help bypass paywalls for selected sites.*
|
||||||
|
|
||||||
### Installation Instructions
|
### Installation Instructions
|
||||||
**Google Chrome**
|
**Google Chrome / Microsoft Edge** (Custom sites supported)
|
||||||
1. Download this repo as a [ZIP file from GitHub](https://github.com/iamadamdev/bypass-paywalls-chrome/archive/master.zip).
|
1. Download this repo as a [ZIP file from GitHub](https://github.com/iamadamdev/bypass-paywalls-chrome/archive/master.zip).
|
||||||
1. Unzip the file and you should have a folder named `bypass-paywalls-chrome-master`.
|
1. Unzip the file and you should have a folder named `bypass-paywalls-chrome-master`.
|
||||||
1. In Chrome go to the extensions page (`chrome://extensions`).
|
1. In Chrome/Edge go to the extensions page (`chrome://extensions` or `edge://extensions`).
|
||||||
1. Enable Developer Mode.
|
1. Enable Developer Mode.
|
||||||
1. Drag the `bypass-paywalls-chrome-master` folder anywhere on the page to import it (do not delete the folder afterwards).
|
1. Drag the `bypass-paywalls-chrome-master` folder anywhere on the page to import it (do not delete the folder afterwards).
|
||||||
|
|
||||||
**Mozilla Firefox**
|
**Mozilla Firefox** (Custom sites not supported)
|
||||||
* [Download and install the latest version](https://github.com/iamadamdev/bypass-paywalls-chrome/releases/download/v1.7.2/bypass-paywalls-firefox.xpi)
|
* [Download and install the latest version](https://github.com/iamadamdev/bypass-paywalls-chrome/releases/latest/download/bypass-paywalls-firefox.xpi)
|
||||||
|
|
||||||
**Notes**
|
**Notes**
|
||||||
* Every time you open Chrome it may warn you about running extensions in developer mode, just click 🗙 to keep the extension enabled.
|
* Every time you open Chrome it may warn you about running extensions in developer mode, just click ✕ to keep the extension enabled.
|
||||||
* You will be logged out for any site you have checked.
|
* You will be logged out for any site you have checked.
|
||||||
* This extension works best alongside the adblocker uBlock Origin.
|
* This extension works best alongside the adblocker uBlock Origin.
|
||||||
|
* The Firefox version supports automatic updates.
|
||||||
|
|
||||||
### Bypass the following sites' paywalls with this extension:
|
### Bypass the following sites' paywalls with this extension:
|
||||||
|
|
||||||
[Adweek](https://www.adweek.com)\
|
[Adweek](https://www.adweek.com)\
|
||||||
[Algemeen Dagblad](https://www.ad.nl)\
|
|
||||||
[American Banker](https://www.americanbanker.com)\
|
[American Banker](https://www.americanbanker.com)\
|
||||||
|
[Ámbito](https://www.ambito.com)\
|
||||||
[Baltimore Sun](https://www.baltimoresun.com)\
|
[Baltimore Sun](https://www.baltimoresun.com)\
|
||||||
[Barron's](https://www.barrons.com)\
|
[Barron's](https://www.barrons.com)\
|
||||||
[Bloomberg Quint](https://www.bloombergquint.com)\
|
[Bloomberg Quint](https://www.bloombergquint.com)\
|
||||||
[Bloomberg](https://www.bloomberg.com)\
|
[Bloomberg](https://www.bloomberg.com)\
|
||||||
|
[Boston Globe](https://www.bostonglobe.com)\
|
||||||
|
[Brisbane Times](https://www.brisbanetimes.com.au)\
|
||||||
[Business Insider](https://www.businessinsider.com)\
|
[Business Insider](https://www.businessinsider.com)\
|
||||||
[Caixin](https://www.caixinglobal.com)\
|
[Caixin](https://www.caixinglobal.com)\
|
||||||
[Central Western Daily](https://www.centralwesterndaily.com.au)\
|
[Central Western Daily](https://www.centralwesterndaily.com.au)\
|
||||||
@ -40,41 +43,56 @@
|
|||||||
[Crain's Chicago Business](https://www.chicagobusiness.com)\
|
[Crain's Chicago Business](https://www.chicagobusiness.com)\
|
||||||
[Daily Press](https://www.dailypress.com)\
|
[Daily Press](https://www.dailypress.com)\
|
||||||
[De Groene Amsterdammer](https://www.groene.nl)\
|
[De Groene Amsterdammer](https://www.groene.nl)\
|
||||||
|
[De Speld](https://speld.nl)\
|
||||||
[De Tijd](https://www.tijd.be)\
|
[De Tijd](https://www.tijd.be)\
|
||||||
[De Volkskrant](https://www.volkskrant.nl)\
|
[De Volkskrant](https://www.volkskrant.nl)\
|
||||||
[DeMorgen](https://www.demorgen.be)\
|
[DeMorgen](https://www.demorgen.be)\
|
||||||
[Denver Post](https://www.denverpost.com)\
|
[Denver Post](https://www.denverpost.com)\
|
||||||
|
[Diario Financiero](https://www.df.cl)\
|
||||||
|
[Domani](https://www.editorialedomani.it)\
|
||||||
[Dynamed Plus](https://www.dynamed.com)\
|
[Dynamed Plus](https://www.dynamed.com)\
|
||||||
[Eindhovens Dagblad](https://www.ed.nl)\
|
[El Mercurio](https://www.elmercurio.com)\
|
||||||
[El Pais](https://www.elpais.com/)\
|
[El Pais](https://www.elpais.com)\
|
||||||
|
[El Periodico](https://www.elperiodico.com)\
|
||||||
|
[Elu24](https://www.elu24.ee)\
|
||||||
[Encyclopedia Britannica](https://www.britannica.com)\
|
[Encyclopedia Britannica](https://www.britannica.com)\
|
||||||
|
[Estadão](https://www.estadao.com.br)\
|
||||||
[Examiner](https://www.examiner.com.au)\
|
[Examiner](https://www.examiner.com.au)\
|
||||||
|
[Expansión](https://www.expansion.com)\
|
||||||
[Financial News](https://www.fnlondon.com)\
|
[Financial News](https://www.fnlondon.com)\
|
||||||
|
[Financial Post](https://www.financialpost.com)\
|
||||||
[Financial Times](https://www.ft.com)\
|
[Financial Times](https://www.ft.com)\
|
||||||
[First Things](https://www.firstthings.com)\
|
[First Things](https://www.firstthings.com)\
|
||||||
[Foreign Policy](https://www.foreignpolicy.com)\
|
[Foreign Policy](https://www.foreignpolicy.com)\
|
||||||
[Fortune](https://www.fortune.com)\
|
[Fortune](https://www.fortune.com)\
|
||||||
[Genomeweb](https://www.genomeweb.com)\
|
[Genomeweb](https://www.genomeweb.com)\
|
||||||
[Glassdoor](https://www.glassdoor.com)\
|
[Glassdoor](https://www.glassdoor.com)\
|
||||||
|
[Globes](https://www.globes.co.il)\
|
||||||
|
[Grubstreet](https://www.grubstreet.com)\
|
||||||
[Haaretz.co.il](https://www.haaretz.co.il)\
|
[Haaretz.co.il](https://www.haaretz.co.il)\
|
||||||
[Haaretz.com](https://www.haaretz.com)\
|
[Haaretz.com](https://www.haaretz.com)\
|
||||||
[Handelsblatt](https://www.handelsblatt.com)\
|
|
||||||
[Harper's Magazine](https://harpers.org)\
|
[Harper's Magazine](https://harpers.org)\
|
||||||
[Hartford Courant](https://www.courant.com)\
|
[Hartford Courant](https://www.courant.com)\
|
||||||
[Harvard Business Review](https://www.hbr.org)\
|
[Harvard Business Review](https://www.hbr.org)\
|
||||||
|
[Harvard Business Review China](https://www.hbrchina.org)\
|
||||||
[Herald Sun](https://www.heraldsun.com.au)\
|
[Herald Sun](https://www.heraldsun.com.au)\
|
||||||
[Het Financieel Dagblad](https://fd.nl)\
|
[Het Financieel Dagblad](https://fd.nl)\
|
||||||
|
[History Extra](https://www.historyextra.com)\
|
||||||
|
[Humo](https://www.humo.be)\
|
||||||
[Il Manifesto](https://www.ilmanifesto.it)\
|
[Il Manifesto](https://www.ilmanifesto.it)\
|
||||||
|
[Il Messaggero](https://www.ilmessaggero.it)\
|
||||||
[Inc.com](https://www.inc.com)\
|
[Inc.com](https://www.inc.com)\
|
||||||
[Investors Chronicle](https://www.investorschronicle.co.uk)\
|
[Interest.co.nz](https://www.interest.co.nz)\
|
||||||
|
[Investors Chronicle](https://www.investorschronicle.co.uk)
|
||||||
[L'Écho](https://www.lecho.be)\
|
[L'Écho](https://www.lecho.be)\
|
||||||
[L.A. Business Journal](https://labusinessjournal.com)\
|
[L.A. Business Journal](https://labusinessjournal.com)\
|
||||||
[La Nación](https://www.lanacion.com.ar)\
|
[La Nación](https://www.lanacion.com.ar)\
|
||||||
[La Repubblica](https://www.repubblica.it)\
|
[La Repubblica](https://www.repubblica.it)\
|
||||||
[La Stampa](https://www.lastampa.it)\
|
[La Stampa](https://www.lastampa.it)\
|
||||||
[La Tercera](https://www.latercera.com)\
|
[La Tercera](https://www.latercera.com)\
|
||||||
|
[La Voix du Nord](https://www.lavoixdunord.fr)\
|
||||||
[Le Devoir](https://www.ledevoir.com)\
|
[Le Devoir](https://www.ledevoir.com)\
|
||||||
[Le Parisien](http://www.leparisien.fr)\
|
[Le Parisien](https://www.leparisien.fr)\
|
||||||
[Les Échos](https://www.lesechos.fr)\
|
[Les Échos](https://www.lesechos.fr)\
|
||||||
[Loeb Classical Library](https://www.loebclassics.com)\
|
[Loeb Classical Library](https://www.loebclassics.com)\
|
||||||
[London Review of Books](https://www.lrb.co.uk)\
|
[London Review of Books](https://www.lrb.co.uk)\
|
||||||
@ -82,27 +100,36 @@
|
|||||||
[MIT Sloan Management Review](https://sloanreview.mit.edu)\
|
[MIT Sloan Management Review](https://sloanreview.mit.edu)\
|
||||||
[MIT Technology Review](https://www.technologyreview.com)\
|
[MIT Technology Review](https://www.technologyreview.com)\
|
||||||
[Medium](https://www.medium.com)\
|
[Medium](https://www.medium.com)\
|
||||||
|
[Medscape](https://www.medscape.com)\
|
||||||
[Mexicon News Daily](https://mexiconewsdaily.com)\
|
[Mexicon News Daily](https://mexiconewsdaily.com)\
|
||||||
[Mountain View Voice](https://www.mv-voice.com)\
|
[Mountain View Voice](https://www.mv-voice.com)\
|
||||||
|
[National Geographic](https://www.nationalgeographic.com)\
|
||||||
|
[New York Daily News](https://www.nydailynews.com)\
|
||||||
[NRC Handelsblad](https://www.nrc.nl)\
|
[NRC Handelsblad](https://www.nrc.nl)\
|
||||||
[NT News](https://www.ntnews.com.au)\
|
[NT News](https://www.ntnews.com.au)\
|
||||||
[National Post](https://www.nationalpost.com)\
|
[National Post](https://www.nationalpost.com)\
|
||||||
[Neue Zürcher Zeitung](https://www.nzz.ch)\
|
[Neue Zürcher Zeitung](https://www.nzz.ch)\
|
||||||
[New York Magazine](https://www.nymag.com)\
|
[New York Magazine](https://www.nymag.com)\
|
||||||
[New Zealand Herald](https://www.nzherald.co.nz)\
|
[New Zealand Herald](https://www.nzherald.co.nz)\
|
||||||
[Nikkei Asian Review](https://asia.nikkei.com)\
|
|
||||||
[Orange County Register](https://www.ocregister.com)\
|
[Orange County Register](https://www.ocregister.com)\
|
||||||
[Orlando Sentinel](https://www.orlandosentinel.com)\
|
[Orlando Sentinel](https://www.orlandosentinel.com)\
|
||||||
[Palo Alto Online](https://www.paloaltoonline.com)\
|
[Palo Alto Online](https://www.paloaltoonline.com)\
|
||||||
[Parool](https://www.parool.nl)\
|
[Parool](https://www.parool.nl)\
|
||||||
|
[Postimees](https://www.postimees.ee)\
|
||||||
[Quartz](https://qz.com)\
|
[Quartz](https://qz.com)\
|
||||||
[Quora](https://www.quora.com)\
|
[Quora](https://www.quora.com)\
|
||||||
[SOFREP](https://sofrep.com)\
|
[Quotidiani Gelocal](https://quotidiani.gelocal.it)\
|
||||||
|
[Republic.ru](https://republic.ru)\
|
||||||
|
[Reuters](https://www.reuters.com)\
|
||||||
[San Diego Union Tribune](https://www.sandiegouniontribune.com)\
|
[San Diego Union Tribune](https://www.sandiegouniontribune.com)\
|
||||||
[San Francisco Chronicle](https://www.sfchronicle.com)\
|
[San Francisco Chronicle](https://www.sfchronicle.com)\
|
||||||
[Scientific American](https://www.scientificamerican.com)\
|
[Scientific American](https://www.scientificamerican.com)\
|
||||||
[Seeking Alpha](https://seekingalpha.com)\
|
[Seeking Alpha](https://seekingalpha.com)\
|
||||||
|
[Slate](https://slate.com)\
|
||||||
|
[SOFREP](https://sofrep.com)\
|
||||||
[Statista](https://www.statista.com)\
|
[Statista](https://www.statista.com)\
|
||||||
|
[Star Tribune](https://www.startribune.com)\
|
||||||
|
[Stuff](https://www.stuff.co.nz)\
|
||||||
[SunSentinel](https://www.sun-sentinel.com)\
|
[SunSentinel](https://www.sun-sentinel.com)\
|
||||||
[Tech in Asia](https://www.techinasia.com)\
|
[Tech in Asia](https://www.techinasia.com)\
|
||||||
[Telegraaf](https://www.telegraaf.nl)\
|
[Telegraaf](https://www.telegraaf.nl)\
|
||||||
@ -111,7 +138,7 @@
|
|||||||
[The Age](https://www.theage.com.au)\
|
[The Age](https://www.theage.com.au)\
|
||||||
[The American Interest](https://www.the-american-interest.com)\
|
[The American Interest](https://www.the-american-interest.com)\
|
||||||
[The Athletic](https://www.theathletic.com)\
|
[The Athletic](https://www.theathletic.com)\
|
||||||
[The Athletic UK](https://www.theathletic.co.uk)\
|
[The Athletic (UK)](https://www.theathletic.co.uk)\
|
||||||
[The Atlantic](https://www.theatlantic.com)\
|
[The Atlantic](https://www.theatlantic.com)\
|
||||||
[The Australian Financial Review](https://www.afr.com)\
|
[The Australian Financial Review](https://www.afr.com)\
|
||||||
[The Australian](https://www.theaustralian.com.au)\
|
[The Australian](https://www.theaustralian.com.au)\
|
||||||
@ -119,6 +146,7 @@
|
|||||||
[The Canberra Times](https://www.canberratimes.com.au)\
|
[The Canberra Times](https://www.canberratimes.com.au)\
|
||||||
[The Courier](https://www.thecourier.com.au)\
|
[The Courier](https://www.thecourier.com.au)\
|
||||||
[The Courier Mail](https://www.couriermail.com.au)\
|
[The Courier Mail](https://www.couriermail.com.au)\
|
||||||
|
[The Cut](https://www.thecut.com)\
|
||||||
[The Daily Telegraph](https://www.dailytelegraph.com.au)\
|
[The Daily Telegraph](https://www.dailytelegraph.com.au)\
|
||||||
[The Diplomat](https://www.thediplomat.com)\
|
[The Diplomat](https://www.thediplomat.com)\
|
||||||
[The Economist](https://www.economist.com)\
|
[The Economist](https://www.economist.com)\
|
||||||
@ -132,10 +160,12 @@
|
|||||||
[The Mercury Tasmania](https://www.themercury.com.au)\
|
[The Mercury Tasmania](https://www.themercury.com.au)\
|
||||||
[The Morning Call](https://www.mcall.com)\
|
[The Morning Call](https://www.mcall.com)\
|
||||||
[The Nation](https://www.thenation.com)\
|
[The Nation](https://www.thenation.com)\
|
||||||
|
[The National](https://www.thenational.scot)\
|
||||||
[The New Statesman](https://www.newstatesman.com)\
|
[The New Statesman](https://www.newstatesman.com)\
|
||||||
[The New York Times](https://www.nytimes.com)\
|
[The New York Times](https://www.nytimes.com)\
|
||||||
[The New Yorker](https://www.newyorker.com)\
|
[The New Yorker](https://www.newyorker.com)\
|
||||||
[The News-Gazette](https://www.news-gazette.com)\
|
[The News-Gazette](https://www.news-gazette.com)\
|
||||||
|
[The Olive Press](https://www.theolivepress.es)\
|
||||||
[The Philadelphia Inquirer](https://www.inquirer.com)\
|
[The Philadelphia Inquirer](https://www.inquirer.com)\
|
||||||
[The Saturday Paper](https://www.thesaturdaypaper.com.au)\
|
[The Saturday Paper](https://www.thesaturdaypaper.com.au)\
|
||||||
[The Seattle Times](https://www.seattletimes.com)\
|
[The Seattle Times](https://www.seattletimes.com)\
|
||||||
@ -143,7 +173,6 @@
|
|||||||
[The Spectator](https://www.spectator.co.uk)\
|
[The Spectator](https://www.spectator.co.uk)\
|
||||||
[The Sydney Morning Herald](https://www.smh.com.au)\
|
[The Sydney Morning Herald](https://www.smh.com.au)\
|
||||||
[The Telegraph](https://www.telegraph.co.uk)\
|
[The Telegraph](https://www.telegraph.co.uk)\
|
||||||
[The Times](https://www.thetimes.co.uk)\
|
|
||||||
[The Toronto Star](https://www.thestar.com)\
|
[The Toronto Star](https://www.thestar.com)\
|
||||||
[The Wall Street Journal](https://www.wsj.com)\
|
[The Wall Street Journal](https://www.wsj.com)\
|
||||||
[The Washington Post](https://www.washingtonpost.com)\
|
[The Washington Post](https://www.washingtonpost.com)\
|
||||||
@ -154,34 +183,35 @@
|
|||||||
[Trouw](https://www.trouw.nl)\
|
[Trouw](https://www.trouw.nl)\
|
||||||
[Vanity Fair](https://www.vanityfair.com)\
|
[Vanity Fair](https://www.vanityfair.com)\
|
||||||
[Vrij Nederland](https://www.vn.nl)\
|
[Vrij Nederland](https://www.vn.nl)\
|
||||||
|
[Vulture](https://www.vulture.com)\
|
||||||
[Winston-Salem Journal](https://journalnow.com)\
|
[Winston-Salem Journal](https://journalnow.com)\
|
||||||
[Wired](https://www.wired.com)
|
[Wired](https://www.wired.com)\
|
||||||
|
[Zeit Online](https://www.zeit.de)
|
||||||
|
|
||||||
### Sites with limited number of free articles
|
### Sites with limited number of free articles
|
||||||
The free article limit can normally be bypassed by removing cookies for the site.*
|
The free article limit can normally be bypassed by removing cookies for the site.*
|
||||||
|
|
||||||
Install the Cookie Remover extension [for Google Chrome](https://chrome.google.com/webstore/detail/cookie-remover/kcgpggonjhmeaejebeoeomdlohicfhce) or [for Mozilla Firefox](https://addons.mozilla.org/en-US/firefox/addon/cookie-remover/). Please rate it 5 stars if you find it useful.
|
Install the Cookie Remover extension [for Google Chrome](https://chrome.google.com/webstore/detail/cookie-remover/kcgpggonjhmeaejebeoeomdlohicfhce) or [for Mozilla Firefox](https://addons.mozilla.org/en-US/firefox/addon/cookie-remover/). Please rate it 5 stars if you find it useful.
|
||||||
|
|
||||||
|
|
||||||
When coming across a paywall click the cookie icon to remove the cookies then refresh the page.
|
When coming across a paywall click the cookie icon to remove the cookies then refresh the page.
|
||||||
|
|
||||||
_*May not always succeed_
|
_*May not always succeed_
|
||||||
|
|
||||||
### New site requests
|
### New site requests
|
||||||
Only large or major sites will be considered.
|
Only large or major sites will be considered. Usually premium articles cannot be bypassed as they are behind a hard paywall.
|
||||||
Usually premium articles cannot be bypassed as they are behind a hard paywall.
|
|
||||||
|
|
||||||
1. Install the uBlock Origin extension if it hasn't been installed already. See if you are still getting a paywall. If so, continue to the next step.
|
1. Install the uBlock Origin extension if it hasn't been installed already. See if you are still getting a paywall.
|
||||||
2. First search [Issues](https://github.com/iamadamdev/bypass-paywalls-chrome/issues) to see if the site has been requested already.
|
2. Check if using Cookie Remover ([Google Chrome version](https://chrome.google.com/webstore/detail/cookie-remover/kcgpggonjhmeaejebeoeomdlohicfhce) or [Mozilla Firefox version](https://addons.mozilla.org/en-US/firefox/addon/cookie-remover/)) can bypass the paywall. If not, continue to the next step.
|
||||||
3. Visit an article on the site you want to bypass the paywall for and copy the article title.
|
3. First search [Issues](https://github.com/iamadamdev/bypass-paywalls-chrome/issues) to see if the site has been requested already.
|
||||||
4. Open up a new incognito window (Ctrl+Shift+N on Chrome) or Private window (Ctrl+Shift+P on Firefox), and paste the article title into Google.
|
4. Visit an article on the site you want to bypass the paywall for and copy the article title.
|
||||||
5. Click on the same article from the Google search results page.
|
5. Open up a new incognito window (Ctrl+Shift+N on Chrome) or Private window (Ctrl+Shift+P on Firefox), and paste the article title into Google.
|
||||||
6. If it loads without a paywall you can [submit a request](https://github.com/iamadamdev/bypass-paywalls-chrome/issues/new/choose) and replace the entire template text with the word "Confirmed". Otherwise please do not submit an issue as this extension cannot bypass it either.
|
6. Click on the same article from the Google search results page.
|
||||||
|
7. If it loads without a paywall you can [submit a request](https://github.com/iamadamdev/bypass-paywalls-chrome/issues/new/choose) and replace the entire template text with the word "Confirmed". Otherwise please do not submit an issue as this extension cannot bypass it either.
|
||||||
|
|
||||||
### Troubleshooting
|
### Troubleshooting
|
||||||
* This extension works best alongside uBlock Origin [for Google Chrome](https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm) or [for Mozilla Firefox](https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/).
|
* This extension works best alongside uBlock Origin [for Google Chrome](https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm) or [for Mozilla Firefox](https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/).
|
||||||
* If a site doesn't work, try turning off uBlock and refreshing.
|
* If a site doesn't work, try turning off uBlock and refreshing.
|
||||||
* Make sure the site is checked under Options (on macOS sometimes the sites get unselected).
|
* Try clearing [cookies](https://chrome.google.com/webstore/detail/cookie-remover/kcgpggonjhmeaejebeoeomdlohicfhce).
|
||||||
* Make sure you're running the latest version of Bypass Paywalls.
|
* Make sure you're running the latest version of Bypass Paywalls.
|
||||||
* If a site is having problems try unchecking "\*General Paywall Bypass\*" in Options.
|
* If a site is having problems try unchecking "\*General Paywall Bypass\*" in Options.
|
||||||
* If none of these work, you can submit an issue [here](https://github.com/iamadamdev/bypass-paywalls-chrome/issues/new/choose).
|
* If none of these work, you can submit an issue [here](https://github.com/iamadamdev/bypass-paywalls-chrome/issues/new/choose).
|
||||||
@ -194,4 +224,15 @@ PRs are welcome.
|
|||||||
4. Use [JavaScript Semi-Standard Style linter](https://github.com/standard/semistandard). Don't need to follow it exactly. There will be some errors (e.g., do not use it on `sites.js`).
|
4. Use [JavaScript Semi-Standard Style linter](https://github.com/standard/semistandard). Don't need to follow it exactly. There will be some errors (e.g., do not use it on `sites.js`).
|
||||||
|
|
||||||
### Show your support
|
### Show your support
|
||||||
* I am not asking for donations or anything like that, all I ask is that you star this repo.
|
* Follow me on Twitter [@iamadamdev](https://twitter.com/iamadamdev) for updates.
|
||||||
|
* I do not ask for donations, all I ask is that you star this repo.
|
||||||
|
|
||||||
|
### Disclaimer
|
||||||
|
* This software is provided for educational purposes only and
|
||||||
|
is provided "AS IS", without warranty of any kind, express or
|
||||||
|
implied, including but not limited to the warranties of merchantability,
|
||||||
|
fitness for a particular purpose and noninfringement. in no event shall the
|
||||||
|
authors or copyright holders be liable for any claim, damages or other
|
||||||
|
liability, whether in an action of contract, tort or otherwise, arising from,
|
||||||
|
out of or in connection with the software or the use or other dealings in the
|
||||||
|
software.
|
||||||
|
8
build/build.sh
Normal file → Executable file
@ -9,6 +9,12 @@ sed 's/src\/.*\///g' ../manifest.json > temp-chrome-manifest.json
|
|||||||
# Strip subdirectories for Firefox manifest
|
# Strip subdirectories for Firefox manifest
|
||||||
sed 's/src\/.*\///g' ../manifest-ff.json > temp-ff-manifest.json
|
sed 's/src\/.*\///g' ../manifest-ff.json > temp-ff-manifest.json
|
||||||
|
|
||||||
|
# Fix update url for Chrome manifest
|
||||||
|
sed -i 's/updates\.xml/src\/updates\/updates.xml/g' temp-chrome-manifest.json
|
||||||
|
|
||||||
|
# Fix update url for Firefox manifest
|
||||||
|
sed -i 's/updates\.json/src\/updates\/updates.json/g' temp-ff-manifest.json
|
||||||
|
|
||||||
# Strip subdirectories for background.js
|
# Strip subdirectories for background.js
|
||||||
sed 's/src\/.*\///g' ../src/js/background.js > temp-background.js
|
sed 's/src\/.*\///g' ../src/js/background.js > temp-background.js
|
||||||
|
|
||||||
@ -33,7 +39,7 @@ rm -f $NAME.crx $NAME.xpi
|
|||||||
7z a -tzip -mx9 $NAME.crx $CH_FILES
|
7z a -tzip -mx9 $NAME.crx $CH_FILES
|
||||||
7z rn $NAME.crx temp-chrome-manifest.json manifest.json temp-background.js background.js temp-options.html options.html temp-popup.html popup.html
|
7z rn $NAME.crx temp-chrome-manifest.json manifest.json temp-background.js background.js temp-options.html options.html temp-popup.html popup.html
|
||||||
|
|
||||||
# Generate Firefox .xpi extension package (Firefox manifest)
|
# Generate Firefox .xpi extension package (firefox manifest)
|
||||||
7z a -tzip -mx9 $NAME.xpi $FF_FILES
|
7z a -tzip -mx9 $NAME.xpi $FF_FILES
|
||||||
7z rn $NAME.xpi temp-ff-manifest.json manifest.json temp-background.js background.js temp-options.html options.html temp-popup.html popup.html
|
7z rn $NAME.xpi temp-ff-manifest.json manifest.json temp-background.js background.js temp-options.html options.html temp-popup.html popup.html
|
||||||
|
|
||||||
|
@ -1,6 +1 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<svg width="1em" height="1em" fill="currentColor" data-reactid=".0.4:$/=10.2.0" preserveAspectRatio="xMidYMid meet" viewBox="0 0 40 40" style="vertical-align:middle;display:inline-block"><g data-reactid=".0.4:$/=10.2.0.0"><path d="m20 12.5h-7.5v7.5h7.5v-7.5z m2.5 12.5v2.5h-12.5v-2.5h12.5z m0-15v12.5h-12.5v-12.5h12.5z m12.5 15v2.5h-10v-2.5h10z m0-5v2.5h-10v-2.5h10z m0-5v2.5h-10v-2.5h10z m0-5v2.5h-10v-2.5h10z m-30 18.75v-18.75h-2.5v18.75q0 0.5075000000000003 0.37124999999999986 0.8787500000000001t0.8787500000000001 0.37124999999999986 0.8787500000000001-0.37124999999999986 0.37124999999999986-0.8787500000000001z m32.5 0v-21.25h-30v21.25q0 0.6449999999999996-0.21499999999999986 1.25h28.965q0.5075000000000003 0 0.8787499999999966-0.37124999999999986t0.3712500000000034-0.8787500000000001z m2.5-23.75v23.75q0 1.5625-1.09375 2.65625t-2.65625 1.09375h-32.5q-1.5625 0-2.65625-1.09375t-1.09375-2.65625v-21.25h5v-2.5h35z" data-reactid=".0.4:$/=10.2.0.0.0"/></g></svg>
|
||||||
<svg fill="currentColor" width="1em" height="1em" viewBox="0 0 40 40" preserveAspectRatio="xMidYMid meet" style="vertical-align:middle;display:inline-block;" data-reactid=".0.4:$/=10.2.0">
|
|
||||||
<g data-reactid=".0.4:$/=10.2.0.0">
|
|
||||||
<path d="m20 12.5h-7.5v7.5h7.5v-7.5z m2.5 12.5v2.5h-12.5v-2.5h12.5z m0-15v12.5h-12.5v-12.5h12.5z m12.5 15v2.5h-10v-2.5h10z m0-5v2.5h-10v-2.5h10z m0-5v2.5h-10v-2.5h10z m0-5v2.5h-10v-2.5h10z m-30 18.75v-18.75h-2.5v18.75q0 0.5075000000000003 0.37124999999999986 0.8787500000000001t0.8787500000000001 0.37124999999999986 0.8787500000000001-0.37124999999999986 0.37124999999999986-0.8787500000000001z m32.5 0v-21.25h-30v21.25q0 0.6449999999999996-0.21499999999999986 1.25h28.965q0.5075000000000003 0 0.8787499999999966-0.37124999999999986t0.3712500000000034-0.8787500000000001z m2.5-23.75v23.75q0 1.5625-1.09375 2.65625t-2.65625 1.09375h-32.5q-1.5625 0-2.65625-1.09375t-1.09375-2.65625v-21.25h5v-2.5h35z" data-reactid=".0.4:$/=10.2.0.0.0"></path>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 967 B |
Before Width: | Height: | Size: 208 KiB After Width: | Height: | Size: 176 KiB |
Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 132 KiB |
86
manifest-ff.json
Normal file → Executable file
@ -9,9 +9,9 @@
|
|||||||
"content_scripts": [
|
"content_scripts": [
|
||||||
{
|
{
|
||||||
"matches": [
|
"matches": [
|
||||||
"*://*.ad.nl/*",
|
|
||||||
"*://*.afr.com/*",
|
"*://*.afr.com/*",
|
||||||
"*://*.americanbanker.com/*",
|
"*://*.americanbanker.com/*",
|
||||||
|
"*://*.ambito.com/*",
|
||||||
"*://*.bizjournals.com/*",
|
"*://*.bizjournals.com/*",
|
||||||
"*://*.bloomberg.com/*",
|
"*://*.bloomberg.com/*",
|
||||||
"*://*.bloombergquint.com/*",
|
"*://*.bloombergquint.com/*",
|
||||||
@ -19,46 +19,72 @@
|
|||||||
"*://*.caixinglobal.com/*",
|
"*://*.caixinglobal.com/*",
|
||||||
"*://*.canberratimes.com.au/*",
|
"*://*.canberratimes.com.au/*",
|
||||||
"*://*.economist.com/*",
|
"*://*.economist.com/*",
|
||||||
"*://*.ed.nl/*",
|
"*://*.editorialedomani.it/*",
|
||||||
|
"*://*.elmercurio.com/*",
|
||||||
"*://*.elpais.com/*",
|
"*://*.elpais.com/*",
|
||||||
|
"*://*.elperiodico.com/*",
|
||||||
|
"*://*.elu24.ee/*",
|
||||||
|
"*://*.estadao.com.br/*",
|
||||||
"*://*.examiner.com.au/*",
|
"*://*.examiner.com.au/*",
|
||||||
"*://*.firstthings.com/*",
|
"*://*.firstthings.com/*",
|
||||||
"*://*.ft.com/*",
|
"*://*.ft.com/*",
|
||||||
|
"*://*.gelocal.it/*",
|
||||||
|
"*://*.grubstreet.com/*",
|
||||||
"*://*.haaretz.co.il/*",
|
"*://*.haaretz.co.il/*",
|
||||||
|
"*://*.humo.be/*",
|
||||||
|
"*://*.ilmessaggero.it/*",
|
||||||
|
"*://*.interest.co.nz/*",
|
||||||
"*://*.ledevoir.com/*",
|
"*://*.ledevoir.com/*",
|
||||||
"*://*.leparisien.fr/*",
|
"*://*.leparisien.fr/*",
|
||||||
|
"*://*.lavoixdunord.fr/*",
|
||||||
"*://*.medium.com/*",
|
"*://*.medium.com/*",
|
||||||
|
"*://*.medscape.com/*",
|
||||||
"*://*.mexiconewsdaily.com/*",
|
"*://*.mexiconewsdaily.com/*",
|
||||||
"*://*.nytimes.com/*",
|
"*://*.nytimes.com/*",
|
||||||
"*://*.nzherald.co.nz/*",
|
"*://*.nzherald.co.nz/*",
|
||||||
"*://*.parool.nl/*",
|
"*://*.parool.nl/*",
|
||||||
|
"*://*.postimees.ee/*",
|
||||||
"*://*.repubblica.it/*",
|
"*://*.repubblica.it/*",
|
||||||
"*://*.sfchronicle.com/*",
|
"*://*.sfchronicle.com/*",
|
||||||
"*://*.sloanreview.mit.edu/*",
|
"*://*.sloanreview.mit.edu/*",
|
||||||
|
"*://*.stuff.co.nz/*",
|
||||||
"*://*.techinasia.com/*",
|
"*://*.techinasia.com/*",
|
||||||
"*://*.telegraaf.nl/*",
|
"*://*.telegraaf.nl/*",
|
||||||
"*://*.the-american-interest.com/*",
|
"*://*.the-american-interest.com/*",
|
||||||
"*://*.the-tls.co.uk/*",
|
"*://*.the-tls.co.uk/*",
|
||||||
"*://*.theadvocate.com.au/*",
|
"*://*.theadvocate.com.au/*",
|
||||||
"*://*.theathletic.com/*",
|
|
||||||
"*://*.theathletic.co.uk/*",
|
|
||||||
"*://*.thecourier.com.au/*",
|
"*://*.thecourier.com.au/*",
|
||||||
|
"*://*.thecut.com/*",
|
||||||
"*://*.theglobeandmail.com/*",
|
"*://*.theglobeandmail.com/*",
|
||||||
"*://*.thehindu.com/*",
|
"*://*.thehindu.com/*",
|
||||||
|
"*://*.thenational.scot/*",
|
||||||
|
"*://*.theolivepress.es/*",
|
||||||
"*://*.thestar.com/*",
|
"*://*.thestar.com/*",
|
||||||
"*://*.thewrap.com/*",
|
"*://*.thewrap.com/*",
|
||||||
"*://*.trouw.nl/*",
|
"*://*.trouw.nl/*",
|
||||||
"*://*.volkskrant.nl/*",
|
"*://*.volkskrant.nl/*",
|
||||||
|
"*://*.vulture.com/*",
|
||||||
"*://*.washingtonpost.com/*",
|
"*://*.washingtonpost.com/*",
|
||||||
"*://*.wsj.com/*",
|
"*://*.wsj.com/*",
|
||||||
"*://*.hbr.org/*"
|
"*://*.hbr.org/*",
|
||||||
|
"*://*.financialpost.com/*",
|
||||||
|
"*://*.sueddeutsche.de/*",
|
||||||
|
"*://*.elmundo.es/*",
|
||||||
|
"*://*.time.com/*",
|
||||||
|
"*://*.expansion.com/*",
|
||||||
|
"*://*.foreignpolicy.com/*",
|
||||||
|
"*://*.bostonglobe.com/*",
|
||||||
|
"*://*.theathletic.com/*",
|
||||||
|
"*://*.theathletic.co.uk/*",
|
||||||
|
"*://*.hbrchina.org/*",
|
||||||
|
"*://*.scmp.com/*"
|
||||||
],
|
],
|
||||||
"js": ["src/js/contentScript.js"]
|
"js": ["src/js/contentScript.js"]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"applications": {
|
"applications": {
|
||||||
"gecko": {
|
"gecko": {
|
||||||
"id": "bypasspaywalls@bypasspaywalls.weebly.com",
|
"id": "bypasspaywalls@bypasspaywalls",
|
||||||
"update_url": "https://raw.githubusercontent.com/iamadamdev/bypass-paywalls-chrome/master/src/updates/updates.json"
|
"update_url": "https://raw.githubusercontent.com/iamadamdev/bypass-paywalls-chrome/master/src/updates/updates.json"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -95,18 +121,18 @@
|
|||||||
"*://*.outbrain.com/*",
|
"*://*.outbrain.com/*",
|
||||||
"*://*.piano.io/*",
|
"*://*.piano.io/*",
|
||||||
"*://*.poool.fr/*",
|
"*://*.poool.fr/*",
|
||||||
|
"*://*.qiota.com/*",
|
||||||
"*://*.tinypass.com/*",
|
"*://*.tinypass.com/*",
|
||||||
"*://*.ad.nl/*",
|
|
||||||
"*://*.adelaidenow.com.au/*",
|
"*://*.adelaidenow.com.au/*",
|
||||||
"*://*.adweek.com/*",
|
"*://*.adweek.com/*",
|
||||||
"*://*.afr.com/*",
|
"*://*.afr.com/*",
|
||||||
"*://*.asia.nikkei.com/*",
|
|
||||||
"*://*.baltimoresun.com/*",
|
"*://*.baltimoresun.com/*",
|
||||||
"*://*.barrons.com/*",
|
"*://*.barrons.com/*",
|
||||||
"*://*.bizjournals.com/*",
|
"*://*.bizjournals.com/*",
|
||||||
"*://*.bloomberg.com/*",
|
"*://*.bloomberg.com/*",
|
||||||
"*://*.bloombergquint.com/*",
|
"*://*.bloombergquint.com/*",
|
||||||
"*://*.bostonglobe.com/*",
|
"*://*.bostonglobe.com/*",
|
||||||
|
"*://*.brisbanetimes.com.au/*",
|
||||||
"*://*.britannica.com/*",
|
"*://*.britannica.com/*",
|
||||||
"*://*.businessinsider.com/*",
|
"*://*.businessinsider.com/*",
|
||||||
"*://*.caixinglobal.com/*",
|
"*://*.caixinglobal.com/*",
|
||||||
@ -119,11 +145,13 @@
|
|||||||
"*://*.couriermail.com.au/*",
|
"*://*.couriermail.com.au/*",
|
||||||
"*://*.dailypress.com/*",
|
"*://*.dailypress.com/*",
|
||||||
"*://*.dailytelegraph.com.au/*",
|
"*://*.dailytelegraph.com.au/*",
|
||||||
|
"*://*.delfi.ee/*",
|
||||||
"*://*.demorgen.be/*",
|
"*://*.demorgen.be/*",
|
||||||
"*://*.denverpost.com/*",
|
"*://*.denverpost.com/*",
|
||||||
"*://*.dynamed.com/*",
|
"*://*.dynamed.com/*",
|
||||||
"*://*.economist.com/*",
|
"*://*.economist.com/*",
|
||||||
"*://*.ed.nl/*",
|
"*://*.elmercurio.com/*",
|
||||||
|
"*://*.elu24.ee/*",
|
||||||
"*://*.examiner.com.au/*",
|
"*://*.examiner.com.au/*",
|
||||||
"*://*.fd.nl/*",
|
"*://*.fd.nl/*",
|
||||||
"*://*.fnlondon.com/*",
|
"*://*.fnlondon.com/*",
|
||||||
@ -131,17 +159,19 @@
|
|||||||
"*://*.fortune.com/*",
|
"*://*.fortune.com/*",
|
||||||
"*://*.ft.com/*",
|
"*://*.ft.com/*",
|
||||||
"*://*.genomeweb.com/*",
|
"*://*.genomeweb.com/*",
|
||||||
|
"*://*.gelocal.it/*",
|
||||||
"*://*.glassdoor.com/*",
|
"*://*.glassdoor.com/*",
|
||||||
|
"*://*.globes.co.il/*",
|
||||||
"*://*.groene.nl/*",
|
"*://*.groene.nl/*",
|
||||||
"*://*.haaretz.co.il/*",
|
"*://*.haaretz.co.il/*",
|
||||||
"*://*.haaretz.com/*",
|
"*://*.haaretz.com/*",
|
||||||
"*://*.handelsblatt.com/*",
|
|
||||||
"*://*.harpers.org/*",
|
"*://*.harpers.org/*",
|
||||||
"*://*.hbr.org/*",
|
"*://*.hbr.org/*",
|
||||||
"*://*.heraldsun.com.au/*",
|
"*://*.heraldsun.com.au/*",
|
||||||
"*://*.ilmanifesto.it/*",
|
"*://*.ilmanifesto.it/*",
|
||||||
"*://*.inc.com/*",
|
"*://*.inc.com/*",
|
||||||
"*://*.inquirer.com/*",
|
"*://*.inquirer.com/*",
|
||||||
|
"*://*.interest.co.nz/*",
|
||||||
"*://*.investorschronicle.co.uk/*",
|
"*://*.investorschronicle.co.uk/*",
|
||||||
"*://*.irishtimes.com/*",
|
"*://*.irishtimes.com/*",
|
||||||
"*://*.japantimes.co.jp/*",
|
"*://*.japantimes.co.jp/*",
|
||||||
@ -152,6 +182,7 @@
|
|||||||
"*://*.lastampa.it/*",
|
"*://*.lastampa.it/*",
|
||||||
"*://*.latercera.com/*",
|
"*://*.latercera.com/*",
|
||||||
"*://*.latimes.com/*",
|
"*://*.latimes.com/*",
|
||||||
|
"*://*.lavoixdunord.fr/*",
|
||||||
"*://*.lecho.be/*",
|
"*://*.lecho.be/*",
|
||||||
"*://*.leparisien.fr/*",
|
"*://*.leparisien.fr/*",
|
||||||
"*://*.lesechos.fr/*",
|
"*://*.lesechos.fr/*",
|
||||||
@ -162,12 +193,14 @@
|
|||||||
"*://*.medscape.com/*",
|
"*://*.medscape.com/*",
|
||||||
"*://*.mercurynews.com/*",
|
"*://*.mercurynews.com/*",
|
||||||
"*://*.mv-voice.com/*",
|
"*://*.mv-voice.com/*",
|
||||||
|
"*://*.nationalgeographic.com",
|
||||||
"*://*.nationalpost.com/*",
|
"*://*.nationalpost.com/*",
|
||||||
"*://*.news-gazette.com/*",
|
"*://*.news-gazette.com/*",
|
||||||
"*://*.newstatesman.com/*",
|
"*://*.newstatesman.com/*",
|
||||||
"*://*.newyorker.com/*",
|
"*://*.newyorker.com/*",
|
||||||
"*://*.nrc.nl/*",
|
"*://*.nrc.nl/*",
|
||||||
"*://*.ntnews.com.au/*",
|
"*://*.ntnews.com.au/*",
|
||||||
|
"*://*.nydailynews.com/*",
|
||||||
"*://*.nymag.com/*",
|
"*://*.nymag.com/*",
|
||||||
"*://*.nytimes.com/*",
|
"*://*.nytimes.com/*",
|
||||||
"*://*.nzherald.co.nz/*",
|
"*://*.nzherald.co.nz/*",
|
||||||
@ -175,6 +208,7 @@
|
|||||||
"*://*.orlandosentinel.com/*",
|
"*://*.orlandosentinel.com/*",
|
||||||
"*://*.paloaltoonline.com/*",
|
"*://*.paloaltoonline.com/*",
|
||||||
"*://*.parool.nl/*",
|
"*://*.parool.nl/*",
|
||||||
|
"*://*.postimees.ee/*",
|
||||||
"*://*.quora.com/*",
|
"*://*.quora.com/*",
|
||||||
"*://*.qz.com/*",
|
"*://*.qz.com/*",
|
||||||
"*://*.repubblica.it/*",
|
"*://*.repubblica.it/*",
|
||||||
@ -182,11 +216,14 @@
|
|||||||
"*://*.scientificamerican.com/*",
|
"*://*.scientificamerican.com/*",
|
||||||
"*://*.seattletimes.com/*",
|
"*://*.seattletimes.com/*",
|
||||||
"*://*.seekingalpha.com/*",
|
"*://*.seekingalpha.com/*",
|
||||||
|
"*://*.slate.com/*",
|
||||||
"*://*.smh.com.au/*",
|
"*://*.smh.com.au/*",
|
||||||
"*://*.sofrep.com/*",
|
"*://*.sofrep.com/*",
|
||||||
"*://*.spectator.co.uk/*",
|
"*://*.spectator.co.uk/*",
|
||||||
"*://*.spectator.com.au/*",
|
"*://*.spectator.com.au/*",
|
||||||
|
"*://*.speld.nl/",
|
||||||
"*://*.statista.com/*",
|
"*://*.statista.com/*",
|
||||||
|
"*://*.stuff.co.nz/*",
|
||||||
"*://*.sun-sentinel.com/*",
|
"*://*.sun-sentinel.com/*",
|
||||||
"*://*.techinasia.com/*",
|
"*://*.techinasia.com/*",
|
||||||
"*://*.technologyreview.com/*",
|
"*://*.technologyreview.com/*",
|
||||||
@ -195,8 +232,6 @@
|
|||||||
"*://*.the-tls.co.uk/*",
|
"*://*.the-tls.co.uk/*",
|
||||||
"*://*.theadvocate.com.au/*",
|
"*://*.theadvocate.com.au/*",
|
||||||
"*://*.theage.com.au/*",
|
"*://*.theage.com.au/*",
|
||||||
"*://*.theathletic.com/*",
|
|
||||||
"*://*.theathletic.co.uk/*",
|
|
||||||
"*://*.theatlantic.com/*",
|
"*://*.theatlantic.com/*",
|
||||||
"*://*.theaustralian.com.au/*",
|
"*://*.theaustralian.com.au/*",
|
||||||
"*://*.thediplomat.com/*",
|
"*://*.thediplomat.com/*",
|
||||||
@ -206,9 +241,10 @@
|
|||||||
"*://*.themarker.com/*",
|
"*://*.themarker.com/*",
|
||||||
"*://*.themercury.com.au/*",
|
"*://*.themercury.com.au/*",
|
||||||
"*://*.thenation.com/*",
|
"*://*.thenation.com/*",
|
||||||
|
"*://*.thenational.scot/*",
|
||||||
|
"*://*.theolivepress.es/*",
|
||||||
"*://*.thesaturdaypaper.com.au/*",
|
"*://*.thesaturdaypaper.com.au/*",
|
||||||
"*://*.thestar.com/*",
|
"*://*.thestar.com/*",
|
||||||
"*://*.thetimes.co.uk/*",
|
|
||||||
"*://*.thewrap.com/*",
|
"*://*.thewrap.com/*",
|
||||||
"*://*.tijd.be/*",
|
"*://*.tijd.be/*",
|
||||||
"*://*.towardsdatascience.com/*",
|
"*://*.towardsdatascience.com/*",
|
||||||
@ -219,7 +255,27 @@
|
|||||||
"*://*.washingtonpost.com/*",
|
"*://*.washingtonpost.com/*",
|
||||||
"*://*.wired.com/*",
|
"*://*.wired.com/*",
|
||||||
"*://*.wsj.com/*",
|
"*://*.wsj.com/*",
|
||||||
"*://*.nzz.ch/*"
|
"*://*.nzz.ch/*",
|
||||||
|
"*://*.republic.ru/*",
|
||||||
|
"*://*.historyextra.com/*",
|
||||||
|
"*://*.netdna-ssl.com/*",
|
||||||
|
"*://*.startribune.com/*",
|
||||||
|
"*://*.df.cl/*",
|
||||||
|
"*://*.financialpost.com/*",
|
||||||
|
"*://*.ambito/*",
|
||||||
|
"*://*.sueddeutsche.de/*",
|
||||||
|
"*://*.spectator.us/*",
|
||||||
|
"*://*.humo.be/*",
|
||||||
|
"*://*.elmundo.es/*",
|
||||||
|
"*://*.time.com/*",
|
||||||
|
"*://*.zeit.de/*",
|
||||||
|
"*://*.ampproject.org/*",
|
||||||
|
"*://*.reuters.com/*",
|
||||||
|
"*://*.expansion.com/*",
|
||||||
|
"*://*.theathletic.com/*",
|
||||||
|
"*://*.theathletic.co.uk/*",
|
||||||
|
"*://*.hbrchina.org/*",
|
||||||
|
"*://*.scmp.com/*"
|
||||||
],
|
],
|
||||||
"version": "1.7.2"
|
"version": "1.8.1"
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
"update_url": "https://raw.githubusercontent.com/iamadamdev/bypass-paywalls-chrome/master/src/updates/updates.xml",
|
"update_url": "https://raw.githubusercontent.com/iamadamdev/bypass-paywalls-chrome/master/src/updates/updates.xml",
|
||||||
"short_name": "Bypass Paywall",
|
"short_name": "Bypass Paywall",
|
||||||
"options_ui": {
|
"options_ui": {
|
||||||
"chrome_style": true,
|
"chrome_style": false,
|
||||||
"page": "src/html/options.html"
|
"page": "src/html/options.html"
|
||||||
},
|
},
|
||||||
"permissions": [
|
"permissions": [
|
||||||
@ -34,5 +34,5 @@
|
|||||||
"webRequestBlocking",
|
"webRequestBlocking",
|
||||||
"<all_urls>"
|
"<all_urls>"
|
||||||
],
|
],
|
||||||
"version": "1.7.2"
|
"version": "1.8.1"
|
||||||
}
|
}
|
||||||
|
@ -4,35 +4,144 @@
|
|||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<title>Bypass Paywalls Options</title>
|
<title>Bypass Paywalls Options</title>
|
||||||
<style>
|
<style>
|
||||||
|
html {
|
||||||
|
min-width: 350px;
|
||||||
|
max-width: 400px;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
min-width: 350px;
|
||||||
|
max-width: 400px;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
font-family: sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
#bypass_sites label {
|
#bypass_sites label {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
body {
|
|
||||||
width:350px;
|
#tabs {
|
||||||
height:600px;
|
display: none;
|
||||||
|
background-color: #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tabs button {
|
||||||
|
flex-grow: 1;
|
||||||
|
background: #ddd;
|
||||||
|
text-shadow: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: none;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
border-bottom: 1px solid #666;
|
||||||
|
border-right: solid 1px #ccc;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tabs button:last-of-type {
|
||||||
|
border-right: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tabs button.active {
|
||||||
|
background-color: #fff;
|
||||||
|
color: black;
|
||||||
|
padding-bottom: 0;
|
||||||
|
border-bottom: solid blue 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-cell {
|
||||||
|
height: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pane {
|
||||||
|
height: 520px;
|
||||||
|
display: none;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 0;
|
||||||
|
padding: .5em 0;
|
||||||
|
line-height: 1.3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#select-all {
|
||||||
|
border-top: solid 1px #aaa;
|
||||||
|
background: #eee;
|
||||||
|
padding: 4px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#bypass_sites {
|
||||||
|
border-bottom: solid 1px #aaa;
|
||||||
|
flex-grow: 1;
|
||||||
|
overflow-y: auto;
|
||||||
|
padding-bottom: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type=checkbox] {
|
||||||
|
margin: 0 .5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pane, #controls {
|
||||||
|
padding: 0 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#controls {
|
||||||
|
align-self: flex-end;
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pane.active {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom textarea {
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.customSitesEnabled #tabs {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
#status {
|
||||||
|
display: inline-block;
|
||||||
|
margin-right: 1em;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div>
|
<div id="tabs">
|
||||||
|
<button data-pane="sites" class="tab-cell">Supported Sites</button>
|
||||||
|
<button data-pane="custom" class="tab-cell">Custom Sites</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="sites" class="pane">
|
||||||
|
<p>
|
||||||
Selected sites will have their cookies cleared and referer set to Google. You should
|
Selected sites will have their cookies cleared and referer set to Google. You should
|
||||||
uncheck sites you are logged in to otherwise you will be logged out on every visit.
|
uncheck sites you are logged in to otherwise you will be logged out on every visit.
|
||||||
|
</p>
|
||||||
|
<label id="select-all"><input checked type="checkbox"><em>Select all/none</em></label>
|
||||||
|
<div id='bypass_sites'></div>
|
||||||
</div>
|
</div>
|
||||||
<br/>
|
|
||||||
<div id='bypass_sites'>
|
<div id="custom" class="pane">
|
||||||
|
<p>
|
||||||
|
To try bypassing other sites enter domain names here (one domain per line). Sites below will be have their cookies removed and attempted to be browsed as the Googlebot.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<span style="color: #900; font-weight: bold">This feature is provided "as is" and will not work with many sites.</span>
|
||||||
|
Do not report issues with sites entered here.
|
||||||
|
</p>
|
||||||
|
<textarea id="custom_sites" placeholder="e.g., campaignlive.co.uk cincinnati.com hk.appledaily.com " /></textarea>
|
||||||
</div>
|
</div>
|
||||||
<br/>
|
|
||||||
|
<div id="controls">
|
||||||
<div id="status"></div>
|
<div id="status"></div>
|
||||||
<div id="error"></div>
|
|
||||||
<br/>
|
|
||||||
<span style='float:left;'>
|
|
||||||
<button id="save">Save</button>
|
<button id="save">Save</button>
|
||||||
</span>
|
</div>
|
||||||
<span style='float:right;'>
|
|
||||||
<button id="select-all">Select all</button>
|
|
||||||
<button id="select-none">Select none</button>
|
|
||||||
</span>
|
|
||||||
<br/><br/>
|
|
||||||
<script src="../js/common.js"></script>
|
<script src="../js/common.js"></script>
|
||||||
<script src="../js/sites.js"></script>
|
<script src="../js/sites.js"></script>
|
||||||
<script src="../js/options.js"></script>
|
<script src="../js/options.js"></script>
|
||||||
|
Before Width: | Height: | Size: 654 B After Width: | Height: | Size: 628 B |
Before Width: | Height: | Size: 693 B After Width: | Height: | Size: 609 B |
339
src/js/background.js
Normal file → Executable file
@ -1,30 +1,34 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const restrictions = {
|
const restrictions = {
|
||||||
'barrons.com': /.+barrons\.com\/articles\/.+/,
|
'adweek.com': /^((?!\.adweek\.com\/(.+\/)?(amp|agencyspy|tvnewser|tvspy)\/).)*$/,
|
||||||
'wsj.com': /(.+wsj\.com\/(articles|graphics)\/.+|.+blogs\.wsj\.com\/.+)/
|
'barrons.com': /.+\.barrons\.com\/(amp\/)?article(s)?\/.+/,
|
||||||
|
'economist.com': /.+economist\.com\/.+\/\d{1,4}\/\d{1,2}\/\d{2}\/.+/,
|
||||||
|
'seekingalpha.com': /.+seekingalpha\.com\/article\/.+/,
|
||||||
|
'techinasia.com': /\.techinasia\.com\/.+/,
|
||||||
|
'ft.com': /.+\.ft.com\/content\//,
|
||||||
|
'nytimes.com': /^((?!\/timesmachine\.nytimes\.com\/).)*$/,
|
||||||
|
'theatlantic.com': /^((?!\/newsletters\.theatlantic\.com\/).)*$/,
|
||||||
|
'bloomberg.com': /^((?!\.bloomberg\.com\/news\/terminal\/).)*$/
|
||||||
};
|
};
|
||||||
|
|
||||||
// Don't remove cookies before page load
|
// Don't remove cookies before page load
|
||||||
const allowCookies = [
|
const allowCookies = [
|
||||||
'ad.nl',
|
'brisbanetimes.com.au',
|
||||||
'asia.nikkei.com',
|
|
||||||
'canberratimes.com.au',
|
'canberratimes.com.au',
|
||||||
'cen.acs.org',
|
'cen.acs.org',
|
||||||
'chicagobusiness.com',
|
|
||||||
'demorgen.be',
|
'demorgen.be',
|
||||||
'denverpost.com',
|
'denverpost.com',
|
||||||
'economist.com',
|
|
||||||
'ed.nl',
|
|
||||||
'examiner.com.au',
|
'examiner.com.au',
|
||||||
'ft.com',
|
'gelocal.it',
|
||||||
|
'grubstreet.com',
|
||||||
'harpers.org',
|
'harpers.org',
|
||||||
'hbr.org',
|
'hbr.org',
|
||||||
|
'humo.be',
|
||||||
'lesechos.fr',
|
'lesechos.fr',
|
||||||
'lrb.co.uk',
|
'lrb.co.uk',
|
||||||
'medium.com',
|
'medium.com',
|
||||||
'mercurynews.com',
|
'mercurynews.com',
|
||||||
'mexiconewsdaily.com',
|
|
||||||
'newstatesman.com',
|
'newstatesman.com',
|
||||||
'nrc.nl',
|
'nrc.nl',
|
||||||
'nymag.com',
|
'nymag.com',
|
||||||
@ -36,46 +40,56 @@ const allowCookies = [
|
|||||||
'seekingalpha.com',
|
'seekingalpha.com',
|
||||||
'sofrep.com',
|
'sofrep.com',
|
||||||
'spectator.co.uk',
|
'spectator.co.uk',
|
||||||
|
'speld.nl',
|
||||||
'techinasia.com',
|
'techinasia.com',
|
||||||
'telegraaf.nl',
|
'telegraaf.nl',
|
||||||
'the-american-interest.com',
|
'the-american-interest.com',
|
||||||
'theadvocate.com.au',
|
'theadvocate.com.au',
|
||||||
'theage.com.au',
|
'theage.com.au',
|
||||||
'theathletic.com',
|
|
||||||
'theathletic.co.uk',
|
|
||||||
'theatlantic.com',
|
'theatlantic.com',
|
||||||
'theaustralian.com.au',
|
'theaustralian.com.au',
|
||||||
|
'thecut.com',
|
||||||
'thediplomat.com',
|
'thediplomat.com',
|
||||||
'themercury.com.au',
|
'themercury.com.au',
|
||||||
'thestar.com',
|
|
||||||
'towardsdatascience.com',
|
'towardsdatascience.com',
|
||||||
'trouw.nl',
|
'trouw.nl',
|
||||||
'vn.nl',
|
'vn.nl',
|
||||||
'volkskrant.nl',
|
'volkskrant.nl',
|
||||||
|
'vulture.com',
|
||||||
|
'nzz.ch',
|
||||||
|
'thehindu.com',
|
||||||
|
'financialpost.com',
|
||||||
|
'haaretz.co.il',
|
||||||
|
'haaretz.com',
|
||||||
|
'themarker.com',
|
||||||
|
'sueddeutsche.de',
|
||||||
|
'gelocal.it',
|
||||||
|
'elmundo.es',
|
||||||
|
'time.com',
|
||||||
|
'zeit.de',
|
||||||
|
'expansion.com',
|
||||||
|
'dailytelegraph.com.au',
|
||||||
'washingtonpost.com',
|
'washingtonpost.com',
|
||||||
'wired.com'
|
'nytimes.com'
|
||||||
];
|
];
|
||||||
|
|
||||||
// Removes cookies after page load
|
// Removes cookies after page load
|
||||||
const removeCookies = [
|
const removeCookies = [
|
||||||
'ad.nl',
|
'bloomberg.com',
|
||||||
'asia.nikkei.com',
|
|
||||||
'bloombergquint.com',
|
'bloombergquint.com',
|
||||||
|
'brisbanetimes.com.au',
|
||||||
'canberratimes.com.au',
|
'canberratimes.com.au',
|
||||||
'cen.acs.org',
|
'cen.acs.org',
|
||||||
'chicagobusiness.com',
|
|
||||||
'demorgen.be',
|
'demorgen.be',
|
||||||
'denverpost.com',
|
'denverpost.com',
|
||||||
'economist.com',
|
|
||||||
'ed.nl',
|
|
||||||
'examiner.com.au',
|
'examiner.com.au',
|
||||||
'ft.com',
|
'globes.co.il',
|
||||||
|
'grubstreet.com',
|
||||||
'harpers.org',
|
'harpers.org',
|
||||||
'hbr.org',
|
'hbr.org',
|
||||||
|
'humo.be',
|
||||||
'lesechos.fr',
|
'lesechos.fr',
|
||||||
'medium.com',
|
|
||||||
'mercurynews.com',
|
'mercurynews.com',
|
||||||
'mexiconewsdaily.com',
|
|
||||||
'newstatesman.com',
|
'newstatesman.com',
|
||||||
'nrc.nl',
|
'nrc.nl',
|
||||||
'nymag.com',
|
'nymag.com',
|
||||||
@ -85,34 +99,40 @@ const removeCookies = [
|
|||||||
'seattletimes.com',
|
'seattletimes.com',
|
||||||
'sofrep.com',
|
'sofrep.com',
|
||||||
'spectator.co.uk',
|
'spectator.co.uk',
|
||||||
|
'speld.nl',
|
||||||
'telegraaf.nl',
|
'telegraaf.nl',
|
||||||
'theadvocate.com.au',
|
'theadvocate.com.au',
|
||||||
'theage.com.au',
|
'theage.com.au',
|
||||||
'theatlantic.com',
|
'theatlantic.com',
|
||||||
|
'thecut.com',
|
||||||
'thediplomat.com',
|
'thediplomat.com',
|
||||||
'thestar.com',
|
|
||||||
'towardsdatascience.com',
|
'towardsdatascience.com',
|
||||||
'vn.nl',
|
'vn.nl',
|
||||||
|
'vulture.com',
|
||||||
|
'wsj.com',
|
||||||
|
'medium.com',
|
||||||
'washingtonpost.com',
|
'washingtonpost.com',
|
||||||
'wired.com',
|
'japantimes.co.jp'
|
||||||
'wsj.com'
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// Contains remove cookie sites above plus any custom sites
|
||||||
|
let _removeCookies = removeCookies;
|
||||||
|
|
||||||
// select specific cookie(s) to hold from removeCookies domains
|
// select specific cookie(s) to hold from removeCookies domains
|
||||||
const removeCookiesSelectHold = {
|
const removeCookiesSelectHold = {
|
||||||
'qz.com': ['gdpr'],
|
'qz.com': ['gdpr'],
|
||||||
'washingtonpost.com': ['wp_gdpr'],
|
'wsj.com': ['wsjregion'],
|
||||||
'wsj.com': ['wsjregion']
|
'seattletimes.com': ['st_newsletter_splash_seen']
|
||||||
};
|
};
|
||||||
|
|
||||||
// select only specific cookie(s) to drop from removeCookies domains
|
// select only specific cookie(s) to drop from removeCookies domains
|
||||||
const removeCookiesSelectDrop = {
|
const removeCookiesSelectDrop = {
|
||||||
'ad.nl': ['temptationTrackingId'],
|
'ambito.com': ['TDNotesRead'],
|
||||||
'ed.nl': ['temptationTrackingId'],
|
|
||||||
'demorgen.be': ['TID_ID'],
|
'demorgen.be': ['TID_ID'],
|
||||||
'economist.com': ['rvuuid'],
|
|
||||||
'fd.nl': ['socialread'],
|
'fd.nl': ['socialread'],
|
||||||
'nrc.nl': ['counter']
|
'humo.be': ['TID_ID'],
|
||||||
|
'nrc.nl': ['counter'],
|
||||||
|
'speld.nl': ['speld-paywall']
|
||||||
};
|
};
|
||||||
|
|
||||||
// Override User-Agent with Googlebot
|
// Override User-Agent with Googlebot
|
||||||
@ -120,27 +140,40 @@ const useGoogleBotSites = [
|
|||||||
'adelaidenow.com.au',
|
'adelaidenow.com.au',
|
||||||
'barrons.com',
|
'barrons.com',
|
||||||
'couriermail.com.au',
|
'couriermail.com.au',
|
||||||
'dailytelegraph.com.au',
|
|
||||||
'fd.nl',
|
'fd.nl',
|
||||||
'genomeweb.com',
|
'genomeweb.com',
|
||||||
'haaretz.co.il',
|
|
||||||
'haaretz.com',
|
|
||||||
'heraldsun.com.au',
|
'heraldsun.com.au',
|
||||||
'mexiconewsdaily.com',
|
'lavoixdunord.fr',
|
||||||
'ntnews.com.au',
|
'ntnews.com.au',
|
||||||
'quora.com',
|
'quora.com',
|
||||||
'seekingalpha.com',
|
'seekingalpha.com',
|
||||||
'telegraph.co.uk',
|
'telegraph.co.uk',
|
||||||
'theathletic.com',
|
|
||||||
'theathletic.co.uk',
|
|
||||||
'theaustralian.com.au',
|
'theaustralian.com.au',
|
||||||
'themarker.com',
|
|
||||||
'themercury.com.au',
|
'themercury.com.au',
|
||||||
'thetimes.co.uk',
|
'thenational.scot',
|
||||||
'wsj.com',
|
'wsj.com',
|
||||||
'kansascity.com'
|
'kansascity.com',
|
||||||
|
'republic.ru',
|
||||||
|
'nzz.ch',
|
||||||
|
'df.cl',
|
||||||
|
'ft.com',
|
||||||
|
'wired.com',
|
||||||
|
'zeit.de',
|
||||||
|
'nytimes.com'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// Override User-Agent with Bingbot
|
||||||
|
const useBingBot = [];
|
||||||
|
|
||||||
|
const useMsnBot = [
|
||||||
|
'haaretz.co.il',
|
||||||
|
'haaretz.com',
|
||||||
|
'themarker.com'
|
||||||
|
];
|
||||||
|
|
||||||
|
// Contains google bot sites above plus any custom sites
|
||||||
|
let _useGoogleBotSites = useGoogleBotSites;
|
||||||
|
|
||||||
function setDefaultOptions () {
|
function setDefaultOptions () {
|
||||||
extensionApi.storage.sync.set({
|
extensionApi.storage.sync.set({
|
||||||
sites: defaultSites
|
sites: defaultSites
|
||||||
@ -155,38 +188,77 @@ const blockedRegexes = {
|
|||||||
'afr.com': /afr\.com\/assets\/vendorsReactRedux_client.+\.js/,
|
'afr.com': /afr\.com\/assets\/vendorsReactRedux_client.+\.js/,
|
||||||
'businessinsider.com': /(.+\.tinypass\.com\/.+|cdn\.onesignal\.com\/sdks\/.+\.js)/,
|
'businessinsider.com': /(.+\.tinypass\.com\/.+|cdn\.onesignal\.com\/sdks\/.+\.js)/,
|
||||||
'chicagotribune.com': /.+:\/\/.+\.tribdss\.com\//,
|
'chicagotribune.com': /.+:\/\/.+\.tribdss\.com\//,
|
||||||
'economist.com': /(.+\.tinypass\.com\/.+|economist\.com\/_next\/static\/runtime\/main.+\.js)/,
|
'economist.com': /(.+\.tinypass\.com\/.+|economist\.com\/engassets\/_next\/static\/chunks\/framework.+\.js)/,
|
||||||
'foreignpolicy.com': /.+\.tinypass\.com\/.+/,
|
'editorialedomani.it': /(js\.pelcro\.com\/.+|editorialedomani.it\/pelcro\.js)/,
|
||||||
|
'foreignpolicy.com': /(cdn\.cxense\.com\/|\.tinypass\.com\/)/,
|
||||||
|
'fortune.com': /.+\.tinypass\.com\/.+/,
|
||||||
'haaretz.co.il': /haaretz\.co\.il\/htz\/js\/inter\.js/,
|
'haaretz.co.il': /haaretz\.co\.il\/htz\/js\/inter\.js/,
|
||||||
'haaretz.com': /haaretz\.com\/hdc\/web\/js\/minified\/header-scripts-int.js.+/,
|
'haaretz.com': /haaretz\.com\/hdc\/web\/js\/minified\/header-scripts-int.js.+/,
|
||||||
'inquirer.com': /.+\.tinypass\.com\/.+/,
|
'inquirer.com': /.+\.tinypass\.com\/.+/,
|
||||||
'lastampa.it': /.+\.repstatic\.it\/minify\/sites\/lastampa\/.+\/config\.cache\.php\?name=social_js/,
|
'lastampa.it': /.+\.repstatic\.it\/minify\/sites\/lastampa\/.+\/config\.cache\.php\?name=social_js/,
|
||||||
'lrb.co.uk': /.+\.tinypass\.com\/.+/,
|
'lrb.co.uk': /.+\.tinypass\.com\/.+/,
|
||||||
'nzherald.co.nz': /nzherald\.co\.nz\/.+\/headjs\/.+\.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.+/,
|
'repubblica.it': /scripts\.repubblica\.it\/pw\/pw\.js.+/,
|
||||||
'spectator.co.uk': /.+\.tinypass\.com\/.+/,
|
'spectator.co.uk': /.+\.tinypass\.com\/.+/,
|
||||||
'spectator.com.au': /.+\.tinypass\.com\/.+/,
|
'spectator.com.au': /.+\.tinypass\.com\/.+/,
|
||||||
|
'telegraph.co.uk': /.+telegraph\.co\.uk.+martech.+/,
|
||||||
'thecourier.com.au': /.+cdn-au\.piano\.io\/api\/tinypass.+\.js/,
|
'thecourier.com.au': /.+cdn-au\.piano\.io\/api\/tinypass.+\.js/,
|
||||||
'theglobeandmail.com': /theglobeandmail\.com\/pb\/resources\/scripts\/build\/chunk-bootstraps\/.+\.js/,
|
|
||||||
'thenation.com': /thenation\.com\/.+\/paywall-script\.php/,
|
'thenation.com': /thenation\.com\/.+\/paywall-script\.php/,
|
||||||
'thewrap.com': /thewrap\.com\/.+\/wallkit\.js/
|
'thenational.scot': /(.+\.tinypass\.com\/.+|.+thenational\.scot.+omniture\.js|.+thenational\.scot.+responsive-sync.+)/,
|
||||||
};
|
'thewrap.com': /thewrap\.com\/.+\/wallkit\.js/,
|
||||||
|
'wsj.com': /cdn\.ampproject\.org\/v\d\/amp-access-.+\.js/,
|
||||||
// Allowed external scripts
|
'historyextra.com': /.+\.evolok\.net\/.+\/authorize\/.+/,
|
||||||
const allowedRegexes = {
|
'barrons.com': /cdn\.ampproject\.org\/v\d\/amp-access-.+\.js/,
|
||||||
'economist.com': /infographics.economist.com\/utils\/ai2html-resizer.*\.js/
|
'irishtimes.com': /cdn\.ampproject\.org\/v\d\/amp-access-.+\.js/,
|
||||||
|
'elmercurio.com': /(merreader\.emol\.cl\/assets\/js\/merPramV2.js|staticmer\.emol\.cl\/js\/inversiones\/PramModal.+\.js)/,
|
||||||
|
'sloanreview.mit.edu': /(.+\.tinypass\.com\/.+|.+\.netdna-ssl\.com\/wp-content\/themes\/smr\/assets\/js\/libs\/welcome-ad\.js)/,
|
||||||
|
'latercera.com': /.+\.cxense\.com\/+/,
|
||||||
|
'lesechos.fr': /.+\.tinypass\.com\/.+/,
|
||||||
|
'thehindu.com': /ajax\.cloudflare\.com\/cdn-cgi\/scripts\/.+\/cloudflare-static\/rocket-loader\.min\.js/,
|
||||||
|
'technologyreview.com': /.+\.blueconic\.net\/.+/,
|
||||||
|
'spectator.us': /(cdn\.cxense\.com\/.+|\.tinypass\.com\/.+)/,
|
||||||
|
'gelocal.it': /(\.repstatic\.it\/minify\/sites\/gelocal\/.+\/config\.cache(_\d)?\.php|cdn\.ampproject\.org\/v\d\/amp-(access|ad)-.+\.js)/,
|
||||||
|
'elmundo.es': /cdn\.ampproject\.org\/v\d\/amp-(access|ad|consent)-.+\.js/,
|
||||||
|
'time.com': /\/time\.com\/dist\/meter-wall-client-js\..+\.js/,
|
||||||
|
'thestar.com': /\.com\/api\/overlaydata/,
|
||||||
|
'elpais.com': /(\.epimg\.net\/js\/.+\/(noticia|user)\.min\.js|\/elpais\.com\/arc\/subs\/p\.min\.js|cdn\.ampproject\.org\/v\d\/amp-(access|(sticky-)?ad|consent)-.+\.js)/,
|
||||||
|
'expansion.com': /cdn\.ampproject\.org\/v\d\/amp-(access|ad|consent)-.+\.js/,
|
||||||
|
'chicagobusiness.com': /(\.tinypass\.com\/|\.chicagobusiness\.com\/.+\/js\/js_.+\.js)/,
|
||||||
|
'dailytelegraph.com.au': /cdn\.ampproject\.org\/v\d\/amp-(access|ad|consent)-.+\.js/,
|
||||||
|
'theglobeandmail.com': /(\.theglobeandmail\.com\/pf\/dist\/engine\/react\.js|smartwall\.theglobeandmail\.com\/)/,
|
||||||
|
'nytimes.com': /(\.nytimes\.com\/meter\.js|mwcm\.nyt\.com\/.+\.js|cooking\.nytimes\.com\/api\/.+\/access)/,
|
||||||
|
'latimes.com': /\.californiatimes\.com\/meteringjs/,
|
||||||
|
'theathletic.com': /cdn\.ampproject\.org\/v\d\/amp-(access|subscriptions)-.+\.js/,
|
||||||
|
'japantimes.co.jp': /cdn\.cxense\.com\//,
|
||||||
|
'scmp.com': /(\.tinypass\.com\/|cdn\.ampproject\.org\/v\d\/amp-access-.+\.js)/,
|
||||||
|
'ilmessaggero.it': /(utils\.cedsdigital\.it\/js\/PaywallMeter\.js)/,
|
||||||
|
'washingtonpost.com': /\.washingtonpost\.com\/tetro\/metering\/evaluate/,
|
||||||
|
'theatlantic.com': /cdn\.theatlantic\.com\/_next\/static\/chunks\/pages\/.+\/archive\//,
|
||||||
|
'bloomberg.com': /(\.cm\.bloomberg\.com\/|assets\.bwbx\.io\/s\d\/javelin\/.+\/transporter\/)/
|
||||||
};
|
};
|
||||||
|
|
||||||
const userAgentDesktop = 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)';
|
const userAgentDesktop = 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)';
|
||||||
const userAgentMobile = 'Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible ; Googlebot/2.1 ; +http://www.google.com/bot.html)';
|
const userAgentMobile = 'Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible ; Googlebot/2.1 ; +http://www.google.com/bot.html)';
|
||||||
|
const userAgentDesktopBingBot = 'Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)';
|
||||||
|
const userAgentMobileBingBot = 'Chrome/80.0.3987.92 Mobile Safari/537.36 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)';
|
||||||
|
const userAgentMsnBot = 'msnbot/2.0b (+http://search.msn.com/msnbot.htm)';
|
||||||
|
|
||||||
let enabledSites = [];
|
let enabledSites = [];
|
||||||
|
|
||||||
// Get the enabled sites
|
// Get the enabled sites
|
||||||
extensionApi.storage.sync.get({
|
extensionApi.storage.sync.get({
|
||||||
sites: {}
|
sites: {},
|
||||||
|
customSites: []
|
||||||
}, function (items) {
|
}, function (items) {
|
||||||
enabledSites = Object.values(items.sites);
|
enabledSites = Object.values(items.sites).concat(items.customSites);
|
||||||
|
|
||||||
|
// Use googlebot UA for custom sites
|
||||||
|
_useGoogleBotSites = useGoogleBotSites.concat(items.customSites);
|
||||||
|
|
||||||
|
// Remove cookies for custom sites
|
||||||
|
_removeCookies = removeCookies.concat(items.customSites);
|
||||||
|
|
||||||
if (extensionApi === chrome) {
|
if (extensionApi === chrome) {
|
||||||
initGA();
|
initGA();
|
||||||
}
|
}
|
||||||
@ -194,7 +266,7 @@ extensionApi.storage.sync.get({
|
|||||||
|
|
||||||
// Listen for changes to options
|
// Listen for changes to options
|
||||||
extensionApi.storage.onChanged.addListener(function (changes, namespace) {
|
extensionApi.storage.onChanged.addListener(function (changes, namespace) {
|
||||||
if (changes.sites) {
|
if (changes.sites && changes.sites.newValue) {
|
||||||
const sites = changes.sites.newValue;
|
const sites = changes.sites.newValue;
|
||||||
enabledSites = Object.values(sites);
|
enabledSites = Object.values(sites);
|
||||||
}
|
}
|
||||||
@ -216,12 +288,9 @@ extensionApi.tabs.onActivated.addListener(function (activeInfo) {
|
|||||||
extensionApi.tabs.get(activeInfo.tabId, updateBadge);
|
extensionApi.tabs.get(activeInfo.tabId, updateBadge);
|
||||||
});
|
});
|
||||||
|
|
||||||
let cachedBadgeText = '';
|
|
||||||
function updateBadge (activeTab) {
|
function updateBadge (activeTab) {
|
||||||
if (!activeTab) { return; }
|
if (extensionApi.runtime.lastError || !activeTab) { return; }
|
||||||
const badgeText = getBadgeText(activeTab.url);
|
const badgeText = getBadgeText(activeTab.url);
|
||||||
if (cachedBadgeText === badgeText) { return; }
|
|
||||||
cachedBadgeText = badgeText;
|
|
||||||
extensionApi.browserAction.setBadgeBackgroundColor({ color: 'blue' });
|
extensionApi.browserAction.setBadgeBackgroundColor({ color: 'blue' });
|
||||||
extensionApi.browserAction.setBadgeText({ text: badgeText });
|
extensionApi.browserAction.setBadgeText({ text: badgeText });
|
||||||
}
|
}
|
||||||
@ -230,17 +299,42 @@ function getBadgeText (currentUrl) {
|
|||||||
return currentUrl && isSiteEnabled({ url: currentUrl }) ? 'ON' : '';
|
return currentUrl && isSiteEnabled({ url: currentUrl }) ? 'ON' : '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AMP redirect for dailytelegraph.com.au
|
||||||
|
extensionApi.webRequest.onBeforeRequest.addListener(function (details) {
|
||||||
|
if (!isSiteEnabled(details)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const updatedUrl = decodeURIComponent(details.url.split('&dest=')[1].split('&')[0]).replace('www.', 'amp.');
|
||||||
|
return { redirectUrl: updatedUrl };
|
||||||
|
},
|
||||||
|
{ urls: ['*://www.dailytelegraph.com.au/subscribe/*'], types: ['main_frame'] },
|
||||||
|
['blocking']
|
||||||
|
);
|
||||||
|
|
||||||
|
// nytimes.com
|
||||||
|
extensionApi.webRequest.onHeadersReceived.addListener(function (details) {
|
||||||
|
if (!isSiteEnabled(details)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let headers = details.responseHeaders;
|
||||||
|
headers = headers.map(function (header) {
|
||||||
|
if (header.name === 'x-frame-options') { header.value = 'SAMEORIGIN'; }
|
||||||
|
return header;
|
||||||
|
});
|
||||||
|
return {
|
||||||
|
responseHeaders: headers
|
||||||
|
};
|
||||||
|
}, {
|
||||||
|
urls: ['*://*.nytimes.com/*']
|
||||||
|
},
|
||||||
|
['blocking', 'responseHeaders']);
|
||||||
|
|
||||||
// Disable javascript for these sites
|
// Disable javascript for these sites
|
||||||
extensionApi.webRequest.onBeforeRequest.addListener(function (details) {
|
extensionApi.webRequest.onBeforeRequest.addListener(function (details) {
|
||||||
if (!isSiteEnabled(details) && !enabledSites.includes('generalpaywallbypass')) {
|
const headerReferer = details.originUrl ? details.originUrl : details.initiator;
|
||||||
|
if (!isSiteEnabled(details) && (!enabledSites.includes('generalpaywallbypass') || matchUrlDomain('japantimes.co.jp', headerReferer))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Don't block allowed scripts
|
|
||||||
for (const domain in allowedRegexes) {
|
|
||||||
if (isSameDomain(details.url, domain) && details.url.match(allowedRegexes[domain])) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return { cancel: true };
|
return { cancel: true };
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -249,7 +343,7 @@ extensionApi.webRequest.onBeforeRequest.addListener(function (details) {
|
|||||||
'*://*.outbrain.com/*',
|
'*://*.outbrain.com/*',
|
||||||
'*://*.piano.io/*',
|
'*://*.piano.io/*',
|
||||||
'*://*.poool.fr/*',
|
'*://*.poool.fr/*',
|
||||||
'*://*.economist.com/*',
|
'*://*.qiota.com/*',
|
||||||
'*://*.tinypass.com/*'
|
'*://*.tinypass.com/*'
|
||||||
],
|
],
|
||||||
types: ['script']
|
types: ['script']
|
||||||
@ -263,18 +357,25 @@ if (Object.prototype.hasOwnProperty.call(extensionApi.webRequest.OnBeforeSendHea
|
|||||||
}
|
}
|
||||||
|
|
||||||
extensionApi.webRequest.onBeforeSendHeaders.addListener(function (details) {
|
extensionApi.webRequest.onBeforeSendHeaders.addListener(function (details) {
|
||||||
if (!isSiteEnabled(details)) {
|
let requestHeaders = details.requestHeaders;
|
||||||
return;
|
|
||||||
|
let headerReferer = '';
|
||||||
|
for (const n in requestHeaders) {
|
||||||
|
if (requestHeaders[n].name.toLowerCase() === 'referer') {
|
||||||
|
headerReferer = requestHeaders[n].value;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let requestHeaders = details.requestHeaders;
|
|
||||||
// check for blocked regular expression: domain enabled, match regex, block on an internal or external regex
|
// check for blocked regular expression: domain enabled, match regex, block on an internal or external regex
|
||||||
for (const domain in blockedRegexes) {
|
const blockedDomains = Object.keys(blockedRegexes);
|
||||||
if (isSiteEnabled({ url: domain }) && details.url.match(blockedRegexes[domain])) {
|
const domain = matchUrlDomain(blockedDomains, headerReferer);
|
||||||
if (isSameDomain(details.url, domain)) {
|
if (domain && details.url.match(blockedRegexes[domain]) && isSiteEnabled({ url: headerReferer })) {
|
||||||
return { cancel: true };
|
return { cancel: true };
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
if (!isSiteEnabled(details) && !matchUrlDomain('cdn.ampproject.org', details.url)) {
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const tabId = details.tabId;
|
const tabId = details.tabId;
|
||||||
@ -288,8 +389,10 @@ extensionApi.webRequest.onBeforeSendHeaders.addListener(function (details) {
|
|||||||
// this fixes images not being loaded on cooking.nytimes.com main page
|
// this fixes images not being loaded on cooking.nytimes.com main page
|
||||||
// referrer has to be *nytimes.com otherwise returns 403
|
// referrer has to be *nytimes.com otherwise returns 403
|
||||||
requestHeader.value = 'https://cooking.nytimes.com';
|
requestHeader.value = 'https://cooking.nytimes.com';
|
||||||
} else if (isSameDomain(details.url, 'wsj.com') || isSameDomain(details.url, 'ft.com') || isSameDomain(details.url, 'fd.nl')) {
|
} else if (matchUrlDomain('fd.nl', details.url)) {
|
||||||
requestHeader.value = 'https://www.facebook.com/';
|
requestHeader.value = 'https://www.facebook.com/';
|
||||||
|
} else if (matchUrlDomain('medium.com', details.url)) {
|
||||||
|
requestHeader.value = 'https://t.co/x?amp=1';
|
||||||
} else {
|
} else {
|
||||||
requestHeader.value = 'https://www.google.com/';
|
requestHeader.value = 'https://www.google.com/';
|
||||||
}
|
}
|
||||||
@ -304,11 +407,16 @@ extensionApi.webRequest.onBeforeSendHeaders.addListener(function (details) {
|
|||||||
|
|
||||||
// otherwise add it
|
// otherwise add it
|
||||||
if (!setReferer) {
|
if (!setReferer) {
|
||||||
if (isSameDomain(details.url, 'wsj.com') || isSameDomain(details.url, 'ft.com') || isSameDomain(details.url, 'fd.nl')) {
|
if (matchUrlDomain('fd.nl', details.url)) {
|
||||||
requestHeaders.push({
|
requestHeaders.push({
|
||||||
name: 'Referer',
|
name: 'Referer',
|
||||||
value: 'https://www.facebook.com/'
|
value: 'https://www.facebook.com/'
|
||||||
});
|
});
|
||||||
|
} else if (matchUrlDomain('medium.com', details.url)) {
|
||||||
|
requestHeaders.push({
|
||||||
|
name: 'Referer',
|
||||||
|
value: 'https://t.co/x?amp=1'
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
requestHeaders.push({
|
requestHeaders.push({
|
||||||
name: 'Referer',
|
name: 'Referer',
|
||||||
@ -318,8 +426,8 @@ extensionApi.webRequest.onBeforeSendHeaders.addListener(function (details) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// override User-Agent to use Googlebot
|
// override User-Agent to use Googlebot
|
||||||
const useGoogleBot = useGoogleBotSites.some(function (item) {
|
const useGoogleBot = _useGoogleBotSites.some(function (item) {
|
||||||
return typeof item === 'string' && isSameDomain(details.url, item);
|
return typeof item === 'string' && matchUrlDomain(item, details.url);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (useGoogleBot) {
|
if (useGoogleBot) {
|
||||||
@ -333,9 +441,25 @@ extensionApi.webRequest.onBeforeSendHeaders.addListener(function (details) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// override User-Agent to use Bingbot
|
||||||
|
if (matchUrlDomain(useBingBot, details.url)) {
|
||||||
|
requestHeaders.push({
|
||||||
|
name: 'User-Agent',
|
||||||
|
value: useUserAgentMobile ? userAgentMobileBingBot : userAgentDesktopBingBot
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// override User-Agent to use Google AdsBot Mobile Web
|
||||||
|
if (matchUrlDomain(useMsnBot, details.url)) {
|
||||||
|
requestHeaders.push({
|
||||||
|
name: 'User-Agent',
|
||||||
|
value: userAgentMsnBot
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// remove cookies before page load
|
// remove cookies before page load
|
||||||
const enabledCookies = allowCookies.some(function (site) {
|
const enabledCookies = allowCookies.some(function (site) {
|
||||||
return isSameDomain(details.url, site);
|
return matchUrlDomain(site, details.url);
|
||||||
});
|
});
|
||||||
if (!enabledCookies) {
|
if (!enabledCookies) {
|
||||||
requestHeaders = requestHeaders.map(function (requestHeader) {
|
requestHeaders = requestHeaders.map(function (requestHeader) {
|
||||||
@ -347,6 +471,9 @@ extensionApi.webRequest.onBeforeSendHeaders.addListener(function (details) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (tabId !== -1) {
|
if (tabId !== -1) {
|
||||||
|
extensionApi.tabs.get(tabId, function (currentTab) {
|
||||||
|
// Validate url of current tab to avoid injecting script to unrelated sites
|
||||||
|
if (currentTab && currentTab.url && isSiteEnabled(currentTab)) {
|
||||||
// run contentScript inside tab
|
// run contentScript inside tab
|
||||||
extensionApi.tabs.executeScript(tabId, {
|
extensionApi.tabs.executeScript(tabId, {
|
||||||
file: 'src/js/contentScript.js',
|
file: 'src/js/contentScript.js',
|
||||||
@ -357,6 +484,8 @@ extensionApi.webRequest.onBeforeSendHeaders.addListener(function (details) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return { requestHeaders: requestHeaders };
|
return { requestHeaders: requestHeaders };
|
||||||
}, {
|
}, {
|
||||||
@ -366,8 +495,8 @@ extensionApi.webRequest.onBeforeSendHeaders.addListener(function (details) {
|
|||||||
// remove cookies after page load
|
// remove cookies after page load
|
||||||
extensionApi.webRequest.onCompleted.addListener(function (details) {
|
extensionApi.webRequest.onCompleted.addListener(function (details) {
|
||||||
let domainToRemove;
|
let domainToRemove;
|
||||||
for (const domain of removeCookies) {
|
for (const domain of _removeCookies) {
|
||||||
if (enabledSites.includes(domain) && isSameDomain(details.url, domain)) {
|
if (enabledSites.includes(domain) && matchUrlDomain(domain, details.url)) {
|
||||||
domainToRemove = domain;
|
domainToRemove = domain;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -402,6 +531,24 @@ extensionApi.webRequest.onCompleted.addListener(function (details) {
|
|||||||
urls: ['<all_urls>']
|
urls: ['<all_urls>']
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// nytimes.com fix
|
||||||
|
extensionApi.webRequest.onHeadersReceived.addListener(function (details) {
|
||||||
|
if (!isSiteEnabled(details)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let headers = details.responseHeaders;
|
||||||
|
headers = headers.map(function (header) {
|
||||||
|
if (header.name === 'x-frame-options') { header.value = 'SAMEORIGIN'; }
|
||||||
|
return header;
|
||||||
|
});
|
||||||
|
return {
|
||||||
|
responseHeaders: headers
|
||||||
|
};
|
||||||
|
}, {
|
||||||
|
urls: ['*://*.nytimes.com/*']
|
||||||
|
},
|
||||||
|
['blocking', 'responseHeaders']);
|
||||||
|
|
||||||
// Google Analytics to anonymously track DAU (Chrome only)
|
// Google Analytics to anonymously track DAU (Chrome only)
|
||||||
function initGA () {
|
function initGA () {
|
||||||
(function (i, s, o, g, r, a, m) {
|
(function (i, s, o, g, r, a, m) {
|
||||||
@ -421,22 +568,32 @@ function initGA () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function isSiteEnabled (details) {
|
function isSiteEnabled (details) {
|
||||||
const isEnabled = enabledSites.some(function (enabledSite) {
|
const enabledSite = matchUrlDomain(enabledSites, details.url);
|
||||||
const useSite = isSameDomain(details.url, enabledSite);
|
|
||||||
if (enabledSite in restrictions) {
|
if (enabledSite in restrictions) {
|
||||||
return useSite && details.url.match(restrictions[enabledSite]);
|
return restrictions[enabledSite].test(details.url);
|
||||||
}
|
}
|
||||||
return useSite;
|
return !!enabledSite;
|
||||||
});
|
|
||||||
return isEnabled;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function isSameDomain (url, domain) {
|
function matchUrlDomain (domains, url) {
|
||||||
if (url.indexOf('http') !== 0) {
|
return matchDomain(domains, urlHost(url));
|
||||||
// Not start with http or https, add a prefix
|
|
||||||
url = 'http://' + url;
|
|
||||||
}
|
}
|
||||||
const urlObj = new URL(url);
|
|
||||||
const hostname = urlObj.hostname;
|
function matchDomain (domains, hostname) {
|
||||||
return hostname === domain || hostname.endsWith('.' + domain);
|
let matchedDomain = false;
|
||||||
|
if (!hostname) { hostname = window.location.hostname; }
|
||||||
|
if (typeof domains === 'string') { domains = [domains]; }
|
||||||
|
domains.some(domain => (hostname === domain || hostname.endsWith('.' + domain)) && (matchedDomain = domain));
|
||||||
|
return matchedDomain;
|
||||||
|
}
|
||||||
|
|
||||||
|
function urlHost (url) {
|
||||||
|
if (url && url.startsWith('http')) {
|
||||||
|
try {
|
||||||
|
return new URL(url).hostname;
|
||||||
|
} catch (e) {
|
||||||
|
console.log(`url not valid: ${url} error: ${e}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return url;
|
||||||
}
|
}
|
||||||
|
696
src/js/contentScript.js
Normal file → Executable file
@ -1,26 +1,43 @@
|
|||||||
if (!matchDomain(['sfchronicle.com', 'cen.acs.org'])) {
|
if (!matchDomain(['seekingalpha.com', 'sfchronicle.com', 'cen.acs.org', 'elmundo.es', 'scmp.com', 'nytimes.com'])) {
|
||||||
window.localStorage.clear();
|
window.localStorage.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (matchDomain('rep.repubblica.it')) {
|
if (matchDomain('elmercurio.com')) {
|
||||||
if (window.location.href.includes('/pwa/')) {
|
if (window.location.href.toLowerCase().includes('/inversiones/')) {
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
const paywall = document.querySelector('#modal_limit_articulos');
|
||||||
|
const body = document.querySelector('body');
|
||||||
|
removeDOMElement(paywall);
|
||||||
|
if (body.hasAttribute('class')) { body.removeAttribute('class'); }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else if (matchDomain('estadao.com.br')) {
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
|
const paywall = document.querySelector('#paywall-wrapper-iframe-estadao');
|
||||||
|
const body = document.querySelector('html');
|
||||||
|
|
||||||
|
removeDOMElement(paywall);
|
||||||
|
body.removeAttribute('style');
|
||||||
|
}, 300); // Delay (in milliseconds)
|
||||||
|
} else if (matchDomain('rep.repubblica.it')) {
|
||||||
|
window.setTimeout(function () {
|
||||||
|
if (window.location.href.includes('/pwa/')) {
|
||||||
window.location.href = window.location.href.replace('/pwa/', '/ws/detail/');
|
window.location.href = window.location.href.replace('/pwa/', '/ws/detail/');
|
||||||
}, 400);
|
|
||||||
}
|
}
|
||||||
|
}, 500);
|
||||||
if (window.location.href.includes('/ws/detail/')) {
|
if (window.location.href.includes('/ws/detail/')) {
|
||||||
const paywall = document.querySelector('.paywall[subscriptions-section="content"]');
|
const paywall = document.querySelector('.paywall');
|
||||||
if (paywall) {
|
if (paywall) {
|
||||||
paywall.removeAttribute('subscriptions-section');
|
ampUnhideSubscriptionsSection();
|
||||||
const preview = document.querySelector('div[subscriptions-section="content-not-granted"]');
|
|
||||||
if (preview) {
|
|
||||||
preview.remove();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (matchDomain('americanbanker.com')) {
|
} else if (matchDomain('americanbanker.com')) {
|
||||||
const paywall = document.getElementsByClassName('embargo-content')[0];
|
const inlineGate = document.querySelector('.inline-gate');
|
||||||
if (paywall) { paywall.classList.remove('embargo-content'); }
|
if (inlineGate) {
|
||||||
|
inlineGate.classList.remove('inline-gate');
|
||||||
|
const inlineGated = document.querySelectorAll('.inline-gated');
|
||||||
|
for (const elem of inlineGated) { elem.classList.remove('inline-gated'); }
|
||||||
|
}
|
||||||
} else if (matchDomain('telegraaf.nl')) {
|
} else if (matchDomain('telegraaf.nl')) {
|
||||||
if (window.location.href.startsWith('https://www.telegraaf.nl/error?ref=/')) {
|
if (window.location.href.startsWith('https://www.telegraaf.nl/error?ref=/')) {
|
||||||
window.location.href = window.location.href.split('&')[0].replace('error?ref=/', '');
|
window.location.href = window.location.href.split('&')[0].replace('error?ref=/', '');
|
||||||
@ -56,64 +73,101 @@ if (matchDomain('rep.repubblica.it')) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (matchDomain(['ad.nl', 'ed.nl'])) {
|
|
||||||
const paywall = document.querySelector('.article__component.article__component--paywall-module-notification');
|
|
||||||
removeDOMElement(paywall);
|
|
||||||
} else if (matchDomain('washingtonpost.com')) {
|
} else if (matchDomain('washingtonpost.com')) {
|
||||||
|
const leaderboard = document.querySelector('#leaderboard-wrapper');
|
||||||
|
const adverts = document.querySelectorAll('div[data-qa="article-body-ad"]');
|
||||||
|
const softwall = document.querySelector('[id^="softwall"]');
|
||||||
|
removeDOMElement(leaderboard, softwall, ...adverts);
|
||||||
if (window.location.href.includes('/gdpr-consent/')) {
|
if (window.location.href.includes('/gdpr-consent/')) {
|
||||||
const freeButton = document.querySelector('.gdpr-consent-container .continue-btn.button.free');
|
const freeButton = document.querySelector('.gdpr-consent-container .continue-btn.button.free');
|
||||||
if (freeButton) { freeButton.click(); }
|
if (freeButton) { freeButton.click(); }
|
||||||
|
window.setTimeout(function () {
|
||||||
setTimeout(function () {
|
|
||||||
const gdprcheckbox = document.querySelector('.gdpr-consent-container .consent-page:not(.hide) #agree');
|
const gdprcheckbox = document.querySelector('.gdpr-consent-container .consent-page:not(.hide) #agree');
|
||||||
if (gdprcheckbox) {
|
if (gdprcheckbox) {
|
||||||
gdprcheckbox.checked = true;
|
gdprcheckbox.checked = true;
|
||||||
gdprcheckbox.dispatchEvent(new Event('change'));
|
gdprcheckbox.dispatchEvent(new Event('change'));
|
||||||
|
|
||||||
document.querySelector('.gdpr-consent-container .consent-page:not(.hide) .continue-btn.button.accept-consent').click();
|
document.querySelector('.gdpr-consent-container .consent-page:not(.hide) .continue-btn.button.accept-consent').click();
|
||||||
}
|
}
|
||||||
}, 300); // Delay (in milliseconds)
|
}, 300); // Delay (in milliseconds)
|
||||||
|
} else {
|
||||||
|
const url = window.location.href;
|
||||||
|
function main (element) {
|
||||||
|
removeDOMElement(element);
|
||||||
|
window.location.href = url.split('?')[0] + '?outputType=amp';
|
||||||
}
|
}
|
||||||
} else if (matchDomain('wsj.com')) {
|
if (!url.includes('outputType=amp')) {
|
||||||
|
waitDOMElement('div[id^="paywall-"]', 'DIV', main, false);
|
||||||
|
} else {
|
||||||
|
const subscriptionsSections = document.querySelectorAll('[subscriptions-section="content"]');
|
||||||
|
for (const subscriptionsSection of subscriptionsSections) { subscriptionsSection.removeAttribute('subscriptions-section'); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (matchDomain('wsj.com') && !matchDomain('cn.wsj.com')) {
|
||||||
if (window.location.href.includes('/articles/')) {
|
if (window.location.href.includes('/articles/')) {
|
||||||
const closeButton = document.querySelector('.close-btn');
|
const closeButton = document.querySelector('div.close-btn[role="button"]');
|
||||||
if (closeButton) { closeButton.click(); }
|
if (closeButton) { closeButton.click(); }
|
||||||
}
|
}
|
||||||
} else if (matchDomain('sloanreview.mit.edu')) {
|
|
||||||
document.querySelector('#cboxClose').click();
|
|
||||||
} else if (matchDomain('mexiconewsdaily.com')) {
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
const sideNotification = document.querySelector('.pigeon-widget-prompt');
|
const url = window.location.href;
|
||||||
const subMessage = document.querySelector('.sub_message_container');
|
const snippet = document.querySelector('.snippet-promotion');
|
||||||
const popup = document.querySelector('.popupally-pro-outer-full-width-7-fluid_qemskqa');
|
const wsjPro = document.querySelector('meta[name="page.site"][content="wsjpro"]');
|
||||||
const bgFocusRemoverId = document.getElementById('popup-box-pro-gfcr-7');
|
if (snippet || wsjPro) {
|
||||||
|
if (!window.location.hash) {
|
||||||
removeDOMElement(sideNotification, subMessage, popup, bgFocusRemoverId);
|
if (url.includes('?')) {
|
||||||
|
window.location.href = url.replace('?', '#refreshed?');
|
||||||
|
} else { window.location.href = url + '#refreshed'; }
|
||||||
|
} else { window.location.href = window.location.href.replace('wsj.com', 'wsj.com/amp').replace('#refreshed', ''); }
|
||||||
|
}
|
||||||
});
|
});
|
||||||
} else if (matchDomain(['theathletic.com','theathletic.co.uk'])) {
|
} else if (matchDomain('sloanreview.mit.edu')) {
|
||||||
const landingBanner = document.querySelector('.logged-out-landing-banner');
|
const readMore = document.querySelector('.btn-read-more');
|
||||||
const sampleBanner = document.querySelector('.main-sample-banner');
|
if (readMore) {
|
||||||
const bottomBanner = document.querySelector('.border-bottom-cc');
|
readMore.click();
|
||||||
const subscribe = document.querySelector('.subscribe-ad-text');
|
}
|
||||||
removeDOMElement(landingBanner, sampleBanner, bottomBanner, subscribe);
|
} else if (matchDomain('mexiconewsdaily.com')) {
|
||||||
|
window.setTimeout(function () {
|
||||||
|
const popup = document.querySelector('div.pigeon-widget-prompt');
|
||||||
|
const cproOverlay = document.querySelector('.cpro-overlay');
|
||||||
|
removeDOMElement(popup, cproOverlay);
|
||||||
|
}, 500); // Delay (in milliseconds)
|
||||||
} else if (matchDomain('the-american-interest.com')) {
|
} else if (matchDomain('the-american-interest.com')) {
|
||||||
const counter = document.getElementById('article-counter');
|
const counter = document.getElementById('article-counter');
|
||||||
removeDOMElement(counter);
|
removeDOMElement(counter);
|
||||||
} else if (matchDomain('nzherald.co.nz')) {
|
} else if (matchDomain('nzherald.co.nz')) {
|
||||||
const paywall = document.getElementById('article-content');
|
const articleContent = document.querySelector('.article__content');
|
||||||
if (paywall) {
|
if (articleContent) {
|
||||||
const premium = document.getElementsByClassName('premium-sub')[0];
|
const articleOffer = document.querySelector('.article-offer');
|
||||||
removeDOMElement(premium);
|
if (articleOffer) {
|
||||||
paywall.classList.remove('premium-content');
|
const cssSelector = articleContent.querySelectorAll('p')[5].getAttribute('class');
|
||||||
paywall.classList.add('full-content');
|
const hiddenNotPars = articleContent.querySelectorAll('.' + cssSelector + ':not(p)');
|
||||||
removeClassesByPrefix(paywall, 'QUnW');
|
for (const hiddenNotPar of hiddenNotPars) {
|
||||||
const paras = paywall.querySelectorAll('p, span, h2, div');
|
hiddenNotPar.classList.remove(cssSelector);
|
||||||
for (const el of paras) {
|
hiddenNotPar.removeAttribute('style');
|
||||||
removeClassesByPrefix(el, 'QUnW');
|
}
|
||||||
el.classList.remove('ellipsis');
|
const hiddenPars = articleContent.querySelectorAll('p.' + cssSelector);
|
||||||
el.removeAttribute('style');
|
const parser = new DOMParser();
|
||||||
|
for (const hiddenPar of hiddenPars) {
|
||||||
|
const parHtml = parser.parseFromString('<div style="margin: 10px 0px; font-size: 17px">' + hiddenPar.innerHTML + '</div>', '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);
|
||||||
|
} else if (matchDomain('interest.co.nz')) {
|
||||||
|
const wrapper = document.getElementById('pp-ablock-banner-wrapper');
|
||||||
|
const overlay = document.querySelector('.black-overlay');
|
||||||
|
removeDOMElement(overlay, wrapper);
|
||||||
|
} else if (matchDomain('stuff.co.nz')) {
|
||||||
|
const overlay = document.querySelector('.x0');
|
||||||
|
removeDOMElement(overlay);
|
||||||
|
} else if (matchDomain('thenational.scot')) {
|
||||||
|
const overlay = document.querySelector('.template-container');
|
||||||
|
removeDOMElement(overlay);
|
||||||
} else if (matchDomain('thestar.com')) {
|
} else if (matchDomain('thestar.com')) {
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
const paywall = document.querySelector('.basic-paywall-new');
|
const paywall = document.querySelector('.basic-paywall-new');
|
||||||
@ -138,72 +192,48 @@ if (matchDomain('rep.repubblica.it')) {
|
|||||||
const plista = document.querySelector('div[data-plista-placement="underArticle_Group"]');
|
const plista = document.querySelector('div[data-plista-placement="underArticle_Group"]');
|
||||||
removeDOMElement(plista);
|
removeDOMElement(plista);
|
||||||
});
|
});
|
||||||
} else if (matchDomain(['parool.nl', 'trouw.nl', 'volkskrant.nl', 'demorgen.be'])) {
|
} else if (matchDomain(['parool.nl', 'trouw.nl', 'volkskrant.nl', 'demorgen.be', 'humo.be'])) {
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
const topBanner = document.querySelector('div[data-temptation-position="PAGE_TOP"]');
|
||||||
const paywall = document.querySelector('div[data-temptation-position="ARTICLE_BOTTOM"]');
|
const paywall = document.querySelector('div[data-temptation-position="ARTICLE_BOTTOM"]');
|
||||||
const hiddenSection = document.querySelector('div[data-temptation-position="ARTICLE_INLINE"]');
|
const hiddenSection = document.querySelector('div[data-temptation-position="ARTICLE_INLINE"]');
|
||||||
removeDOMElement(paywall, hiddenSection);
|
const overlay = document.querySelector('div[data-temptation-position="PAGE_BOTTOM"]');
|
||||||
|
removeDOMElement(topBanner, paywall, hiddenSection, overlay);
|
||||||
});
|
});
|
||||||
} else if (matchDomain('firstthings.com')) {
|
} else if (matchDomain('firstthings.com')) {
|
||||||
const paywall = document.getElementsByClassName('paywall')[0];
|
const paywall = document.getElementsByClassName('paywall')[0];
|
||||||
removeDOMElement(paywall);
|
removeDOMElement(paywall);
|
||||||
} else if (matchDomain('fortune.com')) {
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
|
||||||
const paywall = document.getElementById('freestar-instream-content');
|
|
||||||
if (paywall) {
|
|
||||||
paywall.classList.remove('tp-container-inner');
|
|
||||||
}
|
|
||||||
const paywallJunk = document.getElementById('article_overlay');
|
|
||||||
if (paywallJunk) {
|
|
||||||
paywallJunk.classList.remove('ntv-moap');
|
|
||||||
}
|
|
||||||
const ptags = paywallJunk.getElementsByTagName('p');
|
|
||||||
const h3tags = paywallJunk.getElementsByTagName('h3');
|
|
||||||
for (const ptag of ptags) {
|
|
||||||
ptag.removeAttribute('style');
|
|
||||||
}
|
|
||||||
for (const h3tag of h3tags) {
|
|
||||||
h3tag.removeAttribute('style');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else if (matchDomain('bloomberg.com')) {
|
} else if (matchDomain('bloomberg.com')) {
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
const paywall = document.querySelectorAll('div[id^="fortress-"]');
|
||||||
const fence = document.querySelector('.fence-body');
|
const leaderboard = document.querySelector('div[id^="leaderboard"], div[class^="leaderboard"], div.canopy-container');
|
||||||
if (fence) {
|
const ads = document.querySelectorAll('div[data-ad-status], div.dvz-v0-ad, div[class^="FullWidthAd_"]');
|
||||||
fence.classList.remove('fence-body');
|
hideDOMElement(...paywall, leaderboard, ...ads);
|
||||||
|
if (window.location.pathname.startsWith('/live/')) {
|
||||||
|
setInterval(function () {
|
||||||
|
window.localStorage.clear();
|
||||||
|
}, 15 * 60 * 1000);
|
||||||
}
|
}
|
||||||
const paywall = document.getElementById('paywall-banner');
|
|
||||||
removeDOMElement(paywall);
|
|
||||||
});
|
|
||||||
} else if (matchDomain('bloombergquint.com')) {
|
} else if (matchDomain('bloombergquint.com')) {
|
||||||
const articlesLeftModal = document.getElementsByClassName('paywall-meter-module__story-paywall-container__1UgCE')[0];
|
const articlesLeftModal = document.getElementsByClassName('paywall-meter-module__story-paywall-container__1UgCE')[0];
|
||||||
const paywall = document.getElementById('paywallDmp');
|
const paywall = document.getElementById('paywallDmp');
|
||||||
removeDOMElement(articlesLeftModal, paywall);
|
removeDOMElement(articlesLeftModal, paywall);
|
||||||
} else if (matchDomain('medium.com')) {
|
} else if (matchDomain('medium.com') || document.querySelector('script[src^="https://cdn-client.medium.com/"]')) {
|
||||||
const bottomMessageText = 'Get one more story in your member preview when you sign up. It’s free.';
|
const paywall = document.querySelector('div#paywall-background-color');
|
||||||
const DOMElementsToTextDiv = pageContains('div', bottomMessageText);
|
removeDOMElement(paywall);
|
||||||
if (DOMElementsToTextDiv[2]) removeDOMElement(DOMElementsToTextDiv[2]);
|
if (paywall) {
|
||||||
|
extensionApi.runtime.sendMessage({ request: 'refreshCurrentTab' });
|
||||||
|
}
|
||||||
|
window.setTimeout(function () {
|
||||||
|
const meter = document.querySelector('[id*="highlight-meter-"]');
|
||||||
|
if (meter) {
|
||||||
|
meter.hidden = true;
|
||||||
|
}
|
||||||
|
}, 500); // Delay (in milliseconds)
|
||||||
} else if (matchDomain('theglobeandmail.com')) {
|
} else if (matchDomain('theglobeandmail.com')) {
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
const articleBodySubscribed = document.querySelector('.c-article-body--subscribed');
|
||||||
const lazyImages = document.querySelectorAll('.js-lazyimage');
|
if (articleBodySubscribed) {
|
||||||
for (const lazyImage of lazyImages) {
|
articleBodySubscribed.removeAttribute('class');
|
||||||
lazyImage.classList.remove('js-lazyimage');
|
|
||||||
}
|
}
|
||||||
const hiddenImages = document.querySelectorAll('img');
|
|
||||||
for (const hiddenImage of hiddenImages) {
|
|
||||||
const src = hiddenImage.src;
|
|
||||||
if (src.indexOf('data:image/gif') !== -1) {
|
|
||||||
const dataSrc = hiddenImage.getAttribute('data-src');
|
|
||||||
if (dataSrc) {
|
|
||||||
hiddenImage.setAttribute('src', dataSrc);
|
|
||||||
}
|
|
||||||
const dataBg = hiddenImage.getAttribute('data-bg');
|
|
||||||
if (dataBg) {
|
|
||||||
hiddenImage.setAttribute('src', dataBg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else if (matchDomain(['examiner.com.au', 'thecourier.com.au', 'theadvocate.com.au'])) {
|
} else if (matchDomain(['examiner.com.au', 'thecourier.com.au', 'theadvocate.com.au'])) {
|
||||||
const subscribeTruncate = document.querySelector('.subscribe-truncate');
|
const subscribeTruncate = document.querySelector('.subscribe-truncate');
|
||||||
if (subscribeTruncate) { subscribeTruncate.classList.remove('subscribe-truncate'); }
|
if (subscribeTruncate) { subscribeTruncate.classList.remove('subscribe-truncate'); }
|
||||||
@ -220,25 +250,35 @@ if (matchDomain('rep.repubblica.it')) {
|
|||||||
for (const el of content) {
|
for (const el of content) {
|
||||||
el.classList.remove('subscriber-hider');
|
el.classList.remove('subscriber-hider');
|
||||||
}
|
}
|
||||||
} else if (matchDomain('asia.nikkei.com')) {
|
|
||||||
const cookieBanner = document.querySelector('.pw-widget');
|
|
||||||
removeDOMElement(cookieBanner);
|
|
||||||
} else if (matchDomain('ledevoir.com')) {
|
} else if (matchDomain('ledevoir.com')) {
|
||||||
const counter = document.querySelector('.full.hidden-print.popup-msg');
|
const counter = document.querySelector('.full.hidden-print.popup-msg');
|
||||||
removeDOMElement(counter);
|
removeDOMElement(counter);
|
||||||
} else if (matchDomain('ft.com')) {
|
} else if (matchDomain('ft.com')) {
|
||||||
const cookieBanner = document.querySelector('.cookie-banner');
|
const cookieBanner = document.querySelector('.o-banner__outer');
|
||||||
removeDOMElement(cookieBanner);
|
const ribbon = document.querySelector('.js-article-ribbon');
|
||||||
|
const ads = document.querySelector('.o-ads');
|
||||||
|
removeDOMElement(cookieBanner, ads, ribbon);
|
||||||
} else if (matchDomain('thehindu.com')) {
|
} else if (matchDomain('thehindu.com')) {
|
||||||
const paywall = document.getElementById('test');
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
removeDOMElement(paywall);
|
const counter = document.querySelector('#test');
|
||||||
|
const coBanner = document.querySelector('.co-banner');
|
||||||
|
const support = document.querySelector('div.support-jlm');
|
||||||
|
removeDOMElement(counter, coBanner, support);
|
||||||
|
});
|
||||||
} else if (matchDomain('nytimes.com')) {
|
} else if (matchDomain('nytimes.com')) {
|
||||||
const previewButton = document.querySelector('.css-3s1ce0');
|
const banners = document.querySelectorAll('div[data-testid="inline-message"], div[id^="ad-"], div.expanded-dock, div.pz-ad-box');
|
||||||
if (previewButton) { previewButton.click(); }
|
removeDOMElement(...banners);
|
||||||
} else if (matchDomain('technologyreview.com')) {
|
} else if (matchDomain('technologyreview.com')) {
|
||||||
// The class of banner is like 'overlayFooter__wrapper--3DhFn', which is hard to select exactly
|
window.setTimeout(function () {
|
||||||
const subscribeBanner = document.querySelector('[class*=overlayFooter__wrapper]');
|
const bodyObscured = document.querySelector('body[class*="body__obscureContent"]');
|
||||||
removeDOMElement(subscribeBanner);
|
if (bodyObscured) { removeClassesByPrefix(bodyObscured, 'body__obscureContent'); }
|
||||||
|
const overlay = document.querySelector('div[class*="overlayFooter__wrapper"]');
|
||||||
|
if (overlay) { overlay.setAttribute('style', 'display:none'); }
|
||||||
|
const contentBodyHidden = document.querySelector('div[class*="contentBody__contentHidden"]');
|
||||||
|
if (contentBodyHidden) { removeClassesByPrefix(contentBodyHidden, 'contentBody__contentHidden'); }
|
||||||
|
const contentBodyOverlay = document.querySelector('div[class*="contentBody__overlay"]');
|
||||||
|
if (contentBodyOverlay) { contentBodyOverlay.removeAttribute('class'); }
|
||||||
|
}, 500);
|
||||||
} else if (matchDomain('leparisien.fr')) {
|
} else if (matchDomain('leparisien.fr')) {
|
||||||
window.removeEventListener('scroll', this.scrollListener);
|
window.removeEventListener('scroll', this.scrollListener);
|
||||||
const paywall = document.querySelector('.relative.piano-paywall.below_nav.sticky');
|
const paywall = document.querySelector('.relative.piano-paywall.below_nav.sticky');
|
||||||
@ -277,14 +317,17 @@ if (matchDomain('rep.repubblica.it')) {
|
|||||||
} else if (matchDomain('cen.acs.org')) {
|
} else if (matchDomain('cen.acs.org')) {
|
||||||
const paywall = document.querySelector('.meteredBar');
|
const paywall = document.querySelector('.meteredBar');
|
||||||
removeDOMElement(paywall);
|
removeDOMElement(paywall);
|
||||||
} else if (matchDomain('elpais.com')) {
|
} else if (matchDomain('elperiodico.com')) {
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
const paywall = document.querySelector('.fc-ab-root');
|
const unavailableArea = document.querySelector('.closed');
|
||||||
const body = document.querySelector('.salida_articulo');
|
const infoBox = document.querySelector('.ep-masPeriodico-info');
|
||||||
|
if (unavailableArea) {
|
||||||
removeDOMElement(paywall);
|
unavailableArea.classList.remove('closed');
|
||||||
body.removeAttribute('style');
|
}
|
||||||
}, 500); // Delay (in milliseconds)
|
if (infoBox) {
|
||||||
|
infoBox.parentNode.removeChild(infoBox);
|
||||||
|
}
|
||||||
|
}, 1000);
|
||||||
} else if (matchDomain('techinasia.com')) {
|
} else if (matchDomain('techinasia.com')) {
|
||||||
const paywall = document.querySelector('.paywall-content');
|
const paywall = document.querySelector('.paywall-content');
|
||||||
if (paywall) {
|
if (paywall) {
|
||||||
@ -304,6 +347,375 @@ if (matchDomain('rep.repubblica.it')) {
|
|||||||
} else if (matchDomain('hbr.org')) {
|
} else if (matchDomain('hbr.org')) {
|
||||||
const banner = document.querySelector('.persistent-banner');
|
const banner = document.querySelector('.persistent-banner');
|
||||||
removeDOMElement(banner);
|
removeDOMElement(banner);
|
||||||
|
} else if (matchDomain('spectator.co.uk')) {
|
||||||
|
const banner = document.querySelector('#subscribe-ribbon');
|
||||||
|
removeDOMElement(banner);
|
||||||
|
} else if (matchDomain('barrons.com')) {
|
||||||
|
const url = window.location.href;
|
||||||
|
if (!url.includes('barrons.com/amp/')) {
|
||||||
|
const bodyContinuous = document.querySelector('body.is-continuous');
|
||||||
|
const snippet = document.querySelector('meta[content="snippet"]');
|
||||||
|
if (bodyContinuous && snippet) {
|
||||||
|
removeDOMElement(snippet);
|
||||||
|
window.location.href = url.replace('barrons.com', 'barrons.com/amp');
|
||||||
|
}
|
||||||
|
const signinLinks = document.querySelectorAll('a.primary-button--link[href*="target="]');
|
||||||
|
for (const signinLink of signinLinks) {
|
||||||
|
signinLink.href = decodeURIComponent(signinLink.href.split('target=')[1]).split('?')[0];
|
||||||
|
signinLink.text = 'Click';
|
||||||
|
}
|
||||||
|
const barronsAds = document.querySelectorAll('.barrons-body-ad-placement');
|
||||||
|
removeDOMElement(...barronsAds);
|
||||||
|
} else {
|
||||||
|
const preview = document.querySelector('section[subscriptions-section="content-not-granted"]');
|
||||||
|
removeDOMElement(preview);
|
||||||
|
const subscrSection = document.querySelector('section[subscriptions-section="content"]');
|
||||||
|
if (subscrSection) {
|
||||||
|
subscrSection.removeAttribute('subscriptions-section');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
removeDOMElement(document.querySelector('.login-section-container'));
|
||||||
|
} else if (matchDomain('nzz.ch')) {
|
||||||
|
const paywall = document.querySelector('.dynamic-regwall');
|
||||||
|
removeDOMElement(paywall);
|
||||||
|
} else if (matchDomain('irishtimes.com')) {
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
const stubArticleMsg = document.querySelector('div.stub-article-msg');
|
||||||
|
const url = window.location.href;
|
||||||
|
if (url.includes('mode=sample') || stubArticleMsg) { window.location.href = new URL(url).pathname + '?mode=amp'; }
|
||||||
|
});
|
||||||
|
} else if (matchDomain('thesaturdaypaper.com.au')) {
|
||||||
|
const paywall = document.querySelector('div.paywall-hard-always-show');
|
||||||
|
removeDOMElement(paywall);
|
||||||
|
} else if (matchDomain('lesechos.fr') && window.location.href.match(/-\d{6,}/)) {
|
||||||
|
window.setTimeout(function () {
|
||||||
|
const aboBanner = document.querySelector('[class^="pgxf3b"]');
|
||||||
|
const adBlocks = document.querySelectorAll('[class*="jzxvkd"');
|
||||||
|
for (const adBlock of adBlocks) { adBlock.setAttribute('style', 'display:none'); }
|
||||||
|
if (aboBanner) {
|
||||||
|
removeDOMElement(aboBanner);
|
||||||
|
const url = window.location.href;
|
||||||
|
const html = document.documentElement.outerHTML;
|
||||||
|
let state;
|
||||||
|
const split1 = html.split('window.__PRELOADED_STATE__=')[1];
|
||||||
|
const split2 = split1.split('</script>')[0].trim();
|
||||||
|
if (split2.includes('; window.__DATA__=')) { state = split2.split('; window.__DATA__=')[0].trim(); } else { state = split2.substr(0, split2.length - 1); }
|
||||||
|
try {
|
||||||
|
const data = JSON.parse(state);
|
||||||
|
const article = data.article.data.stripes[0].mainContent[0].data.description;
|
||||||
|
const urlLoaded = data.article.data.path;
|
||||||
|
if (!url.includes(urlLoaded)) { window.location.reload(true); }
|
||||||
|
const paywallNode = document.querySelector('.post-paywall');
|
||||||
|
if (paywallNode) {
|
||||||
|
const contentNode = document.createElement('div');
|
||||||
|
const parser = new DOMParser();
|
||||||
|
const articleHtml = parser.parseFromString('<div>' + article + '</div>', 'text/html');
|
||||||
|
const articlePar = articleHtml.querySelector('div');
|
||||||
|
if (articlePar) {
|
||||||
|
contentNode.appendChild(articlePar);
|
||||||
|
contentNode.className = paywallNode.className;
|
||||||
|
paywallNode.parentNode.insertBefore(contentNode, paywallNode);
|
||||||
|
removeDOMElement(paywallNode);
|
||||||
|
const paywallLastChildNode = document.querySelector('.post-paywall > :last-child');
|
||||||
|
if (paywallLastChildNode) {
|
||||||
|
paywallLastChildNode.setAttribute('style', 'height: auto !important; overflow: hidden !important; max-height: none !important;');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const styleElem = document.head.appendChild(document.createElement('style'));
|
||||||
|
styleElem.innerHTML = '.post-paywall::after {height: auto !important;}';
|
||||||
|
} catch (err) {
|
||||||
|
window.location.reload(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, 500); // Delay (in milliseconds)
|
||||||
|
} else if (matchDomain('startribune.com')) {
|
||||||
|
// remove active class from all elements
|
||||||
|
document.querySelectorAll('div.ReactModalPortal').forEach(function (el) {
|
||||||
|
removeDOMElement(el);
|
||||||
|
});
|
||||||
|
// Enable Scroll. Reveal Hiddlen Paragraph
|
||||||
|
document.getElementsByTagName('body')[0].removeAttribute('class');
|
||||||
|
} else if (matchDomain('seattletimes.com')) {
|
||||||
|
window.setTimeout(function () {
|
||||||
|
// remove modal class from all elements
|
||||||
|
document.querySelectorAll('div.modal').forEach(function (el) {
|
||||||
|
removeDOMElement(el);
|
||||||
|
});
|
||||||
|
// Remove Blurred Style from all matching Divs
|
||||||
|
document.getElementById('container').removeAttribute('style');
|
||||||
|
document.querySelectorAll('div[style~="filter"]').forEach(function (el) {
|
||||||
|
el.removeAttribute('style');
|
||||||
|
});
|
||||||
|
document
|
||||||
|
.querySelectorAll('div[class~="NewsletterSignupSplash"]')
|
||||||
|
.forEach(function (el) {
|
||||||
|
el.removeAttribute('class');
|
||||||
|
});
|
||||||
|
}, 1000); // Delay (in milliseconds)
|
||||||
|
} else if (matchDomain('theatlantic.com')) {
|
||||||
|
const images = document.querySelectorAll('img[class*="Image_lazy__"]');
|
||||||
|
for (const elem of images) { removeClassesByPrefix(elem, 'Image_lazy__'); }
|
||||||
|
const banners = document.querySelectorAll('.c-nudge__container, .c-non-metered-nudge, div[class^="ArticleInjector_"]');
|
||||||
|
hideDOMElement(...banners);
|
||||||
|
} else if (matchDomain('theathletic.com')) {
|
||||||
|
if (!window.location.search.match(/(\?|&)amp/)) {
|
||||||
|
const paywall = document.querySelector('div#slideup-paywall');
|
||||||
|
if (paywall) {
|
||||||
|
const overlays = document.querySelectorAll('div[id*="overlay"], div:empty:not([data-rjs])');
|
||||||
|
removeDOMElement(paywall, ...overlays);
|
||||||
|
const body = document.querySelector('body');
|
||||||
|
if (body) {
|
||||||
|
body.style.overflow = 'visible';
|
||||||
|
body.style.position = 'relative';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const headlinePaywall = document.querySelectorAll('a.headline-paywall');
|
||||||
|
const amphtml = document.querySelector('link[rel="amphtml"]');
|
||||||
|
if (headlinePaywall.length && amphtml) {
|
||||||
|
removeDOMElement(...headlinePaywall);
|
||||||
|
window.setTimeout(function () {
|
||||||
|
window.location.href = amphtml.href;
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ampUnhideSubscriptionsSection();
|
||||||
|
}
|
||||||
|
const apron = document.querySelector('div#free-apron-cta, div.slideup-free-apron-container');
|
||||||
|
removeDOMElement(apron);
|
||||||
|
} else if (matchDomain('newyorker.com')) {
|
||||||
|
blockElement('.paywall-bar', true);
|
||||||
|
blockElement('.paywall-modal');
|
||||||
|
} else if (matchDomain('vanityfair.com')) {
|
||||||
|
const paywall = document.querySelector('.paywall-bar');
|
||||||
|
removeDOMElement(paywall);
|
||||||
|
} else if (matchDomain(['postimees.ee', 'elu24.ee'])) {
|
||||||
|
setTimeout(function () {
|
||||||
|
// Remove 'adblocker-detected' footer notification
|
||||||
|
const adblockNotif = document.querySelector('.ad-block-notification-overlay');
|
||||||
|
removeDOMElement(adblockNotif);
|
||||||
|
document.body.removeAttribute('style');
|
||||||
|
}, 800); // Delay (in milliseconds)
|
||||||
|
} else if (matchDomain('theolivepress.es')) {
|
||||||
|
const modalBackdrop = document.querySelector('.modal-backdrop');
|
||||||
|
const paywall = document.querySelector('.ev-open-modal-paywall-REQUIRE_LOGIN_WITH_ENTITLEMENT');
|
||||||
|
removeDOMElement(modalBackdrop, paywall);
|
||||||
|
|
||||||
|
for (const clazz of ['ev-modals', 'modal-open']) {
|
||||||
|
document.body.classList.remove(clazz);
|
||||||
|
}
|
||||||
|
} else if (matchDomain('themarker.com')) {
|
||||||
|
setTimeout(function () {
|
||||||
|
const paywall = document.querySelector('[data-test="bottomStrip"]');
|
||||||
|
const notifications = document.querySelector('#pwSubscribePopup');
|
||||||
|
const banner = document.querySelector('#themarker\\.com\\.billboard\\.desktop');
|
||||||
|
const newsBanner = document.querySelector('#themarker\\.com\\.news\\.banner');
|
||||||
|
const midBanner = document.querySelector('#themarker\\.com.headline\\.banner\\.desktop');
|
||||||
|
const financeBanner = document.querySelector('#themarker\\.com\\.finance\\.banner');
|
||||||
|
const topStrip = document.querySelector('[data-test="topStrip"]');
|
||||||
|
const otherBanners = Array.from(document.querySelectorAll('[data-audtarget]'));
|
||||||
|
removeDOMElement(paywall, notifications, banner, topStrip, midBanner, newsBanner, financeBanner, ...otherBanners);
|
||||||
|
}, 500);
|
||||||
|
} else if (matchDomain('haaretz.co.il')) {
|
||||||
|
setTimeout(function () {
|
||||||
|
const notifications = document.querySelector('#pwSubscribePopup');
|
||||||
|
const paywall = document.querySelector('[data-test="bottomStrip"]');
|
||||||
|
const banner = document.querySelector('#haaretz\\.co\\.il\\.billboard\\.desktop');
|
||||||
|
const editorsBanner = document.querySelector('#haaretz\\.co\\.il\\.editors\\.banner');
|
||||||
|
const headlinesBanner = document.querySelector('#haaretz\\.co\\.il\\.headline\\.box\\.desktop');
|
||||||
|
const topStrip = document.querySelector('[data-test="topStrip"]');
|
||||||
|
const otherBanners = Array.from(document.querySelectorAll('[data-audtarget]'));
|
||||||
|
removeDOMElement(paywall, notifications, banner, editorsBanner, topStrip, headlinesBanner, ...otherBanners);
|
||||||
|
}, 500);
|
||||||
|
} else if (matchDomain('sueddeutsche.de')) {
|
||||||
|
const url = window.location.href;
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
const offerPage = document.querySelector('div.offer-page');
|
||||||
|
if (url.startsWith('https://www.sueddeutsche.de') && (url.includes('reduced=true') || offerPage)) { window.location.href = url.split('?')[0].replace('www.', 'amphtml.'); } else if (url.startsWith('https://sz-magazin.sueddeutsche.de')) {
|
||||||
|
if (url.includes('reduced=true') || offerPage) { window.location.href = new URL(url).pathname + '!amp'; }
|
||||||
|
}
|
||||||
|
});
|
||||||
|
window.setTimeout(function () {
|
||||||
|
if (url.includes('!amp')) {
|
||||||
|
const paragraphReduced = document.querySelector('.paragraph--reduced');
|
||||||
|
if (paragraphReduced) { paragraphReduced.classList.remove('paragraph--reduced'); }
|
||||||
|
const paragraphHidden = document.querySelectorAll('.paragraph--hidden');
|
||||||
|
for (const parHidden of paragraphHidden) { parHidden.classList.remove('paragraph--hidden'); }
|
||||||
|
const paragraphDynamic = document.querySelector('.paragraph--dynamic');
|
||||||
|
if (paragraphDynamic) { paragraphDynamic.classList.remove('paragraph--dynamic'); }
|
||||||
|
const ampOfferpage = document.querySelector('.amp-offerpage');
|
||||||
|
removeDOMElement(ampOfferpage);
|
||||||
|
}
|
||||||
|
}, 500); // Delay (in milliseconds)
|
||||||
|
} else if (matchDomain('adweek.com')) {
|
||||||
|
const bodySingle = document.querySelector('body.single');
|
||||||
|
const ampHtml = document.querySelector('link[rel="amphtml"]');
|
||||||
|
if (bodySingle && ampHtml) {
|
||||||
|
bodySingle.classList.remove('single');
|
||||||
|
window.location.href = ampHtml.href;
|
||||||
|
}
|
||||||
|
} else if (matchDomain('gelocal.it')) {
|
||||||
|
if (!window.location.href.includes('/amp/')) {
|
||||||
|
const paywallAdagio = document.querySelector('.paywall-adagio');
|
||||||
|
removeDOMElement(paywallAdagio);
|
||||||
|
} else {
|
||||||
|
const paywall = document.querySelector('div[amp-access="showContent"]');
|
||||||
|
if (paywall) { paywall.removeAttribute('amp-access-hide'); }
|
||||||
|
const ampAds = document.querySelectorAll('amp-ad');
|
||||||
|
removeDOMElement(...ampAds);
|
||||||
|
}
|
||||||
|
} else if (matchDomain('elmundo.es')) {
|
||||||
|
const premium = document.querySelector('.ue-c-article__premium');
|
||||||
|
const url = window.location.href;
|
||||||
|
if (!url.includes('/amp.' + 'elmundo.es' + '/')) {
|
||||||
|
if (premium) {
|
||||||
|
removeDOMElement(premium);
|
||||||
|
window.location.href = window.location.href.replace('/www.', '/amp.');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const paywall = document.querySelector('div[amp-access="authorized!=true"]');
|
||||||
|
if (paywall) {
|
||||||
|
removeDOMElement(paywall);
|
||||||
|
const divHidden = document.querySelector('div[amp-access="authorized=true"]');
|
||||||
|
if (divHidden) {
|
||||||
|
divHidden.removeAttribute('amp-access-hide');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const advertising = document.querySelectorAll('.advertising, amp-embed');
|
||||||
|
removeDOMElement(...advertising);
|
||||||
|
}
|
||||||
|
} else if (matchDomain('speld.nl')) {
|
||||||
|
const paywallPopup = document.querySelector('.c-paywall-notice');
|
||||||
|
removeDOMElement(paywallPopup);
|
||||||
|
} else if (matchDomain('lastampa.it')) {
|
||||||
|
const url = window.location.href;
|
||||||
|
if (!url.includes('/amp/')) {
|
||||||
|
const premium = document.querySelector('.paywall-adagio');
|
||||||
|
removeDOMElement(premium);
|
||||||
|
window.setTimeout(function () {
|
||||||
|
if (premium) {
|
||||||
|
window.location.href = url.split('?')[0] + '/amp/';
|
||||||
|
}
|
||||||
|
const articleBody = document.querySelector('div#article-body[style]');
|
||||||
|
if (articleBody) {
|
||||||
|
articleBody.removeAttribute('style');
|
||||||
|
}
|
||||||
|
}, 500);
|
||||||
|
} else {
|
||||||
|
const paywall = document.querySelector('div[id^="paywall-banner"]');
|
||||||
|
removeDOMElement(paywall);
|
||||||
|
const subscriptionSection = document.querySelector('[subscriptions-section="content"]');
|
||||||
|
if (subscriptionSection) {
|
||||||
|
subscriptionSection.removeAttribute('subscriptions-section');
|
||||||
|
const preview = document.querySelector('div[subscriptions-section="content-not-granted"]');
|
||||||
|
removeDOMElement(preview);
|
||||||
|
}
|
||||||
|
const ampAds = document.querySelectorAll('amp-ad, amp-embed');
|
||||||
|
removeDOMElement(...ampAds);
|
||||||
|
}
|
||||||
|
} else if (matchDomain('time.com')) {
|
||||||
|
const body = document.querySelector('body');
|
||||||
|
if (body) {
|
||||||
|
body.setAttribute('style', 'position:relative !important;');
|
||||||
|
}
|
||||||
|
} else if (matchDomain('expansion.com')) {
|
||||||
|
const premium = document.querySelector('.ue-c-article__premium');
|
||||||
|
const url = window.location.href;
|
||||||
|
if (!url.includes('/amp.' + 'expansion.com' + '/')) {
|
||||||
|
if (premium) {
|
||||||
|
removeDOMElement(premium);
|
||||||
|
window.location.href = window.location.href.replace('/www.', '/amp.');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const paywall = document.querySelector('div[amp-access="authorized!=true"]');
|
||||||
|
if (paywall) {
|
||||||
|
removeDOMElement(paywall);
|
||||||
|
const divHidden = document.querySelector('div[amp-access="authorized=true"]');
|
||||||
|
if (divHidden) {
|
||||||
|
divHidden.removeAttribute('amp-access-hide');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const advertising = document.querySelectorAll('.advertising, amp-embed');
|
||||||
|
removeDOMElement(...advertising);
|
||||||
|
}
|
||||||
|
} else if (matchDomain('chicagobusiness.com')) {
|
||||||
|
const body = document.querySelector('body[class]');
|
||||||
|
if (body) {
|
||||||
|
body.removeAttribute('class');
|
||||||
|
}
|
||||||
|
} else if (matchDomain('latimes.com')) {
|
||||||
|
const ads = document.querySelectorAll('div.enhancement, div.google-dfp-ad-wrapper');
|
||||||
|
hideDOMElement(...ads);
|
||||||
|
} else if (matchDomain('foreignpolicy.com')) {
|
||||||
|
const contentUngated = document.querySelector('div.content-ungated');
|
||||||
|
removeDOMElement(contentUngated);
|
||||||
|
const contentGated = document.querySelector('div.content-gated');
|
||||||
|
if (contentGated) {
|
||||||
|
contentGated.classList.remove('content-gated');
|
||||||
|
}
|
||||||
|
} else if (matchDomain('bostonglobe.com')) {
|
||||||
|
// Remove the portion covering the paywall
|
||||||
|
const paywall = document.querySelector('div.meter-paywall');
|
||||||
|
if (paywall) {
|
||||||
|
removeDOMElement(paywall);
|
||||||
|
}
|
||||||
|
// Re-enable scrolling
|
||||||
|
const body = document.querySelector('body');
|
||||||
|
if (body) {
|
||||||
|
document.body.removeAttribute('style');
|
||||||
|
}
|
||||||
|
// Click the button to reveal the rest of the article
|
||||||
|
const buttonDiv = document.querySelector('[id="continue_button"]');
|
||||||
|
if (buttonDiv) {
|
||||||
|
const button = buttonDiv.querySelector('button');
|
||||||
|
if (button) {
|
||||||
|
button.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (matchDomain('nationalgeographic.com')) {
|
||||||
|
// prevent modal from showing up, then remove scroll-locking, and article blur
|
||||||
|
new window.MutationObserver(function (mutations) {
|
||||||
|
for (const mutation of mutations) {
|
||||||
|
for (const node of mutation.addedNodes) {
|
||||||
|
if (node instanceof window.HTMLElement) {
|
||||||
|
if (node.matches('#fittPortal_0')) {
|
||||||
|
removeDOMElement(node);
|
||||||
|
const body = document.body;
|
||||||
|
body.removeAttribute('class');
|
||||||
|
body.removeAttribute('style');
|
||||||
|
body.removeAttribute('overflow');
|
||||||
|
const blur = document.querySelector('#natgeo-template1-frame-1-module-1 > div > div > section > article > section > div.Article__Content__Overlay--gated');
|
||||||
|
if (blur) removeDOMElement(blur);
|
||||||
|
|
||||||
|
this.disconnect(); // Stop watching for element being added after one removal
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).observe(document, { subtree: true, childList: true });
|
||||||
|
} else if (matchDomain('hbrchina.org')) {
|
||||||
|
const hiddenDiv = document.querySelector('div#the_content');
|
||||||
|
if (hiddenDiv) {
|
||||||
|
hiddenDiv.removeAttribute('style');
|
||||||
|
}
|
||||||
|
} else if (matchDomain('scmp.com')) {
|
||||||
|
if (window.location.href.includes('/amp.')) {
|
||||||
|
const divHidden = document.querySelectorAll('div.article-body[amp-access][amp-access-hide]');
|
||||||
|
for (const elem of divHidden) {
|
||||||
|
elem.removeAttribute('amp-access-hide');
|
||||||
|
}
|
||||||
|
const defaultMeters = document.querySelectorAll('div.default-meter, div#archive-article-meter');
|
||||||
|
const ads = document.querySelectorAll('amp-ad, div.ad-banner, div.advert-fly-carpet-container, div.inline-advert');
|
||||||
|
removeDOMElement(...defaultMeters, ...ads);
|
||||||
|
}
|
||||||
|
} else if (matchDomain('fortune.com')) {
|
||||||
|
const paywalledArticle = document.querySelector('.paywall.paywallActive');
|
||||||
|
if (paywalledArticle) {
|
||||||
|
for (const clazz of ['paywall', 'paywallActive']) {
|
||||||
|
paywalledArticle.classList.remove(clazz);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function matchDomain (domains) {
|
function matchDomain (domains) {
|
||||||
@ -312,6 +724,24 @@ function matchDomain (domains) {
|
|||||||
return domains.some(domain => hostname === domain || hostname.endsWith('.' + domain));
|
return domains.some(domain => hostname === domain || hostname.endsWith('.' + domain));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function waitDOMElement (selector, tagName = '', callback, multiple = false) {
|
||||||
|
new window.MutationObserver(function (mutations) {
|
||||||
|
for (const mutation of mutations) {
|
||||||
|
for (const 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 removeDOMElement (...elements) {
|
function removeDOMElement (...elements) {
|
||||||
for (const element of elements) {
|
for (const element of elements) {
|
||||||
if (element) { element.remove(); }
|
if (element) { element.remove(); }
|
||||||
@ -326,9 +756,31 @@ function removeClassesByPrefix (el, prefix) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function pageContains (selector, text) {
|
// Prevent element from being added the first time to the DOM
|
||||||
const elements = document.querySelectorAll(selector);
|
function blockElement (selector, blockAlways = false) {
|
||||||
return Array.prototype.filter.call(elements, function (element) {
|
new window.MutationObserver(function (mutations) {
|
||||||
return RegExp(text).test(element.textContent);
|
for (const mutation of mutations) {
|
||||||
});
|
for (const node of mutation.addedNodes) {
|
||||||
|
if (node instanceof window.HTMLElement) {
|
||||||
|
if (node.matches(selector)) {
|
||||||
|
removeDOMElement(node);
|
||||||
|
if (!blockAlways) {
|
||||||
|
this.disconnect(); // Stop watching for element being added after one removal
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).observe(document, { subtree: true, childList: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
function ampUnhideSubscriptionsSection (ampAdsSel = 'amp-ad, .ad') {
|
||||||
|
const preview = document.querySelector('[subscriptions-section="content-not-granted"]');
|
||||||
|
removeDOMElement(preview);
|
||||||
|
const subscriptionsSection = document.querySelectorAll('[subscriptions-section="content"]');
|
||||||
|
for (const elem of subscriptionsSection) {
|
||||||
|
elem.removeAttribute('subscriptions-section');
|
||||||
|
}
|
||||||
|
const ampAds = document.querySelectorAll(ampAdsSel);
|
||||||
|
removeDOMElement(...ampAds);
|
||||||
}
|
}
|
||||||
|
@ -1,22 +1,53 @@
|
|||||||
|
// Shortcut for document.querySelector()
|
||||||
|
function $(sel, el = document) {
|
||||||
|
return el.querySelector(sel);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Shortcut for document.querySelectorAll()
|
||||||
|
function $$(sel, el = document) {
|
||||||
|
return Array.from(el.querySelectorAll(sel));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Select UI pane
|
||||||
|
function selectPane(e) {
|
||||||
|
const panes = $$('.pane');
|
||||||
|
for (const tab of $$('#tabs button')) {
|
||||||
|
tab.classList.toggle('active', tab == e.target);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const pane of panes) {
|
||||||
|
pane.classList.toggle('active', pane.id == e.target.dataset.pane);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Saves options to extensionApi.storage
|
// Saves options to extensionApi.storage
|
||||||
function saveOptions () {
|
function saveOptions () {
|
||||||
const inputEls = document.querySelectorAll('#bypass_sites input');
|
|
||||||
|
|
||||||
const sites = Array.from(inputEls).reduce(function (memo, inputEl) {
|
const sites = $$('#bypass_sites input').reduce(function (memo, inputEl) {
|
||||||
if (inputEl.checked) {
|
if (inputEl.checked) {
|
||||||
memo[inputEl.dataset.key] = inputEl.dataset.value;
|
memo[inputEl.dataset.key] = inputEl.dataset.value;
|
||||||
}
|
}
|
||||||
return memo;
|
return memo;
|
||||||
}, {});
|
}, {});
|
||||||
|
|
||||||
|
const customSites = $('#custom_sites').value
|
||||||
|
.split('\n')
|
||||||
|
.map(s => s.trim())
|
||||||
|
.filter(s => s);
|
||||||
|
|
||||||
extensionApi.storage.sync.set({
|
extensionApi.storage.sync.set({
|
||||||
sites: sites
|
sites: sites,
|
||||||
|
customSites: customSites
|
||||||
}, function () {
|
}, function () {
|
||||||
// Update status to let user know options were saved.
|
// Update status to let user know options were saved.
|
||||||
const status = document.getElementById('status');
|
const status = $('#status');
|
||||||
status.textContent = 'Options saved.';
|
status.textContent = 'Options saved';
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
status.textContent = '';
|
status.textContent = '';
|
||||||
|
|
||||||
|
// Reload runtime so background script picks up changes
|
||||||
|
chrome.runtime.reload();
|
||||||
|
|
||||||
window.close();
|
window.close();
|
||||||
}, 800);
|
}, 800);
|
||||||
});
|
});
|
||||||
@ -26,10 +57,11 @@ function saveOptions () {
|
|||||||
// stored in extensionApi.storage.
|
// stored in extensionApi.storage.
|
||||||
function renderOptions () {
|
function renderOptions () {
|
||||||
extensionApi.storage.sync.get({
|
extensionApi.storage.sync.get({
|
||||||
sites: {}
|
sites: {},
|
||||||
|
customSites: [],
|
||||||
}, function (items) {
|
}, function (items) {
|
||||||
|
// Render supported sites
|
||||||
const sites = items.sites;
|
const sites = items.sites;
|
||||||
const sitesEl = document.getElementById('bypass_sites');
|
|
||||||
for (const key in defaultSites) {
|
for (const key in defaultSites) {
|
||||||
if (!Object.prototype.hasOwnProperty.call(defaultSites, key)) {
|
if (!Object.prototype.hasOwnProperty.call(defaultSites, key)) {
|
||||||
continue;
|
continue;
|
||||||
@ -44,27 +76,47 @@ function renderOptions () {
|
|||||||
inputEl.checked = (key in sites) || (key.replace(/\s\(.*\)/, '') in sites);
|
inputEl.checked = (key in sites) || (key.replace(/\s\(.*\)/, '') in sites);
|
||||||
|
|
||||||
labelEl.appendChild(inputEl);
|
labelEl.appendChild(inputEl);
|
||||||
labelEl.appendChild(document.createTextNode(' ' + key));
|
labelEl.appendChild(document.createTextNode(key));
|
||||||
sitesEl.appendChild(labelEl);
|
$('#bypass_sites').appendChild(labelEl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Render custom sites
|
||||||
|
const customSites = items.customSites;
|
||||||
|
$('#custom_sites').value = customSites.join('\n');
|
||||||
|
|
||||||
|
// Set select all/none checkbox state. Note: "indeterminate" checkboxes
|
||||||
|
// require `chrome_style: false` be set in manifest.json. See
|
||||||
|
// https://bugs.chromium.org/p/chromium/issues/detail?id=1097489
|
||||||
|
const nItems = $$('input[data-key]').length;
|
||||||
|
const nChecked = $$('input[data-key]').filter(el => el.checked).length;
|
||||||
|
$('#select-all input').checked = nChecked / nItems > 0.5;
|
||||||
|
$('#select-all input').indeterminate = nChecked && nChecked != nItems;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Select/deselect all supported sites
|
||||||
function selectAll () {
|
function selectAll () {
|
||||||
const inputEls = Array.from(document.querySelectorAll('input'));
|
for (const el of $$('input[data-key]')) {
|
||||||
inputEls.forEach(function (inputEl) {
|
el.checked = this.checked;
|
||||||
inputEl.checked = true;
|
};
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function selectNone () {
|
// Initialize UI
|
||||||
const inputEls = Array.from(document.querySelectorAll('input'));
|
function init() {
|
||||||
inputEls.forEach(function (inputEl) {
|
renderOptions();
|
||||||
inputEl.checked = false;
|
|
||||||
});
|
$('#save').addEventListener('click', saveOptions);
|
||||||
|
$('#select-all input').addEventListener('click', selectAll);
|
||||||
|
|
||||||
|
for (const el of $$('#tabs button')) {
|
||||||
|
el.addEventListener('click', selectPane);
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', renderOptions);
|
selectPane({target: $('#tabs button:first-child')});
|
||||||
document.getElementById('save').addEventListener('click', saveOptions);
|
|
||||||
document.getElementById('select-all').addEventListener('click', selectAll);
|
if (extensionApi === chrome) {
|
||||||
document.getElementById('select-none').addEventListener('click', selectNone);
|
document.body.classList.add('customSitesEnabled');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', init);
|
||||||
|
57
src/js/sites.js
Normal file → Executable file
@ -1,16 +1,18 @@
|
|||||||
// Cookies from this list are blocked by default
|
// Cookies from this list are blocked by default
|
||||||
const defaultSites = {
|
const defaultSites = {
|
||||||
'Adweek': 'adweek.com',
|
'Adweek': 'adweek.com',
|
||||||
'Algemeen Dagblad': 'ad.nl',
|
'\u00C1mbito': 'ambito.com',
|
||||||
'American Banker': 'americanbanker.com',
|
'American Banker': 'americanbanker.com',
|
||||||
'Baltimore Sun': 'baltimoresun.com',
|
'Baltimore Sun': 'baltimoresun.com',
|
||||||
'Barron\'s': 'barrons.com',
|
'Barron\'s': 'barrons.com',
|
||||||
'Bloomberg': 'bloomberg.com',
|
'Bloomberg': 'bloomberg.com',
|
||||||
'Bloomberg Quint': 'bloombergquint.com',
|
'Bloomberg Quint (free articles only)': 'bloombergquint.com',
|
||||||
|
'Boston Globe': 'bostonglobe.com',
|
||||||
|
'Brisbane Times': 'brisbanetimes.com.au',
|
||||||
'Business Insider': 'businessinsider.com',
|
'Business Insider': 'businessinsider.com',
|
||||||
'Caixin': 'caixinglobal.com',
|
'Caixin': 'caixinglobal.com',
|
||||||
'Central Western Daily': 'centralwesterndaily.com.au', // articles blanked
|
'Central Western Daily': 'centralwesterndaily.com.au',
|
||||||
'Chemical & Engineering News': 'cen.acs.org', // '2/3 free articles' banner, keeps asking about cookies
|
'Chemical & Engineering News': 'cen.acs.org',
|
||||||
'Chicago Tribune': 'chicagotribune.com',
|
'Chicago Tribune': 'chicagotribune.com',
|
||||||
'Corriere Della Sera': 'corriere.it',
|
'Corriere Della Sera': 'corriere.it',
|
||||||
'Crain\'s Chicago Business': 'chicagobusiness.com',
|
'Crain\'s Chicago Business': 'chicagobusiness.com',
|
||||||
@ -18,35 +20,51 @@ const defaultSites = {
|
|||||||
'De Groene Amsterdammer': 'groene.nl',
|
'De Groene Amsterdammer': 'groene.nl',
|
||||||
'DeMorgen': 'demorgen.be',
|
'DeMorgen': 'demorgen.be',
|
||||||
'Denver Post': 'denverpost.com',
|
'Denver Post': 'denverpost.com',
|
||||||
|
'De Speld': 'speld.nl',
|
||||||
'De Tijd': 'tijd.be',
|
'De Tijd': 'tijd.be',
|
||||||
'de Volkskrant': 'volkskrant.nl',
|
'de Volkskrant': 'volkskrant.nl',
|
||||||
|
'Diario Financiero': 'df.cl',
|
||||||
|
'Domani': 'editorialedomani.it',
|
||||||
'Dynamed Plus': 'dynamed.com',
|
'Dynamed Plus': 'dynamed.com',
|
||||||
'Eindhovens Dagblad': 'ed.nl',
|
'El Mercurio': 'elmercurio.com',
|
||||||
|
'El Mundo': 'elmundo.es',
|
||||||
'El Pais': 'elpais.com',
|
'El Pais': 'elpais.com',
|
||||||
|
'El Periodico': 'elperiodico.com',
|
||||||
|
'Elu24': 'elu24.ee',
|
||||||
'Encyclopedia Britannica': 'britannica.com',
|
'Encyclopedia Britannica': 'britannica.com',
|
||||||
|
'Estadão': 'estadao.com.br',
|
||||||
'Examiner': 'examiner.com.au',
|
'Examiner': 'examiner.com.au',
|
||||||
|
'Expansión': 'expansion.com',
|
||||||
'Financial News': 'fnlondon.com',
|
'Financial News': 'fnlondon.com',
|
||||||
|
'Financial Post':'financialpost.com',
|
||||||
'Financial Times': 'ft.com',
|
'Financial Times': 'ft.com',
|
||||||
'First Things': 'firstthings.com',
|
'First Things': 'firstthings.com',
|
||||||
'Foreign Policy': 'foreignpolicy.com',
|
'Foreign Policy': 'foreignpolicy.com',
|
||||||
'Fortune': 'fortune.com',
|
'Fortune': 'fortune.com',
|
||||||
'Genomeweb': 'genomeweb.com',
|
'Genomeweb': 'genomeweb.com',
|
||||||
'Glassdoor': 'glassdoor.com',
|
'Glassdoor': 'glassdoor.com',
|
||||||
|
'Globes': 'globes.co.il',
|
||||||
|
'Grubstreet' : 'grubstreet.com',
|
||||||
'Haaretz English': 'haaretz.com',
|
'Haaretz English': 'haaretz.com',
|
||||||
'Haaretz': 'haaretz.co.il',
|
'Haaretz': 'haaretz.co.il',
|
||||||
'Handelsblatt': 'handelsblatt.com',
|
|
||||||
'Harper\'s Magazine': 'harpers.org',
|
'Harper\'s Magazine': 'harpers.org',
|
||||||
'Hartford Courant': 'courant.com',
|
'Hartford Courant': 'courant.com',
|
||||||
'Harvard Business Review': 'hbr.org',
|
'Harvard Business Review': 'hbr.org',
|
||||||
|
'Harvard Business Review China': 'hbrchina.org',
|
||||||
'Herald Sun': 'heraldsun.com.au',
|
'Herald Sun': 'heraldsun.com.au',
|
||||||
'Het Financieele Dagblad': 'fd.nl',
|
'Het Financieele Dagblad': 'fd.nl',
|
||||||
|
'History Extra': 'historyextra.com',
|
||||||
|
'Humo': 'humo.be',
|
||||||
'Il Manifesto': 'ilmanifesto.it',
|
'Il Manifesto': 'ilmanifesto.it',
|
||||||
|
'Il Messaggero': 'ilmessaggero.it',
|
||||||
'Inc.com': 'inc.com',
|
'Inc.com': 'inc.com',
|
||||||
|
'Interest NZ': 'interest.co.nz',
|
||||||
'Investors Chronicle': 'investorschronicle.co.uk',
|
'Investors Chronicle': 'investorschronicle.co.uk',
|
||||||
'La Nacion': 'lanacion.com.ar',
|
'La Nacion': 'lanacion.com.ar',
|
||||||
'La Repubblica': 'repubblica.it',
|
'La Repubblica': 'repubblica.it',
|
||||||
'La Stampa': 'lastampa.it',
|
'La Stampa': 'lastampa.it',
|
||||||
'La Tercera': 'latercera.com',
|
'La Tercera': 'latercera.com',
|
||||||
|
'La Voix du Nord': 'lavoixdunord.fr',
|
||||||
'L\'Echo': 'lecho.be',
|
'L\'Echo': 'lecho.be',
|
||||||
'Le Devoir': 'ledevoir.com',
|
'Le Devoir': 'ledevoir.com',
|
||||||
'Le Parisien': 'leparisien.fr',
|
'Le Parisien': 'leparisien.fr',
|
||||||
@ -56,39 +74,51 @@ const defaultSites = {
|
|||||||
'Los Angeles Business Journal': 'labusinessjournal.com',
|
'Los Angeles Business Journal': 'labusinessjournal.com',
|
||||||
'Los Angeles Times': 'latimes.com',
|
'Los Angeles Times': 'latimes.com',
|
||||||
'Medium': 'medium.com',
|
'Medium': 'medium.com',
|
||||||
|
'Medscape': 'medscape.com',
|
||||||
'Mexico News Daily': 'mexiconewsdaily.com',
|
'Mexico News Daily': 'mexiconewsdaily.com',
|
||||||
'MIT Sloan Management Review': 'sloanreview.mit.edu',
|
'MIT Sloan Management Review': 'sloanreview.mit.edu',
|
||||||
'MIT Technology Review': 'technologyreview.com',
|
'MIT Technology Review': 'technologyreview.com',
|
||||||
'Mountain View Voice': 'mv-voice.com',
|
'Mountain View Voice': 'mv-voice.com',
|
||||||
|
'National Geographic': 'nationalgeographic.com',
|
||||||
'National Post': 'nationalpost.com',
|
'National Post': 'nationalpost.com',
|
||||||
'Neue Zürcher Zeitung': 'nzz.ch',
|
'Neue Zürcher Zeitung': 'nzz.ch',
|
||||||
'New Statesman': 'newstatesman.com',
|
'New Statesman': 'newstatesman.com',
|
||||||
|
'New York Daily News': 'nydailynews.com',
|
||||||
'New York Magazine': 'nymag.com',
|
'New York Magazine': 'nymag.com',
|
||||||
'New Zealand Herald': 'nzherald.co.nz',
|
'New Zealand Herald': 'nzherald.co.nz',
|
||||||
'Nikkei Asian Review': 'asia.nikkei.com',
|
|
||||||
'NRC': 'nrc.nl',
|
'NRC': 'nrc.nl',
|
||||||
'NT News': 'ntnews.com.au',
|
'NT News': 'ntnews.com.au',
|
||||||
'Orange County Register': 'ocregister.com',
|
'Orange County Register': 'ocregister.com',
|
||||||
'Orlando Sentinel': 'orlandosentinel.com',
|
'Orlando Sentinel': 'orlandosentinel.com',
|
||||||
'Palo Alto Online': 'paloaltoonline.com',
|
'Palo Alto Online': 'paloaltoonline.com',
|
||||||
'Parool': 'parool.nl',
|
'Parool': 'parool.nl',
|
||||||
'Quartz': 'qz.com',
|
'Postimees': 'postimees.ee',
|
||||||
|
'Quartz (free articles only)': 'qz.com',
|
||||||
'Quora': 'quora.com',
|
'Quora': 'quora.com',
|
||||||
|
'Quotidiani Gelocal': 'gelocal.it',
|
||||||
|
'Republic.ru': 'republic.ru',
|
||||||
|
'Reuters': 'reuters.com',
|
||||||
'San Diego Union Tribune': 'sandiegouniontribune.com',
|
'San Diego Union Tribune': 'sandiegouniontribune.com',
|
||||||
'San Francisco Chronicle': 'sfchronicle.com',
|
'San Francisco Chronicle': 'sfchronicle.com',
|
||||||
'Scientific American': 'scientificamerican.com',
|
'Scientific American': 'scientificamerican.com',
|
||||||
'Seeking Alpha': 'seekingalpha.com',
|
'Seeking Alpha': 'seekingalpha.com',
|
||||||
|
'Slate': 'slate.com',
|
||||||
'SOFREP': 'sofrep.com',
|
'SOFREP': 'sofrep.com',
|
||||||
|
'Star Tribune': 'startribune.com',
|
||||||
'Statista': 'statista.com',
|
'Statista': 'statista.com',
|
||||||
|
'Stuff': 'stuff.co.nz',
|
||||||
|
"Süddeutsche Zeitung": "sueddeutsche.de",
|
||||||
|
"South China Morning Post": "scmp.com",
|
||||||
'SunSentinel': 'sun-sentinel.com',
|
'SunSentinel': 'sun-sentinel.com',
|
||||||
'Tech in Asia': 'techinasia.com',
|
'Tech in Asia': 'techinasia.com',
|
||||||
'Telegraaf': 'telegraaf.nl',
|
'Telegraaf': 'telegraaf.nl',
|
||||||
|
'Time': 'time.com',
|
||||||
'The Advertiser': 'adelaidenow.com.au',
|
'The Advertiser': 'adelaidenow.com.au',
|
||||||
'The Advocate': 'theadvocate.com.au',
|
'The Advocate': 'theadvocate.com.au',
|
||||||
'The Age': 'theage.com.au',
|
'The Age': 'theage.com.au',
|
||||||
'The American Interest': 'the-american-interest.com',
|
'The American Interest': 'the-american-interest.com',
|
||||||
'The Athletic': 'theathletic.com',
|
'The Athletic': 'theathletic.com',
|
||||||
'The Athletic UK': 'theathletic.co.uk',
|
'The Athletic (UK)': 'theathletic.co.uk',
|
||||||
'The Atlantic': 'theatlantic.com',
|
'The Atlantic': 'theatlantic.com',
|
||||||
'The Australian Financial Review': 'afr.com',
|
'The Australian Financial Review': 'afr.com',
|
||||||
'The Australian': 'theaustralian.com.au',
|
'The Australian': 'theaustralian.com.au',
|
||||||
@ -96,6 +126,7 @@ const defaultSites = {
|
|||||||
'The Canberra Times': 'canberratimes.com.au',
|
'The Canberra Times': 'canberratimes.com.au',
|
||||||
'The Courier': 'thecourier.com.au',
|
'The Courier': 'thecourier.com.au',
|
||||||
'The Courier Mail': 'couriermail.com.au',
|
'The Courier Mail': 'couriermail.com.au',
|
||||||
|
'The Cut': 'thecut.com',
|
||||||
'The Daily Telegraph': 'dailytelegraph.com.au',
|
'The Daily Telegraph': 'dailytelegraph.com.au',
|
||||||
'The Diplomat': 'thediplomat.com',
|
'The Diplomat': 'thediplomat.com',
|
||||||
'The Economist': 'economist.com',
|
'The Economist': 'economist.com',
|
||||||
@ -110,17 +141,19 @@ const defaultSites = {
|
|||||||
'The Mercury Tasmania': 'themercury.com.au',
|
'The Mercury Tasmania': 'themercury.com.au',
|
||||||
'The Morning Call': 'mcall.com',
|
'The Morning Call': 'mcall.com',
|
||||||
'The Nation': 'thenation.com',
|
'The Nation': 'thenation.com',
|
||||||
|
'The National': 'thenational.scot',
|
||||||
'The News-Gazette': 'news-gazette.com',
|
'The News-Gazette': 'news-gazette.com',
|
||||||
'The New Yorker': 'newyorker.com',
|
'The New Yorker': 'newyorker.com',
|
||||||
'The New York Times': 'nytimes.com',
|
'The New York Times': 'nytimes.com',
|
||||||
|
'The Olive Press': 'theolivepress.es',
|
||||||
'The Philadelphia Inquirer': 'inquirer.com',
|
'The Philadelphia Inquirer': 'inquirer.com',
|
||||||
'The Saturday Paper': 'thesaturdaypaper.com.au',
|
'The Saturday Paper': 'thesaturdaypaper.com.au',
|
||||||
'The Seattle Times': 'seattletimes.com',
|
'The Seattle Times': 'seattletimes.com',
|
||||||
'The Spectator Australia': 'spectator.com.au',
|
'The Spectator Australia': 'spectator.com.au',
|
||||||
'The Spectator': 'spectator.co.uk',
|
'The Spectator (U.K.)': 'spectator.co.uk',
|
||||||
|
'The Spectator (U.S.)': 'spectator.us',
|
||||||
'The Sydney Morning Herald': 'smh.com.au',
|
'The Sydney Morning Herald': 'smh.com.au',
|
||||||
'The Telegraph': 'telegraph.co.uk',
|
'The Telegraph': 'telegraph.co.uk',
|
||||||
'The Times': 'thetimes.co.uk',
|
|
||||||
'The Toronto Star': 'thestar.com',
|
'The Toronto Star': 'thestar.com',
|
||||||
'The Wall Street Journal': 'wsj.com',
|
'The Wall Street Journal': 'wsj.com',
|
||||||
'The Washington Post': 'washingtonpost.com',
|
'The Washington Post': 'washingtonpost.com',
|
||||||
@ -130,7 +163,9 @@ const defaultSites = {
|
|||||||
'Trouw': 'trouw.nl',
|
'Trouw': 'trouw.nl',
|
||||||
'Vanity Fair': 'vanityfair.com',
|
'Vanity Fair': 'vanityfair.com',
|
||||||
'Vrij Nederland': 'vn.nl',
|
'Vrij Nederland': 'vn.nl',
|
||||||
|
'Vulture': 'vulture.com',
|
||||||
'Winston-Salem Journal': 'journalnow.com',
|
'Winston-Salem Journal': 'journalnow.com',
|
||||||
'Wired': 'wired.com',
|
'Wired': 'wired.com',
|
||||||
|
'Zeit Online': 'zeit.de',
|
||||||
'*General Paywall Bypass*': 'generalpaywallbypass'
|
'*General Paywall Bypass*': 'generalpaywallbypass'
|
||||||
};
|
};
|
||||||
|
@ -1,52 +1,9 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
"addons": {
|
"addons": {
|
||||||
"bypasspaywalls@bypasspaywalls.weebly.com": {
|
"bypasspaywalls@bypasspaywalls": {
|
||||||
"updates": [
|
"updates": [
|
||||||
{ "version": "1.4.5",
|
{ "version": "1.7.9",
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.4.5/bypass_paywalls-1.4.5-an+fx.xpi" },
|
"update_link": "https://github.com/iamadamdev/bypass-paywalls-chrome/releases/download/v1.7.9/bypass-paywalls-firefox.xpi" }
|
||||||
{ "version": "1.4.6",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.4.6/bypass_paywalls-1.4.6-an+fx.xpi" },
|
|
||||||
{ "version": "1.4.7",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.4.7/bypass_paywalls-1.4.7-an+fx.xpi" },
|
|
||||||
{ "version": "1.4.8",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.4.8/bypass_paywalls-1.4.8-an+fx.xpi" },
|
|
||||||
{ "version": "1.4.9",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.4.9/bypass_paywalls-1.4.9-an+fx.xpi" },
|
|
||||||
{ "version": "1.5.0",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.5.0/bypass_paywalls-1.5.0-an+fx.xpi" },
|
|
||||||
{ "version": "1.5.1",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.5.1/bypass_paywalls-1.5.1-an+fx.xpi" },
|
|
||||||
{ "version": "1.5.2",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.5.2/bypass_paywalls-1.5.2-an+fx.xpi" },
|
|
||||||
{ "version": "1.5.3",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.5.3/bypass_paywalls-1.5.3-an+fx.xpi" },
|
|
||||||
{ "version": "1.5.5",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.5.5/bypass_paywalls-1.5.5-an+fx.xpi" },
|
|
||||||
{ "version": "1.5.6",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.5.6/bypass_paywalls-1.5.6-an+fx.xpi" },
|
|
||||||
{ "version": "1.5.7",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.5.7/bypass_paywalls-1.5.7-an+fx.xpi" },
|
|
||||||
{ "version": "1.5.8",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.5.8/bypass_paywalls-1.5.8-an+fx.xpi" },
|
|
||||||
{ "version": "1.5.9",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.5.9/bypass_paywalls-1.5.9-an+fx.xpi" },
|
|
||||||
{ "version": "1.6.0",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.6.0/bypass_paywalls-1.6.0-an+fx.xpi" },
|
|
||||||
{ "version": "1.6.2",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.6.2/bypass_paywalls-1.6.2-an+fx.xpi" },
|
|
||||||
{ "version": "1.6.3",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.6.3/bypass_paywalls-1.6.3-an+fx.xpi" },
|
|
||||||
{ "version": "1.6.4",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.6.4/bypass_paywalls-1.6.4-an+fx.xpi" },
|
|
||||||
{ "version": "1.6.5",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.6.5/bypass_paywalls-1.6.5-an+fx.xpi" },
|
|
||||||
{ "version": "1.6.6",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.6.6/bypass_paywalls-1.6.6-an+fx.xpi" },
|
|
||||||
{ "version": "1.6.9",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.6.9/bypass_paywalls-1.6.9-an+fx.xpi" },
|
|
||||||
{ "version": "1.7.2",
|
|
||||||
"update_link": "https://github.com/iamadamdev/bypass-paywalls-chrome/releases/download/v1.7.2/bypass-paywalls-firefox.xpi" }
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version='1.0' encoding='UTF-8'?>
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
|
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
|
||||||
<app appid='dcpihecpambacapedldabdbpakmachpb'>
|
<app appid='dcpihecpambacapedldabdbpakmachpb'>
|
||||||
<updatecheck codebase='https://github.com/iamadamdev/bypass-paywalls-chrome/releases/download/v1.7.2/bypass-paywalls-chrome.crx' version='1.7.2' />
|
<updatecheck codebase='https://github.com/iamadamdev/bypass-paywalls-chrome/releases/download/v1.7.9/bypass-paywalls-chrome.crx' version='1.7.9' />
|
||||||
</app>
|
</app>
|
||||||
</gupdate>
|
</gupdate>
|
||||||
|