📝 Installed bypass-paywalls

This commit is contained in:
z3rOR0ne 2022-12-05 18:24:12 -08:00
parent 9fa7af7382
commit f663b6b141
24 changed files with 2551 additions and 0 deletions

View file

@ -0,0 +1,20 @@
---
name: New site request
about: New site request
title: 'New site request: [site here]'
labels: new site request
assignees: ''
---
### New site requests - Before submitting an issue please read the following:
Only large or major sites will be considered. 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.
2. Check if using Cookie Remover can bypass the paywall. If not, continue to the next step.
3. First search 'Issues' to see if the site has been requested already.
4. Visit an article on the site you want to bypass the paywall for and copy the article title.
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. 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.

View file

@ -0,0 +1,17 @@
---
name: Other
about: Other issues (site not working, bugs, etc)
title: ''
labels: ''
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.
###

View 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

View file

@ -0,0 +1,246 @@
<p align="center">
<img src="https://github.com/iamadamdev/bypass-paywalls-chrome/blob/master/src/icons/bypass.png" width="75" height="75"/>
</p>
<h1 align="center">Bypass Paywalls</h1>
*Bypass Paywalls is a web browser extension to help bypass paywalls for selected sites.*
### Installation Instructions
**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. Unzip the file and you should have a folder named `bypass-paywalls-chrome-master`.
1. In Chrome/Edge go to the extensions page (`chrome://extensions` or `edge://extensions`).
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).
**Mozilla Firefox** (Custom sites not supported)
* [Download and install the latest version](https://github.com/iamadamdev/bypass-paywalls-chrome/releases/latest/download/bypass-paywalls-firefox.xpi)
**Notes**
* Every time you open Chrome it may warn you about running extensions in developer mode, just click &#10005; to keep the extension enabled.
* You will be logged out for any site you have checked.
* This extension works best alongside the adblocker uBlock Origin.
* The Firefox version supports automatic updates.
### Bypass the following sites' paywalls with this extension:
[Adweek](https://www.adweek.com)\
[Algemeen Dagblad](https://www.ad.nl)\
[American Banker](https://www.americanbanker.com)\
[Ámbito](https://www.ambito.com)\
[Baltimore Sun](https://www.baltimoresun.com)\
[Barron's](https://www.barrons.com)\
[Bloomberg Quint](https://www.bloombergquint.com)\
[Bloomberg](https://www.bloomberg.com)\
[BN De Stem](https://www.bndestem.nl)\
[Boston Globe](https://www.bostonglobe.com)\
[Brabants Dagblad](https://www.bd.nl)\
[Brisbane Times](https://www.brisbanetimes.com.au)\
[Business Insider](https://www.businessinsider.com)\
[Caixin](https://www.caixinglobal.com)\
[Central Western Daily](https://www.centralwesterndaily.com.au)\
[Chemical & Engineering News](https://cen.acs.org)\
[Chicago Tribune](https://www.chicagotribune.com)\
[Corriere Della Sera](https://www.corriere.it)\
[Crain's Chicago Business](https://www.chicagobusiness.com)\
[Daily Press](https://www.dailypress.com)\
[De Gelderlander](https://www.gelderlander.nl)\
[De Groene Amsterdammer](https://www.groene.nl)\
[De Stentor](https://www.destentor.nl)\
[De Speld](https://speld.nl)\
[De Tijd](https://www.tijd.be)\
[De Volkskrant](https://www.volkskrant.nl)\
[DeMorgen](https://www.demorgen.be)\
[Denver Post](https://www.denverpost.com)\
[Diario Financiero](https://www.df.cl)\
[Domani](https://www.editorialedomani.it)\
[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 Periodico](https://www.elperiodico.com)\
[Elu24](https://www.elu24.ee)\
[Encyclopedia Britannica](https://www.britannica.com)\
[Estadão](https://www.estadao.com.br)\
[Examiner](https://www.examiner.com.au)\
[Expansión](https://www.expansion.com)\
[Financial News](https://www.fnlondon.com)\
[Financial Post](https://www.financialpost.com)\
[Financial Times](https://www.ft.com)\
[First Things](https://www.firstthings.com)\
[Foreign Policy](https://www.foreignpolicy.com)\
[Fortune](https://www.fortune.com)\
[Genomeweb](https://www.genomeweb.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.com](https://www.haaretz.com)\
[Harper's Magazine](https://harpers.org)\
[Hartford Courant](https://www.courant.com)\
[Harvard Business Review](https://www.hbr.org)\
[Harvard Business Review China](https://www.hbrchina.org)\
[Herald Sun](https://www.heraldsun.com.au)\
[Het Financieel Dagblad](https://fd.nl)\
[History Extra](https://www.historyextra.com)\
[Humo](https://www.humo.be)\
[Il Manifesto](https://www.ilmanifesto.it)\
[Il Messaggero](https://www.ilmessaggero.it)\
[Inc.com](https://www.inc.com)\
[Interest.co.nz](https://www.interest.co.nz)\
[Investors Chronicle](https://www.investorschronicle.co.uk)
[L'Écho](https://www.lecho.be)\
[L.A. Business Journal](https://labusinessjournal.com)\
[La Nación](https://www.lanacion.com.ar)\
[La Repubblica](https://www.repubblica.it)\
[La Stampa](https://www.lastampa.it)\
[La Tercera](https://www.latercera.com)\
[La Voix du Nord](https://www.lavoixdunord.fr)\
[Le Devoir](https://www.ledevoir.com)\
[Le Parisien](https://www.leparisien.fr)\
[Les Échos](https://www.lesechos.fr)\
[Loeb Classical Library](https://www.loebclassics.com)\
[London Review of Books](https://www.lrb.co.uk)\
[Los Angeles Times](https://www.latimes.com)\
[MIT Sloan Management Review](https://sloanreview.mit.edu)\
[MIT Technology Review](https://www.technologyreview.com)\
[Medium](https://www.medium.com)\
[Medscape](https://www.medscape.com)\
[Mexicon News Daily](https://mexiconewsdaily.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)\
[NT News](https://www.ntnews.com.au)\
[National Post](https://www.nationalpost.com)\
[Neue Zürcher Zeitung](https://www.nzz.ch)\
[New York Magazine](https://www.nymag.com)\
[New Zealand Herald](https://www.nzherald.co.nz)\
[Orange County Register](https://www.ocregister.com)\
[Orlando Sentinel](https://www.orlandosentinel.com)\
[PZC](https://www.pzc.nl)\
[Palo Alto Online](https://www.paloaltoonline.com)\
[Parool](https://www.parool.nl)\
[Postimees](https://www.postimees.ee)\
[Quartz](https://qz.com)\
[Quora](https://www.quora.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 Francisco Chronicle](https://www.sfchronicle.com)\
[Scientific American](https://www.scientificamerican.com)\
[Seeking Alpha](https://seekingalpha.com)\
[Slate](https://slate.com)\
[SOFREP](https://sofrep.com)\
[Statista](https://www.statista.com)\
[Star Tribune](https://www.startribune.com)\
[Stuff](https://www.stuff.co.nz)\
[SunSentinel](https://www.sun-sentinel.com)\
[Tech in Asia](https://www.techinasia.com)\
[Telegraaf](https://www.telegraaf.nl)\
[The Advertiser](https://www.adelaidenow.com.au)\
[The Advocate](https://www.theadvocate.com.au)\
[The Age](https://www.theage.com.au)\
[The American Interest](https://www.the-american-interest.com)\
[The Athletic](https://www.theathletic.com)\
[The Athletic (UK)](https://www.theathletic.co.uk)\
[The Atlantic](https://www.theatlantic.com)\
[The Australian Financial Review](https://www.afr.com)\
[The Australian](https://www.theaustralian.com.au)\
[The Business Journals](https://www.bizjournals.com)\
[The Canberra Times](https://www.canberratimes.com.au)\
[The Courier](https://www.thecourier.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 Diplomat](https://www.thediplomat.com)\
[The Economist](https://www.economist.com)\
[The Globe and Mail](https://www.theglobeandmail.com)\
[The Herald](https://www.theherald.com.au)\
[The Hindu](https://www.thehindu.com)\
[The Irish Times](https://www.irishtimes.com)\
[The Japan Times](https://www.japantimes.co.jp)\
[The Kansas City Star](https://www.kansascity.com)\
[The Mercury News](https://www.mercurynews.com)\
[The Mercury Tasmania](https://www.themercury.com.au)\
[The Morning Call](https://www.mcall.com)\
[The Nation](https://www.thenation.com)\
[The National](https://www.thenational.scot)\
[The New Statesman](https://www.newstatesman.com)\
[The New York Times](https://www.nytimes.com)\
[The New Yorker](https://www.newyorker.com)\
[The News-Gazette](https://www.news-gazette.com)\
[The Olive Press](https://www.theolivepress.es)\
[The Philadelphia Inquirer](https://www.inquirer.com)\
[The Saturday Paper](https://www.thesaturdaypaper.com.au)\
[The Seattle Times](https://www.seattletimes.com)\
[The Spectator Australia](https://www.spectator.com.au)\
[The Spectator](https://www.spectator.co.uk)\
[The Sydney Morning Herald](https://www.smh.com.au)\
[The Telegraph](https://www.telegraph.co.uk)\
[The Toronto Star](https://www.thestar.com)\
[The Wall Street Journal](https://www.wsj.com)\
[The Washington Post](https://www.washingtonpost.com)\
[The Wrap](https://www.thewrap.com)\
[TheMarker](https://www.themarker.com)\
[Times Literary Supplement](https://www.the-tls.co.uk)\
[Towards Data Science](https://www.towardsdatascience.com)\
[Trouw](https://www.trouw.nl)\
[Tubantia](https://www.tubantia.nl)\
[Vanity Fair](https://www.vanityfair.com)\
[Vrij Nederland](https://www.vn.nl)\
[Vulture](https://www.vulture.com)\
[Winston-Salem Journal](https://journalnow.com)\
[Wired](https://www.wired.com)\
[Zeit Online](https://www.zeit.de)
### Sites with limited number of free articles
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.
When coming across a paywall click the cookie icon to remove the cookies then refresh the page.
_*May not always succeed_
### New site requests
Only large or major sites will be considered. 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.
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. First search [Issues](https://github.com/iamadamdev/bypass-paywalls-chrome/issues) to see if the site has been requested already.
4. Visit an article on the site you want to bypass the paywall for and copy the article title.
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. 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
* 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.
* Try clearing [cookies](https://chrome.google.com/webstore/detail/cookie-remover/kcgpggonjhmeaejebeoeomdlohicfhce).
* 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 none of these work, you can submit an issue [here](https://github.com/iamadamdev/bypass-paywalls-chrome/issues/new/choose).
### Contributing - Pull Requests
PRs are welcome.
1. If making a PR to add a new site, confirm your changes actually bypass the paywall.
2. At a minimum these files need to be updated: `README.md`, `manifest-ff.json`, `src/js/sites.js`, and possibly `src/js/background.js`, and/or `src/js/contentScript.js`.
3. Follow existing code-style and use camelCase.
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
* 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.

View file

@ -0,0 +1,48 @@
#!/bin/sh
DOC_FILES="../README.md"
IMG_FILES="../src/icons/bypass.png"
# Strip subdirectories for Chrome manifest
sed 's/src\/.*\///g' ../manifest.json > temp-chrome-manifest.json
# Strip subdirectories for Firefox manifest
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
sed 's/src\/.*\///g' ../src/js/background.js > temp-background.js
# Strip subdirectories for options html file
sed 's/\.\.\/js\///g' ../src/html/options.html > temp-options.html
# Strip subdirectories for popup html file
sed 's/\.\.\/js\///g' ../src/html/popup.html > temp-popup.html
HTML_FILES="temp-options.html temp-popup.html"
JS_FILES="../src/js/common.js ../src/js/sites.js ../src/js/contentScript.js ../src/js/options.js ../src/js/version.js temp-background.js"
GEN_FILES="$JS_FILES $HTML_FILES $DOC_FILES $IMG_FILES"
CH_FILES="$GEN_FILES temp-chrome-manifest.json ../src/updates/updates.xml"
FF_FILES="$GEN_FILES temp-ff-manifest.json ../src/updates/updates.json ../src/icons/bypass-dark.png"
NAME="output/bypass-paywalls"
# Remove existing files
rm -f $NAME.crx $NAME.xpi
# Generate Chrome .crx extension package
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
# Generate Firefox .xpi extension package (firefox manifest)
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
# Remove temp files
echo "\nDeleting temp files..."
rm -v temp-chrome-manifest.json temp-ff-manifest.json temp-background.js temp-options.html temp-popup.html

View file

@ -0,0 +1 @@
<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>

After

Width:  |  Height:  |  Size: 967 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

View file

@ -0,0 +1,28 @@
Updates--
2018-11-11 v1.3.5: No longer updating changelog in favor of git log
2018-10-07 v1.3.4: Fixed hbr.org, fixed medium.com, removed medscape.com
2018-10-07 v1.3.3: Fixed haaretz.co.il
2018-10-02 v1.3.2: Added The Advocate(theadvocate.com.au), added Examiner (examiner.com.au)
2018-09-16 v1.3.1: Removed Het Financieele Dagblad (fd.nl)
2018-09-09 v1.3.0: Fixed chicagobusiness.com
2018-09-06 v1.2.11: Add Dynamed Plus
2018-08-26 v1.2.10: Fixed alphabeticised lists, Added The New Statesman and The Spectator
2018-07-04 v1.2.9: Added The Denver Post (denverpost.com, note: need to turn off uBlock for this site)
2018-06-26 v1.2.8: Bug fixes (washingtonpost.com)
2018-06-08 v1.2.7: Added Wired (wired.com)
2018-05-20 v1.2.6: Added TheMarker (themarker.com)
2018-05-12 v1.2.5: Fixed Boston Globe (bostonglobe.com)
2018-05-10 v1.2.4: Fixed redirect issue
2018-05-05 v1.2.3: Added Bloomberg (bloomberg.com)
2018-04-23 v1.2.2: Added the English Version of Haaretz website (haaretz.com)
2018-04-07 v1.2.1: Open Source'd Bypass Paywalls! Fixed The Economist (economist.com)
2018-04-05 v1.2.0: added Corriere Della Sera (corriere.it), added Dagens Nyheter (dn.se), fixed The Age (theage.com.au)
2018-01-30 v1.0.7: Added Medium (medium.com), added The Boston Globe (bostonglobe.com), added The Mercury News (mercurynews.com), removed The Australian (theaustralian.com.au), removed The Courier Mail (couriermail.com.au), removed The Telegraph (telegraph.co.uk)
2017-09-14 v1.06: Added back Barron's, added Het Financieele Dagblad (fd.nl), added Le Temps (letemps.ch), added Haaretz (haaretz.co.il)
2017-07-15 v1.05: removed Barron's as the google redirect no longer works
2017-04-16: Added MIT Technology Review (technologyreview.com), NRC (nrc.nl), The Courier Mail (couriermail.com.au).
2017-04-05: Added 'Nikkei Asian Review'.
2017-02-25: If you are trying to view NYT articles or tired of the WSJ popup, try installing an adblocker (I recommend 'uBlock Origin').
2017-02-16: Added 'The Australian'.
2017-02-09: WSJ working again (bypass paywall)! Also added glassdoor, nytimes, seattletimes.

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

View file

@ -0,0 +1,291 @@
{
"background": {
"scripts": [
"src/js/common.js",
"src/js/sites.js",
"src/js/background.js"
]
},
"content_scripts": [
{
"matches": [
"*://*.ad.nl/*",
"*://*.afr.com/*",
"*://*.americanbanker.com/*",
"*://*.ambito.com/*",
"*://*.bizjournals.com/*",
"*://*.bloomberg.com/*",
"*://*.bloombergquint.com/*",
"*://*.businessinsider.com/*",
"*://*.caixinglobal.com/*",
"*://*.canberratimes.com.au/*",
"*://*.economist.com/*",
"*://*.ed.nl/*",
"*://*.editorialedomani.it/*",
"*://*.elmercurio.com/*",
"*://*.elpais.com/*",
"*://*.elperiodico.com/*",
"*://*.elu24.ee/*",
"*://*.estadao.com.br/*",
"*://*.examiner.com.au/*",
"*://*.firstthings.com/*",
"*://*.ft.com/*",
"*://*.gelocal.it/*",
"*://*.grubstreet.com/*",
"*://*.haaretz.co.il/*",
"*://*.humo.be/*",
"*://*.ilmessaggero.it/*",
"*://*.interest.co.nz/*",
"*://*.ledevoir.com/*",
"*://*.leparisien.fr/*",
"*://*.lavoixdunord.fr/*",
"*://*.medium.com/*",
"*://*.medscape.com/*",
"*://*.mexiconewsdaily.com/*",
"*://*.nytimes.com/*",
"*://*.nzherald.co.nz/*",
"*://*.parool.nl/*",
"*://*.postimees.ee/*",
"*://*.repubblica.it/*",
"*://*.sfchronicle.com/*",
"*://*.sloanreview.mit.edu/*",
"*://*.stuff.co.nz/*",
"*://*.techinasia.com/*",
"*://*.telegraaf.nl/*",
"*://*.the-american-interest.com/*",
"*://*.the-tls.co.uk/*",
"*://*.theadvocate.com.au/*",
"*://*.thecourier.com.au/*",
"*://*.thecut.com/*",
"*://*.theglobeandmail.com/*",
"*://*.thehindu.com/*",
"*://*.thenational.scot/*",
"*://*.theolivepress.es/*",
"*://*.thestar.com/*",
"*://*.thewrap.com/*",
"*://*.trouw.nl/*",
"*://*.volkskrant.nl/*",
"*://*.vulture.com/*",
"*://*.washingtonpost.com/*",
"*://*.wsj.com/*",
"*://*.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"]
}
],
"applications": {
"gecko": {
"id": "bypasspaywalls@bypasspaywalls",
"update_url": "https://raw.githubusercontent.com/iamadamdev/bypass-paywalls-chrome/master/src/updates/updates.json"
}
},
"browser_action": {
"theme_icons": [
{
"light": "src/icons/bypass-dark.png",
"dark": "src/icons/bypass.png",
"size": 128
}
],
"default_popup": "src/html/popup.html",
"default_icon": {
"128": "src/icons/bypass.png"
}
},
"description": "Bypass News Sites' Paywalls",
"homepage_url": "https://github.com/iamadamdev/bypass-paywalls-chrome/blob/master/README.md",
"icons": {
"128": "src/icon/bypass.png"
},
"manifest_version": 2,
"name": "Bypass Paywalls",
"short_name": "Bypass Paywall",
"options_ui": {
"page": "src/html/options.html"
},
"permissions": [
"cookies",
"storage",
"tabs",
"webRequest",
"webRequestBlocking",
"*://*.outbrain.com/*",
"*://*.piano.io/*",
"*://*.poool.fr/*",
"*://*.qiota.com/*",
"*://*.tinypass.com/*",
"*://*.ad.nl/*",
"*://*.adelaidenow.com.au/*",
"*://*.adweek.com/*",
"*://*.afr.com/*",
"*://*.baltimoresun.com/*",
"*://*.barrons.com/*",
"*://*.bizjournals.com/*",
"*://*.bloomberg.com/*",
"*://*.bloombergquint.com/*",
"*://*.bostonglobe.com/*",
"*://*.brisbanetimes.com.au/*",
"*://*.britannica.com/*",
"*://*.businessinsider.com/*",
"*://*.caixinglobal.com/*",
"*://*.cen.acs.org/*",
"*://*.centralwesterndaily.com.au/*",
"*://*.chicagobusiness.com/*",
"*://*.chicagotribune.com/*",
"*://*.corriere.it/*",
"*://*.courant.com/*",
"*://*.couriermail.com.au/*",
"*://*.dailypress.com/*",
"*://*.dailytelegraph.com.au/*",
"*://*.delfi.ee/*",
"*://*.demorgen.be/*",
"*://*.denverpost.com/*",
"*://*.dynamed.com/*",
"*://*.economist.com/*",
"*://*.ed.nl/*",
"*://*.elmercurio.com/*",
"*://*.elu24.ee/*",
"*://*.examiner.com.au/*",
"*://*.fd.nl/*",
"*://*.fnlondon.com/*",
"*://*.foreignpolicy.com/*",
"*://*.fortune.com/*",
"*://*.ft.com/*",
"*://*.genomeweb.com/*",
"*://*.gelocal.it/*",
"*://*.glassdoor.com/*",
"*://*.globes.co.il/*",
"*://*.groene.nl/*",
"*://*.haaretz.co.il/*",
"*://*.haaretz.com/*",
"*://*.harpers.org/*",
"*://*.hbr.org/*",
"*://*.heraldsun.com.au/*",
"*://*.ilmanifesto.it/*",
"*://*.inc.com/*",
"*://*.inquirer.com/*",
"*://*.interest.co.nz/*",
"*://*.investorschronicle.co.uk/*",
"*://*.irishtimes.com/*",
"*://*.japantimes.co.jp/*",
"*://*.journalnow.com/*",
"*://*.kansascity.com/*",
"*://*.labusinessjournal.com/*",
"*://*.lanacion.com.ar/*",
"*://*.lastampa.it/*",
"*://*.latercera.com/*",
"*://*.latimes.com/*",
"*://*.lavoixdunord.fr/*",
"*://*.lecho.be/*",
"*://*.leparisien.fr/*",
"*://*.lesechos.fr/*",
"*://*.loebclassics.com/*",
"*://*.lrb.co.uk/*",
"*://*.mcall.com/*",
"*://*.medium.com/*",
"*://*.medscape.com/*",
"*://*.mercurynews.com/*",
"*://*.mv-voice.com/*",
"*://*.nationalgeographic.com",
"*://*.nationalpost.com/*",
"*://*.news-gazette.com/*",
"*://*.newstatesman.com/*",
"*://*.newyorker.com/*",
"*://*.nrc.nl/*",
"*://*.ntnews.com.au/*",
"*://*.nydailynews.com/*",
"*://*.nymag.com/*",
"*://*.nytimes.com/*",
"*://*.nzherald.co.nz/*",
"*://*.ocregister.com/*",
"*://*.orlandosentinel.com/*",
"*://*.paloaltoonline.com/*",
"*://*.parool.nl/*",
"*://*.postimees.ee/*",
"*://*.quora.com/*",
"*://*.qz.com/*",
"*://*.repubblica.it/*",
"*://*.sandiegouniontribune.com/*",
"*://*.scientificamerican.com/*",
"*://*.seattletimes.com/*",
"*://*.seekingalpha.com/*",
"*://*.slate.com/*",
"*://*.smh.com.au/*",
"*://*.sofrep.com/*",
"*://*.spectator.co.uk/*",
"*://*.spectator.com.au/*",
"*://*.speld.nl/",
"*://*.statista.com/*",
"*://*.stuff.co.nz/*",
"*://*.sun-sentinel.com/*",
"*://*.techinasia.com/*",
"*://*.technologyreview.com/*",
"*://*.telegraaf.nl/*",
"*://*.telegraph.co.uk/*",
"*://*.the-tls.co.uk/*",
"*://*.theadvocate.com.au/*",
"*://*.theage.com.au/*",
"*://*.theatlantic.com/*",
"*://*.theaustralian.com.au/*",
"*://*.thediplomat.com/*",
"*://*.theglobeandmail.com/*",
"*://*.theherald.com.au/*",
"*://*.thehindu.com/*",
"*://*.themarker.com/*",
"*://*.themercury.com.au/*",
"*://*.thenation.com/*",
"*://*.thenational.scot/*",
"*://*.theolivepress.es/*",
"*://*.thesaturdaypaper.com.au/*",
"*://*.thestar.com/*",
"*://*.thewrap.com/*",
"*://*.tijd.be/*",
"*://*.towardsdatascience.com/*",
"*://*.trouw.nl/*",
"*://*.vanityfair.com/*",
"*://*.vn.nl/*",
"*://*.volkskrant.nl/*",
"*://*.washingtonpost.com/*",
"*://*.wired.com/*",
"*://*.wsj.com/*",
"*://*.nzz.ch/*",
"*://*.republic.ru/*",
"*://*.historyextra.com/*",
"*://*.netdna-ssl.com/*",
"*://*.startribune.com/*",
"*://*.df.cl/*",
"*://*.financialpost.com/*",
"*://*.gelderlander.nl/*",
"*://*.bndestem.nl/*",
"*://*.bd.nl/*",
"*://*.tubantia.nl/*",
"*://*.pzc.nl/*",
"*://*.destentor.nl/*",
"*://*.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.8.1"
}

View file

@ -0,0 +1,38 @@
{
"background": {
"scripts": [
"src/js/common.js",
"src/js/sites.js",
"src/js/background.js"
]
},
"content_security_policy": "script-src 'self' https://www.google-analytics.com; object-src 'self'",
"browser_action": {
"default_popup": "src/html/popup.html",
"default_icon": {
"128": "src/icons/bypass.png"
}
},
"description": "Bypass News Sites' Paywalls",
"homepage_url": "https://github.com/iamadamdev/bypass-paywalls-chrome/blob/master/README.md",
"icons": {
"128": "src/icons/bypass.png"
},
"manifest_version": 2,
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3PRmcRnHFZwHUlCgoTAdBjc9nUjmJo8l8kvkl/OZV6biZFAGUQGdxF1xoGhRccWA7qfQrZdPwcM1VQoVS/1F+87XiutKTe/HNsTAFvOcVS0tjCSH6DOHpewkMUBZujwTIeo7UXUVmCPQ1UbVd6m8KmHYtSHYlaX0uXRcguWhLmO5hASxw4onvAD0uql/t/ntxsIATwn4hVApg0VZhy0QAbMany8/5ByKPa19mCQwsIdRkcpG+PNHTLWPDgeGoDL7S0DxIduraRhTlrDX/zy5ETu6NWq6r+/jRzmXAjx+vSDCU5Ps2YG8QwdCL4Zl+CNVdQrnqz4X1zfPFJ1FFmUSpwIDAQAB",
"name": "Bypass Paywalls",
"update_url": "https://raw.githubusercontent.com/iamadamdev/bypass-paywalls-chrome/master/src/updates/updates.xml",
"short_name": "Bypass Paywall",
"options_ui": {
"chrome_style": false,
"page": "src/html/options.html"
},
"permissions": [
"cookies",
"storage",
"webRequest",
"webRequestBlocking",
"<all_urls>"
],
"version": "1.8.1"
}

View file

@ -0,0 +1,149 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Bypass Paywalls Options</title>
<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 {
display: block;
}
#tabs {
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>
</head>
<body>
<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
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 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.,&#10;campaignlive.co.uk&#10;cincinnati.com&#10;hk.appledaily.com&#10;" /></textarea>
</div>
<div id="controls">
<div id="status"></div>
<button id="save">Save</button>
</div>
<script src="../js/common.js"></script>
<script src="../js/sites.js"></script>
<script src="../js/options.js"></script>
</body>
</html>

View file

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<div style="width:180px;">Bypass Paywalls by Adam
<br><a href="options.html">Options</a> | <a href="https://github.com/iamadamdev/bypass-paywalls-chrome" target="_blank">GitHub</a> | <span id="version"></span></div>
<script src="../js/common.js"></script>
<script src="../js/version.js"></script>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 628 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 B

View file

@ -0,0 +1,569 @@
'use strict';
const restrictions = {
'adweek.com': /^((?!\.adweek\.com\/(.+\/)?(amp|agencyspy|tvnewser|tvspy)\/).)*$/,
'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\//
};
// Don't remove cookies before page load
const allowCookies = [
'ad.nl',
'bd.nl',
'bndestem.nl',
'brisbanetimes.com.au',
'canberratimes.com.au',
'cen.acs.org',
'demorgen.be',
'denverpost.com',
'destentor.nl',
'ed.nl',
'examiner.com.au',
'gelocal.it',
'gelderlander.nl',
'grubstreet.com',
'harpers.org',
'hbr.org',
'humo.be',
'lesechos.fr',
'lrb.co.uk',
'medium.com',
'mercurynews.com',
'newstatesman.com',
'nrc.nl',
'nymag.com',
'ocregister.com',
'parool.nl',
'pzc.nl',
'qz.com',
'scientificamerican.com',
'seattletimes.com',
'seekingalpha.com',
'sofrep.com',
'spectator.co.uk',
'speld.nl',
'tubantia.nl',
'techinasia.com',
'telegraaf.nl',
'the-american-interest.com',
'theadvocate.com.au',
'theage.com.au',
'theatlantic.com',
'theaustralian.com.au',
'thecut.com',
'thediplomat.com',
'themercury.com.au',
'towardsdatascience.com',
'trouw.nl',
'vn.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'
];
// Removes cookies after page load
const removeCookies = [
'ad.nl',
'bd.nl',
'bloomberg.com',
'bloombergquint.com',
'bndestem.nl',
'brisbanetimes.com.au',
'canberratimes.com.au',
'cen.acs.org',
'demorgen.be',
'denverpost.com',
'destentor.nl',
'ed.nl',
'examiner.com.au',
'gelderlander.nl',
'globes.co.il',
'grubstreet.com',
'harpers.org',
'hbr.org',
'humo.be',
'lesechos.fr',
'mercurynews.com',
'newstatesman.com',
'nrc.nl',
'nymag.com',
'ocregister.com',
'pzc.nl',
'qz.com',
'scientificamerican.com',
'seattletimes.com',
'sofrep.com',
'spectator.co.uk',
'speld.nl',
'telegraaf.nl',
'theadvocate.com.au',
'theage.com.au',
'theatlantic.com',
'thecut.com',
'thediplomat.com',
'towardsdatascience.com',
'tubantia.nl',
'vn.nl',
'vulture.com',
'wsj.com',
'medium.com',
'washingtonpost.com',
'japantimes.co.jp'
];
// Contains remove cookie sites above plus any custom sites
let _removeCookies = removeCookies;
// select specific cookie(s) to hold from removeCookies domains
const removeCookiesSelectHold = {
'qz.com': ['gdpr'],
'wsj.com': ['wsjregion'],
'seattletimes.com': ['st_newsletter_splash_seen']
};
// select only specific cookie(s) to drop from removeCookies domains
const removeCookiesSelectDrop = {
'ad.nl': ['temptationTrackingId'],
'ambito.com': ['TDNotesRead'],
'bd.nl': ['temptationTrackingId'],
'bndestem.nl': ['temptationTrackingId'],
'demorgen.be': ['TID_ID'],
'destentor.nl': ['temptationTrackingId'],
'ed.nl': ['temptationTrackingId'],
'fd.nl': ['socialread'],
'gelderlander.nl': ['temptationTrackingId'],
'humo.be': ['TID_ID'],
'nrc.nl': ['counter'],
'pzc.nl': ['temptationTrackingId'],
'tubantia.nl': ['temptationTrackingId'],
'speld.nl': ['speld-paywall']
};
// Override User-Agent with Googlebot
const useGoogleBotSites = [
'adelaidenow.com.au',
'barrons.com',
'couriermail.com.au',
'fd.nl',
'genomeweb.com',
'heraldsun.com.au',
'lavoixdunord.fr',
'ntnews.com.au',
'quora.com',
'seekingalpha.com',
'telegraph.co.uk',
'theaustralian.com.au',
'themercury.com.au',
'thenational.scot',
'wsj.com',
'kansascity.com',
'republic.ru',
'nzz.ch',
'df.cl',
'ft.com',
'wired.com',
'zeit.de'
];
// Override User-Agent with Bingbot
const useBingBot = [
'haaretz.co.il',
'haaretz.com',
'themarker.com'
];
// Contains google bot sites above plus any custom sites
let _useGoogleBotSites = useGoogleBotSites;
function setDefaultOptions () {
extensionApi.storage.sync.set({
sites: defaultSites
}, function () {
extensionApi.runtime.openOptionsPage();
});
}
// Block external scripts
const blockedRegexes = {
'adweek.com': /.+\.lightboxcdn\.com\/.+/,
'afr.com': /afr\.com\/assets\/vendorsReactRedux_client.+\.js/,
'businessinsider.com': /(.+\.tinypass\.com\/.+|cdn\.onesignal\.com\/sdks\/.+\.js)/,
'chicagotribune.com': /.+:\/\/.+\.tribdss\.com\//,
'economist.com': /(.+\.tinypass\.com\/.+|economist\.com\/engassets\/_next\/static\/chunks\/framework.+\.js)/,
'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.com': /haaretz\.com\/hdc\/web\/js\/minified\/header-scripts-int.js.+/,
'inquirer.com': /.+\.tinypass\.com\/.+/,
'lastampa.it': /.+\.repstatic\.it\/minify\/sites\/lastampa\/.+\/config\.cache\.php\?name=social_js/,
'lrb.co.uk': /.+\.tinypass\.com\/.+/,
'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.+/,
'spectator.co.uk': /.+\.tinypass\.com\/.+/,
'spectator.com.au': /.+\.tinypass\.com\/.+/,
'telegraph.co.uk': /.+telegraph\.co\.uk.+martech.+/,
'thecourier.com.au': /.+cdn-au\.piano\.io\/api\/tinypass.+\.js/,
'thenation.com': /thenation\.com\/.+\/paywall-script\.php/,
'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/,
'historyextra.com': /.+\.evolok\.net\/.+\/authorize\/.+/,
'barrons.com': /cdn\.ampproject\.org\/v\d\/amp-access-.+\.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': /(meter-svc\.nytimes\.com\/meter\.js|mwcm\.nyt\.com\/.+\.js|cooking\.nytimes\.com\/api\/.+\/access)/,
'latimes.com': /(metering\.platform\.latimes\.com\/|cdn\.ampproject\.org\/v\d\/amp-(access|subscriptions)-.+\.js)/,
'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/
};
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 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)';
let enabledSites = [];
// Get the enabled sites
extensionApi.storage.sync.get({
sites: {},
customSites: []
}, function (items) {
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) {
initGA();
}
});
// Listen for changes to options
extensionApi.storage.onChanged.addListener(function (changes, namespace) {
if (changes.sites && changes.sites.newValue) {
const sites = changes.sites.newValue;
enabledSites = Object.values(sites);
}
});
// Set and show default options on install
extensionApi.runtime.onInstalled.addListener(function (details) {
if (details.reason === 'install') {
setDefaultOptions();
} else if (details.reason === 'update') {
// User updated extension
}
});
extensionApi.tabs.onUpdated.addListener(function (tabId, info, tab) {
updateBadge(tab);
});
extensionApi.tabs.onActivated.addListener(function (activeInfo) {
extensionApi.tabs.get(activeInfo.tabId, updateBadge);
});
function updateBadge (activeTab) {
if (extensionApi.runtime.lastError || !activeTab) { return; }
const badgeText = getBadgeText(activeTab.url);
extensionApi.browserAction.setBadgeBackgroundColor({ color: 'blue' });
extensionApi.browserAction.setBadgeText({ text: badgeText });
}
function getBadgeText (currentUrl) {
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']
);
// Disable javascript for these sites
extensionApi.webRequest.onBeforeRequest.addListener(function (details) {
const headerReferer = details.originUrl ? details.originUrl : details.initiator;
if (!isSiteEnabled(details) && (!enabledSites.includes('generalpaywallbypass') || matchUrlDomain('japantimes.co.jp', headerReferer))) {
return;
}
return { cancel: true };
},
{
urls: [
'*://*.newstatesman.com/*',
'*://*.outbrain.com/*',
'*://*.piano.io/*',
'*://*.poool.fr/*',
'*://*.qiota.com/*',
'*://*.tinypass.com/*'
],
types: ['script']
},
['blocking']
);
const extraInfoSpec = ['blocking', 'requestHeaders'];
if (Object.prototype.hasOwnProperty.call(extensionApi.webRequest.OnBeforeSendHeadersOptions, 'EXTRA_HEADERS')) {
extraInfoSpec.push('extraHeaders');
}
extensionApi.webRequest.onBeforeSendHeaders.addListener(function (details) {
let requestHeaders = details.requestHeaders;
let headerReferer = '';
for (const n in requestHeaders) {
if (requestHeaders[n].name.toLowerCase() === 'referer') {
headerReferer = requestHeaders[n].value;
continue;
}
}
// check for blocked regular expression: domain enabled, match regex, block on an internal or external regex
const blockedDomains = Object.keys(blockedRegexes);
const domain = matchUrlDomain(blockedDomains, headerReferer);
if (domain && details.url.match(blockedRegexes[domain]) && isSiteEnabled({ url: headerReferer })) {
return { cancel: true };
}
if (!isSiteEnabled(details) && !matchUrlDomain('cdn.ampproject.org', details.url)) {
return;
}
const tabId = details.tabId;
let useUserAgentMobile = false;
let setReferer = false;
// if referer exists, set it to google
requestHeaders = requestHeaders.map(function (requestHeader) {
if (requestHeader.name === 'Referer') {
if (details.url.includes('cooking.nytimes.com/api/v1/users/bootstrap')) {
// this fixes images not being loaded on cooking.nytimes.com main page
// referrer has to be *nytimes.com otherwise returns 403
requestHeader.value = 'https://cooking.nytimes.com';
} else if (matchUrlDomain('fd.nl', details.url)) {
requestHeader.value = 'https://www.facebook.com/';
} else if (matchUrlDomain('medium.com', details.url)) {
requestHeader.value = 'https://t.co/x?amp=1';
} else {
requestHeader.value = 'https://www.google.com/';
}
setReferer = true;
}
if (requestHeader.name === 'User-Agent') {
useUserAgentMobile = requestHeader.value.toLowerCase().includes('mobile');
}
return requestHeader;
});
// otherwise add it
if (!setReferer) {
if (matchUrlDomain('fd.nl', details.url)) {
requestHeaders.push({
name: 'Referer',
value: 'https://www.facebook.com/'
});
} else if (matchUrlDomain('medium.com', details.url)) {
requestHeaders.push({
name: 'Referer',
value: 'https://t.co/x?amp=1'
});
} else {
requestHeaders.push({
name: 'Referer',
value: 'https://www.google.com/'
});
}
}
// override User-Agent to use Googlebot
const useGoogleBot = _useGoogleBotSites.some(function (item) {
return typeof item === 'string' && matchUrlDomain(item, details.url);
});
if (useGoogleBot) {
requestHeaders.push({
name: 'User-Agent',
value: useUserAgentMobile ? userAgentMobile : userAgentDesktop
});
requestHeaders.push({
name: 'X-Forwarded-For',
value: '66.249.66.1'
});
}
// override User-Agent to use Bingbot
if (matchUrlDomain(useBingBot, details.url)) {
requestHeaders.push({
name: 'User-Agent',
value: useUserAgentMobile ? userAgentMobileBingBot : userAgentDesktopBingBot
});
}
// remove cookies before page load
const enabledCookies = allowCookies.some(function (site) {
return matchUrlDomain(site, details.url);
});
if (!enabledCookies) {
requestHeaders = requestHeaders.map(function (requestHeader) {
if (requestHeader.name === 'Cookie') {
requestHeader.value = '';
}
return requestHeader;
});
}
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
extensionApi.tabs.executeScript(tabId, {
file: 'src/js/contentScript.js',
runAt: 'document_start'
}, function (res) {
if (extensionApi.runtime.lastError || res[0]) {
}
});
}
});
}
return { requestHeaders: requestHeaders };
}, {
urls: ['<all_urls>']
}, extraInfoSpec);
// remove cookies after page load
extensionApi.webRequest.onCompleted.addListener(function (details) {
let domainToRemove;
for (const domain of _removeCookies) {
if (enabledSites.includes(domain) && matchUrlDomain(domain, details.url)) {
domainToRemove = domain;
break;
}
}
if (domainToRemove) {
extensionApi.cookies.getAll({ domain: domainToRemove }, function (cookies) {
for (const ck of cookies) {
const cookie = {
url: (ck.secure ? 'https://' : 'http://') + ck.domain + ck.path,
name: ck.name,
storeId: ck.storeId
};
// .firstPartyDomain = undefined on Chrome (doesn't support it)
if (ck.firstPartyDomain !== undefined) {
cookie.firstPartyDomain = ck.firstPartyDomain;
}
const cookieDomain = ck.domain;
const rcDomain = cookieDomain.replace(/^(\.?www\.|\.)/, '');
// hold specific cookie(s) from removeCookies domains
if ((rcDomain in removeCookiesSelectHold) && removeCookiesSelectHold[rcDomain].includes(ck.name)) {
continue; // don't remove specific cookie
}
// drop only specific cookie(s) from removeCookies domains
if ((rcDomain in removeCookiesSelectDrop) && !(removeCookiesSelectDrop[rcDomain].includes(ck.name))) {
continue; // only remove specific cookie
}
extensionApi.cookies.remove(cookie);
}
});
}
}, {
urls: ['<all_urls>']
});
// Google Analytics to anonymously track DAU (Chrome only)
function initGA () {
(function (i, s, o, g, r, a, m) {
i.GoogleAnalyticsObject = r;
i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments);
}, i[r].l = 1 * new Date();
a = s.createElement(o), m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m);
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-69824169-2', 'auto');
ga('set', 'checkProtocolTask', null);
ga('set', 'anonymizeIp', true);
ga('send', 'pageview');
}
function isSiteEnabled (details) {
const enabledSite = matchUrlDomain(enabledSites, details.url);
if (enabledSite in restrictions) {
return restrictions[enabledSite].test(details.url);
}
return !!enabledSite;
}
function matchUrlDomain (domains, url) {
return matchDomain(domains, urlHost(url));
}
function matchDomain (domains, hostname) {
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;
}

View file

@ -0,0 +1,8 @@
const extensionApi =
(typeof browser === 'object' &&
typeof browser.runtime === 'object' &&
typeof browser.runtime.getManifest === 'function') ? browser
: (typeof chrome === 'object' &&
typeof chrome.runtime === 'object' &&
typeof chrome.runtime.getManifest === 'function') ? chrome
: console.log('Cannot find extensionApi under namespace "browser" or "chrome"');

View file

@ -0,0 +1,786 @@
if (!matchDomain(['seekingalpha.com', 'sfchronicle.com', 'cen.acs.org', 'elmundo.es', 'scmp.com'])) {
window.localStorage.clear();
}
if (matchDomain('elmercurio.com')) {
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 () {
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/');
}
}, 500);
if (window.location.href.includes('/ws/detail/')) {
const paywall = document.querySelector('.paywall');
if (paywall) {
ampUnhideSubscriptionsSection();
}
}
} else if (matchDomain('americanbanker.com')) {
const inlineGate = document.querySelector('.inline-gate');
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')) {
if (window.location.href.startsWith('https://www.telegraaf.nl/error?ref=/')) {
window.location.href = window.location.href.split('&')[0].replace('error?ref=/', '');
}
const articleWrapper = document.querySelector('.ArticlePageWrapper__uid');
const spotXBanner = document.querySelector('.ArticleBodyBlocks__inlineArticleSpotXBanner');
const paywall = document.querySelector('.PopupBackdrop__block');
removeDOMElement(spotXBanner, paywall);
const premium = document.querySelector('.PremiumLabelWithLine__body');
const articleId = articleWrapper ? articleWrapper.innerText : '123';
const articleBodyDone = document.querySelector('#articleBody' + articleId);
if (premium && !articleBodyDone) {
const articleBodyOld = document.querySelector('[id^=articleBody]');
removeDOMElement(articleBodyOld);
const json = document.querySelector('script[type="application/ld+json"][data-react-helmet="true"]');
if (json) {
const jsonText = JSON.parse(json.text).articleBody;
const articleBody = document.querySelector('section.TextArticlePage__bodyText');
if (articleBody) {
const divMain = document.createElement('div');
divMain.setAttribute('id', 'articleBody' + articleId);
const divElem = document.createElement('div');
divElem.setAttribute('data-element', 'articleBodyBlocks');
const textArray = jsonText.split('\n\n');
textArray.forEach(pText => {
const pDiv = document.createElement('p');
pDiv.setAttribute('class', 'ArticleBodyBlocks__paragraph ArticleBodyBlocks__paragraph--nieuws');
pDiv.innerText = pText;
divElem.appendChild(pDiv);
});
divMain.appendChild(divElem);
articleBody.appendChild(divMain);
}
}
}
} else if (matchDomain(['ad.nl', 'ed.nl', 'bndestem.nl', 'bd.nl', 'tubantia.nl', 'destentor.nl', 'pzc.nl', 'gelderlander.nl'])) {
const paywall = document.querySelector('.article__component.article__component--paywall-module-notification');
removeDOMElement(paywall);
} 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/')) {
const freeButton = document.querySelector('.gdpr-consent-container .continue-btn.button.free');
if (freeButton) { freeButton.click(); }
window.setTimeout(function () {
const gdprcheckbox = document.querySelector('.gdpr-consent-container .consent-page:not(.hide) #agree');
if (gdprcheckbox) {
gdprcheckbox.checked = true;
gdprcheckbox.dispatchEvent(new Event('change'));
document.querySelector('.gdpr-consent-container .consent-page:not(.hide) .continue-btn.button.accept-consent').click();
}
}, 300); // Delay (in milliseconds)
} else {
const url = window.location.href;
function main (element) {
removeDOMElement(element);
window.location.href = url.split('?')[0] + '?outputType=amp';
}
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/')) {
const closeButton = document.querySelector('div.close-btn[role="button"]');
if (closeButton) { closeButton.click(); }
}
document.addEventListener('DOMContentLoaded', () => {
const url = window.location.href;
const snippet = document.querySelector('.snippet-promotion');
const wsjPro = document.querySelector('meta[name="page.site"][content="wsjpro"]');
if (snippet || wsjPro) {
if (!window.location.hash) {
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('sloanreview.mit.edu')) {
const readMore = document.querySelector('.btn-read-more');
if (readMore) {
readMore.click();
}
} 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')) {
const counter = document.getElementById('article-counter');
removeDOMElement(counter);
} else if (matchDomain('nzherald.co.nz')) {
const articleContent = document.querySelector('.article__content');
if (articleContent) {
const articleOffer = document.querySelector('.article-offer');
if (articleOffer) {
const cssSelector = articleContent.querySelectorAll('p')[5].getAttribute('class');
const hiddenNotPars = articleContent.querySelectorAll('.' + cssSelector + ':not(p)');
for (const hiddenNotPar of hiddenNotPars) {
hiddenNotPar.classList.remove(cssSelector);
hiddenNotPar.removeAttribute('style');
}
const hiddenPars = articleContent.querySelectorAll('p.' + cssSelector);
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')) {
setTimeout(function () {
const paywall = document.querySelector('.basic-paywall-new');
removeDOMElement(paywall);
const tbc = document.querySelectorAll('.text-block-container');
for (const el of tbc) {
el.removeAttribute('style');
}
}, 1000); // Delay (in milliseconds)
} else if (matchDomain('afr.com')) {
document.addEventListener('DOMContentLoaded', () => {
const hiddenImage = document.querySelectorAll('img');
for (const image of hiddenImage) {
const src = image.src;
if ('src: ' + src.indexOf('.gif') !== -1) {
const dataSrc = image.getAttribute('data-src');
if (dataSrc) {
image.setAttribute('src', dataSrc);
}
}
}
const plista = document.querySelector('div[data-plista-placement="underArticle_Group"]');
removeDOMElement(plista);
});
} else if (matchDomain(['parool.nl', 'trouw.nl', 'volkskrant.nl', 'demorgen.be', 'humo.be'])) {
document.addEventListener('DOMContentLoaded', () => {
const topBanner = document.querySelector('div[data-temptation-position="PAGE_TOP"]');
const paywall = document.querySelector('div[data-temptation-position="ARTICLE_BOTTOM"]');
const hiddenSection = document.querySelector('div[data-temptation-position="ARTICLE_INLINE"]');
const overlay = document.querySelector('div[data-temptation-position="PAGE_BOTTOM"]');
removeDOMElement(topBanner, paywall, hiddenSection, overlay);
});
} else if (matchDomain('firstthings.com')) {
const paywall = document.getElementsByClassName('paywall')[0];
removeDOMElement(paywall);
} else if (matchDomain('bloomberg.com')) {
blockElement('#graphics-paywall-overlay', true);
} else if (matchDomain('bloombergquint.com')) {
const articlesLeftModal = document.getElementsByClassName('paywall-meter-module__story-paywall-container__1UgCE')[0];
const paywall = document.getElementById('paywallDmp');
removeDOMElement(articlesLeftModal, paywall);
} else if (matchDomain('medium.com') || document.querySelector('script[src^="https://cdn-client.medium.com/"]')) {
const paywall = document.querySelector('div#paywall-background-color');
removeDOMElement(paywall);
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')) {
const articleBodySubscribed = document.querySelector('.c-article-body--subscribed');
if (articleBodySubscribed) {
articleBodySubscribed.removeAttribute('class');
}
} else if (matchDomain(['examiner.com.au', 'thecourier.com.au', 'theadvocate.com.au'])) {
const subscribeTruncate = document.querySelector('.subscribe-truncate');
if (subscribeTruncate) { subscribeTruncate.classList.remove('subscribe-truncate'); }
const subscriberHider = document.querySelectorAll('.subscriber-hider');
for (const el of subscriberHider) {
el.classList.remove('subscriber-hider');
}
} else if (matchDomain('canberratimes.com.au')) {
const paywall = document.querySelector('.subscribe-article.news-article-body.article__body');
paywall.classList.remove('subscribe-article');
const subscribe = document.getElementsByClassName('subscriber-container')[0];
removeDOMElement(subscribe);
const content = document.getElementsByClassName('subscriber-hider');
for (const el of content) {
el.classList.remove('subscriber-hider');
}
} else if (matchDomain('ledevoir.com')) {
const counter = document.querySelector('.full.hidden-print.popup-msg');
removeDOMElement(counter);
} else if (matchDomain('ft.com')) {
const cookieBanner = document.querySelector('.o-banner__outer');
const ribbon = document.querySelector('.js-article-ribbon');
const ads = document.querySelector('.o-ads');
removeDOMElement(cookieBanner, ads, ribbon);
} else if (matchDomain('thehindu.com')) {
document.addEventListener('DOMContentLoaded', () => {
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')) {
const banners = document.querySelectorAll('div[data-testid="inline-message"], div[id^="ad-"], div.expanded-dock');
removeDOMElement(...banners);
} else if (matchDomain('technologyreview.com')) {
window.setTimeout(function () {
const bodyObscured = document.querySelector('body[class*="body__obscureContent"]');
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')) {
window.removeEventListener('scroll', this.scrollListener);
const paywall = document.querySelector('.relative.piano-paywall.below_nav.sticky');
removeDOMElement(paywall);
setTimeout(function () {
const content = document.getElementsByClassName('content');
for (const el of content) {
el.removeAttribute('style');
}
}, 300); // Delay (in milliseconds)
} else if (matchDomain('caixinglobal.com')) {
const payTips = document.querySelectorAll('.cons-pay-tip');
for (const payTip of payTips) {
payTip.removeAttribute('style');
}
const appContent = document.getElementById('appContent');
if (appContent) {
const pHidden = document.querySelectorAll('p:not([style="display:block;"]');
for (const el of pHidden) {
el.setAttribute('style', 'display:block;');
}
}
} else if (matchDomain('bizjournals.com')) {
const sheetOverlay = document.querySelector('.sheet-overlay');
const chunkPaywall = document.querySelector('.chunk--paywall');
removeDOMElement(sheetOverlay, chunkPaywall);
const overlaid = document.querySelectorAll('.is-overlaid');
for (const el of overlaid) {
el.classList.remove('is-overlaid');
}
const bodyHidden = document.querySelector('.js-pre-chunks__story-body');
bodyHidden.removeAttribute('style');
} else if (matchDomain('the-tls.co.uk')) {
const paywall = document.querySelector('.tls-subscriptions-banner__closed-skin');
removeDOMElement(paywall);
} else if (matchDomain('cen.acs.org')) {
const paywall = document.querySelector('.meteredBar');
removeDOMElement(paywall);
} else if (matchDomain('elperiodico.com')) {
setTimeout(function () {
const unavailableArea = document.querySelector('.closed');
const infoBox = document.querySelector('.ep-masPeriodico-info');
if (unavailableArea) {
unavailableArea.classList.remove('closed');
}
if (infoBox) {
infoBox.parentNode.removeChild(infoBox);
}
}, 1000);
} else if (matchDomain('techinasia.com')) {
const paywall = document.querySelector('.paywall-content');
if (paywall) {
paywall.classList.remove('paywall-content');
}
const splashSubscribe = document.querySelector('.splash-subscribe');
const paywallHard = document.querySelector('.paywall-hard');
removeDOMElement(splashSubscribe, paywallHard);
} else if (matchDomain('thewrap.com')) {
const embed = document.querySelector('.embed');
if (embed) {
// Display feature video
const container = document.querySelector('.featured-image-container');
removeDOMElement(container);
embed.classList.remove('d-none');
}
} else if (matchDomain('hbr.org')) {
const banner = document.querySelector('.persistent-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')) {
// Remove all nudge elements
document.querySelectorAll('div[class*="c-nudge"]').forEach(function (el) {
removeDOMElement(el);
});
// Remove all FancyBox ads
document.querySelectorAll('div[class*="fancybox"]').forEach(function (el) {
removeDOMElement(el);
});
} 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 paywall = document.querySelector('metering-modal');
const incognitoWall = document.querySelector('metering-toppanel');
if (paywall) {
removeDOMElement(paywall);
} else if (incognitoWall) {
removeDOMElement(incognitoWall);
}
if (paywall || incognitoWall) {
document.body.removeAttribute('style');
}
} 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);
}
}
function matchDomain (domains) {
const hostname = window.location.hostname;
if (typeof domains === 'string') { domains = [domains]; }
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) {
for (const element of elements) {
if (element) { element.remove(); }
}
}
function removeClassesByPrefix (el, prefix) {
for (const clazz of el.classList) {
if (clazz.startsWith(prefix)) {
el.classList.remove(clazz);
}
}
}
// Prevent element from being added the first time to the DOM
function blockElement (selector, blockAlways = false) {
new window.MutationObserver(function (mutations) {
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);
}

View file

@ -0,0 +1,122 @@
// 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
function saveOptions () {
const sites = $$('#bypass_sites input').reduce(function (memo, inputEl) {
if (inputEl.checked) {
memo[inputEl.dataset.key] = inputEl.dataset.value;
}
return memo;
}, {});
const customSites = $('#custom_sites').value
.split('\n')
.map(s => s.trim())
.filter(s => s);
extensionApi.storage.sync.set({
sites: sites,
customSites: customSites
}, function () {
// Update status to let user know options were saved.
const status = $('#status');
status.textContent = 'Options saved';
setTimeout(function () {
status.textContent = '';
// Reload runtime so background script picks up changes
chrome.runtime.reload();
window.close();
}, 800);
});
}
// Restores checkbox input states using the preferences
// stored in extensionApi.storage.
function renderOptions () {
extensionApi.storage.sync.get({
sites: {},
customSites: [],
}, function (items) {
// Render supported sites
const sites = items.sites;
for (const key in defaultSites) {
if (!Object.prototype.hasOwnProperty.call(defaultSites, key)) {
continue;
}
const value = defaultSites[key];
const labelEl = document.createElement('label');
const inputEl = document.createElement('input');
inputEl.type = 'checkbox';
inputEl.dataset.key = key;
inputEl.dataset.value = value;
inputEl.checked = (key in sites) || (key.replace(/\s\(.*\)/, '') in sites);
labelEl.appendChild(inputEl);
labelEl.appendChild(document.createTextNode(key));
$('#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 () {
for (const el of $$('input[data-key]')) {
el.checked = this.checked;
};
}
// Initialize UI
function init() {
renderOptions();
$('#save').addEventListener('click', saveOptions);
$('#select-all input').addEventListener('click', selectAll);
for (const el of $$('#tabs button')) {
el.addEventListener('click', selectPane);
}
selectPane({target: $('#tabs button:first-child')});
if (extensionApi === chrome) {
document.body.classList.add('customSitesEnabled');
}
}
document.addEventListener('DOMContentLoaded', init);

View file

@ -0,0 +1,179 @@
// Cookies from this list are blocked by default
const defaultSites = {
'Adweek': 'adweek.com',
'Algemeen Dagblad': 'ad.nl',
'\u00C1mbito': 'ambito.com',
'American Banker': 'americanbanker.com',
'Baltimore Sun': 'baltimoresun.com',
'Barron\'s': 'barrons.com',
'Bloomberg': 'bloomberg.com',
'Bloomberg Quint (free articles only)': 'bloombergquint.com',
'BN De Stem': 'bndestem.nl',
'Boston Globe': 'bostonglobe.com',
'Brabants Dagblad': 'bd.nl',
'Brisbane Times': 'brisbanetimes.com.au',
'Business Insider': 'businessinsider.com',
'Caixin': 'caixinglobal.com',
'Central Western Daily': 'centralwesterndaily.com.au',
'Chemical & Engineering News': 'cen.acs.org',
'Chicago Tribune': 'chicagotribune.com',
'Corriere Della Sera': 'corriere.it',
'Crain\'s Chicago Business': 'chicagobusiness.com',
'Daily Press': 'dailypress.com',
'De Gelderlander': 'gelderlander.nl',
'De Groene Amsterdammer': 'groene.nl',
'DeMorgen': 'demorgen.be',
'Denver Post': 'denverpost.com',
'De Speld': 'speld.nl',
'De Stentor': 'destentor.nl',
'De Tijd': 'tijd.be',
'de Volkskrant': 'volkskrant.nl',
'Diario Financiero': 'df.cl',
'Domani': 'editorialedomani.it',
'Dynamed Plus': 'dynamed.com',
'Eindhovens Dagblad': 'ed.nl',
'El Mercurio': 'elmercurio.com',
'El Mundo': 'elmundo.es',
'El Pais': 'elpais.com',
'El Periodico': 'elperiodico.com',
'Elu24': 'elu24.ee',
'Encyclopedia Britannica': 'britannica.com',
'Estadão': 'estadao.com.br',
'Examiner': 'examiner.com.au',
'Expansión': 'expansion.com',
'Financial News': 'fnlondon.com',
'Financial Post':'financialpost.com',
'Financial Times': 'ft.com',
'First Things': 'firstthings.com',
'Foreign Policy': 'foreignpolicy.com',
'Fortune': 'fortune.com',
'Genomeweb': 'genomeweb.com',
'Glassdoor': 'glassdoor.com',
'Globes': 'globes.co.il',
'Grubstreet' : 'grubstreet.com',
'Haaretz English': 'haaretz.com',
'Haaretz': 'haaretz.co.il',
'Harper\'s Magazine': 'harpers.org',
'Hartford Courant': 'courant.com',
'Harvard Business Review': 'hbr.org',
'Harvard Business Review China': 'hbrchina.org',
'Herald Sun': 'heraldsun.com.au',
'Het Financieele Dagblad': 'fd.nl',
'History Extra': 'historyextra.com',
'Humo': 'humo.be',
'Il Manifesto': 'ilmanifesto.it',
'Il Messaggero': 'ilmessaggero.it',
'Inc.com': 'inc.com',
'Interest NZ': 'interest.co.nz',
'Investors Chronicle': 'investorschronicle.co.uk',
'La Nacion': 'lanacion.com.ar',
'La Repubblica': 'repubblica.it',
'La Stampa': 'lastampa.it',
'La Tercera': 'latercera.com',
'La Voix du Nord': 'lavoixdunord.fr',
'L\'Echo': 'lecho.be',
'Le Devoir': 'ledevoir.com',
'Le Parisien': 'leparisien.fr',
'Les Echos': 'lesechos.fr',
'Loeb Classical Library': 'loebclassics.com',
'London Review of Books': 'lrb.co.uk',
'Los Angeles Business Journal': 'labusinessjournal.com',
'Los Angeles Times': 'latimes.com',
'Medium': 'medium.com',
'Medscape': 'medscape.com',
'Mexico News Daily': 'mexiconewsdaily.com',
'MIT Sloan Management Review': 'sloanreview.mit.edu',
'MIT Technology Review': 'technologyreview.com',
'Mountain View Voice': 'mv-voice.com',
'National Geographic': 'nationalgeographic.com',
'National Post': 'nationalpost.com',
'Neue Zürcher Zeitung': 'nzz.ch',
'New Statesman': 'newstatesman.com',
'New York Daily News': 'nydailynews.com',
'New York Magazine': 'nymag.com',
'New Zealand Herald': 'nzherald.co.nz',
'NRC': 'nrc.nl',
'NT News': 'ntnews.com.au',
'Orange County Register': 'ocregister.com',
'Orlando Sentinel': 'orlandosentinel.com',
'Palo Alto Online': 'paloaltoonline.com',
'Parool': 'parool.nl',
'Postimees': 'postimees.ee',
'PZC': 'pzc.nl',
'Quartz (free articles only)': 'qz.com',
'Quora': 'quora.com',
'Quotidiani Gelocal': 'gelocal.it',
'Republic.ru': 'republic.ru',
'Reuters': 'reuters.com',
'San Diego Union Tribune': 'sandiegouniontribune.com',
'San Francisco Chronicle': 'sfchronicle.com',
'Scientific American': 'scientificamerican.com',
'Seeking Alpha': 'seekingalpha.com',
'Slate': 'slate.com',
'SOFREP': 'sofrep.com',
'Star Tribune': 'startribune.com',
'Statista': 'statista.com',
'Stuff': 'stuff.co.nz',
"Süddeutsche Zeitung": "sueddeutsche.de",
"South China Morning Post": "scmp.com",
'SunSentinel': 'sun-sentinel.com',
'Tech in Asia': 'techinasia.com',
'Telegraaf': 'telegraaf.nl',
'Time': 'time.com',
'The Advertiser': 'adelaidenow.com.au',
'The Advocate': 'theadvocate.com.au',
'The Age': 'theage.com.au',
'The American Interest': 'the-american-interest.com',
'The Athletic': 'theathletic.com',
'The Athletic (UK)': 'theathletic.co.uk',
'The Atlantic': 'theatlantic.com',
'The Australian Financial Review': 'afr.com',
'The Australian': 'theaustralian.com.au',
'The Business Journals': 'bizjournals.com',
'The Canberra Times': 'canberratimes.com.au',
'The Courier': 'thecourier.com.au',
'The Courier Mail': 'couriermail.com.au',
'The Cut': 'thecut.com',
'The Daily Telegraph': 'dailytelegraph.com.au',
'The Diplomat': 'thediplomat.com',
'The Economist': 'economist.com',
'The Globe and Mail': 'theglobeandmail.com',
'The Herald': 'theherald.com.au',
'The Hindu': 'thehindu.com',
'The Irish Times (free articles only)': 'irishtimes.com',
'The Japan Times': 'japantimes.co.jp',
'The Kansas City Star': 'kansascity.com',
'TheMarker': 'themarker.com',
'The Mercury News': 'mercurynews.com',
'The Mercury Tasmania': 'themercury.com.au',
'The Morning Call': 'mcall.com',
'The Nation': 'thenation.com',
'The National': 'thenational.scot',
'The News-Gazette': 'news-gazette.com',
'The New Yorker': 'newyorker.com',
'The New York Times': 'nytimes.com',
'The Olive Press': 'theolivepress.es',
'The Philadelphia Inquirer': 'inquirer.com',
'The Saturday Paper': 'thesaturdaypaper.com.au',
'The Seattle Times': 'seattletimes.com',
'The Spectator Australia': 'spectator.com.au',
'The Spectator (U.K.)': 'spectator.co.uk',
'The Spectator (U.S.)': 'spectator.us',
'The Sydney Morning Herald': 'smh.com.au',
'The Telegraph': 'telegraph.co.uk',
'The Toronto Star': 'thestar.com',
'The Wall Street Journal': 'wsj.com',
'The Washington Post': 'washingtonpost.com',
'The Wrap': 'thewrap.com',
'Times Literary Supplement': 'the-tls.co.uk',
'Towards Data Science': 'towardsdatascience.com',
'Trouw': 'trouw.nl',
'Tubantia': 'tubantia.nl',
'Vanity Fair': 'vanityfair.com',
'Vrij Nederland': 'vn.nl',
'Vulture': 'vulture.com',
'Winston-Salem Journal': 'journalnow.com',
'Wired': 'wired.com',
'Zeit Online': 'zeit.de',
'*General Paywall Bypass*': 'generalpaywallbypass'
};

View file

@ -0,0 +1,3 @@
const manifestData = extensionApi.runtime.getManifest();
const versionString = 'v' + manifestData.version;
document.getElementById('version').innerText = versionString;

View file

@ -0,0 +1,10 @@
{
"addons": {
"bypasspaywalls@bypasspaywalls": {
"updates": [
{ "version": "1.7.9",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-chrome/releases/download/v1.7.9/bypass-paywalls-firefox.xpi" }
]
}
}
}

View file

@ -0,0 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
<app appid='dcpihecpambacapedldabdbpakmachpb'>
<updatecheck codebase='https://github.com/iamadamdev/bypass-paywalls-chrome/releases/download/v1.7.9/bypass-paywalls-chrome.crx' version='1.7.9' />
</app>
</gupdate>

View file

@ -18,6 +18,7 @@ Install OverbiteWX
Install OneTab
Install Return YouTube Dislike
Install Alter (redirect for nitter, invidious, teddit, scribe, bibliogram, etc.)
Install bypass-paywalls (not official, go to https://github.com/iamadamdev/bypass-paywalls-chrome)
Install DuckDuckGo Lite Search (doesn't quite work, just use DuckDuckGo)
Install SponsorBlock for Youtube-Skip Sponsorships (under Misc, enable invidious 3rd party)
Install ClearURLs