diff --git a/bypass-paywalls-chrome-master/.github/ISSUE_TEMPLATE/new-site-request-template.md b/bypass-paywalls-chrome-master/.github/ISSUE_TEMPLATE/new-site-request-template.md new file mode 100644 index 00000000..16e18c34 --- /dev/null +++ b/bypass-paywalls-chrome-master/.github/ISSUE_TEMPLATE/new-site-request-template.md @@ -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. diff --git a/bypass-paywalls-chrome-master/.github/ISSUE_TEMPLATE/other.md b/bypass-paywalls-chrome-master/.github/ISSUE_TEMPLATE/other.md new file mode 100644 index 00000000..3dc718e6 --- /dev/null +++ b/bypass-paywalls-chrome-master/.github/ISSUE_TEMPLATE/other.md @@ -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. +### diff --git a/bypass-paywalls-chrome-master/.github/workflows/ci.yml b/bypass-paywalls-chrome-master/.github/workflows/ci.yml new file mode 100644 index 00000000..2c979fdc --- /dev/null +++ b/bypass-paywalls-chrome-master/.github/workflows/ci.yml @@ -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 \ No newline at end of file diff --git a/bypass-paywalls-chrome-master/README.md b/bypass-paywalls-chrome-master/README.md new file mode 100755 index 00000000..028b2736 --- /dev/null +++ b/bypass-paywalls-chrome-master/README.md @@ -0,0 +1,246 @@ +

+ +

+ +

Bypass Paywalls

+ +*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 ✕ 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. diff --git a/bypass-paywalls-chrome-master/build/build.sh b/bypass-paywalls-chrome-master/build/build.sh new file mode 100755 index 00000000..e7aa3774 --- /dev/null +++ b/bypass-paywalls-chrome-master/build/build.sh @@ -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 \ No newline at end of file diff --git a/bypass-paywalls-chrome-master/legacy/bypass.svg b/bypass-paywalls-chrome-master/legacy/bypass.svg new file mode 100644 index 00000000..06b343ca --- /dev/null +++ b/bypass-paywalls-chrome-master/legacy/bypass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/bypass-paywalls-chrome-master/legacy/bypass_wsj_extension_screenshot.png b/bypass-paywalls-chrome-master/legacy/bypass_wsj_extension_screenshot.png new file mode 100644 index 00000000..a1517b40 Binary files /dev/null and b/bypass-paywalls-chrome-master/legacy/bypass_wsj_extension_screenshot.png differ diff --git a/bypass-paywalls-chrome-master/legacy/changelog.txt b/bypass-paywalls-chrome-master/legacy/changelog.txt new file mode 100644 index 00000000..d78ef90b --- /dev/null +++ b/bypass-paywalls-chrome-master/legacy/changelog.txt @@ -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. diff --git a/bypass-paywalls-chrome-master/legacy/ft_screenshot.png b/bypass-paywalls-chrome-master/legacy/ft_screenshot.png new file mode 100644 index 00000000..093467e0 Binary files /dev/null and b/bypass-paywalls-chrome-master/legacy/ft_screenshot.png differ diff --git a/bypass-paywalls-chrome-master/manifest-ff.json b/bypass-paywalls-chrome-master/manifest-ff.json new file mode 100755 index 00000000..cce820e4 --- /dev/null +++ b/bypass-paywalls-chrome-master/manifest-ff.json @@ -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" +} diff --git a/bypass-paywalls-chrome-master/manifest.json b/bypass-paywalls-chrome-master/manifest.json new file mode 100644 index 00000000..3c07d111 --- /dev/null +++ b/bypass-paywalls-chrome-master/manifest.json @@ -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", + "" + ], + "version": "1.8.1" +} diff --git a/bypass-paywalls-chrome-master/src/html/options.html b/bypass-paywalls-chrome-master/src/html/options.html new file mode 100644 index 00000000..ef000a1e --- /dev/null +++ b/bypass-paywalls-chrome-master/src/html/options.html @@ -0,0 +1,149 @@ + + + + + Bypass Paywalls Options + + + +
+ + +
+ +
+

+ 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. +

+ +
+
+ +
+

+ 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. +

+

+ This feature is provided "as is" and will not work with many sites. + Do not report issues with sites entered here. +

+ +
+ +
+
+ +
+ + + + + + diff --git a/bypass-paywalls-chrome-master/src/html/popup.html b/bypass-paywalls-chrome-master/src/html/popup.html new file mode 100644 index 00000000..3bc4631b --- /dev/null +++ b/bypass-paywalls-chrome-master/src/html/popup.html @@ -0,0 +1,12 @@ + + + + + + +
Bypass Paywalls by Adam +
Options | GitHub |
+ + + + diff --git a/bypass-paywalls-chrome-master/src/icons/bypass-dark.png b/bypass-paywalls-chrome-master/src/icons/bypass-dark.png new file mode 100644 index 00000000..e6f0883f Binary files /dev/null and b/bypass-paywalls-chrome-master/src/icons/bypass-dark.png differ diff --git a/bypass-paywalls-chrome-master/src/icons/bypass.png b/bypass-paywalls-chrome-master/src/icons/bypass.png new file mode 100644 index 00000000..b2359271 Binary files /dev/null and b/bypass-paywalls-chrome-master/src/icons/bypass.png differ diff --git a/bypass-paywalls-chrome-master/src/js/background.js b/bypass-paywalls-chrome-master/src/js/background.js new file mode 100755 index 00000000..0b22e6bd --- /dev/null +++ b/bypass-paywalls-chrome-master/src/js/background.js @@ -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: [''] +}, 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: [''] +}); + +// 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; +} diff --git a/bypass-paywalls-chrome-master/src/js/common.js b/bypass-paywalls-chrome-master/src/js/common.js new file mode 100644 index 00000000..9cc5e736 --- /dev/null +++ b/bypass-paywalls-chrome-master/src/js/common.js @@ -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"'); diff --git a/bypass-paywalls-chrome-master/src/js/contentScript.js b/bypass-paywalls-chrome-master/src/js/contentScript.js new file mode 100755 index 00000000..e7769b77 --- /dev/null +++ b/bypass-paywalls-chrome-master/src/js/contentScript.js @@ -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('
' + hiddenPar.innerHTML + '
', 'text/html'); + const parDom = parHtml.querySelector('div'); + articleContent.insertBefore(parDom, hiddenPar); + } + const firstSpan = document.querySelector('p > span'); + if (firstSpan) { firstSpan.removeAttribute('class'); } + removeDOMElement(articleOffer); + } + } + const premiumToaster = document.querySelector('#premium-toaster'); + removeDOMElement(premiumToaster); +} 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('')[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('
' + article + '
', '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); +} diff --git a/bypass-paywalls-chrome-master/src/js/options.js b/bypass-paywalls-chrome-master/src/js/options.js new file mode 100644 index 00000000..92933d2a --- /dev/null +++ b/bypass-paywalls-chrome-master/src/js/options.js @@ -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); diff --git a/bypass-paywalls-chrome-master/src/js/sites.js b/bypass-paywalls-chrome-master/src/js/sites.js new file mode 100755 index 00000000..eaee4c9c --- /dev/null +++ b/bypass-paywalls-chrome-master/src/js/sites.js @@ -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' +}; diff --git a/bypass-paywalls-chrome-master/src/js/version.js b/bypass-paywalls-chrome-master/src/js/version.js new file mode 100644 index 00000000..51ec689f --- /dev/null +++ b/bypass-paywalls-chrome-master/src/js/version.js @@ -0,0 +1,3 @@ +const manifestData = extensionApi.runtime.getManifest(); +const versionString = 'v' + manifestData.version; +document.getElementById('version').innerText = versionString; diff --git a/bypass-paywalls-chrome-master/src/updates/updates.json b/bypass-paywalls-chrome-master/src/updates/updates.json new file mode 100644 index 00000000..ee22a3b8 --- /dev/null +++ b/bypass-paywalls-chrome-master/src/updates/updates.json @@ -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" } + ] + } + } +} diff --git a/bypass-paywalls-chrome-master/src/updates/updates.xml b/bypass-paywalls-chrome-master/src/updates/updates.xml new file mode 100644 index 00000000..835c566d --- /dev/null +++ b/bypass-paywalls-chrome-master/src/updates/updates.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/firefox_notes.txt b/firefox_notes.txt index 55dda59c..ea56733d 100644 --- a/firefox_notes.txt +++ b/firefox_notes.txt @@ -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