Compare commits

...

199 Commits

Author SHA1 Message Date
Adam
c66fb6d18a Fix bloomberg.com 2023-10-19 21:51:19 -07:00
Adam
7029ba34ef Fix theatlantic.com 2023-10-15 14:08:06 -07:00
Adam
a93a4beb34 Fix latimes.com 2023-10-15 13:57:55 -07:00
Adam
badfe3685a Fix nytimes.com 2023-10-15 13:41:19 -07:00
Adam
97b84f0951 Fix nytimes.com 2023-06-17 22:02:54 -07:00
Adam
747dddda71 Merge branch 'master' of https://github.com/iamadamdev/bypass-paywalls-chrome 2023-06-10 21:15:56 -07:00
InterAl
38027f3840
[PATCH] fix themarker/haaretz user agent (#1254)
* update UA for haaretz, themarker

* remove paywall for fortune.com

* [PATCH] fix themarker/haaretz user agent
2023-06-10 21:15:26 -07:00
Alon Nachshon
416bf48643 [PATCH] fix themarker/haaretz user agent 2023-03-13 12:36:30 +02:00
InterAl
3c737d3f4b
Merge branch 'iamadamdev:master' into master 2023-03-13 12:36:21 +02:00
InterAl
5bb7dc1665
Remove fortune.com paywall (#1252)
* update UA for haaretz, themarker

* remove paywall for fortune.com
2023-02-19 11:05:20 -08:00
InterAl
29b2089437
Merge branch 'iamadamdev:master' into master 2023-02-14 14:42:49 +02:00
Alon Nachshon
fbe4106b0c remove paywall for fortune.com 2023-02-14 14:42:04 +02:00
Thom Wiggers
997f83c778
Remove DPG Media websites (#1251)
These sites have switched to having to sign up to view premium articles,
no longer keeping track of a certain number of visits.
2023-02-04 14:21:09 -08:00
InterAl
d7a511000b
update UA for haaretz, themarker (#1249) 2022-12-23 22:36:36 -08:00
Alon Nachshon
5726649002 update UA for haaretz, themarker 2022-12-04 22:18:13 +02:00
Adam
66e3afed16 Prepare for v1.8.1 release 2022-11-30 22:43:03 -08:00
Adam
94c8ab1b4c Fix wapo.com 2022-11-30 22:36:40 -08:00
Adam
fc159b5b7e Fix spectator.co.uk 2022-11-30 22:30:14 -08:00
Francesco Truzzi
ce655fc33d
Add support for ilmessaggero.it (#1248) 2022-11-14 21:36:57 -08:00
Adam
7fb401d4d1 Add scmp.com 2022-09-26 22:58:48 -07:00
Adam
780c7854a0 Fix japantimes.co.jp 2022-09-08 23:22:57 -07:00
Adam
de3051da61 Revert "Remove japantimes.co.jp"
This reverts commit 348310235aab00322a21d53091e215675a639316.
2022-09-08 22:36:25 -07:00
Adam
02063e0032 Fix theathletic.com 2022-09-08 22:29:32 -07:00
Adam
17ef75f259 Remove worldpoliticsreview.com 2022-09-08 22:22:01 -07:00
Adam
d72c4ee7fb Fix latimes.com 2022-09-08 22:19:59 -07:00
Adam
e15bc95ae4 Fix NY Times Cooking 2022-09-08 11:20:53 -07:00
Adam
5adc770a05 Add hbrchina.org (Harvard Business Review China) 2022-06-06 20:45:12 -07:00
Adam
ecb7c22ddd Remove handelsblatt.com 2022-06-06 20:32:57 -07:00
Adam
348310235a Remove japantimes.co.jp 2022-05-15 21:01:22 -07:00
Adam
88715d1187 Prepare for v1.8.0 release 2022-04-17 18:21:02 -07:00
laur
b7a7fe0906 add theolivepress.es 2022-04-17 18:21:02 -07:00
Jimmy Yuen Ho Wong
b30fbf0471
Fix wapo (#1244)
* fix wapo infinite redirect issue

* remove wapo softwall
2022-04-14 20:34:34 -07:00
Jane Jeon
4b6a389715
Fix bloomberg.com (#1243)
Co-authored-by: Jane Jeon <heavy.job5173@janejeon.com>
2022-04-11 22:04:51 -07:00
Adam
0e81cdacfe Fix Repubblica.it (remember to also disable uBlock Origin for this site) 2022-04-11 21:27:25 -07:00
Adam
3a837ab312 Add theathletic.com/co.uk 2022-04-11 21:05:29 -07:00
laur89
dc2da541ad
fix postimees.ee (#1241) 2022-04-10 17:13:02 -07:00
Adam
4506b13240 Fix theglobeandmail.com 2021-12-05 23:42:46 -08:00
Adam
9181725487 Remove asia.nikkei.com (can use Cookie Remover) 2021-11-18 17:57:04 -08:00
Adam
9370072a21 Fix barrons.com and wapo.com 2021-11-12 13:30:03 -08:00
Adam
586e48d65b Fix medium.com 2021-10-25 22:05:00 -07:00
Adam
c5d321b13c Fix medium.com 2021-08-31 19:31:51 -07:00
Adam
ae7703fdfc Run semistandard linter 2021-08-01 19:02:44 -07:00
Cole Manning // RVRX
efc397e6f2
Add nationalgeographic.com (#1227)
* Add National Geographic

* revert change to blockElement()

* add nationalgeographic to manifest-ff.json
2021-08-01 19:01:55 -07:00
Adam
1b18c8f766 Fix wapo.com 2021-07-06 18:44:08 -07:00
Adam
e51bc6ac10 Remove thetimes.co.uk 2021-07-06 18:28:01 -07:00
Adam
d5b191dc8f Fix wapo.com 2021-07-04 11:25:12 -07:00
Adam
78b75141f3 Update Firefox download link 2021-07-04 10:30:13 -07:00
Adam
6d5a47d34e Run semistandard style formatter 2021-07-02 19:20:21 -07:00
billatq
8aa8f4ed1e
Fix Boston Globe support without cookie tampering, is relatively fast. (#1220)
Co-authored-by: billatq <8d8k@anmt.net>
2021-07-02 19:12:54 -07:00
Adam
167d1420d3 Fix foreignpolicy.com 2021-06-24 22:04:41 -07:00
Cole Manning // RVRX
ccafc3d5b6
Update latimes.com (#1202)
* Add latimes.com

* Fix latimes.com
2021-06-07 19:30:47 -07:00
Adam
b57c72d41b Fix dailytelegraph.com.au 2021-05-25 21:54:23 -07:00
Adam
6e78f24f74 Fix wapo comments 2021-05-25 21:28:28 -07:00
Adam
58a88498c0 Fix chicagobusiness.com 2021-05-25 21:22:40 -07:00
Adam
17504c5a45 Add expansion.com 2021-05-23 14:16:12 -07:00
Adam
7c9163ae66 Merge branch 'master' of https://github.com/iamadamdev/bypass-paywalls-chrome 2021-05-23 14:01:38 -07:00
Adam
5a861cc1c4 Remove delfi.ee 2021-05-23 14:01:26 -07:00
mendel5
87e64c495d
Le Parisien: Update link from HTTP to HTTPS (#1193) 2021-05-21 21:06:11 -07:00
Adam
e2d95e8d1a Fix repubblica.it 2021-05-19 20:41:03 -07:00
Adam
f9ae3fba66 Add reuters.com 2021-05-17 18:06:37 -07:00
Adam
1948b580f9 Fix americanbanker.com 2021-05-08 14:56:17 -07:00
Adam
a9387ba409 Fix wsj.com for Firefox 2021-05-06 22:43:00 -07:00
Adam
416d0c11ab Add zeit.de 2021-04-14 22:01:46 -07:00
Adam
a6eacfb4c0 Fix elpais.com 2021-04-08 20:27:41 -07:00
Adam
d2ec215627 Fix thestar.com 2021-04-04 16:03:13 -07:00
Adam
767c100d12 Prepare for v1.7.9 release 2021-03-30 23:06:27 -07:00
Adam
85266f2f67 Fix mexiconewsdaily.com 2021-03-30 20:44:22 -07:00
Adam
d0ceb4346c Remove washingtonpost.com from googlebotsites 2021-03-25 20:38:52 -07:00
Adam
fc346f0641 Add time.com 2021-03-25 20:30:16 -07:00
Adam
0f2975ecff Fix wired.com 2021-03-24 20:13:29 -07:00
Adam
a521b432d6 Fix lastampa.it 2021-03-24 20:09:36 -07:00
Adam
4052a3203c Fix ft.com errors 2021-03-22 12:08:03 -07:00
Thom Wiggers
1f5e6b214d
Add Speld.nl (Dutch parody news site) (#1151)
* Add Speld.nl (Dutch parody news site)

Speld.nl is a popular parody new site in The Netherlands, not unlike The Onion.

The paywall is a max-number-of-visits type. The visits are tracked in a cookie, which this PR selectively removes to not trigger the cookie consent forms each time. We also remove a popup that says how many visits you've got left.

* typo in removeDOMElement

* Fix Speld.nl support
2021-03-22 11:56:14 -07:00
laur89
45ab0e86ab
fix rules for delfi.ee (#1150)
- update ad-block element properties
2021-03-08 20:37:59 -08:00
Adam
dac780498d Fix techinasia.com 2021-02-25 22:55:08 -08:00
Adam
ef0d40be15 Add elmundo.es (most articles) 2021-02-25 22:48:41 -08:00
Ruben Sanchez
6f652eedf2
Add elperiodico.com (#1144) 2021-02-25 22:32:04 -08:00
Adam
5c85219e78 Fix gelocal.it 2021-02-16 20:09:06 -08:00
InterAl
7e97ffaac9
haaretz, themarker (Israeli news websites): remove paywall ads (#1138)
* themarker.com: Remove popups

* haaretz.co.il: Remove notifications

* haaretz.com: Remove paywall banner

* themarker.com, haaretz.co.il: remove banners

* haaretz.co.il, themarker.com: Remove banners
2021-02-15 14:32:41 -08:00
Lychfindel
782a297666
Support for gelocal group (italian newspapers) (#1134)
* Add support for gelocal group (italian local newspapers)

* Fix wrong edit on version number

* Removed console logs
2021-02-15 14:31:42 -08:00
Nguyễn Kim Kha
28acbaad77
Update cookie banner of ft.com (#1133) 2021-02-10 12:27:34 -08:00
JuanM04
9165b3ede9
Added Medium Bypass for only-members articles (#1130) 2021-02-06 14:04:08 -08:00
Adam
ef837f80cc Fix humo.be for Firefox 2021-01-31 10:53:42 -08:00
Adam
a9238013e6 Fix adweek.com 2021-01-30 13:28:00 -08:00
Adam
a13aa7c514 Update Firefox link, update id 2021-01-19 20:54:46 -08:00
Adam
36e46ffc04 Add spectator.us 2021-01-18 12:48:21 -08:00
Adam
5bb50e82f3 Fix nzherald.co.nz 2021-01-18 12:10:02 -08:00
Adam
74b11cd8b6 Remove main source dir updates files 2021-01-17 10:34:35 -08:00
Adam
19c8554c12 Add sueddeutsche.de 2021-01-17 10:30:13 -08:00
Adam
f5a21be23e
Update README.md 2021-01-16 20:49:01 -08:00
Nicolas Cisco
5a37f29fef
Added ambito.com (#1097) 2021-01-16 20:44:33 -08:00
ajs256
4ed27cd374
Add <details> tag to README (#1082)
The README is a bit long in the tooth with the full list of sites. Using the `<details>` tag helps by making the list collapsible.
2021-01-07 17:08:36 -08:00
Calvin Wu
af8b6ce081
Remove error popping up on nytimes.com (#1079) 2020-12-13 17:12:18 -08:00
Calvin Wu
312c36f415
newyorker.com: Always block bottom paywall bar (#1070) 2020-12-10 19:56:08 -08:00
Calvin Wu
ddc315b0ca
Fix bloomberg.com (#1060) 2020-12-05 17:38:21 -08:00
Calvin Wu
4d50bc78e6
New Yorker: Fixed article images not loading (#1053) 2020-12-05 17:35:52 -08:00
6mon
fd17b82387
Add lavoixdunord.fr (#1050) 2020-12-05 17:35:01 -08:00
Adam
5d919d7db6 Fix lesechos.fr 2020-12-03 21:02:24 -08:00
Calvin Wu
c23d1ea34c
NYTimes fix (#1040) 2020-11-30 17:39:23 -08:00
Erik Swan
e6addf4ee1 Add installation instructions for Microsoft Edge (#1039)
The instructions for the new Chromium-based Edge are the same as those for Chrome. This updates the README to explicitly spell that out.
2020-11-21 20:42:19 -08:00
Adam
1b2b9733fc Fix seattletimes.com 2020-11-21 13:11:33 -08:00
Adam
2cd984c897 Prepare for v1.7.8 release 2020-11-20 18:19:56 -08:00
Adam
9523440d22 Fix naming and ordering 2020-11-18 21:03:25 -08:00
Thom Wiggers
f8675eeaf0
Add dPG media group publications (#1008) 2020-11-16 21:29:36 -08:00
Adam
fff7f483db Fix newyorker.com 2020-11-12 18:16:10 -08:00
Adam
db35e85f1f Fix haaretz.com/.co.il and themarker.com 2020-11-11 17:58:56 -08:00
Adam
44f3d1b114 Fix lesechos.fr 2020-11-10 18:33:24 -08:00
Calvin Wu
0cbe35992f
Revert "Reload iframes after window is loaded to fix iframes not loading (#981)" (#1006)
This reverts commit 936be59d4314bd27417e2ad856b828dae0b609e2.
2020-11-10 18:29:16 -08:00
Gábor Lipták
c0efe01ce2
Add Github Actions build (#1000) 2020-11-10 18:29:02 -08:00
Adam
0f129c5d6c Prepare for v1.7.7 release 2020-10-26 21:14:02 -07:00
Adam
c0fc6a98cd Fix technologyreview.com, wapo.com 2020-10-25 09:40:21 -07:00
Adam
044ed46fde Merge branch 'master' of https://github.com/iamadamdev/bypass-paywalls-chrome 2020-10-25 09:24:25 -07:00
Adam
dea868548c Fix thetimes.co.uk 2020-10-25 09:24:22 -07:00
Stefan Siegfried
f9ee00af73
Fixes iamadamdev/bypass-paywalls-chrome#980 (#991) 2020-10-25 09:23:37 -07:00
Calvin Wu
936be59d43
Reload iframes after window is loaded to fix iframes not loading (#981) 2020-10-22 21:48:33 -07:00
Calvin Wu
712ad03c1e
Remove paywall bar on vanityfair.com (#979) 2020-10-21 23:06:22 -07:00
Adam
cac301136f Formatting 2020-10-20 19:14:24 -07:00
Calvin Wu
8aa3e684f3
Added support for New York Daily News (#975) 2020-10-20 19:13:41 -07:00
Calvin Wu
3e26362d68
Added support for Slate (#974) 2020-10-20 19:13:19 -07:00
Calvin Wu
a14ddb07b8
Prevent bottom dock from appearing in nytimes.com (#964)
* Prevent bottom dock from appearing

* semistandard linted
2020-10-20 19:13:04 -07:00
Calvin Wu
92adc11ce3
Added support for thecut, vulture, and grubstreet (#963) 2020-10-20 19:12:49 -07:00
alastairR
ef6ee239d7
Add support for NZ Herald videos (#965) 2020-10-16 19:14:50 -07:00
Adam
6ed8d338a4 Semistandard Formatting 2020-10-14 23:14:20 -07:00
alastairR
0c73e41608
NZ Herald update (#962)
* Update NZ Herald to make menu work

* NZ Herald update
2020-10-14 23:09:55 -07:00
laur89
0363b4a198
add estonian sites postimees.ee, delfi.ee & elu24.ee (#957) 2020-10-14 19:14:06 -07:00
Calvin Wu
7e7964c3c0
remove paywall in newyorker.com (#955) 2020-10-13 20:06:27 -07:00
Adam
656ebd15d0 Fix nzherald.co.nz 2020-10-11 18:32:09 -07:00
Adam
7c804a2b9a Formatting 2020-10-09 22:16:45 -07:00
alastairR
c5684c52df
Update NZ Herald to bypass site update (#946)
* Update NZ Herald to bypass site update

* Previous change damaged innocent child elements

Need to keep classes on some child elements, so have to identify class used to hide and only remove that.
2020-10-09 22:14:06 -07:00
Adam
1c20520975 Fix wapo.com 2020-10-09 00:37:22 -07:00
Adam
c714bf64a5 Fix manifest-ff.json 2020-10-09 00:35:52 -07:00
Adam
0eea1dc0b4 Remove \r char in build script 2020-10-06 18:12:27 -07:00
Francesco Truzzi
99a95884e1
add support for editorialedomani.it, humo.be (#932)
* add support for editorialedomani.it

* add support for humo.be

* fix regex for editorialedomani.it
2020-10-03 10:29:38 -07:00
Taha
859ca5cfa0 Added Financialpost.com under one PR (#931) 2020-10-03 10:26:52 -07:00
Adam
87a1a77d39 Add df.cl 2020-09-28 20:34:04 -07:00
Adam
078dd30d5c Fix thehindu.com 2020-09-28 20:18:46 -07:00
Adam
a94dd2dfef Prepare for v1.7.6 release 2020-09-27 16:47:29 -07:00
Adam
32641f9937 Remove theathletic.com/co.uk 2020-09-27 15:58:42 -07:00
Adam
b23aa3819a Fix formatting 2020-09-21 22:12:28 -07:00
ohad
55886ce748
add globes.co.il (#890)
* add globes.co.il

* A. gitignore build/output
B. chmod +x build.sh
2020-09-21 22:10:29 -07:00
Ben Hood
7e9c054e93
Fix theglobeandmail.com 2020-09-21 22:08:30 -07:00
Francesco Truzzi
533a058d7b
Add support for medscape.com (#901) 2020-09-21 21:59:35 -07:00
alastairR
d01b72549e
Remove adblock banners for interest.co.nz & stuff.co.nz and bypass paywall thenational.scot (#900)
* Interest.co.nz/Stuff/The National
2020-09-21 21:57:08 -07:00
Adam
58b14a94b3
Update new-site-request-template.md 2020-09-15 21:20:40 -07:00
Adam
7dbd4201a9 Formatting 2020-09-14 20:46:32 -07:00
Nguyen
acf454c5b7
Startribune/TheAtlantic/SeattleTimes (#889)
* Add StarTribune

* Fix TheAtlantic

* Fix Seatle Times

* Fix WashingtonPost

* remove unnecessary space

* format with semistandard
2020-09-14 20:45:06 -07:00
Adam
f5288a1d4e
Update README.md 2020-09-09 15:04:58 -07:00
Adam
025a8fa033
Update other.md 2020-09-07 18:40:05 -07:00
Adam
150f8b7252
Update other.md 2020-09-06 11:04:10 -07:00
Adam
b978e4eacd Fix wapo.com 2020-09-04 18:38:28 -07:00
Adam
452e2c9932 Fix lesechos.fr 2020-08-28 17:38:25 -07:00
Zachary Hamed
b74edee2d7
Remove gradient blur on content for MIT Tech Review (#860) 2020-08-28 17:27:03 -07:00
Adam
31a976f855
Update other.md 2020-08-25 18:07:42 -07:00
Adam
d5992ce8e9 Fix cn.wsj.com redirect 2020-08-15 11:14:13 -07:00
Adam
13c39f2a9d Fix thesaturdaypaper.com.au 2020-08-12 20:58:03 -07:00
Adam
27de9ed853
Update other.md 2020-08-12 20:51:15 -07:00
Danilo Lacoste
b879a9fb22
Fix latercera.com (#840) 2020-08-11 09:32:28 -07:00
Adam
543bd2db52 Fix big where badge stays ON erroneously 2020-08-09 11:20:12 -07:00
Adam
5a9093bfd6 Prepare for v1.7.5 release 2020-08-08 13:25:09 -07:00
Adam
f33493d9ad Fix sloanreview.mit.edu 2020-08-01 11:03:34 -07:00
Adam
c13820c8d1 Fix formatting 2020-08-01 10:56:55 -07:00
Danilo Lacoste
129188f62a
adding elmercurio.com/Inversiones (#817)
* adding elmercurio.com/Inversiones

* adding support elmercurio.com/inversiones

* update README.md and manifest-ff.json

* some JS

* names
2020-08-01 10:54:35 -07:00
Adam
cb5afd527d
Update other.md 2020-07-28 22:53:52 -07:00
Adam
58f06d975c Add amp redirect for irishtimes.com 2020-07-27 22:29:13 -07:00
Adam
b4f18dbc29 Fix handelsblatt.com 2020-07-21 19:35:34 -07:00
Adam
317f07c906 Fix theglobeandmail.com 2020-07-21 19:27:22 -07:00
Adam
c12ea5014e Fix nzz.ch 2020-07-08 20:29:17 -07:00
Adam
e2444aa650 Prepare for v1.7.4 release 2020-07-06 18:45:35 -07:00
Gabriel
c963e0eeac
Add estadao.com.br (#771) 2020-07-06 18:24:45 -07:00
Adam
bcd73a95ea Remove allowedRegexes 2020-06-28 15:39:36 -07:00
Adam
58b60f03f0 Add AMP redirect for barrons.com 2020-06-28 15:34:11 -07:00
Adam
596d85fcea Add historyextra.com 2020-06-28 15:25:30 -07:00
Adam
050022bba6 Update domain matching logic 2020-06-28 15:18:07 -07:00
Adam
86699790e7 Remove cookies for custom sites, minor UI adjustments 2020-06-28 14:01:42 -07:00
Adam
67b59dc8ae Fix WSJ 2020-06-28 12:47:20 -07:00
Adam
326b910182 Fix economist.com menu 2020-06-23 18:33:41 -07:00
Adam
93372d008d Fix WSJ (amp redirect) 2020-06-23 18:24:07 -07:00
Robert Kieffer
2659570b65
support adding custom sites (#669) 2020-06-22 21:09:31 -07:00
Jalit6
8301a3bc97 Add brisbanetimes.com.au (#732) 2020-06-17 18:33:03 -07:00
PoorPockets McNewHold
643faee8f6
[ImgBot] Optimize images (#735)
*Total -- 367.60kb -> 309.74kb (15.74%)

/legacy/ft_screenshot.png -- 157.65kb -> 131.58kb (16.54%)
/legacy/bypass_wsj_extension_screenshot.png -- 207.62kb -> 176.01kb (15.22%)
/src/icons/bypass.png -- 0.68kb -> 0.59kb (12.12%)
/legacy/bypass.svg -- 1.02kb -> 0.94kb (7.2%)
/src/icons/bypass-dark.png -- 0.64kb -> 0.61kb (3.98%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>

Co-authored-by: ImgBotApp <ImgBotHelp@gmail.com>
2020-06-16 22:12:19 -07:00
PoorPockets McNewHold
5574026889
Proper automatic "last release" linking. (#734)
https://help.github.com/en/github/administering-a-repository/linking-to-releases
Now, no need to update the Firefox add-on link in the README.md. It will always grab the latest.fxi release file, as long as it keeps the `bypass-paywalls-firefox.xpi` naming.
2020-06-16 22:08:29 -07:00
Matt Hensman
b2f5e7248e
Suppress invalid URL errors (#725) 2020-06-14 12:21:54 -07:00
Adam
639eaf7ffb Add republic.ru 2020-06-13 17:40:04 -07:00
Nguyễn Kim Kha
ae7cf1f359
Add science-et-vie.com (#693)
* Add science-et-vie.com

* Update manifest-ff.json
2020-06-10 00:21:59 -07:00
Adam
8bd81dd81d Fix update urls in build script 2020-06-01 22:09:57 -07:00
Adam
b8f4458d1e Prepare for v1.7.3 release 2020-05-31 11:22:03 -07:00
Adam
76fcd58e69 Update README.md 2020-05-30 16:35:57 -07:00
Adam
44394e8072 Fix demorgen.be 2020-05-28 20:25:40 -07:00
Adam
1893cfcc9f Fix seekingalpha.com 2020-05-28 20:18:45 -07:00
Adam
9722bdb875 Fix fortune.com errors 2020-05-28 19:55:31 -07:00
Adam
f26117646c Fix spectator.co.uk (amp redirect) 2020-05-28 19:48:51 -07:00
Nguyễn Kim Kha
545d512872
Fix undefined error (#675) 2020-05-27 18:44:34 -07:00
Nguyễn Kim Kha
cec5d46f3d
Remove unnecessary code (#671) 2020-05-27 17:42:07 -07:00
Adam
8adffed422 Restore location of previous updates.xml file 2020-05-25 21:23:39 -07:00
Nguyễn Kim Kha
e33f019c1f
Avoid injecting script to unrelated sites (#665)
* Avoid injecting script to unrelated sites

* unnecessary comment
2020-05-25 20:17:35 -07:00
freddytuxworth
ad1afe9b63
Fix paywall removal on telegraph.co.uk by blocking martech script (#667) 2020-05-25 17:27:26 -07:00
Nguyễn Kim Kha
ab79f28867
Add worldpoliticsreview (#661) 2020-05-25 17:16:32 -07:00
Adam
d3eeb9ad66 Add Twitter link to README.md 2020-05-22 20:32:55 -07:00
Nguyễn Kim Kha
389a055dc9
Nullity check in storage.onChanged (#655) 2020-05-22 16:56:22 -07:00
20 changed files with 1272 additions and 387 deletions

View File

@ -1,5 +1,5 @@
--- ---
name: New site request template name: New site request
about: New site request about: New site request
title: 'New site request: [site here]' title: 'New site request: [site here]'
labels: new site request labels: new site request
@ -9,12 +9,12 @@ assignees: ''
### New site requests - Before submitting an issue please read the following: ### New site requests - Before submitting an issue please read the following:
Only large or major sites will be considered. For small sites try the [Cookie Remover](https://chrome.google.com/webstore/detail/cookie-remover/kcgpggonjhmeaejebeoeomdlohicfhce) extension to remove cookies (might not work though). Only large or major sites will be considered. Usually premium articles cannot be bypassed as they are behind a hard paywall.
Usually premium articles cannot be bypassed as they are behind a hard paywall.
1. Install the uBlock Origin extension if it hasn't been installed already. See if you are still getting a paywall. If so, continue to the next step. 1. Install the uBlock Origin extension if it hasn't been installed already. See if you are still getting a paywall.
2. First search 'Issues' to see if the site has been requested already. 2. Check if using Cookie Remover can bypass the paywall. If not, continue to the next step.
3. Visit an article on the site you want to bypass the paywall for and copy the article title. 3. First search 'Issues' to see if the site has been requested already.
4. Open up a new incognito window (Ctrl+Shift+N on Chrome) or Private window (Ctrl+Shift+P on Firefox), and paste the article title into Google. 4. Visit an article on the site you want to bypass the paywall for and copy the article title.
5. Click on the same article from the Google search results page. 5. Open up a new incognito window (Ctrl+Shift+N on Chrome) or Private window (Ctrl+Shift+P on Firefox), and paste the article title into Google.
6. If it loads without a paywall replace this entire template text with the word "Confirmed" and submit the request. Otherwise please do not submit an issue as this extension cannot bypass it either. 6. Click on the same article from the Google search results page.
7. If it loads without a paywall replace this entire template text with the word "Confirmed" and submit the request. Otherwise please do not submit an issue as this extension cannot bypass it either.

View File

@ -8,3 +8,10 @@ assignees: ''
--- ---
###
1. First search [Issues](https://github.com/iamadamdev/bypass-paywalls-chrome/issues) to see if your problem has already been reported.
2. Make sure uBlock Origin is installed.
3. Chrome or Firefox?
4. Paste the article URL for the site you are having issues with.
5. Describe the issue.
###

17
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,17 @@
name: ci
on:
push:
branches:
- master
pull_request:
jobs:
build:
runs-on: ubuntu-latest
name: Build
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Build
run: cd build && ./build.sh

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
build/output

95
README.md Normal file → Executable file
View File

@ -7,30 +7,33 @@
*Bypass Paywalls is a web browser extension to help bypass paywalls for selected sites.* *Bypass Paywalls is a web browser extension to help bypass paywalls for selected sites.*
### Installation Instructions ### Installation Instructions
**Google Chrome** **Google Chrome / Microsoft Edge** (Custom sites supported)
1. Download this repo as a [ZIP file from GitHub](https://github.com/iamadamdev/bypass-paywalls-chrome/archive/master.zip). 1. Download this repo as a [ZIP file from GitHub](https://github.com/iamadamdev/bypass-paywalls-chrome/archive/master.zip).
1. Unzip the file and you should have a folder named `bypass-paywalls-chrome-master`. 1. Unzip the file and you should have a folder named `bypass-paywalls-chrome-master`.
1. In Chrome go to the extensions page (`chrome://extensions`). 1. In Chrome/Edge go to the extensions page (`chrome://extensions` or `edge://extensions`).
1. Enable Developer Mode. 1. Enable Developer Mode.
1. Drag the `bypass-paywalls-chrome-master` folder anywhere on the page to import it (do not delete the folder afterwards). 1. Drag the `bypass-paywalls-chrome-master` folder anywhere on the page to import it (do not delete the folder afterwards).
**Mozilla Firefox** **Mozilla Firefox** (Custom sites not supported)
* [Download and install the latest version](https://github.com/iamadamdev/bypass-paywalls-chrome/releases/download/v1.7.2/bypass-paywalls-firefox.xpi) * [Download and install the latest version](https://github.com/iamadamdev/bypass-paywalls-chrome/releases/latest/download/bypass-paywalls-firefox.xpi)
**Notes** **Notes**
* Every time you open Chrome it may warn you about running extensions in developer mode, just click 🗙 to keep the extension enabled. * Every time you open Chrome it may warn you about running extensions in developer mode, just click &#10005; to keep the extension enabled.
* You will be logged out for any site you have checked. * You will be logged out for any site you have checked.
* This extension works best alongside the adblocker uBlock Origin. * This extension works best alongside the adblocker uBlock Origin.
* The Firefox version supports automatic updates.
### Bypass the following sites' paywalls with this extension: ### Bypass the following sites' paywalls with this extension:
[Adweek](https://www.adweek.com)\ [Adweek](https://www.adweek.com)\
[Algemeen Dagblad](https://www.ad.nl)\
[American Banker](https://www.americanbanker.com)\ [American Banker](https://www.americanbanker.com)\
[Ámbito](https://www.ambito.com)\
[Baltimore Sun](https://www.baltimoresun.com)\ [Baltimore Sun](https://www.baltimoresun.com)\
[Barron's](https://www.barrons.com)\ [Barron's](https://www.barrons.com)\
[Bloomberg Quint](https://www.bloombergquint.com)\ [Bloomberg Quint](https://www.bloombergquint.com)\
[Bloomberg](https://www.bloomberg.com)\ [Bloomberg](https://www.bloomberg.com)\
[Boston Globe](https://www.bostonglobe.com)\
[Brisbane Times](https://www.brisbanetimes.com.au)\
[Business Insider](https://www.businessinsider.com)\ [Business Insider](https://www.businessinsider.com)\
[Caixin](https://www.caixinglobal.com)\ [Caixin](https://www.caixinglobal.com)\
[Central Western Daily](https://www.centralwesterndaily.com.au)\ [Central Western Daily](https://www.centralwesterndaily.com.au)\
@ -40,41 +43,56 @@
[Crain's Chicago Business](https://www.chicagobusiness.com)\ [Crain's Chicago Business](https://www.chicagobusiness.com)\
[Daily Press](https://www.dailypress.com)\ [Daily Press](https://www.dailypress.com)\
[De Groene Amsterdammer](https://www.groene.nl)\ [De Groene Amsterdammer](https://www.groene.nl)\
[De Speld](https://speld.nl)\
[De Tijd](https://www.tijd.be)\ [De Tijd](https://www.tijd.be)\
[De Volkskrant](https://www.volkskrant.nl)\ [De Volkskrant](https://www.volkskrant.nl)\
[DeMorgen](https://www.demorgen.be)\ [DeMorgen](https://www.demorgen.be)\
[Denver Post](https://www.denverpost.com)\ [Denver Post](https://www.denverpost.com)\
[Diario Financiero](https://www.df.cl)\
[Domani](https://www.editorialedomani.it)\
[Dynamed Plus](https://www.dynamed.com)\ [Dynamed Plus](https://www.dynamed.com)\
[Eindhovens Dagblad](https://www.ed.nl)\ [El Mercurio](https://www.elmercurio.com)\
[El Pais](https://www.elpais.com/)\ [El Pais](https://www.elpais.com)\
[El Periodico](https://www.elperiodico.com)\
[Elu24](https://www.elu24.ee)\
[Encyclopedia Britannica](https://www.britannica.com)\ [Encyclopedia Britannica](https://www.britannica.com)\
[Estadão](https://www.estadao.com.br)\
[Examiner](https://www.examiner.com.au)\ [Examiner](https://www.examiner.com.au)\
[Expansión](https://www.expansion.com)\
[Financial News](https://www.fnlondon.com)\ [Financial News](https://www.fnlondon.com)\
[Financial Post](https://www.financialpost.com)\
[Financial Times](https://www.ft.com)\ [Financial Times](https://www.ft.com)\
[First Things](https://www.firstthings.com)\ [First Things](https://www.firstthings.com)\
[Foreign Policy](https://www.foreignpolicy.com)\ [Foreign Policy](https://www.foreignpolicy.com)\
[Fortune](https://www.fortune.com)\ [Fortune](https://www.fortune.com)\
[Genomeweb](https://www.genomeweb.com)\ [Genomeweb](https://www.genomeweb.com)\
[Glassdoor](https://www.glassdoor.com)\ [Glassdoor](https://www.glassdoor.com)\
[Globes](https://www.globes.co.il)\
[Grubstreet](https://www.grubstreet.com)\
[Haaretz.co.il](https://www.haaretz.co.il)\ [Haaretz.co.il](https://www.haaretz.co.il)\
[Haaretz.com](https://www.haaretz.com)\ [Haaretz.com](https://www.haaretz.com)\
[Handelsblatt](https://www.handelsblatt.com)\
[Harper's Magazine](https://harpers.org)\ [Harper's Magazine](https://harpers.org)\
[Hartford Courant](https://www.courant.com)\ [Hartford Courant](https://www.courant.com)\
[Harvard Business Review](https://www.hbr.org)\ [Harvard Business Review](https://www.hbr.org)\
[Harvard Business Review China](https://www.hbrchina.org)\
[Herald Sun](https://www.heraldsun.com.au)\ [Herald Sun](https://www.heraldsun.com.au)\
[Het Financieel Dagblad](https://fd.nl)\ [Het Financieel Dagblad](https://fd.nl)\
[History Extra](https://www.historyextra.com)\
[Humo](https://www.humo.be)\
[Il Manifesto](https://www.ilmanifesto.it)\ [Il Manifesto](https://www.ilmanifesto.it)\
[Il Messaggero](https://www.ilmessaggero.it)\
[Inc.com](https://www.inc.com)\ [Inc.com](https://www.inc.com)\
[Investors Chronicle](https://www.investorschronicle.co.uk)\ [Interest.co.nz](https://www.interest.co.nz)\
[Investors Chronicle](https://www.investorschronicle.co.uk)
[L'Écho](https://www.lecho.be)\ [L'Écho](https://www.lecho.be)\
[L.A. Business Journal](https://labusinessjournal.com)\ [L.A. Business Journal](https://labusinessjournal.com)\
[La Nación](https://www.lanacion.com.ar)\ [La Nación](https://www.lanacion.com.ar)\
[La Repubblica](https://www.repubblica.it)\ [La Repubblica](https://www.repubblica.it)\
[La Stampa](https://www.lastampa.it)\ [La Stampa](https://www.lastampa.it)\
[La Tercera](https://www.latercera.com)\ [La Tercera](https://www.latercera.com)\
[La Voix du Nord](https://www.lavoixdunord.fr)\
[Le Devoir](https://www.ledevoir.com)\ [Le Devoir](https://www.ledevoir.com)\
[Le Parisien](http://www.leparisien.fr)\ [Le Parisien](https://www.leparisien.fr)\
[Les Échos](https://www.lesechos.fr)\ [Les Échos](https://www.lesechos.fr)\
[Loeb Classical Library](https://www.loebclassics.com)\ [Loeb Classical Library](https://www.loebclassics.com)\
[London Review of Books](https://www.lrb.co.uk)\ [London Review of Books](https://www.lrb.co.uk)\
@ -82,27 +100,36 @@
[MIT Sloan Management Review](https://sloanreview.mit.edu)\ [MIT Sloan Management Review](https://sloanreview.mit.edu)\
[MIT Technology Review](https://www.technologyreview.com)\ [MIT Technology Review](https://www.technologyreview.com)\
[Medium](https://www.medium.com)\ [Medium](https://www.medium.com)\
[Medscape](https://www.medscape.com)\
[Mexicon News Daily](https://mexiconewsdaily.com)\ [Mexicon News Daily](https://mexiconewsdaily.com)\
[Mountain View Voice](https://www.mv-voice.com)\ [Mountain View Voice](https://www.mv-voice.com)\
[National Geographic](https://www.nationalgeographic.com)\
[New York Daily News](https://www.nydailynews.com)\
[NRC Handelsblad](https://www.nrc.nl)\ [NRC Handelsblad](https://www.nrc.nl)\
[NT News](https://www.ntnews.com.au)\ [NT News](https://www.ntnews.com.au)\
[National Post](https://www.nationalpost.com)\ [National Post](https://www.nationalpost.com)\
[Neue Zürcher Zeitung](https://www.nzz.ch)\ [Neue Zürcher Zeitung](https://www.nzz.ch)\
[New York Magazine](https://www.nymag.com)\ [New York Magazine](https://www.nymag.com)\
[New Zealand Herald](https://www.nzherald.co.nz)\ [New Zealand Herald](https://www.nzherald.co.nz)\
[Nikkei Asian Review](https://asia.nikkei.com)\
[Orange County Register](https://www.ocregister.com)\ [Orange County Register](https://www.ocregister.com)\
[Orlando Sentinel](https://www.orlandosentinel.com)\ [Orlando Sentinel](https://www.orlandosentinel.com)\
[Palo Alto Online](https://www.paloaltoonline.com)\ [Palo Alto Online](https://www.paloaltoonline.com)\
[Parool](https://www.parool.nl)\ [Parool](https://www.parool.nl)\
[Postimees](https://www.postimees.ee)\
[Quartz](https://qz.com)\ [Quartz](https://qz.com)\
[Quora](https://www.quora.com)\ [Quora](https://www.quora.com)\
[SOFREP](https://sofrep.com)\ [Quotidiani Gelocal](https://quotidiani.gelocal.it)\
[Republic.ru](https://republic.ru)\
[Reuters](https://www.reuters.com)\
[San Diego Union Tribune](https://www.sandiegouniontribune.com)\ [San Diego Union Tribune](https://www.sandiegouniontribune.com)\
[San Francisco Chronicle](https://www.sfchronicle.com)\ [San Francisco Chronicle](https://www.sfchronicle.com)\
[Scientific American](https://www.scientificamerican.com)\ [Scientific American](https://www.scientificamerican.com)\
[Seeking Alpha](https://seekingalpha.com)\ [Seeking Alpha](https://seekingalpha.com)\
[Slate](https://slate.com)\
[SOFREP](https://sofrep.com)\
[Statista](https://www.statista.com)\ [Statista](https://www.statista.com)\
[Star Tribune](https://www.startribune.com)\
[Stuff](https://www.stuff.co.nz)\
[SunSentinel](https://www.sun-sentinel.com)\ [SunSentinel](https://www.sun-sentinel.com)\
[Tech in Asia](https://www.techinasia.com)\ [Tech in Asia](https://www.techinasia.com)\
[Telegraaf](https://www.telegraaf.nl)\ [Telegraaf](https://www.telegraaf.nl)\
@ -111,7 +138,7 @@
[The Age](https://www.theage.com.au)\ [The Age](https://www.theage.com.au)\
[The American Interest](https://www.the-american-interest.com)\ [The American Interest](https://www.the-american-interest.com)\
[The Athletic](https://www.theathletic.com)\ [The Athletic](https://www.theathletic.com)\
[The Athletic UK](https://www.theathletic.co.uk)\ [The Athletic (UK)](https://www.theathletic.co.uk)\
[The Atlantic](https://www.theatlantic.com)\ [The Atlantic](https://www.theatlantic.com)\
[The Australian Financial Review](https://www.afr.com)\ [The Australian Financial Review](https://www.afr.com)\
[The Australian](https://www.theaustralian.com.au)\ [The Australian](https://www.theaustralian.com.au)\
@ -119,6 +146,7 @@
[The Canberra Times](https://www.canberratimes.com.au)\ [The Canberra Times](https://www.canberratimes.com.au)\
[The Courier](https://www.thecourier.com.au)\ [The Courier](https://www.thecourier.com.au)\
[The Courier Mail](https://www.couriermail.com.au)\ [The Courier Mail](https://www.couriermail.com.au)\
[The Cut](https://www.thecut.com)\
[The Daily Telegraph](https://www.dailytelegraph.com.au)\ [The Daily Telegraph](https://www.dailytelegraph.com.au)\
[The Diplomat](https://www.thediplomat.com)\ [The Diplomat](https://www.thediplomat.com)\
[The Economist](https://www.economist.com)\ [The Economist](https://www.economist.com)\
@ -132,10 +160,12 @@
[The Mercury Tasmania](https://www.themercury.com.au)\ [The Mercury Tasmania](https://www.themercury.com.au)\
[The Morning Call](https://www.mcall.com)\ [The Morning Call](https://www.mcall.com)\
[The Nation](https://www.thenation.com)\ [The Nation](https://www.thenation.com)\
[The National](https://www.thenational.scot)\
[The New Statesman](https://www.newstatesman.com)\ [The New Statesman](https://www.newstatesman.com)\
[The New York Times](https://www.nytimes.com)\ [The New York Times](https://www.nytimes.com)\
[The New Yorker](https://www.newyorker.com)\ [The New Yorker](https://www.newyorker.com)\
[The News-Gazette](https://www.news-gazette.com)\ [The News-Gazette](https://www.news-gazette.com)\
[The Olive Press](https://www.theolivepress.es)\
[The Philadelphia Inquirer](https://www.inquirer.com)\ [The Philadelphia Inquirer](https://www.inquirer.com)\
[The Saturday Paper](https://www.thesaturdaypaper.com.au)\ [The Saturday Paper](https://www.thesaturdaypaper.com.au)\
[The Seattle Times](https://www.seattletimes.com)\ [The Seattle Times](https://www.seattletimes.com)\
@ -143,7 +173,6 @@
[The Spectator](https://www.spectator.co.uk)\ [The Spectator](https://www.spectator.co.uk)\
[The Sydney Morning Herald](https://www.smh.com.au)\ [The Sydney Morning Herald](https://www.smh.com.au)\
[The Telegraph](https://www.telegraph.co.uk)\ [The Telegraph](https://www.telegraph.co.uk)\
[The Times](https://www.thetimes.co.uk)\
[The Toronto Star](https://www.thestar.com)\ [The Toronto Star](https://www.thestar.com)\
[The Wall Street Journal](https://www.wsj.com)\ [The Wall Street Journal](https://www.wsj.com)\
[The Washington Post](https://www.washingtonpost.com)\ [The Washington Post](https://www.washingtonpost.com)\
@ -154,34 +183,35 @@
[Trouw](https://www.trouw.nl)\ [Trouw](https://www.trouw.nl)\
[Vanity Fair](https://www.vanityfair.com)\ [Vanity Fair](https://www.vanityfair.com)\
[Vrij Nederland](https://www.vn.nl)\ [Vrij Nederland](https://www.vn.nl)\
[Vulture](https://www.vulture.com)\
[Winston-Salem Journal](https://journalnow.com)\ [Winston-Salem Journal](https://journalnow.com)\
[Wired](https://www.wired.com) [Wired](https://www.wired.com)\
[Zeit Online](https://www.zeit.de)
### Sites with limited number of free articles ### Sites with limited number of free articles
The free article limit can normally be bypassed by removing cookies for the site.* The free article limit can normally be bypassed by removing cookies for the site.*
Install the Cookie Remover extension [for Google Chrome](https://chrome.google.com/webstore/detail/cookie-remover/kcgpggonjhmeaejebeoeomdlohicfhce) or [for Mozilla Firefox](https://addons.mozilla.org/en-US/firefox/addon/cookie-remover/). Please rate it 5 stars if you find it useful. Install the Cookie Remover extension [for Google Chrome](https://chrome.google.com/webstore/detail/cookie-remover/kcgpggonjhmeaejebeoeomdlohicfhce) or [for Mozilla Firefox](https://addons.mozilla.org/en-US/firefox/addon/cookie-remover/). Please rate it 5 stars if you find it useful.
When coming across a paywall click the cookie icon to remove the cookies then refresh the page. When coming across a paywall click the cookie icon to remove the cookies then refresh the page.
_*May not always succeed_ _*May not always succeed_
### New site requests ### New site requests
Only large or major sites will be considered. Only large or major sites will be considered. Usually premium articles cannot be bypassed as they are behind a hard paywall.
Usually premium articles cannot be bypassed as they are behind a hard paywall.
1. Install the uBlock Origin extension if it hasn't been installed already. See if you are still getting a paywall. If so, continue to the next step. 1. Install the uBlock Origin extension if it hasn't been installed already. See if you are still getting a paywall.
2. First search [Issues](https://github.com/iamadamdev/bypass-paywalls-chrome/issues) to see if the site has been requested already. 2. Check if using Cookie Remover ([Google Chrome version](https://chrome.google.com/webstore/detail/cookie-remover/kcgpggonjhmeaejebeoeomdlohicfhce) or [Mozilla Firefox version](https://addons.mozilla.org/en-US/firefox/addon/cookie-remover/)) can bypass the paywall. If not, continue to the next step.
3. Visit an article on the site you want to bypass the paywall for and copy the article title. 3. First search [Issues](https://github.com/iamadamdev/bypass-paywalls-chrome/issues) to see if the site has been requested already.
4. Open up a new incognito window (Ctrl+Shift+N on Chrome) or Private window (Ctrl+Shift+P on Firefox), and paste the article title into Google. 4. Visit an article on the site you want to bypass the paywall for and copy the article title.
5. Click on the same article from the Google search results page. 5. Open up a new incognito window (Ctrl+Shift+N on Chrome) or Private window (Ctrl+Shift+P on Firefox), and paste the article title into Google.
6. If it loads without a paywall you can [submit a request](https://github.com/iamadamdev/bypass-paywalls-chrome/issues/new/choose) and replace the entire template text with the word "Confirmed". Otherwise please do not submit an issue as this extension cannot bypass it either. 6. Click on the same article from the Google search results page.
7. If it loads without a paywall you can [submit a request](https://github.com/iamadamdev/bypass-paywalls-chrome/issues/new/choose) and replace the entire template text with the word "Confirmed". Otherwise please do not submit an issue as this extension cannot bypass it either.
### Troubleshooting ### Troubleshooting
* This extension works best alongside uBlock Origin [for Google Chrome](https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm) or [for Mozilla Firefox](https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/). * This extension works best alongside uBlock Origin [for Google Chrome](https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm) or [for Mozilla Firefox](https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/).
* If a site doesn't work, try turning off uBlock and refreshing. * If a site doesn't work, try turning off uBlock and refreshing.
* Make sure the site is checked under Options (on macOS sometimes the sites get unselected). * Try clearing [cookies](https://chrome.google.com/webstore/detail/cookie-remover/kcgpggonjhmeaejebeoeomdlohicfhce).
* Make sure you're running the latest version of Bypass Paywalls. * Make sure you're running the latest version of Bypass Paywalls.
* If a site is having problems try unchecking "\*General Paywall Bypass\*" in Options. * If a site is having problems try unchecking "\*General Paywall Bypass\*" in Options.
* If none of these work, you can submit an issue [here](https://github.com/iamadamdev/bypass-paywalls-chrome/issues/new/choose). * If none of these work, you can submit an issue [here](https://github.com/iamadamdev/bypass-paywalls-chrome/issues/new/choose).
@ -194,4 +224,15 @@ PRs are welcome.
4. Use [JavaScript Semi-Standard Style linter](https://github.com/standard/semistandard). Don't need to follow it exactly. There will be some errors (e.g., do not use it on `sites.js`). 4. Use [JavaScript Semi-Standard Style linter](https://github.com/standard/semistandard). Don't need to follow it exactly. There will be some errors (e.g., do not use it on `sites.js`).
### Show your support ### Show your support
* I am not asking for donations or anything like that, all I ask is that you star this repo. * Follow me on Twitter [@iamadamdev](https://twitter.com/iamadamdev) for updates.
* I do not ask for donations, all I ask is that you star this repo.
### Disclaimer
* This software is provided for educational purposes only and
is provided "AS IS", without warranty of any kind, express or
implied, including but not limited to the warranties of merchantability,
fitness for a particular purpose and noninfringement. in no event shall the
authors or copyright holders be liable for any claim, damages or other
liability, whether in an action of contract, tort or otherwise, arising from,
out of or in connection with the software or the use or other dealings in the
software.

8
build/build.sh Normal file → Executable file
View File

@ -9,6 +9,12 @@ sed 's/src\/.*\///g' ../manifest.json > temp-chrome-manifest.json
# Strip subdirectories for Firefox manifest # Strip subdirectories for Firefox manifest
sed 's/src\/.*\///g' ../manifest-ff.json > temp-ff-manifest.json sed 's/src\/.*\///g' ../manifest-ff.json > temp-ff-manifest.json
# Fix update url for Chrome manifest
sed -i 's/updates\.xml/src\/updates\/updates.xml/g' temp-chrome-manifest.json
# Fix update url for Firefox manifest
sed -i 's/updates\.json/src\/updates\/updates.json/g' temp-ff-manifest.json
# Strip subdirectories for background.js # Strip subdirectories for background.js
sed 's/src\/.*\///g' ../src/js/background.js > temp-background.js sed 's/src\/.*\///g' ../src/js/background.js > temp-background.js
@ -33,7 +39,7 @@ rm -f $NAME.crx $NAME.xpi
7z a -tzip -mx9 $NAME.crx $CH_FILES 7z a -tzip -mx9 $NAME.crx $CH_FILES
7z rn $NAME.crx temp-chrome-manifest.json manifest.json temp-background.js background.js temp-options.html options.html temp-popup.html popup.html 7z rn $NAME.crx temp-chrome-manifest.json manifest.json temp-background.js background.js temp-options.html options.html temp-popup.html popup.html
# Generate Firefox .xpi extension package (Firefox manifest) # Generate Firefox .xpi extension package (firefox manifest)
7z a -tzip -mx9 $NAME.xpi $FF_FILES 7z a -tzip -mx9 $NAME.xpi $FF_FILES
7z rn $NAME.xpi temp-ff-manifest.json manifest.json temp-background.js background.js temp-options.html options.html temp-popup.html popup.html 7z rn $NAME.xpi temp-ff-manifest.json manifest.json temp-background.js background.js temp-options.html options.html temp-popup.html popup.html

View File

@ -1,6 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg width="1em" height="1em" fill="currentColor" data-reactid=".0.4:$/=10.2.0" preserveAspectRatio="xMidYMid meet" viewBox="0 0 40 40" style="vertical-align:middle;display:inline-block"><g data-reactid=".0.4:$/=10.2.0.0"><path d="m20 12.5h-7.5v7.5h7.5v-7.5z m2.5 12.5v2.5h-12.5v-2.5h12.5z m0-15v12.5h-12.5v-12.5h12.5z m12.5 15v2.5h-10v-2.5h10z m0-5v2.5h-10v-2.5h10z m0-5v2.5h-10v-2.5h10z m0-5v2.5h-10v-2.5h10z m-30 18.75v-18.75h-2.5v18.75q0 0.5075000000000003 0.37124999999999986 0.8787500000000001t0.8787500000000001 0.37124999999999986 0.8787500000000001-0.37124999999999986 0.37124999999999986-0.8787500000000001z m32.5 0v-21.25h-30v21.25q0 0.6449999999999996-0.21499999999999986 1.25h28.965q0.5075000000000003 0 0.8787499999999966-0.37124999999999986t0.3712500000000034-0.8787500000000001z m2.5-23.75v23.75q0 1.5625-1.09375 2.65625t-2.65625 1.09375h-32.5q-1.5625 0-2.65625-1.09375t-1.09375-2.65625v-21.25h5v-2.5h35z" data-reactid=".0.4:$/=10.2.0.0.0"/></g></svg>
<svg fill="currentColor" width="1em" height="1em" viewBox="0 0 40 40" preserveAspectRatio="xMidYMid meet" style="vertical-align:middle;display:inline-block;" data-reactid=".0.4:$/=10.2.0">
<g data-reactid=".0.4:$/=10.2.0.0">
<path d="m20 12.5h-7.5v7.5h7.5v-7.5z m2.5 12.5v2.5h-12.5v-2.5h12.5z m0-15v12.5h-12.5v-12.5h12.5z m12.5 15v2.5h-10v-2.5h10z m0-5v2.5h-10v-2.5h10z m0-5v2.5h-10v-2.5h10z m0-5v2.5h-10v-2.5h10z m-30 18.75v-18.75h-2.5v18.75q0 0.5075000000000003 0.37124999999999986 0.8787500000000001t0.8787500000000001 0.37124999999999986 0.8787500000000001-0.37124999999999986 0.37124999999999986-0.8787500000000001z m32.5 0v-21.25h-30v21.25q0 0.6449999999999996-0.21499999999999986 1.25h28.965q0.5075000000000003 0 0.8787499999999966-0.37124999999999986t0.3712500000000034-0.8787500000000001z m2.5-23.75v23.75q0 1.5625-1.09375 2.65625t-2.65625 1.09375h-32.5q-1.5625 0-2.65625-1.09375t-1.09375-2.65625v-21.25h5v-2.5h35z" data-reactid=".0.4:$/=10.2.0.0.0"></path>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 967 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 KiB

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 132 KiB

86
manifest-ff.json Normal file → Executable file
View File

@ -9,9 +9,9 @@
"content_scripts": [ "content_scripts": [
{ {
"matches": [ "matches": [
"*://*.ad.nl/*",
"*://*.afr.com/*", "*://*.afr.com/*",
"*://*.americanbanker.com/*", "*://*.americanbanker.com/*",
"*://*.ambito.com/*",
"*://*.bizjournals.com/*", "*://*.bizjournals.com/*",
"*://*.bloomberg.com/*", "*://*.bloomberg.com/*",
"*://*.bloombergquint.com/*", "*://*.bloombergquint.com/*",
@ -19,46 +19,72 @@
"*://*.caixinglobal.com/*", "*://*.caixinglobal.com/*",
"*://*.canberratimes.com.au/*", "*://*.canberratimes.com.au/*",
"*://*.economist.com/*", "*://*.economist.com/*",
"*://*.ed.nl/*", "*://*.editorialedomani.it/*",
"*://*.elmercurio.com/*",
"*://*.elpais.com/*", "*://*.elpais.com/*",
"*://*.elperiodico.com/*",
"*://*.elu24.ee/*",
"*://*.estadao.com.br/*",
"*://*.examiner.com.au/*", "*://*.examiner.com.au/*",
"*://*.firstthings.com/*", "*://*.firstthings.com/*",
"*://*.ft.com/*", "*://*.ft.com/*",
"*://*.gelocal.it/*",
"*://*.grubstreet.com/*",
"*://*.haaretz.co.il/*", "*://*.haaretz.co.il/*",
"*://*.humo.be/*",
"*://*.ilmessaggero.it/*",
"*://*.interest.co.nz/*",
"*://*.ledevoir.com/*", "*://*.ledevoir.com/*",
"*://*.leparisien.fr/*", "*://*.leparisien.fr/*",
"*://*.lavoixdunord.fr/*",
"*://*.medium.com/*", "*://*.medium.com/*",
"*://*.medscape.com/*",
"*://*.mexiconewsdaily.com/*", "*://*.mexiconewsdaily.com/*",
"*://*.nytimes.com/*", "*://*.nytimes.com/*",
"*://*.nzherald.co.nz/*", "*://*.nzherald.co.nz/*",
"*://*.parool.nl/*", "*://*.parool.nl/*",
"*://*.postimees.ee/*",
"*://*.repubblica.it/*", "*://*.repubblica.it/*",
"*://*.sfchronicle.com/*", "*://*.sfchronicle.com/*",
"*://*.sloanreview.mit.edu/*", "*://*.sloanreview.mit.edu/*",
"*://*.stuff.co.nz/*",
"*://*.techinasia.com/*", "*://*.techinasia.com/*",
"*://*.telegraaf.nl/*", "*://*.telegraaf.nl/*",
"*://*.the-american-interest.com/*", "*://*.the-american-interest.com/*",
"*://*.the-tls.co.uk/*", "*://*.the-tls.co.uk/*",
"*://*.theadvocate.com.au/*", "*://*.theadvocate.com.au/*",
"*://*.theathletic.com/*",
"*://*.theathletic.co.uk/*",
"*://*.thecourier.com.au/*", "*://*.thecourier.com.au/*",
"*://*.thecut.com/*",
"*://*.theglobeandmail.com/*", "*://*.theglobeandmail.com/*",
"*://*.thehindu.com/*", "*://*.thehindu.com/*",
"*://*.thenational.scot/*",
"*://*.theolivepress.es/*",
"*://*.thestar.com/*", "*://*.thestar.com/*",
"*://*.thewrap.com/*", "*://*.thewrap.com/*",
"*://*.trouw.nl/*", "*://*.trouw.nl/*",
"*://*.volkskrant.nl/*", "*://*.volkskrant.nl/*",
"*://*.vulture.com/*",
"*://*.washingtonpost.com/*", "*://*.washingtonpost.com/*",
"*://*.wsj.com/*", "*://*.wsj.com/*",
"*://*.hbr.org/*" "*://*.hbr.org/*",
"*://*.financialpost.com/*",
"*://*.sueddeutsche.de/*",
"*://*.elmundo.es/*",
"*://*.time.com/*",
"*://*.expansion.com/*",
"*://*.foreignpolicy.com/*",
"*://*.bostonglobe.com/*",
"*://*.theathletic.com/*",
"*://*.theathletic.co.uk/*",
"*://*.hbrchina.org/*",
"*://*.scmp.com/*"
], ],
"js": ["src/js/contentScript.js"] "js": ["src/js/contentScript.js"]
} }
], ],
"applications": { "applications": {
"gecko": { "gecko": {
"id": "bypasspaywalls@bypasspaywalls.weebly.com", "id": "bypasspaywalls@bypasspaywalls",
"update_url": "https://raw.githubusercontent.com/iamadamdev/bypass-paywalls-chrome/master/src/updates/updates.json" "update_url": "https://raw.githubusercontent.com/iamadamdev/bypass-paywalls-chrome/master/src/updates/updates.json"
} }
}, },
@ -95,18 +121,18 @@
"*://*.outbrain.com/*", "*://*.outbrain.com/*",
"*://*.piano.io/*", "*://*.piano.io/*",
"*://*.poool.fr/*", "*://*.poool.fr/*",
"*://*.qiota.com/*",
"*://*.tinypass.com/*", "*://*.tinypass.com/*",
"*://*.ad.nl/*",
"*://*.adelaidenow.com.au/*", "*://*.adelaidenow.com.au/*",
"*://*.adweek.com/*", "*://*.adweek.com/*",
"*://*.afr.com/*", "*://*.afr.com/*",
"*://*.asia.nikkei.com/*",
"*://*.baltimoresun.com/*", "*://*.baltimoresun.com/*",
"*://*.barrons.com/*", "*://*.barrons.com/*",
"*://*.bizjournals.com/*", "*://*.bizjournals.com/*",
"*://*.bloomberg.com/*", "*://*.bloomberg.com/*",
"*://*.bloombergquint.com/*", "*://*.bloombergquint.com/*",
"*://*.bostonglobe.com/*", "*://*.bostonglobe.com/*",
"*://*.brisbanetimes.com.au/*",
"*://*.britannica.com/*", "*://*.britannica.com/*",
"*://*.businessinsider.com/*", "*://*.businessinsider.com/*",
"*://*.caixinglobal.com/*", "*://*.caixinglobal.com/*",
@ -119,11 +145,13 @@
"*://*.couriermail.com.au/*", "*://*.couriermail.com.au/*",
"*://*.dailypress.com/*", "*://*.dailypress.com/*",
"*://*.dailytelegraph.com.au/*", "*://*.dailytelegraph.com.au/*",
"*://*.delfi.ee/*",
"*://*.demorgen.be/*", "*://*.demorgen.be/*",
"*://*.denverpost.com/*", "*://*.denverpost.com/*",
"*://*.dynamed.com/*", "*://*.dynamed.com/*",
"*://*.economist.com/*", "*://*.economist.com/*",
"*://*.ed.nl/*", "*://*.elmercurio.com/*",
"*://*.elu24.ee/*",
"*://*.examiner.com.au/*", "*://*.examiner.com.au/*",
"*://*.fd.nl/*", "*://*.fd.nl/*",
"*://*.fnlondon.com/*", "*://*.fnlondon.com/*",
@ -131,17 +159,19 @@
"*://*.fortune.com/*", "*://*.fortune.com/*",
"*://*.ft.com/*", "*://*.ft.com/*",
"*://*.genomeweb.com/*", "*://*.genomeweb.com/*",
"*://*.gelocal.it/*",
"*://*.glassdoor.com/*", "*://*.glassdoor.com/*",
"*://*.globes.co.il/*",
"*://*.groene.nl/*", "*://*.groene.nl/*",
"*://*.haaretz.co.il/*", "*://*.haaretz.co.il/*",
"*://*.haaretz.com/*", "*://*.haaretz.com/*",
"*://*.handelsblatt.com/*",
"*://*.harpers.org/*", "*://*.harpers.org/*",
"*://*.hbr.org/*", "*://*.hbr.org/*",
"*://*.heraldsun.com.au/*", "*://*.heraldsun.com.au/*",
"*://*.ilmanifesto.it/*", "*://*.ilmanifesto.it/*",
"*://*.inc.com/*", "*://*.inc.com/*",
"*://*.inquirer.com/*", "*://*.inquirer.com/*",
"*://*.interest.co.nz/*",
"*://*.investorschronicle.co.uk/*", "*://*.investorschronicle.co.uk/*",
"*://*.irishtimes.com/*", "*://*.irishtimes.com/*",
"*://*.japantimes.co.jp/*", "*://*.japantimes.co.jp/*",
@ -152,6 +182,7 @@
"*://*.lastampa.it/*", "*://*.lastampa.it/*",
"*://*.latercera.com/*", "*://*.latercera.com/*",
"*://*.latimes.com/*", "*://*.latimes.com/*",
"*://*.lavoixdunord.fr/*",
"*://*.lecho.be/*", "*://*.lecho.be/*",
"*://*.leparisien.fr/*", "*://*.leparisien.fr/*",
"*://*.lesechos.fr/*", "*://*.lesechos.fr/*",
@ -162,12 +193,14 @@
"*://*.medscape.com/*", "*://*.medscape.com/*",
"*://*.mercurynews.com/*", "*://*.mercurynews.com/*",
"*://*.mv-voice.com/*", "*://*.mv-voice.com/*",
"*://*.nationalgeographic.com",
"*://*.nationalpost.com/*", "*://*.nationalpost.com/*",
"*://*.news-gazette.com/*", "*://*.news-gazette.com/*",
"*://*.newstatesman.com/*", "*://*.newstatesman.com/*",
"*://*.newyorker.com/*", "*://*.newyorker.com/*",
"*://*.nrc.nl/*", "*://*.nrc.nl/*",
"*://*.ntnews.com.au/*", "*://*.ntnews.com.au/*",
"*://*.nydailynews.com/*",
"*://*.nymag.com/*", "*://*.nymag.com/*",
"*://*.nytimes.com/*", "*://*.nytimes.com/*",
"*://*.nzherald.co.nz/*", "*://*.nzherald.co.nz/*",
@ -175,6 +208,7 @@
"*://*.orlandosentinel.com/*", "*://*.orlandosentinel.com/*",
"*://*.paloaltoonline.com/*", "*://*.paloaltoonline.com/*",
"*://*.parool.nl/*", "*://*.parool.nl/*",
"*://*.postimees.ee/*",
"*://*.quora.com/*", "*://*.quora.com/*",
"*://*.qz.com/*", "*://*.qz.com/*",
"*://*.repubblica.it/*", "*://*.repubblica.it/*",
@ -182,11 +216,14 @@
"*://*.scientificamerican.com/*", "*://*.scientificamerican.com/*",
"*://*.seattletimes.com/*", "*://*.seattletimes.com/*",
"*://*.seekingalpha.com/*", "*://*.seekingalpha.com/*",
"*://*.slate.com/*",
"*://*.smh.com.au/*", "*://*.smh.com.au/*",
"*://*.sofrep.com/*", "*://*.sofrep.com/*",
"*://*.spectator.co.uk/*", "*://*.spectator.co.uk/*",
"*://*.spectator.com.au/*", "*://*.spectator.com.au/*",
"*://*.speld.nl/",
"*://*.statista.com/*", "*://*.statista.com/*",
"*://*.stuff.co.nz/*",
"*://*.sun-sentinel.com/*", "*://*.sun-sentinel.com/*",
"*://*.techinasia.com/*", "*://*.techinasia.com/*",
"*://*.technologyreview.com/*", "*://*.technologyreview.com/*",
@ -195,8 +232,6 @@
"*://*.the-tls.co.uk/*", "*://*.the-tls.co.uk/*",
"*://*.theadvocate.com.au/*", "*://*.theadvocate.com.au/*",
"*://*.theage.com.au/*", "*://*.theage.com.au/*",
"*://*.theathletic.com/*",
"*://*.theathletic.co.uk/*",
"*://*.theatlantic.com/*", "*://*.theatlantic.com/*",
"*://*.theaustralian.com.au/*", "*://*.theaustralian.com.au/*",
"*://*.thediplomat.com/*", "*://*.thediplomat.com/*",
@ -206,9 +241,10 @@
"*://*.themarker.com/*", "*://*.themarker.com/*",
"*://*.themercury.com.au/*", "*://*.themercury.com.au/*",
"*://*.thenation.com/*", "*://*.thenation.com/*",
"*://*.thenational.scot/*",
"*://*.theolivepress.es/*",
"*://*.thesaturdaypaper.com.au/*", "*://*.thesaturdaypaper.com.au/*",
"*://*.thestar.com/*", "*://*.thestar.com/*",
"*://*.thetimes.co.uk/*",
"*://*.thewrap.com/*", "*://*.thewrap.com/*",
"*://*.tijd.be/*", "*://*.tijd.be/*",
"*://*.towardsdatascience.com/*", "*://*.towardsdatascience.com/*",
@ -219,7 +255,27 @@
"*://*.washingtonpost.com/*", "*://*.washingtonpost.com/*",
"*://*.wired.com/*", "*://*.wired.com/*",
"*://*.wsj.com/*", "*://*.wsj.com/*",
"*://*.nzz.ch/*" "*://*.nzz.ch/*",
"*://*.republic.ru/*",
"*://*.historyextra.com/*",
"*://*.netdna-ssl.com/*",
"*://*.startribune.com/*",
"*://*.df.cl/*",
"*://*.financialpost.com/*",
"*://*.ambito/*",
"*://*.sueddeutsche.de/*",
"*://*.spectator.us/*",
"*://*.humo.be/*",
"*://*.elmundo.es/*",
"*://*.time.com/*",
"*://*.zeit.de/*",
"*://*.ampproject.org/*",
"*://*.reuters.com/*",
"*://*.expansion.com/*",
"*://*.theathletic.com/*",
"*://*.theathletic.co.uk/*",
"*://*.hbrchina.org/*",
"*://*.scmp.com/*"
], ],
"version": "1.7.2" "version": "1.8.1"
} }

View File

@ -24,7 +24,7 @@
"update_url": "https://raw.githubusercontent.com/iamadamdev/bypass-paywalls-chrome/master/src/updates/updates.xml", "update_url": "https://raw.githubusercontent.com/iamadamdev/bypass-paywalls-chrome/master/src/updates/updates.xml",
"short_name": "Bypass Paywall", "short_name": "Bypass Paywall",
"options_ui": { "options_ui": {
"chrome_style": true, "chrome_style": false,
"page": "src/html/options.html" "page": "src/html/options.html"
}, },
"permissions": [ "permissions": [
@ -34,5 +34,5 @@
"webRequestBlocking", "webRequestBlocking",
"<all_urls>" "<all_urls>"
], ],
"version": "1.7.2" "version": "1.8.1"
} }

View File

@ -4,35 +4,144 @@
<meta charset="utf-8"> <meta charset="utf-8">
<title>Bypass Paywalls Options</title> <title>Bypass Paywalls Options</title>
<style> <style>
html {
min-width: 350px;
max-width: 400px;
}
body {
min-width: 350px;
max-width: 400px;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
font-family: sans-serif;
}
#bypass_sites label { #bypass_sites label {
display: block; display: block;
} }
body {
width:350px; #tabs {
height:600px; display: none;
background-color: #ccc;
}
#tabs button {
flex-grow: 1;
background: #ddd;
text-shadow: none;
margin: 0;
padding: 0;
border: none;
padding-bottom: 3px;
border-bottom: 1px solid #666;
border-right: solid 1px #ccc;
border-radius: 0;
}
#tabs button:last-of-type {
border-right: none;
}
#tabs button.active {
background-color: #fff;
color: black;
padding-bottom: 0;
border-bottom: solid blue 4px;
}
.tab-cell {
height: 2em;
}
.pane {
height: 520px;
display: none;
flex-direction: column;
}
p {
margin: 0;
padding: .5em 0;
line-height: 1.3em;
}
#select-all {
border-top: solid 1px #aaa;
background: #eee;
padding: 4px 0;
}
#bypass_sites {
border-bottom: solid 1px #aaa;
flex-grow: 1;
overflow-y: auto;
padding-bottom: 4px;
}
input[type=checkbox] {
margin: 0 .5em;
}
.pane, #controls {
padding: 0 1em;
}
#controls {
align-self: flex-end;
padding: 1em;
}
.pane.active {
display: flex;
}
#custom textarea {
flex-grow: 1;
}
body.customSitesEnabled #tabs {
display: flex;
}
#status {
display: inline-block;
margin-right: 1em;
} }
</style> </style>
</head> </head>
<body> <body>
<div> <div id="tabs">
Selected sites will have their cookies cleared and referer set to Google. You should <button data-pane="sites" class="tab-cell">Supported Sites</button>
uncheck sites you are logged in to otherwise you will be logged out on every visit. <button data-pane="custom" class="tab-cell">Custom Sites</button>
</div> </div>
<br/>
<div id='bypass_sites'> <div id="sites" class="pane">
<p>
Selected sites will have their cookies cleared and referer set to Google. You should
uncheck sites you are logged in to otherwise you will be logged out on every visit.
</p>
<label id="select-all"><input checked type="checkbox"><em>Select all/none</em></label>
<div id='bypass_sites'></div>
</div> </div>
<br/>
<div id="status"></div> <div id="custom" class="pane">
<div id="error"></div> <p>
<br/> 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.
<span style='float:left;'> </p>
<p>
<span style="color: #900; font-weight: bold">This feature is provided "as is" and will not work with many sites.</span>
Do not report issues with sites entered here.
</p>
<textarea id="custom_sites" placeholder="e.g.,&#10;campaignlive.co.uk&#10;cincinnati.com&#10;hk.appledaily.com&#10;" /></textarea>
</div>
<div id="controls">
<div id="status"></div>
<button id="save">Save</button> <button id="save">Save</button>
</span> </div>
<span style='float:right;'>
<button id="select-all">Select all</button>
<button id="select-none">Select none</button>
</span>
<br/><br/>
<script src="../js/common.js"></script> <script src="../js/common.js"></script>
<script src="../js/sites.js"></script> <script src="../js/sites.js"></script>
<script src="../js/options.js"></script> <script src="../js/options.js"></script>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 654 B

After

Width:  |  Height:  |  Size: 628 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 693 B

After

Width:  |  Height:  |  Size: 609 B

361
src/js/background.js Normal file → Executable file
View File

@ -1,30 +1,34 @@
'use strict'; 'use strict';
const restrictions = { const restrictions = {
'barrons.com': /.+barrons\.com\/articles\/.+/, 'adweek.com': /^((?!\.adweek\.com\/(.+\/)?(amp|agencyspy|tvnewser|tvspy)\/).)*$/,
'wsj.com': /(.+wsj\.com\/(articles|graphics)\/.+|.+blogs\.wsj\.com\/.+)/ 'barrons.com': /.+\.barrons\.com\/(amp\/)?article(s)?\/.+/,
'economist.com': /.+economist\.com\/.+\/\d{1,4}\/\d{1,2}\/\d{2}\/.+/,
'seekingalpha.com': /.+seekingalpha\.com\/article\/.+/,
'techinasia.com': /\.techinasia\.com\/.+/,
'ft.com': /.+\.ft.com\/content\//,
'nytimes.com': /^((?!\/timesmachine\.nytimes\.com\/).)*$/,
'theatlantic.com': /^((?!\/newsletters\.theatlantic\.com\/).)*$/,
'bloomberg.com': /^((?!\.bloomberg\.com\/news\/terminal\/).)*$/
}; };
// Don't remove cookies before page load // Don't remove cookies before page load
const allowCookies = [ const allowCookies = [
'ad.nl', 'brisbanetimes.com.au',
'asia.nikkei.com',
'canberratimes.com.au', 'canberratimes.com.au',
'cen.acs.org', 'cen.acs.org',
'chicagobusiness.com',
'demorgen.be', 'demorgen.be',
'denverpost.com', 'denverpost.com',
'economist.com',
'ed.nl',
'examiner.com.au', 'examiner.com.au',
'ft.com', 'gelocal.it',
'grubstreet.com',
'harpers.org', 'harpers.org',
'hbr.org', 'hbr.org',
'humo.be',
'lesechos.fr', 'lesechos.fr',
'lrb.co.uk', 'lrb.co.uk',
'medium.com', 'medium.com',
'mercurynews.com', 'mercurynews.com',
'mexiconewsdaily.com',
'newstatesman.com', 'newstatesman.com',
'nrc.nl', 'nrc.nl',
'nymag.com', 'nymag.com',
@ -36,46 +40,56 @@ const allowCookies = [
'seekingalpha.com', 'seekingalpha.com',
'sofrep.com', 'sofrep.com',
'spectator.co.uk', 'spectator.co.uk',
'speld.nl',
'techinasia.com', 'techinasia.com',
'telegraaf.nl', 'telegraaf.nl',
'the-american-interest.com', 'the-american-interest.com',
'theadvocate.com.au', 'theadvocate.com.au',
'theage.com.au', 'theage.com.au',
'theathletic.com',
'theathletic.co.uk',
'theatlantic.com', 'theatlantic.com',
'theaustralian.com.au', 'theaustralian.com.au',
'thecut.com',
'thediplomat.com', 'thediplomat.com',
'themercury.com.au', 'themercury.com.au',
'thestar.com',
'towardsdatascience.com', 'towardsdatascience.com',
'trouw.nl', 'trouw.nl',
'vn.nl', 'vn.nl',
'volkskrant.nl', 'volkskrant.nl',
'vulture.com',
'nzz.ch',
'thehindu.com',
'financialpost.com',
'haaretz.co.il',
'haaretz.com',
'themarker.com',
'sueddeutsche.de',
'gelocal.it',
'elmundo.es',
'time.com',
'zeit.de',
'expansion.com',
'dailytelegraph.com.au',
'washingtonpost.com', 'washingtonpost.com',
'wired.com' 'nytimes.com'
]; ];
// Removes cookies after page load // Removes cookies after page load
const removeCookies = [ const removeCookies = [
'ad.nl', 'bloomberg.com',
'asia.nikkei.com',
'bloombergquint.com', 'bloombergquint.com',
'brisbanetimes.com.au',
'canberratimes.com.au', 'canberratimes.com.au',
'cen.acs.org', 'cen.acs.org',
'chicagobusiness.com',
'demorgen.be', 'demorgen.be',
'denverpost.com', 'denverpost.com',
'economist.com',
'ed.nl',
'examiner.com.au', 'examiner.com.au',
'ft.com', 'globes.co.il',
'grubstreet.com',
'harpers.org', 'harpers.org',
'hbr.org', 'hbr.org',
'humo.be',
'lesechos.fr', 'lesechos.fr',
'medium.com',
'mercurynews.com', 'mercurynews.com',
'mexiconewsdaily.com',
'newstatesman.com', 'newstatesman.com',
'nrc.nl', 'nrc.nl',
'nymag.com', 'nymag.com',
@ -85,34 +99,40 @@ const removeCookies = [
'seattletimes.com', 'seattletimes.com',
'sofrep.com', 'sofrep.com',
'spectator.co.uk', 'spectator.co.uk',
'speld.nl',
'telegraaf.nl', 'telegraaf.nl',
'theadvocate.com.au', 'theadvocate.com.au',
'theage.com.au', 'theage.com.au',
'theatlantic.com', 'theatlantic.com',
'thecut.com',
'thediplomat.com', 'thediplomat.com',
'thestar.com',
'towardsdatascience.com', 'towardsdatascience.com',
'vn.nl', 'vn.nl',
'vulture.com',
'wsj.com',
'medium.com',
'washingtonpost.com', 'washingtonpost.com',
'wired.com', 'japantimes.co.jp'
'wsj.com'
]; ];
// Contains remove cookie sites above plus any custom sites
let _removeCookies = removeCookies;
// select specific cookie(s) to hold from removeCookies domains // select specific cookie(s) to hold from removeCookies domains
const removeCookiesSelectHold = { const removeCookiesSelectHold = {
'qz.com': ['gdpr'], 'qz.com': ['gdpr'],
'washingtonpost.com': ['wp_gdpr'], 'wsj.com': ['wsjregion'],
'wsj.com': ['wsjregion'] 'seattletimes.com': ['st_newsletter_splash_seen']
}; };
// select only specific cookie(s) to drop from removeCookies domains // select only specific cookie(s) to drop from removeCookies domains
const removeCookiesSelectDrop = { const removeCookiesSelectDrop = {
'ad.nl': ['temptationTrackingId'], 'ambito.com': ['TDNotesRead'],
'ed.nl': ['temptationTrackingId'],
'demorgen.be': ['TID_ID'], 'demorgen.be': ['TID_ID'],
'economist.com': ['rvuuid'],
'fd.nl': ['socialread'], 'fd.nl': ['socialread'],
'nrc.nl': ['counter'] 'humo.be': ['TID_ID'],
'nrc.nl': ['counter'],
'speld.nl': ['speld-paywall']
}; };
// Override User-Agent with Googlebot // Override User-Agent with Googlebot
@ -120,27 +140,40 @@ const useGoogleBotSites = [
'adelaidenow.com.au', 'adelaidenow.com.au',
'barrons.com', 'barrons.com',
'couriermail.com.au', 'couriermail.com.au',
'dailytelegraph.com.au',
'fd.nl', 'fd.nl',
'genomeweb.com', 'genomeweb.com',
'haaretz.co.il',
'haaretz.com',
'heraldsun.com.au', 'heraldsun.com.au',
'mexiconewsdaily.com', 'lavoixdunord.fr',
'ntnews.com.au', 'ntnews.com.au',
'quora.com', 'quora.com',
'seekingalpha.com', 'seekingalpha.com',
'telegraph.co.uk', 'telegraph.co.uk',
'theathletic.com',
'theathletic.co.uk',
'theaustralian.com.au', 'theaustralian.com.au',
'themarker.com',
'themercury.com.au', 'themercury.com.au',
'thetimes.co.uk', 'thenational.scot',
'wsj.com', 'wsj.com',
'kansascity.com' 'kansascity.com',
'republic.ru',
'nzz.ch',
'df.cl',
'ft.com',
'wired.com',
'zeit.de',
'nytimes.com'
]; ];
// Override User-Agent with Bingbot
const useBingBot = [];
const useMsnBot = [
'haaretz.co.il',
'haaretz.com',
'themarker.com'
];
// Contains google bot sites above plus any custom sites
let _useGoogleBotSites = useGoogleBotSites;
function setDefaultOptions () { function setDefaultOptions () {
extensionApi.storage.sync.set({ extensionApi.storage.sync.set({
sites: defaultSites sites: defaultSites
@ -155,38 +188,77 @@ const blockedRegexes = {
'afr.com': /afr\.com\/assets\/vendorsReactRedux_client.+\.js/, 'afr.com': /afr\.com\/assets\/vendorsReactRedux_client.+\.js/,
'businessinsider.com': /(.+\.tinypass\.com\/.+|cdn\.onesignal\.com\/sdks\/.+\.js)/, 'businessinsider.com': /(.+\.tinypass\.com\/.+|cdn\.onesignal\.com\/sdks\/.+\.js)/,
'chicagotribune.com': /.+:\/\/.+\.tribdss\.com\//, 'chicagotribune.com': /.+:\/\/.+\.tribdss\.com\//,
'economist.com': /(.+\.tinypass\.com\/.+|economist\.com\/_next\/static\/runtime\/main.+\.js)/, 'economist.com': /(.+\.tinypass\.com\/.+|economist\.com\/engassets\/_next\/static\/chunks\/framework.+\.js)/,
'foreignpolicy.com': /.+\.tinypass\.com\/.+/, 'editorialedomani.it': /(js\.pelcro\.com\/.+|editorialedomani.it\/pelcro\.js)/,
'foreignpolicy.com': /(cdn\.cxense\.com\/|\.tinypass\.com\/)/,
'fortune.com': /.+\.tinypass\.com\/.+/,
'haaretz.co.il': /haaretz\.co\.il\/htz\/js\/inter\.js/, 'haaretz.co.il': /haaretz\.co\.il\/htz\/js\/inter\.js/,
'haaretz.com': /haaretz\.com\/hdc\/web\/js\/minified\/header-scripts-int.js.+/, 'haaretz.com': /haaretz\.com\/hdc\/web\/js\/minified\/header-scripts-int.js.+/,
'inquirer.com': /.+\.tinypass\.com\/.+/, 'inquirer.com': /.+\.tinypass\.com\/.+/,
'lastampa.it': /.+\.repstatic\.it\/minify\/sites\/lastampa\/.+\/config\.cache\.php\?name=social_js/, 'lastampa.it': /.+\.repstatic\.it\/minify\/sites\/lastampa\/.+\/config\.cache\.php\?name=social_js/,
'lrb.co.uk': /.+\.tinypass\.com\/.+/, 'lrb.co.uk': /.+\.tinypass\.com\/.+/,
'nzherald.co.nz': /nzherald\.co\.nz\/.+\/headjs\/.+\.js/, 'medscape.com': /.+\.medscapestatic\.com\/.*medscape-library\.js/,
'interest.co.nz': /(.+\.presspatron\.com.+|.+interest\.co\.nz.+pp-ablock-banner\.js)/,
'repubblica.it': /scripts\.repubblica\.it\/pw\/pw\.js.+/, 'repubblica.it': /scripts\.repubblica\.it\/pw\/pw\.js.+/,
'spectator.co.uk': /.+\.tinypass\.com\/.+/, 'spectator.co.uk': /.+\.tinypass\.com\/.+/,
'spectator.com.au': /.+\.tinypass\.com\/.+/, 'spectator.com.au': /.+\.tinypass\.com\/.+/,
'telegraph.co.uk': /.+telegraph\.co\.uk.+martech.+/,
'thecourier.com.au': /.+cdn-au\.piano\.io\/api\/tinypass.+\.js/, 'thecourier.com.au': /.+cdn-au\.piano\.io\/api\/tinypass.+\.js/,
'theglobeandmail.com': /theglobeandmail\.com\/pb\/resources\/scripts\/build\/chunk-bootstraps\/.+\.js/,
'thenation.com': /thenation\.com\/.+\/paywall-script\.php/, 'thenation.com': /thenation\.com\/.+\/paywall-script\.php/,
'thewrap.com': /thewrap\.com\/.+\/wallkit\.js/ 'thenational.scot': /(.+\.tinypass\.com\/.+|.+thenational\.scot.+omniture\.js|.+thenational\.scot.+responsive-sync.+)/,
}; 'thewrap.com': /thewrap\.com\/.+\/wallkit\.js/,
'wsj.com': /cdn\.ampproject\.org\/v\d\/amp-access-.+\.js/,
// Allowed external scripts 'historyextra.com': /.+\.evolok\.net\/.+\/authorize\/.+/,
const allowedRegexes = { 'barrons.com': /cdn\.ampproject\.org\/v\d\/amp-access-.+\.js/,
'economist.com': /infographics.economist.com\/utils\/ai2html-resizer.*\.js/ 'irishtimes.com': /cdn\.ampproject\.org\/v\d\/amp-access-.+\.js/,
'elmercurio.com': /(merreader\.emol\.cl\/assets\/js\/merPramV2.js|staticmer\.emol\.cl\/js\/inversiones\/PramModal.+\.js)/,
'sloanreview.mit.edu': /(.+\.tinypass\.com\/.+|.+\.netdna-ssl\.com\/wp-content\/themes\/smr\/assets\/js\/libs\/welcome-ad\.js)/,
'latercera.com': /.+\.cxense\.com\/+/,
'lesechos.fr': /.+\.tinypass\.com\/.+/,
'thehindu.com': /ajax\.cloudflare\.com\/cdn-cgi\/scripts\/.+\/cloudflare-static\/rocket-loader\.min\.js/,
'technologyreview.com': /.+\.blueconic\.net\/.+/,
'spectator.us': /(cdn\.cxense\.com\/.+|\.tinypass\.com\/.+)/,
'gelocal.it': /(\.repstatic\.it\/minify\/sites\/gelocal\/.+\/config\.cache(_\d)?\.php|cdn\.ampproject\.org\/v\d\/amp-(access|ad)-.+\.js)/,
'elmundo.es': /cdn\.ampproject\.org\/v\d\/amp-(access|ad|consent)-.+\.js/,
'time.com': /\/time\.com\/dist\/meter-wall-client-js\..+\.js/,
'thestar.com': /\.com\/api\/overlaydata/,
'elpais.com': /(\.epimg\.net\/js\/.+\/(noticia|user)\.min\.js|\/elpais\.com\/arc\/subs\/p\.min\.js|cdn\.ampproject\.org\/v\d\/amp-(access|(sticky-)?ad|consent)-.+\.js)/,
'expansion.com': /cdn\.ampproject\.org\/v\d\/amp-(access|ad|consent)-.+\.js/,
'chicagobusiness.com': /(\.tinypass\.com\/|\.chicagobusiness\.com\/.+\/js\/js_.+\.js)/,
'dailytelegraph.com.au': /cdn\.ampproject\.org\/v\d\/amp-(access|ad|consent)-.+\.js/,
'theglobeandmail.com': /(\.theglobeandmail\.com\/pf\/dist\/engine\/react\.js|smartwall\.theglobeandmail\.com\/)/,
'nytimes.com': /(\.nytimes\.com\/meter\.js|mwcm\.nyt\.com\/.+\.js|cooking\.nytimes\.com\/api\/.+\/access)/,
'latimes.com': /\.californiatimes\.com\/meteringjs/,
'theathletic.com': /cdn\.ampproject\.org\/v\d\/amp-(access|subscriptions)-.+\.js/,
'japantimes.co.jp': /cdn\.cxense\.com\//,
'scmp.com': /(\.tinypass\.com\/|cdn\.ampproject\.org\/v\d\/amp-access-.+\.js)/,
'ilmessaggero.it': /(utils\.cedsdigital\.it\/js\/PaywallMeter\.js)/,
'washingtonpost.com': /\.washingtonpost\.com\/tetro\/metering\/evaluate/,
'theatlantic.com': /cdn\.theatlantic\.com\/_next\/static\/chunks\/pages\/.+\/archive\//,
'bloomberg.com': /(\.cm\.bloomberg\.com\/|assets\.bwbx\.io\/s\d\/javelin\/.+\/transporter\/)/
}; };
const userAgentDesktop = 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'; const userAgentDesktop = 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)';
const userAgentMobile = 'Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible ; Googlebot/2.1 ; +http://www.google.com/bot.html)'; const userAgentMobile = 'Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible ; Googlebot/2.1 ; +http://www.google.com/bot.html)';
const userAgentDesktopBingBot = 'Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)';
const userAgentMobileBingBot = 'Chrome/80.0.3987.92 Mobile Safari/537.36 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)';
const userAgentMsnBot = 'msnbot/2.0b (+http://search.msn.com/msnbot.htm)';
let enabledSites = []; let enabledSites = [];
// Get the enabled sites // Get the enabled sites
extensionApi.storage.sync.get({ extensionApi.storage.sync.get({
sites: {} sites: {},
customSites: []
}, function (items) { }, function (items) {
enabledSites = Object.values(items.sites); enabledSites = Object.values(items.sites).concat(items.customSites);
// Use googlebot UA for custom sites
_useGoogleBotSites = useGoogleBotSites.concat(items.customSites);
// Remove cookies for custom sites
_removeCookies = removeCookies.concat(items.customSites);
if (extensionApi === chrome) { if (extensionApi === chrome) {
initGA(); initGA();
} }
@ -194,7 +266,7 @@ extensionApi.storage.sync.get({
// Listen for changes to options // Listen for changes to options
extensionApi.storage.onChanged.addListener(function (changes, namespace) { extensionApi.storage.onChanged.addListener(function (changes, namespace) {
if (changes.sites) { if (changes.sites && changes.sites.newValue) {
const sites = changes.sites.newValue; const sites = changes.sites.newValue;
enabledSites = Object.values(sites); enabledSites = Object.values(sites);
} }
@ -216,12 +288,9 @@ extensionApi.tabs.onActivated.addListener(function (activeInfo) {
extensionApi.tabs.get(activeInfo.tabId, updateBadge); extensionApi.tabs.get(activeInfo.tabId, updateBadge);
}); });
let cachedBadgeText = '';
function updateBadge (activeTab) { function updateBadge (activeTab) {
if (!activeTab) { return; } if (extensionApi.runtime.lastError || !activeTab) { return; }
const badgeText = getBadgeText(activeTab.url); const badgeText = getBadgeText(activeTab.url);
if (cachedBadgeText === badgeText) { return; }
cachedBadgeText = badgeText;
extensionApi.browserAction.setBadgeBackgroundColor({ color: 'blue' }); extensionApi.browserAction.setBadgeBackgroundColor({ color: 'blue' });
extensionApi.browserAction.setBadgeText({ text: badgeText }); extensionApi.browserAction.setBadgeText({ text: badgeText });
} }
@ -230,16 +299,41 @@ function getBadgeText (currentUrl) {
return currentUrl && isSiteEnabled({ url: currentUrl }) ? 'ON' : ''; return currentUrl && isSiteEnabled({ url: currentUrl }) ? 'ON' : '';
} }
// Disable javascript for these sites // AMP redirect for dailytelegraph.com.au
extensionApi.webRequest.onBeforeRequest.addListener(function (details) { extensionApi.webRequest.onBeforeRequest.addListener(function (details) {
if (!isSiteEnabled(details) && !enabledSites.includes('generalpaywallbypass')) { if (!isSiteEnabled(details)) {
return; return;
} }
// Don't block allowed scripts const updatedUrl = decodeURIComponent(details.url.split('&dest=')[1].split('&')[0]).replace('www.', 'amp.');
for (const domain in allowedRegexes) { return { redirectUrl: updatedUrl };
if (isSameDomain(details.url, domain) && details.url.match(allowedRegexes[domain])) { },
return; { urls: ['*://www.dailytelegraph.com.au/subscribe/*'], types: ['main_frame'] },
} ['blocking']
);
// nytimes.com
extensionApi.webRequest.onHeadersReceived.addListener(function (details) {
if (!isSiteEnabled(details)) {
return;
}
let headers = details.responseHeaders;
headers = headers.map(function (header) {
if (header.name === 'x-frame-options') { header.value = 'SAMEORIGIN'; }
return header;
});
return {
responseHeaders: headers
};
}, {
urls: ['*://*.nytimes.com/*']
},
['blocking', 'responseHeaders']);
// Disable javascript for these sites
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 }; return { cancel: true };
}, },
@ -249,7 +343,7 @@ extensionApi.webRequest.onBeforeRequest.addListener(function (details) {
'*://*.outbrain.com/*', '*://*.outbrain.com/*',
'*://*.piano.io/*', '*://*.piano.io/*',
'*://*.poool.fr/*', '*://*.poool.fr/*',
'*://*.economist.com/*', '*://*.qiota.com/*',
'*://*.tinypass.com/*' '*://*.tinypass.com/*'
], ],
types: ['script'] types: ['script']
@ -263,18 +357,25 @@ if (Object.prototype.hasOwnProperty.call(extensionApi.webRequest.OnBeforeSendHea
} }
extensionApi.webRequest.onBeforeSendHeaders.addListener(function (details) { extensionApi.webRequest.onBeforeSendHeaders.addListener(function (details) {
if (!isSiteEnabled(details)) { let requestHeaders = details.requestHeaders;
return;
let headerReferer = '';
for (const n in requestHeaders) {
if (requestHeaders[n].name.toLowerCase() === 'referer') {
headerReferer = requestHeaders[n].value;
continue;
}
} }
let requestHeaders = details.requestHeaders;
// check for blocked regular expression: domain enabled, match regex, block on an internal or external regex // check for blocked regular expression: domain enabled, match regex, block on an internal or external regex
for (const domain in blockedRegexes) { const blockedDomains = Object.keys(blockedRegexes);
if (isSiteEnabled({ url: domain }) && details.url.match(blockedRegexes[domain])) { const domain = matchUrlDomain(blockedDomains, headerReferer);
if (isSameDomain(details.url, domain)) { if (domain && details.url.match(blockedRegexes[domain]) && isSiteEnabled({ url: headerReferer })) {
return { cancel: true }; return { cancel: true };
} }
}
if (!isSiteEnabled(details) && !matchUrlDomain('cdn.ampproject.org', details.url)) {
return;
} }
const tabId = details.tabId; const tabId = details.tabId;
@ -288,8 +389,10 @@ extensionApi.webRequest.onBeforeSendHeaders.addListener(function (details) {
// this fixes images not being loaded on cooking.nytimes.com main page // this fixes images not being loaded on cooking.nytimes.com main page
// referrer has to be *nytimes.com otherwise returns 403 // referrer has to be *nytimes.com otherwise returns 403
requestHeader.value = 'https://cooking.nytimes.com'; requestHeader.value = 'https://cooking.nytimes.com';
} else if (isSameDomain(details.url, 'wsj.com') || isSameDomain(details.url, 'ft.com') || isSameDomain(details.url, 'fd.nl')) { } else if (matchUrlDomain('fd.nl', details.url)) {
requestHeader.value = 'https://www.facebook.com/'; requestHeader.value = 'https://www.facebook.com/';
} else if (matchUrlDomain('medium.com', details.url)) {
requestHeader.value = 'https://t.co/x?amp=1';
} else { } else {
requestHeader.value = 'https://www.google.com/'; requestHeader.value = 'https://www.google.com/';
} }
@ -304,11 +407,16 @@ extensionApi.webRequest.onBeforeSendHeaders.addListener(function (details) {
// otherwise add it // otherwise add it
if (!setReferer) { if (!setReferer) {
if (isSameDomain(details.url, 'wsj.com') || isSameDomain(details.url, 'ft.com') || isSameDomain(details.url, 'fd.nl')) { if (matchUrlDomain('fd.nl', details.url)) {
requestHeaders.push({ requestHeaders.push({
name: 'Referer', name: 'Referer',
value: 'https://www.facebook.com/' value: 'https://www.facebook.com/'
}); });
} else if (matchUrlDomain('medium.com', details.url)) {
requestHeaders.push({
name: 'Referer',
value: 'https://t.co/x?amp=1'
});
} else { } else {
requestHeaders.push({ requestHeaders.push({
name: 'Referer', name: 'Referer',
@ -318,8 +426,8 @@ extensionApi.webRequest.onBeforeSendHeaders.addListener(function (details) {
} }
// override User-Agent to use Googlebot // override User-Agent to use Googlebot
const useGoogleBot = useGoogleBotSites.some(function (item) { const useGoogleBot = _useGoogleBotSites.some(function (item) {
return typeof item === 'string' && isSameDomain(details.url, item); return typeof item === 'string' && matchUrlDomain(item, details.url);
}); });
if (useGoogleBot) { if (useGoogleBot) {
@ -333,9 +441,25 @@ extensionApi.webRequest.onBeforeSendHeaders.addListener(function (details) {
}); });
} }
// override User-Agent to use Bingbot
if (matchUrlDomain(useBingBot, details.url)) {
requestHeaders.push({
name: 'User-Agent',
value: useUserAgentMobile ? userAgentMobileBingBot : userAgentDesktopBingBot
});
}
// override User-Agent to use Google AdsBot Mobile Web
if (matchUrlDomain(useMsnBot, details.url)) {
requestHeaders.push({
name: 'User-Agent',
value: userAgentMsnBot
});
}
// remove cookies before page load // remove cookies before page load
const enabledCookies = allowCookies.some(function (site) { const enabledCookies = allowCookies.some(function (site) {
return isSameDomain(details.url, site); return matchUrlDomain(site, details.url);
}); });
if (!enabledCookies) { if (!enabledCookies) {
requestHeaders = requestHeaders.map(function (requestHeader) { requestHeaders = requestHeaders.map(function (requestHeader) {
@ -347,13 +471,18 @@ extensionApi.webRequest.onBeforeSendHeaders.addListener(function (details) {
} }
if (tabId !== -1) { if (tabId !== -1) {
// run contentScript inside tab extensionApi.tabs.get(tabId, function (currentTab) {
extensionApi.tabs.executeScript(tabId, { // Validate url of current tab to avoid injecting script to unrelated sites
file: 'src/js/contentScript.js', if (currentTab && currentTab.url && isSiteEnabled(currentTab)) {
runAt: 'document_start' // run contentScript inside tab
}, function (res) { extensionApi.tabs.executeScript(tabId, {
if (extensionApi.runtime.lastError || res[0]) { file: 'src/js/contentScript.js',
runAt: 'document_start'
}, function (res) {
if (extensionApi.runtime.lastError || res[0]) {
}
});
} }
}); });
} }
@ -366,8 +495,8 @@ extensionApi.webRequest.onBeforeSendHeaders.addListener(function (details) {
// remove cookies after page load // remove cookies after page load
extensionApi.webRequest.onCompleted.addListener(function (details) { extensionApi.webRequest.onCompleted.addListener(function (details) {
let domainToRemove; let domainToRemove;
for (const domain of removeCookies) { for (const domain of _removeCookies) {
if (enabledSites.includes(domain) && isSameDomain(details.url, domain)) { if (enabledSites.includes(domain) && matchUrlDomain(domain, details.url)) {
domainToRemove = domain; domainToRemove = domain;
break; break;
} }
@ -402,6 +531,24 @@ extensionApi.webRequest.onCompleted.addListener(function (details) {
urls: ['<all_urls>'] urls: ['<all_urls>']
}); });
// nytimes.com fix
extensionApi.webRequest.onHeadersReceived.addListener(function (details) {
if (!isSiteEnabled(details)) {
return;
}
let headers = details.responseHeaders;
headers = headers.map(function (header) {
if (header.name === 'x-frame-options') { header.value = 'SAMEORIGIN'; }
return header;
});
return {
responseHeaders: headers
};
}, {
urls: ['*://*.nytimes.com/*']
},
['blocking', 'responseHeaders']);
// Google Analytics to anonymously track DAU (Chrome only) // Google Analytics to anonymously track DAU (Chrome only)
function initGA () { function initGA () {
(function (i, s, o, g, r, a, m) { (function (i, s, o, g, r, a, m) {
@ -421,22 +568,32 @@ function initGA () {
} }
function isSiteEnabled (details) { function isSiteEnabled (details) {
const isEnabled = enabledSites.some(function (enabledSite) { const enabledSite = matchUrlDomain(enabledSites, details.url);
const useSite = isSameDomain(details.url, enabledSite); if (enabledSite in restrictions) {
if (enabledSite in restrictions) { return restrictions[enabledSite].test(details.url);
return useSite && details.url.match(restrictions[enabledSite]); }
} return !!enabledSite;
return useSite;
});
return isEnabled;
} }
function isSameDomain (url, domain) { function matchUrlDomain (domains, url) {
if (url.indexOf('http') !== 0) { return matchDomain(domains, urlHost(url));
// Not start with http or https, add a prefix }
url = 'http://' + url;
} function matchDomain (domains, hostname) {
const urlObj = new URL(url); let matchedDomain = false;
const hostname = urlObj.hostname; if (!hostname) { hostname = window.location.hostname; }
return hostname === domain || hostname.endsWith('.' + domain); 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;
} }

704
src/js/contentScript.js Normal file → Executable file
View File

@ -1,26 +1,43 @@
if (!matchDomain(['sfchronicle.com', 'cen.acs.org'])) { if (!matchDomain(['seekingalpha.com', 'sfchronicle.com', 'cen.acs.org', 'elmundo.es', 'scmp.com', 'nytimes.com'])) {
window.localStorage.clear(); window.localStorage.clear();
} }
if (matchDomain('rep.repubblica.it')) { if (matchDomain('elmercurio.com')) {
if (window.location.href.includes('/pwa/')) { if (window.location.href.toLowerCase().includes('/inversiones/')) {
setTimeout(function () { document.addEventListener('DOMContentLoaded', () => {
window.location.href = window.location.href.replace('/pwa/', '/ws/detail/'); const paywall = document.querySelector('#modal_limit_articulos');
}, 400); 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/')) { if (window.location.href.includes('/ws/detail/')) {
const paywall = document.querySelector('.paywall[subscriptions-section="content"]'); const paywall = document.querySelector('.paywall');
if (paywall) { if (paywall) {
paywall.removeAttribute('subscriptions-section'); ampUnhideSubscriptionsSection();
const preview = document.querySelector('div[subscriptions-section="content-not-granted"]');
if (preview) {
preview.remove();
}
} }
} }
} else if (matchDomain('americanbanker.com')) { } else if (matchDomain('americanbanker.com')) {
const paywall = document.getElementsByClassName('embargo-content')[0]; const inlineGate = document.querySelector('.inline-gate');
if (paywall) { paywall.classList.remove('embargo-content'); } if (inlineGate) {
inlineGate.classList.remove('inline-gate');
const inlineGated = document.querySelectorAll('.inline-gated');
for (const elem of inlineGated) { elem.classList.remove('inline-gated'); }
}
} else if (matchDomain('telegraaf.nl')) { } else if (matchDomain('telegraaf.nl')) {
if (window.location.href.startsWith('https://www.telegraaf.nl/error?ref=/')) { if (window.location.href.startsWith('https://www.telegraaf.nl/error?ref=/')) {
window.location.href = window.location.href.split('&')[0].replace('error?ref=/', ''); window.location.href = window.location.href.split('&')[0].replace('error?ref=/', '');
@ -56,64 +73,101 @@ if (matchDomain('rep.repubblica.it')) {
} }
} }
} }
} else if (matchDomain(['ad.nl', 'ed.nl'])) {
const paywall = document.querySelector('.article__component.article__component--paywall-module-notification');
removeDOMElement(paywall);
} else if (matchDomain('washingtonpost.com')) { } else if (matchDomain('washingtonpost.com')) {
const leaderboard = document.querySelector('#leaderboard-wrapper');
const adverts = document.querySelectorAll('div[data-qa="article-body-ad"]');
const softwall = document.querySelector('[id^="softwall"]');
removeDOMElement(leaderboard, softwall, ...adverts);
if (window.location.href.includes('/gdpr-consent/')) { if (window.location.href.includes('/gdpr-consent/')) {
const freeButton = document.querySelector('.gdpr-consent-container .continue-btn.button.free'); const freeButton = document.querySelector('.gdpr-consent-container .continue-btn.button.free');
if (freeButton) { freeButton.click(); } if (freeButton) { freeButton.click(); }
window.setTimeout(function () {
setTimeout(function () {
const gdprcheckbox = document.querySelector('.gdpr-consent-container .consent-page:not(.hide) #agree'); const gdprcheckbox = document.querySelector('.gdpr-consent-container .consent-page:not(.hide) #agree');
if (gdprcheckbox) { if (gdprcheckbox) {
gdprcheckbox.checked = true; gdprcheckbox.checked = true;
gdprcheckbox.dispatchEvent(new Event('change')); gdprcheckbox.dispatchEvent(new Event('change'));
document.querySelector('.gdpr-consent-container .consent-page:not(.hide) .continue-btn.button.accept-consent').click(); document.querySelector('.gdpr-consent-container .consent-page:not(.hide) .continue-btn.button.accept-consent').click();
} }
}, 300); // Delay (in milliseconds) }, 300); // Delay (in milliseconds)
} else {
const url = window.location.href;
function main (element) {
removeDOMElement(element);
window.location.href = url.split('?')[0] + '?outputType=amp';
}
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')) { } else if (matchDomain('wsj.com') && !matchDomain('cn.wsj.com')) {
if (window.location.href.includes('/articles/')) { if (window.location.href.includes('/articles/')) {
const closeButton = document.querySelector('.close-btn'); const closeButton = document.querySelector('div.close-btn[role="button"]');
if (closeButton) { closeButton.click(); } if (closeButton) { closeButton.click(); }
} }
} else if (matchDomain('sloanreview.mit.edu')) {
document.querySelector('#cboxClose').click();
} else if (matchDomain('mexiconewsdaily.com')) {
document.addEventListener('DOMContentLoaded', () => { document.addEventListener('DOMContentLoaded', () => {
const sideNotification = document.querySelector('.pigeon-widget-prompt'); const url = window.location.href;
const subMessage = document.querySelector('.sub_message_container'); const snippet = document.querySelector('.snippet-promotion');
const popup = document.querySelector('.popupally-pro-outer-full-width-7-fluid_qemskqa'); const wsjPro = document.querySelector('meta[name="page.site"][content="wsjpro"]');
const bgFocusRemoverId = document.getElementById('popup-box-pro-gfcr-7'); if (snippet || wsjPro) {
if (!window.location.hash) {
removeDOMElement(sideNotification, subMessage, popup, bgFocusRemoverId); if (url.includes('?')) {
window.location.href = url.replace('?', '#refreshed?');
} else { window.location.href = url + '#refreshed'; }
} else { window.location.href = window.location.href.replace('wsj.com', 'wsj.com/amp').replace('#refreshed', ''); }
}
}); });
} else if (matchDomain(['theathletic.com','theathletic.co.uk'])) { } else if (matchDomain('sloanreview.mit.edu')) {
const landingBanner = document.querySelector('.logged-out-landing-banner'); const readMore = document.querySelector('.btn-read-more');
const sampleBanner = document.querySelector('.main-sample-banner'); if (readMore) {
const bottomBanner = document.querySelector('.border-bottom-cc'); readMore.click();
const subscribe = document.querySelector('.subscribe-ad-text'); }
removeDOMElement(landingBanner, sampleBanner, bottomBanner, subscribe); } else if (matchDomain('mexiconewsdaily.com')) {
window.setTimeout(function () {
const popup = document.querySelector('div.pigeon-widget-prompt');
const cproOverlay = document.querySelector('.cpro-overlay');
removeDOMElement(popup, cproOverlay);
}, 500); // Delay (in milliseconds)
} else if (matchDomain('the-american-interest.com')) { } else if (matchDomain('the-american-interest.com')) {
const counter = document.getElementById('article-counter'); const counter = document.getElementById('article-counter');
removeDOMElement(counter); removeDOMElement(counter);
} else if (matchDomain('nzherald.co.nz')) { } else if (matchDomain('nzherald.co.nz')) {
const paywall = document.getElementById('article-content'); const articleContent = document.querySelector('.article__content');
if (paywall) { if (articleContent) {
const premium = document.getElementsByClassName('premium-sub')[0]; const articleOffer = document.querySelector('.article-offer');
removeDOMElement(premium); if (articleOffer) {
paywall.classList.remove('premium-content'); const cssSelector = articleContent.querySelectorAll('p')[5].getAttribute('class');
paywall.classList.add('full-content'); const hiddenNotPars = articleContent.querySelectorAll('.' + cssSelector + ':not(p)');
removeClassesByPrefix(paywall, 'QUnW'); for (const hiddenNotPar of hiddenNotPars) {
const paras = paywall.querySelectorAll('p, span, h2, div'); hiddenNotPar.classList.remove(cssSelector);
for (const el of paras) { hiddenNotPar.removeAttribute('style');
removeClassesByPrefix(el, 'QUnW'); }
el.classList.remove('ellipsis'); const hiddenPars = articleContent.querySelectorAll('p.' + cssSelector);
el.removeAttribute('style'); const parser = new DOMParser();
for (const hiddenPar of hiddenPars) {
const parHtml = parser.parseFromString('<div style="margin: 10px 0px; font-size: 17px">' + hiddenPar.innerHTML + '</div>', 'text/html');
const parDom = parHtml.querySelector('div');
articleContent.insertBefore(parDom, hiddenPar);
}
const firstSpan = document.querySelector('p > span');
if (firstSpan) { firstSpan.removeAttribute('class'); }
removeDOMElement(articleOffer);
} }
} }
const premiumToaster = document.querySelector('#premium-toaster');
removeDOMElement(premiumToaster);
} else if (matchDomain('interest.co.nz')) {
const wrapper = document.getElementById('pp-ablock-banner-wrapper');
const overlay = document.querySelector('.black-overlay');
removeDOMElement(overlay, wrapper);
} else if (matchDomain('stuff.co.nz')) {
const overlay = document.querySelector('.x0');
removeDOMElement(overlay);
} else if (matchDomain('thenational.scot')) {
const overlay = document.querySelector('.template-container');
removeDOMElement(overlay);
} else if (matchDomain('thestar.com')) { } else if (matchDomain('thestar.com')) {
setTimeout(function () { setTimeout(function () {
const paywall = document.querySelector('.basic-paywall-new'); const paywall = document.querySelector('.basic-paywall-new');
@ -138,72 +192,48 @@ if (matchDomain('rep.repubblica.it')) {
const plista = document.querySelector('div[data-plista-placement="underArticle_Group"]'); const plista = document.querySelector('div[data-plista-placement="underArticle_Group"]');
removeDOMElement(plista); removeDOMElement(plista);
}); });
} else if (matchDomain(['parool.nl', 'trouw.nl', 'volkskrant.nl', 'demorgen.be'])) { } else if (matchDomain(['parool.nl', 'trouw.nl', 'volkskrant.nl', 'demorgen.be', 'humo.be'])) {
document.addEventListener('DOMContentLoaded', () => { document.addEventListener('DOMContentLoaded', () => {
const topBanner = document.querySelector('div[data-temptation-position="PAGE_TOP"]');
const paywall = document.querySelector('div[data-temptation-position="ARTICLE_BOTTOM"]'); const paywall = document.querySelector('div[data-temptation-position="ARTICLE_BOTTOM"]');
const hiddenSection = document.querySelector('div[data-temptation-position="ARTICLE_INLINE"]'); const hiddenSection = document.querySelector('div[data-temptation-position="ARTICLE_INLINE"]');
removeDOMElement(paywall, hiddenSection); const overlay = document.querySelector('div[data-temptation-position="PAGE_BOTTOM"]');
removeDOMElement(topBanner, paywall, hiddenSection, overlay);
}); });
} else if (matchDomain('firstthings.com')) { } else if (matchDomain('firstthings.com')) {
const paywall = document.getElementsByClassName('paywall')[0]; const paywall = document.getElementsByClassName('paywall')[0];
removeDOMElement(paywall); removeDOMElement(paywall);
} else if (matchDomain('fortune.com')) {
document.addEventListener('DOMContentLoaded', () => {
const paywall = document.getElementById('freestar-instream-content');
if (paywall) {
paywall.classList.remove('tp-container-inner');
}
const paywallJunk = document.getElementById('article_overlay');
if (paywallJunk) {
paywallJunk.classList.remove('ntv-moap');
}
const ptags = paywallJunk.getElementsByTagName('p');
const h3tags = paywallJunk.getElementsByTagName('h3');
for (const ptag of ptags) {
ptag.removeAttribute('style');
}
for (const h3tag of h3tags) {
h3tag.removeAttribute('style');
}
});
} else if (matchDomain('bloomberg.com')) { } else if (matchDomain('bloomberg.com')) {
document.addEventListener('DOMContentLoaded', () => { const paywall = document.querySelectorAll('div[id^="fortress-"]');
const fence = document.querySelector('.fence-body'); const leaderboard = document.querySelector('div[id^="leaderboard"], div[class^="leaderboard"], div.canopy-container');
if (fence) { const ads = document.querySelectorAll('div[data-ad-status], div.dvz-v0-ad, div[class^="FullWidthAd_"]');
fence.classList.remove('fence-body'); hideDOMElement(...paywall, leaderboard, ...ads);
} if (window.location.pathname.startsWith('/live/')) {
const paywall = document.getElementById('paywall-banner'); setInterval(function () {
removeDOMElement(paywall); window.localStorage.clear();
}); }, 15 * 60 * 1000);
}
} else if (matchDomain('bloombergquint.com')) { } else if (matchDomain('bloombergquint.com')) {
const articlesLeftModal = document.getElementsByClassName('paywall-meter-module__story-paywall-container__1UgCE')[0]; const articlesLeftModal = document.getElementsByClassName('paywall-meter-module__story-paywall-container__1UgCE')[0];
const paywall = document.getElementById('paywallDmp'); const paywall = document.getElementById('paywallDmp');
removeDOMElement(articlesLeftModal, paywall); removeDOMElement(articlesLeftModal, paywall);
} else if (matchDomain('medium.com')) { } else if (matchDomain('medium.com') || document.querySelector('script[src^="https://cdn-client.medium.com/"]')) {
const bottomMessageText = 'Get one more story in your member preview when you sign up. Its free.'; const paywall = document.querySelector('div#paywall-background-color');
const DOMElementsToTextDiv = pageContains('div', bottomMessageText); removeDOMElement(paywall);
if (DOMElementsToTextDiv[2]) removeDOMElement(DOMElementsToTextDiv[2]); if (paywall) {
extensionApi.runtime.sendMessage({ request: 'refreshCurrentTab' });
}
window.setTimeout(function () {
const meter = document.querySelector('[id*="highlight-meter-"]');
if (meter) {
meter.hidden = true;
}
}, 500); // Delay (in milliseconds)
} else if (matchDomain('theglobeandmail.com')) { } else if (matchDomain('theglobeandmail.com')) {
document.addEventListener('DOMContentLoaded', () => { const articleBodySubscribed = document.querySelector('.c-article-body--subscribed');
const lazyImages = document.querySelectorAll('.js-lazyimage'); if (articleBodySubscribed) {
for (const lazyImage of lazyImages) { articleBodySubscribed.removeAttribute('class');
lazyImage.classList.remove('js-lazyimage'); }
}
const hiddenImages = document.querySelectorAll('img');
for (const hiddenImage of hiddenImages) {
const src = hiddenImage.src;
if (src.indexOf('data:image/gif') !== -1) {
const dataSrc = hiddenImage.getAttribute('data-src');
if (dataSrc) {
hiddenImage.setAttribute('src', dataSrc);
}
const dataBg = hiddenImage.getAttribute('data-bg');
if (dataBg) {
hiddenImage.setAttribute('src', dataBg);
}
}
}
});
} else if (matchDomain(['examiner.com.au', 'thecourier.com.au', 'theadvocate.com.au'])) { } else if (matchDomain(['examiner.com.au', 'thecourier.com.au', 'theadvocate.com.au'])) {
const subscribeTruncate = document.querySelector('.subscribe-truncate'); const subscribeTruncate = document.querySelector('.subscribe-truncate');
if (subscribeTruncate) { subscribeTruncate.classList.remove('subscribe-truncate'); } if (subscribeTruncate) { subscribeTruncate.classList.remove('subscribe-truncate'); }
@ -220,25 +250,35 @@ if (matchDomain('rep.repubblica.it')) {
for (const el of content) { for (const el of content) {
el.classList.remove('subscriber-hider'); el.classList.remove('subscriber-hider');
} }
} else if (matchDomain('asia.nikkei.com')) {
const cookieBanner = document.querySelector('.pw-widget');
removeDOMElement(cookieBanner);
} else if (matchDomain('ledevoir.com')) { } else if (matchDomain('ledevoir.com')) {
const counter = document.querySelector('.full.hidden-print.popup-msg'); const counter = document.querySelector('.full.hidden-print.popup-msg');
removeDOMElement(counter); removeDOMElement(counter);
} else if (matchDomain('ft.com')) { } else if (matchDomain('ft.com')) {
const cookieBanner = document.querySelector('.cookie-banner'); const cookieBanner = document.querySelector('.o-banner__outer');
removeDOMElement(cookieBanner); const ribbon = document.querySelector('.js-article-ribbon');
const ads = document.querySelector('.o-ads');
removeDOMElement(cookieBanner, ads, ribbon);
} else if (matchDomain('thehindu.com')) { } else if (matchDomain('thehindu.com')) {
const paywall = document.getElementById('test'); document.addEventListener('DOMContentLoaded', () => {
removeDOMElement(paywall); const counter = document.querySelector('#test');
const coBanner = document.querySelector('.co-banner');
const support = document.querySelector('div.support-jlm');
removeDOMElement(counter, coBanner, support);
});
} else if (matchDomain('nytimes.com')) { } else if (matchDomain('nytimes.com')) {
const previewButton = document.querySelector('.css-3s1ce0'); const banners = document.querySelectorAll('div[data-testid="inline-message"], div[id^="ad-"], div.expanded-dock, div.pz-ad-box');
if (previewButton) { previewButton.click(); } removeDOMElement(...banners);
} else if (matchDomain('technologyreview.com')) { } else if (matchDomain('technologyreview.com')) {
// The class of banner is like 'overlayFooter__wrapper--3DhFn', which is hard to select exactly window.setTimeout(function () {
const subscribeBanner = document.querySelector('[class*=overlayFooter__wrapper]'); const bodyObscured = document.querySelector('body[class*="body__obscureContent"]');
removeDOMElement(subscribeBanner); if (bodyObscured) { removeClassesByPrefix(bodyObscured, 'body__obscureContent'); }
const overlay = document.querySelector('div[class*="overlayFooter__wrapper"]');
if (overlay) { overlay.setAttribute('style', 'display:none'); }
const contentBodyHidden = document.querySelector('div[class*="contentBody__contentHidden"]');
if (contentBodyHidden) { removeClassesByPrefix(contentBodyHidden, 'contentBody__contentHidden'); }
const contentBodyOverlay = document.querySelector('div[class*="contentBody__overlay"]');
if (contentBodyOverlay) { contentBodyOverlay.removeAttribute('class'); }
}, 500);
} else if (matchDomain('leparisien.fr')) { } else if (matchDomain('leparisien.fr')) {
window.removeEventListener('scroll', this.scrollListener); window.removeEventListener('scroll', this.scrollListener);
const paywall = document.querySelector('.relative.piano-paywall.below_nav.sticky'); const paywall = document.querySelector('.relative.piano-paywall.below_nav.sticky');
@ -277,14 +317,17 @@ if (matchDomain('rep.repubblica.it')) {
} else if (matchDomain('cen.acs.org')) { } else if (matchDomain('cen.acs.org')) {
const paywall = document.querySelector('.meteredBar'); const paywall = document.querySelector('.meteredBar');
removeDOMElement(paywall); removeDOMElement(paywall);
} else if (matchDomain('elpais.com')) { } else if (matchDomain('elperiodico.com')) {
setTimeout(function () { setTimeout(function () {
const paywall = document.querySelector('.fc-ab-root'); const unavailableArea = document.querySelector('.closed');
const body = document.querySelector('.salida_articulo'); const infoBox = document.querySelector('.ep-masPeriodico-info');
if (unavailableArea) {
removeDOMElement(paywall); unavailableArea.classList.remove('closed');
body.removeAttribute('style'); }
}, 500); // Delay (in milliseconds) if (infoBox) {
infoBox.parentNode.removeChild(infoBox);
}
}, 1000);
} else if (matchDomain('techinasia.com')) { } else if (matchDomain('techinasia.com')) {
const paywall = document.querySelector('.paywall-content'); const paywall = document.querySelector('.paywall-content');
if (paywall) { if (paywall) {
@ -304,6 +347,375 @@ if (matchDomain('rep.repubblica.it')) {
} else if (matchDomain('hbr.org')) { } else if (matchDomain('hbr.org')) {
const banner = document.querySelector('.persistent-banner'); const banner = document.querySelector('.persistent-banner');
removeDOMElement(banner); removeDOMElement(banner);
} else if (matchDomain('spectator.co.uk')) {
const banner = document.querySelector('#subscribe-ribbon');
removeDOMElement(banner);
} else if (matchDomain('barrons.com')) {
const url = window.location.href;
if (!url.includes('barrons.com/amp/')) {
const bodyContinuous = document.querySelector('body.is-continuous');
const snippet = document.querySelector('meta[content="snippet"]');
if (bodyContinuous && snippet) {
removeDOMElement(snippet);
window.location.href = url.replace('barrons.com', 'barrons.com/amp');
}
const signinLinks = document.querySelectorAll('a.primary-button--link[href*="target="]');
for (const signinLink of signinLinks) {
signinLink.href = decodeURIComponent(signinLink.href.split('target=')[1]).split('?')[0];
signinLink.text = 'Click';
}
const barronsAds = document.querySelectorAll('.barrons-body-ad-placement');
removeDOMElement(...barronsAds);
} else {
const preview = document.querySelector('section[subscriptions-section="content-not-granted"]');
removeDOMElement(preview);
const subscrSection = document.querySelector('section[subscriptions-section="content"]');
if (subscrSection) {
subscrSection.removeAttribute('subscriptions-section');
}
}
removeDOMElement(document.querySelector('.login-section-container'));
} else if (matchDomain('nzz.ch')) {
const paywall = document.querySelector('.dynamic-regwall');
removeDOMElement(paywall);
} else if (matchDomain('irishtimes.com')) {
document.addEventListener('DOMContentLoaded', () => {
const stubArticleMsg = document.querySelector('div.stub-article-msg');
const url = window.location.href;
if (url.includes('mode=sample') || stubArticleMsg) { window.location.href = new URL(url).pathname + '?mode=amp'; }
});
} else if (matchDomain('thesaturdaypaper.com.au')) {
const paywall = document.querySelector('div.paywall-hard-always-show');
removeDOMElement(paywall);
} else if (matchDomain('lesechos.fr') && window.location.href.match(/-\d{6,}/)) {
window.setTimeout(function () {
const aboBanner = document.querySelector('[class^="pgxf3b"]');
const adBlocks = document.querySelectorAll('[class*="jzxvkd"');
for (const adBlock of adBlocks) { adBlock.setAttribute('style', 'display:none'); }
if (aboBanner) {
removeDOMElement(aboBanner);
const url = window.location.href;
const html = document.documentElement.outerHTML;
let state;
const split1 = html.split('window.__PRELOADED_STATE__=')[1];
const split2 = split1.split('</script>')[0].trim();
if (split2.includes('; window.__DATA__=')) { state = split2.split('; window.__DATA__=')[0].trim(); } else { state = split2.substr(0, split2.length - 1); }
try {
const data = JSON.parse(state);
const article = data.article.data.stripes[0].mainContent[0].data.description;
const urlLoaded = data.article.data.path;
if (!url.includes(urlLoaded)) { window.location.reload(true); }
const paywallNode = document.querySelector('.post-paywall');
if (paywallNode) {
const contentNode = document.createElement('div');
const parser = new DOMParser();
const articleHtml = parser.parseFromString('<div>' + article + '</div>', 'text/html');
const articlePar = articleHtml.querySelector('div');
if (articlePar) {
contentNode.appendChild(articlePar);
contentNode.className = paywallNode.className;
paywallNode.parentNode.insertBefore(contentNode, paywallNode);
removeDOMElement(paywallNode);
const paywallLastChildNode = document.querySelector('.post-paywall > :last-child');
if (paywallLastChildNode) {
paywallLastChildNode.setAttribute('style', 'height: auto !important; overflow: hidden !important; max-height: none !important;');
}
}
}
const styleElem = document.head.appendChild(document.createElement('style'));
styleElem.innerHTML = '.post-paywall::after {height: auto !important;}';
} catch (err) {
window.location.reload(true);
}
}
}, 500); // Delay (in milliseconds)
} else if (matchDomain('startribune.com')) {
// remove active class from all elements
document.querySelectorAll('div.ReactModalPortal').forEach(function (el) {
removeDOMElement(el);
});
// Enable Scroll. Reveal Hiddlen Paragraph
document.getElementsByTagName('body')[0].removeAttribute('class');
} else if (matchDomain('seattletimes.com')) {
window.setTimeout(function () {
// remove modal class from all elements
document.querySelectorAll('div.modal').forEach(function (el) {
removeDOMElement(el);
});
// Remove Blurred Style from all matching Divs
document.getElementById('container').removeAttribute('style');
document.querySelectorAll('div[style~="filter"]').forEach(function (el) {
el.removeAttribute('style');
});
document
.querySelectorAll('div[class~="NewsletterSignupSplash"]')
.forEach(function (el) {
el.removeAttribute('class');
});
}, 1000); // Delay (in milliseconds)
} else if (matchDomain('theatlantic.com')) {
const images = document.querySelectorAll('img[class*="Image_lazy__"]');
for (const elem of images) { removeClassesByPrefix(elem, 'Image_lazy__'); }
const banners = document.querySelectorAll('.c-nudge__container, .c-non-metered-nudge, div[class^="ArticleInjector_"]');
hideDOMElement(...banners);
} else if (matchDomain('theathletic.com')) {
if (!window.location.search.match(/(\?|&)amp/)) {
const paywall = document.querySelector('div#slideup-paywall');
if (paywall) {
const overlays = document.querySelectorAll('div[id*="overlay"], div:empty:not([data-rjs])');
removeDOMElement(paywall, ...overlays);
const body = document.querySelector('body');
if (body) {
body.style.overflow = 'visible';
body.style.position = 'relative';
}
} else {
const headlinePaywall = document.querySelectorAll('a.headline-paywall');
const amphtml = document.querySelector('link[rel="amphtml"]');
if (headlinePaywall.length && amphtml) {
removeDOMElement(...headlinePaywall);
window.setTimeout(function () {
window.location.href = amphtml.href;
}, 1000);
}
}
} else {
ampUnhideSubscriptionsSection();
}
const apron = document.querySelector('div#free-apron-cta, div.slideup-free-apron-container');
removeDOMElement(apron);
} else if (matchDomain('newyorker.com')) {
blockElement('.paywall-bar', true);
blockElement('.paywall-modal');
} else if (matchDomain('vanityfair.com')) {
const paywall = document.querySelector('.paywall-bar');
removeDOMElement(paywall);
} else if (matchDomain(['postimees.ee', 'elu24.ee'])) {
setTimeout(function () {
// Remove 'adblocker-detected' footer notification
const adblockNotif = document.querySelector('.ad-block-notification-overlay');
removeDOMElement(adblockNotif);
document.body.removeAttribute('style');
}, 800); // Delay (in milliseconds)
} else if (matchDomain('theolivepress.es')) {
const modalBackdrop = document.querySelector('.modal-backdrop');
const paywall = document.querySelector('.ev-open-modal-paywall-REQUIRE_LOGIN_WITH_ENTITLEMENT');
removeDOMElement(modalBackdrop, paywall);
for (const clazz of ['ev-modals', 'modal-open']) {
document.body.classList.remove(clazz);
}
} else if (matchDomain('themarker.com')) {
setTimeout(function () {
const paywall = document.querySelector('[data-test="bottomStrip"]');
const notifications = document.querySelector('#pwSubscribePopup');
const banner = document.querySelector('#themarker\\.com\\.billboard\\.desktop');
const newsBanner = document.querySelector('#themarker\\.com\\.news\\.banner');
const midBanner = document.querySelector('#themarker\\.com.headline\\.banner\\.desktop');
const financeBanner = document.querySelector('#themarker\\.com\\.finance\\.banner');
const topStrip = document.querySelector('[data-test="topStrip"]');
const otherBanners = Array.from(document.querySelectorAll('[data-audtarget]'));
removeDOMElement(paywall, notifications, banner, topStrip, midBanner, newsBanner, financeBanner, ...otherBanners);
}, 500);
} else if (matchDomain('haaretz.co.il')) {
setTimeout(function () {
const notifications = document.querySelector('#pwSubscribePopup');
const paywall = document.querySelector('[data-test="bottomStrip"]');
const banner = document.querySelector('#haaretz\\.co\\.il\\.billboard\\.desktop');
const editorsBanner = document.querySelector('#haaretz\\.co\\.il\\.editors\\.banner');
const headlinesBanner = document.querySelector('#haaretz\\.co\\.il\\.headline\\.box\\.desktop');
const topStrip = document.querySelector('[data-test="topStrip"]');
const otherBanners = Array.from(document.querySelectorAll('[data-audtarget]'));
removeDOMElement(paywall, notifications, banner, editorsBanner, topStrip, headlinesBanner, ...otherBanners);
}, 500);
} else if (matchDomain('sueddeutsche.de')) {
const url = window.location.href;
document.addEventListener('DOMContentLoaded', () => {
const offerPage = document.querySelector('div.offer-page');
if (url.startsWith('https://www.sueddeutsche.de') && (url.includes('reduced=true') || offerPage)) { window.location.href = url.split('?')[0].replace('www.', 'amphtml.'); } else if (url.startsWith('https://sz-magazin.sueddeutsche.de')) {
if (url.includes('reduced=true') || offerPage) { window.location.href = new URL(url).pathname + '!amp'; }
}
});
window.setTimeout(function () {
if (url.includes('!amp')) {
const paragraphReduced = document.querySelector('.paragraph--reduced');
if (paragraphReduced) { paragraphReduced.classList.remove('paragraph--reduced'); }
const paragraphHidden = document.querySelectorAll('.paragraph--hidden');
for (const parHidden of paragraphHidden) { parHidden.classList.remove('paragraph--hidden'); }
const paragraphDynamic = document.querySelector('.paragraph--dynamic');
if (paragraphDynamic) { paragraphDynamic.classList.remove('paragraph--dynamic'); }
const ampOfferpage = document.querySelector('.amp-offerpage');
removeDOMElement(ampOfferpage);
}
}, 500); // Delay (in milliseconds)
} else if (matchDomain('adweek.com')) {
const bodySingle = document.querySelector('body.single');
const ampHtml = document.querySelector('link[rel="amphtml"]');
if (bodySingle && ampHtml) {
bodySingle.classList.remove('single');
window.location.href = ampHtml.href;
}
} else if (matchDomain('gelocal.it')) {
if (!window.location.href.includes('/amp/')) {
const paywallAdagio = document.querySelector('.paywall-adagio');
removeDOMElement(paywallAdagio);
} else {
const paywall = document.querySelector('div[amp-access="showContent"]');
if (paywall) { paywall.removeAttribute('amp-access-hide'); }
const ampAds = document.querySelectorAll('amp-ad');
removeDOMElement(...ampAds);
}
} else if (matchDomain('elmundo.es')) {
const premium = document.querySelector('.ue-c-article__premium');
const url = window.location.href;
if (!url.includes('/amp.' + 'elmundo.es' + '/')) {
if (premium) {
removeDOMElement(premium);
window.location.href = window.location.href.replace('/www.', '/amp.');
}
} else {
const paywall = document.querySelector('div[amp-access="authorized!=true"]');
if (paywall) {
removeDOMElement(paywall);
const divHidden = document.querySelector('div[amp-access="authorized=true"]');
if (divHidden) {
divHidden.removeAttribute('amp-access-hide');
}
}
const advertising = document.querySelectorAll('.advertising, amp-embed');
removeDOMElement(...advertising);
}
} else if (matchDomain('speld.nl')) {
const paywallPopup = document.querySelector('.c-paywall-notice');
removeDOMElement(paywallPopup);
} else if (matchDomain('lastampa.it')) {
const url = window.location.href;
if (!url.includes('/amp/')) {
const premium = document.querySelector('.paywall-adagio');
removeDOMElement(premium);
window.setTimeout(function () {
if (premium) {
window.location.href = url.split('?')[0] + '/amp/';
}
const articleBody = document.querySelector('div#article-body[style]');
if (articleBody) {
articleBody.removeAttribute('style');
}
}, 500);
} else {
const paywall = document.querySelector('div[id^="paywall-banner"]');
removeDOMElement(paywall);
const subscriptionSection = document.querySelector('[subscriptions-section="content"]');
if (subscriptionSection) {
subscriptionSection.removeAttribute('subscriptions-section');
const preview = document.querySelector('div[subscriptions-section="content-not-granted"]');
removeDOMElement(preview);
}
const ampAds = document.querySelectorAll('amp-ad, amp-embed');
removeDOMElement(...ampAds);
}
} else if (matchDomain('time.com')) {
const body = document.querySelector('body');
if (body) {
body.setAttribute('style', 'position:relative !important;');
}
} else if (matchDomain('expansion.com')) {
const premium = document.querySelector('.ue-c-article__premium');
const url = window.location.href;
if (!url.includes('/amp.' + 'expansion.com' + '/')) {
if (premium) {
removeDOMElement(premium);
window.location.href = window.location.href.replace('/www.', '/amp.');
}
} else {
const paywall = document.querySelector('div[amp-access="authorized!=true"]');
if (paywall) {
removeDOMElement(paywall);
const divHidden = document.querySelector('div[amp-access="authorized=true"]');
if (divHidden) {
divHidden.removeAttribute('amp-access-hide');
}
}
const advertising = document.querySelectorAll('.advertising, amp-embed');
removeDOMElement(...advertising);
}
} else if (matchDomain('chicagobusiness.com')) {
const body = document.querySelector('body[class]');
if (body) {
body.removeAttribute('class');
}
} else if (matchDomain('latimes.com')) {
const ads = document.querySelectorAll('div.enhancement, div.google-dfp-ad-wrapper');
hideDOMElement(...ads);
} else if (matchDomain('foreignpolicy.com')) {
const contentUngated = document.querySelector('div.content-ungated');
removeDOMElement(contentUngated);
const contentGated = document.querySelector('div.content-gated');
if (contentGated) {
contentGated.classList.remove('content-gated');
}
} else if (matchDomain('bostonglobe.com')) {
// Remove the portion covering the paywall
const paywall = document.querySelector('div.meter-paywall');
if (paywall) {
removeDOMElement(paywall);
}
// Re-enable scrolling
const body = document.querySelector('body');
if (body) {
document.body.removeAttribute('style');
}
// Click the button to reveal the rest of the article
const buttonDiv = document.querySelector('[id="continue_button"]');
if (buttonDiv) {
const button = buttonDiv.querySelector('button');
if (button) {
button.click();
}
}
} else if (matchDomain('nationalgeographic.com')) {
// prevent modal from showing up, then remove scroll-locking, and article blur
new window.MutationObserver(function (mutations) {
for (const mutation of mutations) {
for (const node of mutation.addedNodes) {
if (node instanceof window.HTMLElement) {
if (node.matches('#fittPortal_0')) {
removeDOMElement(node);
const body = document.body;
body.removeAttribute('class');
body.removeAttribute('style');
body.removeAttribute('overflow');
const blur = document.querySelector('#natgeo-template1-frame-1-module-1 > div > div > section > article > section > div.Article__Content__Overlay--gated');
if (blur) removeDOMElement(blur);
this.disconnect(); // Stop watching for element being added after one removal
}
}
}
}
}).observe(document, { subtree: true, childList: true });
} else if (matchDomain('hbrchina.org')) {
const hiddenDiv = document.querySelector('div#the_content');
if (hiddenDiv) {
hiddenDiv.removeAttribute('style');
}
} else if (matchDomain('scmp.com')) {
if (window.location.href.includes('/amp.')) {
const divHidden = document.querySelectorAll('div.article-body[amp-access][amp-access-hide]');
for (const elem of divHidden) {
elem.removeAttribute('amp-access-hide');
}
const defaultMeters = document.querySelectorAll('div.default-meter, div#archive-article-meter');
const ads = document.querySelectorAll('amp-ad, div.ad-banner, div.advert-fly-carpet-container, div.inline-advert');
removeDOMElement(...defaultMeters, ...ads);
}
} else if (matchDomain('fortune.com')) {
const paywalledArticle = document.querySelector('.paywall.paywallActive');
if (paywalledArticle) {
for (const clazz of ['paywall', 'paywallActive']) {
paywalledArticle.classList.remove(clazz);
}
}
} }
function matchDomain (domains) { function matchDomain (domains) {
@ -312,6 +724,24 @@ function matchDomain (domains) {
return domains.some(domain => hostname === domain || hostname.endsWith('.' + domain)); return domains.some(domain => hostname === domain || hostname.endsWith('.' + domain));
} }
function waitDOMElement (selector, tagName = '', callback, multiple = false) {
new window.MutationObserver(function (mutations) {
for (const mutation of mutations) {
for (const node of mutation.addedNodes) {
if (!tagName || (node.tagName === tagName)) {
if (node.matches(selector)) {
callback(node);
if (!multiple) { this.disconnect(); }
}
}
}
}
}).observe(document, {
subtree: true,
childList: true
});
}
function removeDOMElement (...elements) { function removeDOMElement (...elements) {
for (const element of elements) { for (const element of elements) {
if (element) { element.remove(); } if (element) { element.remove(); }
@ -326,9 +756,31 @@ function removeClassesByPrefix (el, prefix) {
} }
} }
function pageContains (selector, text) { // Prevent element from being added the first time to the DOM
const elements = document.querySelectorAll(selector); function blockElement (selector, blockAlways = false) {
return Array.prototype.filter.call(elements, function (element) { new window.MutationObserver(function (mutations) {
return RegExp(text).test(element.textContent); for (const mutation of mutations) {
}); for (const node of mutation.addedNodes) {
if (node instanceof window.HTMLElement) {
if (node.matches(selector)) {
removeDOMElement(node);
if (!blockAlways) {
this.disconnect(); // Stop watching for element being added after one removal
}
}
}
}
}
}).observe(document, { subtree: true, childList: true });
}
function ampUnhideSubscriptionsSection (ampAdsSel = 'amp-ad, .ad') {
const preview = document.querySelector('[subscriptions-section="content-not-granted"]');
removeDOMElement(preview);
const subscriptionsSection = document.querySelectorAll('[subscriptions-section="content"]');
for (const elem of subscriptionsSection) {
elem.removeAttribute('subscriptions-section');
}
const ampAds = document.querySelectorAll(ampAdsSel);
removeDOMElement(...ampAds);
} }

View File

@ -1,22 +1,53 @@
// Shortcut for document.querySelector()
function $(sel, el = document) {
return el.querySelector(sel);
}
// Shortcut for document.querySelectorAll()
function $$(sel, el = document) {
return Array.from(el.querySelectorAll(sel));
}
// Select UI pane
function selectPane(e) {
const panes = $$('.pane');
for (const tab of $$('#tabs button')) {
tab.classList.toggle('active', tab == e.target);
}
for (const pane of panes) {
pane.classList.toggle('active', pane.id == e.target.dataset.pane);
}
}
// Saves options to extensionApi.storage // Saves options to extensionApi.storage
function saveOptions () { function saveOptions () {
const inputEls = document.querySelectorAll('#bypass_sites input');
const sites = Array.from(inputEls).reduce(function (memo, inputEl) { const sites = $$('#bypass_sites input').reduce(function (memo, inputEl) {
if (inputEl.checked) { if (inputEl.checked) {
memo[inputEl.dataset.key] = inputEl.dataset.value; memo[inputEl.dataset.key] = inputEl.dataset.value;
} }
return memo; return memo;
}, {}); }, {});
const customSites = $('#custom_sites').value
.split('\n')
.map(s => s.trim())
.filter(s => s);
extensionApi.storage.sync.set({ extensionApi.storage.sync.set({
sites: sites sites: sites,
customSites: customSites
}, function () { }, function () {
// Update status to let user know options were saved. // Update status to let user know options were saved.
const status = document.getElementById('status'); const status = $('#status');
status.textContent = 'Options saved.'; status.textContent = 'Options saved';
setTimeout(function () { setTimeout(function () {
status.textContent = ''; status.textContent = '';
// Reload runtime so background script picks up changes
chrome.runtime.reload();
window.close(); window.close();
}, 800); }, 800);
}); });
@ -26,10 +57,11 @@ function saveOptions () {
// stored in extensionApi.storage. // stored in extensionApi.storage.
function renderOptions () { function renderOptions () {
extensionApi.storage.sync.get({ extensionApi.storage.sync.get({
sites: {} sites: {},
customSites: [],
}, function (items) { }, function (items) {
// Render supported sites
const sites = items.sites; const sites = items.sites;
const sitesEl = document.getElementById('bypass_sites');
for (const key in defaultSites) { for (const key in defaultSites) {
if (!Object.prototype.hasOwnProperty.call(defaultSites, key)) { if (!Object.prototype.hasOwnProperty.call(defaultSites, key)) {
continue; continue;
@ -44,27 +76,47 @@ function renderOptions () {
inputEl.checked = (key in sites) || (key.replace(/\s\(.*\)/, '') in sites); inputEl.checked = (key in sites) || (key.replace(/\s\(.*\)/, '') in sites);
labelEl.appendChild(inputEl); labelEl.appendChild(inputEl);
labelEl.appendChild(document.createTextNode(' ' + key)); labelEl.appendChild(document.createTextNode(key));
sitesEl.appendChild(labelEl); $('#bypass_sites').appendChild(labelEl);
} }
// Render custom sites
const customSites = items.customSites;
$('#custom_sites').value = customSites.join('\n');
// Set select all/none checkbox state. Note: "indeterminate" checkboxes
// require `chrome_style: false` be set in manifest.json. See
// https://bugs.chromium.org/p/chromium/issues/detail?id=1097489
const nItems = $$('input[data-key]').length;
const nChecked = $$('input[data-key]').filter(el => el.checked).length;
$('#select-all input').checked = nChecked / nItems > 0.5;
$('#select-all input').indeterminate = nChecked && nChecked != nItems;
}); });
} }
// Select/deselect all supported sites
function selectAll () { function selectAll () {
const inputEls = Array.from(document.querySelectorAll('input')); for (const el of $$('input[data-key]')) {
inputEls.forEach(function (inputEl) { el.checked = this.checked;
inputEl.checked = true; };
});
} }
function selectNone () { // Initialize UI
const inputEls = Array.from(document.querySelectorAll('input')); function init() {
inputEls.forEach(function (inputEl) { renderOptions();
inputEl.checked = false;
}); $('#save').addEventListener('click', saveOptions);
$('#select-all input').addEventListener('click', selectAll);
for (const el of $$('#tabs button')) {
el.addEventListener('click', selectPane);
}
selectPane({target: $('#tabs button:first-child')});
if (extensionApi === chrome) {
document.body.classList.add('customSitesEnabled');
}
} }
document.addEventListener('DOMContentLoaded', renderOptions); document.addEventListener('DOMContentLoaded', init);
document.getElementById('save').addEventListener('click', saveOptions);
document.getElementById('select-all').addEventListener('click', selectAll);
document.getElementById('select-none').addEventListener('click', selectNone);

57
src/js/sites.js Normal file → Executable file
View File

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

View File

@ -1,52 +1,9 @@
{ {
"addons": { "addons": {
"bypasspaywalls@bypasspaywalls.weebly.com": { "bypasspaywalls@bypasspaywalls": {
"updates": [ "updates": [
{ "version": "1.4.5", { "version": "1.7.9",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.4.5/bypass_paywalls-1.4.5-an+fx.xpi" }, "update_link": "https://github.com/iamadamdev/bypass-paywalls-chrome/releases/download/v1.7.9/bypass-paywalls-firefox.xpi" }
{ "version": "1.4.6",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.4.6/bypass_paywalls-1.4.6-an+fx.xpi" },
{ "version": "1.4.7",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.4.7/bypass_paywalls-1.4.7-an+fx.xpi" },
{ "version": "1.4.8",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.4.8/bypass_paywalls-1.4.8-an+fx.xpi" },
{ "version": "1.4.9",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.4.9/bypass_paywalls-1.4.9-an+fx.xpi" },
{ "version": "1.5.0",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.5.0/bypass_paywalls-1.5.0-an+fx.xpi" },
{ "version": "1.5.1",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.5.1/bypass_paywalls-1.5.1-an+fx.xpi" },
{ "version": "1.5.2",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.5.2/bypass_paywalls-1.5.2-an+fx.xpi" },
{ "version": "1.5.3",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.5.3/bypass_paywalls-1.5.3-an+fx.xpi" },
{ "version": "1.5.5",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.5.5/bypass_paywalls-1.5.5-an+fx.xpi" },
{ "version": "1.5.6",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.5.6/bypass_paywalls-1.5.6-an+fx.xpi" },
{ "version": "1.5.7",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.5.7/bypass_paywalls-1.5.7-an+fx.xpi" },
{ "version": "1.5.8",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.5.8/bypass_paywalls-1.5.8-an+fx.xpi" },
{ "version": "1.5.9",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.5.9/bypass_paywalls-1.5.9-an+fx.xpi" },
{ "version": "1.6.0",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.6.0/bypass_paywalls-1.6.0-an+fx.xpi" },
{ "version": "1.6.2",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.6.2/bypass_paywalls-1.6.2-an+fx.xpi" },
{ "version": "1.6.3",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.6.3/bypass_paywalls-1.6.3-an+fx.xpi" },
{ "version": "1.6.4",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.6.4/bypass_paywalls-1.6.4-an+fx.xpi" },
{ "version": "1.6.5",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.6.5/bypass_paywalls-1.6.5-an+fx.xpi" },
{ "version": "1.6.6",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.6.6/bypass_paywalls-1.6.6-an+fx.xpi" },
{ "version": "1.6.9",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-firefox/releases/download/v1.6.9/bypass_paywalls-1.6.9-an+fx.xpi" },
{ "version": "1.7.2",
"update_link": "https://github.com/iamadamdev/bypass-paywalls-chrome/releases/download/v1.7.2/bypass-paywalls-firefox.xpi" }
] ]
} }
} }

View File

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