Compare commits

...

110 Commits

Author SHA1 Message Date
Simon Brazell cd35a73b4d
Merge pull request #317 from xyzshantaram/master
Clarify README
2021-12-06 23:15:41 +11:00
Simon Brazell a0535ed12a
Merge pull request #316 from alyssais/wikipedia
Fix typo in "Toggle Wikipedia redirects" aria label
2021-12-06 23:14:00 +11:00
Simon Brazell dc57781e55
Merge pull request #314 from xanoni/remove-onion-v2
Remove Onion v2 links ...
2021-12-06 23:13:15 +11:00
Simon Brazell 6503cb3b0c
Merge pull request #323 from opalvault/add-old-reddit
Removes old.reddit.com/i.reddit.com/dead links. Adds old.reddit.com to redirection targets.
2021-12-06 22:32:47 +11:00
Simon Brazell 8d24d0fe6d
Merge pull request #278 from MonsieurBibo/patch-1
Fixed french typo in store.md
2021-12-06 21:44:22 +11:00
ry 449c6e5290 Added old.reddit.com to targets, removed old.reddit.com/i.reddit.com
from redirects.
2021-10-30 13:24:13 -07:00
Siddharth Singh 9faa9c7a5a
Clarify README
This was recently posted on Hacker News, and someone wrote that it wasn't clear enough that you'd be accessing the same content. Hopefully this commit fixes that.
2021-10-20 17:05:48 +05:30
Alyssa Ross ef09d87fb0
Fix typo in "Toggle Wikipedia redirects" aria label 2021-10-19 10:16:46 +00:00
xanoni 02d90bda57
Remove Onion v2 links ...
... because everything comes to an end
2021-10-16 05:03:28 -04:00
MonsieurBibo 97d186e272
Fixed french typo in store.md 2021-08-15 17:26:27 +02:00
Simon Brazell 4c1290acb2
Merge pull request #272 from Elaborendum/patch-1
Update Spanish Translation
2021-07-27 13:56:16 +10:00
Elaborendum 11819843f4
Update messages.json 2021-07-26 17:53:03 -05:00
SimonBrazell b31c5bf75a Disable Wikiless redirects by default, add "New" tag (#232). 2021-07-25 14:56:28 +10:00
Simon Brazell 6b26f27f9a
Merge pull request #263 from git-bruh/master
add libreddit instance
2021-07-25 14:34:30 +10:00
Simon Brazell 20aafaaa17
Merge pull request #257 from Kotuklion/master
Add Wikiless support
2021-07-25 14:33:02 +10:00
git-bruh fe98d5a798
add libreddit instance 2021-07-17 12:45:14 +05:30
Simon Brazell a2405b44b4
Merge pull request #259 from unixfox/invidious.fdn.fr
removing invidious.fdn.fr
2021-07-16 23:10:23 +10:00
Simon Brazell a42fe58b1d
Merge pull request #256 from unbranched/patch-3
Italian translation fix
2021-07-16 23:09:45 +10:00
Simon Brazell 049f71fd71
Merge pull request #254 from timharek/master
Add redirect for Norwegian Google Translate
2021-07-16 23:08:03 +10:00
Emilien Devos ee6a96ec0a removing invidious.fdn.fr 2021-07-14 00:36:40 +02:00
Kotuklion 033dad74bc cleanup 2021-07-12 23:08:08 +02:00
Kotuklion 9d92671692 better GET processing 2021-07-12 23:02:56 +02:00
Kotuklion 010d19aff9 check host instead of the whole href for occurence of wikipedia.org 2021-07-12 18:48:52 +02:00
Kotuklion 058ca7b6e0 left some unnecessary spaces here and there 2021-07-12 18:30:54 +02:00
Kotuklion cf7575f33b fix minor typos 2021-07-12 18:24:45 +02:00
Kotuklion 60be141050 add Wikiless support 2021-07-12 18:16:23 +02:00
unbranched 1ef8f02372
Italian translation fix
Title fix
2021-07-11 08:39:59 +00:00
Tim Hårek Andreassen 2f903e056b
Add redirect for Norwegian Google Translate
Signed-off-by: Tim Hårek Andreassen <tim@harek.dev>
2021-07-10 15:34:29 +02:00
SimonBrazell 8a21b62478 Bump version & update dependencies. 2021-07-10 09:47:41 +10:00
SimonBrazell 20a6692e4c Closes #242: remove "new" tag from SimplyTranslate. 2021-07-10 09:44:23 +10:00
Simon Brazell c1b446ced1
Merge pull request #248 from FantasyCookie17/master
Add reddit.artemislena.eu
2021-06-17 22:09:55 +10:00
SimonBrazell 1e1fb22302 Merge branch 'master' of github.com:SimonBrazell/privacy-redirect 2021-06-16 23:32:24 +10:00
SimonBrazell 0bd8507fb8 Fixes #238 2021-06-16 23:31:21 +10:00
Simon Brazell c78ee93ae6
Merge pull request #250 from GaurangTandon/fix-license-link
Fixed license link
2021-06-16 22:58:18 +10:00
Simon Brazell 4f9c130396
Merge pull request #246 from B0pol/autoplay
Only append autoplay parameter if necessary
2021-06-16 22:53:44 +10:00
Simon Brazell ebd09086b6
Merge pull request #243 from unbranched/patch-1
Add Italian translation
2021-06-16 22:52:34 +10:00
Simon Brazell 278714033d
Merge pull request #244 from unbranched/patch-2
Add italian translation
2021-06-16 22:52:21 +10:00
Simon Brazell 2c9be901ee
Merge pull request #234 from austinhuang0131/patch-1
Update various instances
2021-06-16 22:38:14 +10:00
Simon Brazell 292c4bc2ff
Merge pull request #226 from unixfox/patch-1
Fix link for the Invidious instances list
2021-06-16 22:32:12 +10:00
Simon Brazell cda8e74567
Merge pull request #225 from jaki/support-redd.it
Redirect redd.it
2021-06-16 22:31:16 +10:00
SimonBrazell 061dfc0904 Redirect Twitter "video" subdomain & update dev dependencies. 2021-06-16 22:22:53 +10:00
Gaurang Tandon 1cbaa3b4a5
Fixed license link 2021-06-16 17:40:46 +05:30
FantasyCookie17 b8a6ec89c9
Added reddit.artemislena.eu 2021-06-16 01:19:47 +02:00
bopol 8e88786dc2 Only append autoplay parameter if necessary 2021-06-12 19:07:37 +02:00
unbranched 6875ad6dbb
Italian translation 2021-06-06 10:05:16 +00:00
unbranched 7d9ad32ac6
Italian translation 2021-06-06 09:54:49 +00:00
Austin Huang 8a8fe35b6b
update nitter instances (2) 2021-05-11 10:27:07 -04:00
Austin Huang a9e6411ca2
update nitter instances (1) 2021-05-11 10:26:02 -04:00
Austin Huang cfd7c15306
update bibliogram instances
closes #233
2021-05-11 10:23:31 -04:00
Émilien Devos d1f27107a1
Fix link for the Invidious instances list 2021-04-25 14:45:43 +00:00
Simon Brazell 888fb0fad0
Merge pull request #224 from fattalion/add-simplytranslate-to-readme
Add SimplyTranslate to README
2021-04-24 15:57:59 +10:00
Jason Kim 8e11c48850
fix: add comments prefix for /foo/
Links that end in trailing slash but don't have "/comments/" should add
"/comments" prefix but don't because the regex match succeeds.  Fix the
regular expression to be more robust and add prefix for paths like

- /foo/
- /////foo
- /foo/////
- ////foo////

and not add prefix for paths like

- /comments/foo
- /////comments/foo
- /comments/////foo
- ////comments////foo
- ////comments////foo/////
2021-04-22 23:32:31 -07:00
Jason Kim e3df6c4333
fix: add comments prefix if no nested path
The previous fix failed to consider links like
"redd.it/r/.../comments/...".  Those don't really exist in the wild, and
they don't work (when redirects are turned off).  Still, play it safe
and don't add "/comments" prefix unless the path has height 1.

Now, redirects should work for

- redd.it/foo
- redd.it/comments/foo
- redd.it/r/bar/comments/foo

even though the only kind of native link that works is

- redd.it/foo
2021-04-22 23:01:54 -07:00
Jason Kim 21ee6b8542 fix: add "/comments" prefix only if it's missing
Although I have never seen it in the wild, it is possible to navigate to
"redd.it/comments/...".  This should redirect to
"teddit.net/comments/..." in the case of instance teddit.net.  However,
the current code redirects it to "teddit.net/comments/comments/...".
Fix it by avoiding adding the prefix if it's already there.
2021-04-22 23:00:09 -07:00
Jason Kim bb6894cec5 feat: support teddit by adding /comments hint
Redirecting tedd.it links to teddit instances works when the link starts
with "/comments".  Add "/comments" to the path for teddit.
2021-04-22 23:00:08 -07:00
Jason Kim 24bf815516
note: explain why redirect is needed for redd.it
If you try visiting a redd.it site like <https://redd.it/1fwqjw> (first
link that came up when searching "site:redd.it"), you may think that the
redirect works because it goes to your configured instance.  However,
there's a leak: redd.it is a redirect to a www.reddit.com site, and
that's when the redirect to instance happens.  If you observe the
network traffic, you'll see that a GET request goes to redd.it, and
redd.it returns HTTP code 302 and location https://www.reddit.com/...

Let's not do that.  Redirect at redd.it so that requests don't hit
reddit servers.  This does not seem to work for teddit instances, so
don't redirect for them.
2021-04-22 21:12:35 -07:00
Jason Kim 9fc3fccf65 fix: don't redirect redd.it for teddit
redd.it redirects don't work for teddit, so don't do it.
2021-04-22 21:12:16 -07:00
Jason Kim 68a89b1c0c feat: add redd.it to reddit targets
Although it doesn't work for teddit, add redd.it to the list of URLs to
redirect.
2021-04-22 21:00:52 -07:00
fattalion 4ad9fd5971 Add SimplyTranslate to README 2021-04-20 15:17:32 +03:00
Simon Brazell 800aa2b6a5
Merge pull request #222 from TotalCaesar659/patch-1
Update Russian translation
2021-04-18 00:11:50 +10:00
TotalCaesar659 2a247f4772
Update Russian translation 2021-04-16 16:31:25 +03:00
SimonBrazell 32dc9b1601 Update translations 2021-04-16 14:16:40 +10:00
SimonBrazell 972ad1299e Fixes #146 - OSM redirect breaks Google Earth 2021-04-16 13:10:19 +10:00
SimonBrazell f714c666d9 Fixes #135 - Handle Twitter usernames with "tweets" in them. 2021-04-16 13:02:18 +10:00
SimonBrazell 01e986fce3 Fixes #173 - Instance list clicking issue. 2021-04-16 12:27:39 +10:00
SimonBrazell 7640e5c6bc Prepare for release 1.1.47 2021-04-16 10:45:15 +10:00
Simon Brazell a45e7def92
Merge pull request #219 from jaki/handle-reddit-img
Redirect reddit images for libreddit instances
2021-04-16 09:34:39 +10:00
Simon Brazell 74f5642cc5
Merge pull request #216 from alefvanoon/master
add some instance
2021-04-16 09:33:14 +10:00
Simon Brazell 46593ef565
Merge branch 'master' into master 2021-04-16 09:33:04 +10:00
Simon Brazell 0ba8546292
Merge pull request #214 from cloudrac3r/patch-1
Update Bibliogram instances list
2021-04-16 09:31:27 +10:00
Simon Brazell 0135202682
Merge pull request #206 from Camille019/master
Add Ecosia search engine
2021-04-16 09:26:51 +10:00
Simon Brazell e9f47ab03f
Merge pull request #202 from hbarsaiyan/master
Add Whoogle Search
2021-04-16 09:26:37 +10:00
Simon Brazell 9c34dc5c5b
Merge branch 'master' into master 2021-04-16 09:25:29 +10:00
Simon Brazell 13884fa6c3
Merge pull request #198 from fattalion/add-simply-translate-support
Add SimplyTranslate support
2021-04-16 09:24:06 +10:00
Simon Brazell 6d4d070523
Merge pull request #193 from tenpura-shrimp/master
add invidious instance
2021-04-16 09:23:39 +10:00
Simon Brazell 35f2b4bb70
Merge pull request #188 from Elaborendum/master
Add spanish translation
2021-04-16 09:23:24 +10:00
Simon Brazell 036a2bea1b
Merge pull request #182 from obeho/patch-1
Update reddit.js
2021-04-16 09:23:12 +10:00
alefvanoon 5bdd9cd914 remove nitter.weaponizedhumiliation.com 2021-04-10 15:16:19 +04:30
alefvanoon 4565c23f19 add bird.trom.tf 2021-04-10 15:05:01 +04:30
alefvanoon aeb94f5835 add insta.trom.tf 2021-04-10 15:03:23 +04:30
alefvanoon cc21902cb0 add search.trom.tf 2021-04-10 14:56:35 +04:30
alefvanoon a2dcb2de56 add searx.silkky.cloud 2021-04-09 23:55:14 +04:30
alefvanoon 12fa39e8b0 add libreddit.silkky.cloud 2021-04-09 23:50:37 +04:30
alefvanoon f76ef21294 add some invidious ins 2021-04-09 23:43:29 +04:30
alefvanoon 0c2a0ed64f add some invidious ins 2021-04-09 23:34:57 +04:30
Jason Kim 905abce8f7
refactor: drop teddit image redirect support
No longer redirect image links for teddit instances.  Add a comment
detailing the two issues I found.  Now, the feature should be stable.
2021-04-09 00:16:05 -07:00
Jason Kim e86895b008 fix: don't redirect for rest of instances
Unbreak old.reddit.com and i.reddit.com by ignoring image redirects for
them.
2021-04-09 00:00:42 -07:00
Jason Kim 123cca4e5c fix: redirect teddit differently
Teddit image urls are different from libreddit.  Handle each separately.
Test manually:

- libredd.it: pass
- libreddit.spike.codes: pass
- libreddit.kavin.rocks: pass
- libreddit.insanity.wtf: fail (site doesn't work in general)
- libreddit.dothq.co: pass
- teddit.net: mostly fail
- teddit.ggc-project.de: mostly fail
- teddit.kavin.rocks: mostly fail
- old.reddit.com: fail
- i.reddit.com: fail
- snew.notabug.io: fail (site doesn't work in general)

Teddit image urls have two issues.  First, the links almost never work
(404) if the image url is visited directly before visiting the main
page.  Once the main page is visited, however, the image url starts
working.  I'm guessing this is an issue with teddit instances not
fetching images unless the main page is accessed.  Second, some image
links are different/incompatible for some reason.  For example,
<https://i.redd.it/htg3owj12ok21.png> turns into
<https://teddit.net/pics/w:null_TpEyuHnjif6578pV0lBuM-kNW1bXqxbvqbOHjhRZVr0.png>.
Libreddit seems to not have this issue.
2021-04-08 23:37:43 -07:00
Jason Kim 397fd8cffb feat: add img prefix for i.redd.it
"i.redd.it/<imgfile>" redirects "libredd.it/<imgfile>".  Make it
redirect to "libredd.it/img/<imgfile>".  Tested only for "libredd.it".
2021-04-08 22:38:52 -07:00
Jason Kim 0799b93000 feat: add i.redd.it to reddit targets
Add "i.redd.it" to list of urls to redirect for Reddit.  Although the
redirect works, the link should be invalid because it still needs an
"img" path prefix.
2021-04-08 22:30:41 -07:00
Cadence Ember 6446da6e4c
Update Bibliogram instances list
Set it to match the list of actually working instances.

https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md
2021-04-07 22:14:47 +12:00
Harsh Barsaiyan b5920f052a
Update manifest.json 2021-04-05 02:46:50 +05:30
Harsh Barsaiyan 0b9f5062a0 Add ViewTube 2021-03-30 23:48:05 +05:30
Camille019 2d2ef8f1f2 Add Ecosia search engine 2021-03-20 11:13:23 +01:00
Harsh Barsaiyan 280064310d Add Whoogle Search 2021-03-11 09:21:56 +00:00
fattalion 7ab37d80de Disable SimplyTranslate redirects by default 2021-03-02 20:55:37 +03:00
fattalion 2bb90f8f41 Add SimplyTranslate support 2021-02-25 18:24:37 +03:00
Andrew Zhao fd37caecf1 add invidious instance 2021-02-24 12:04:52 -08:00
Elaborendum dfc91d4aaf
Create store.md 2021-02-20 01:09:20 -05:00
Elaborendum 7d21a5a15d
Create messages.json 2021-02-20 01:09:01 -05:00
obeho 1f7e58ede4
Update reddit.js
Added instance libreddit.himiko.cloud
2021-02-14 18:50:17 +05:30
Simon Brazell a76ea4f66e
Merge pull request #176 from mmatous/add-presearch
Add Presearch search engine
2021-02-10 09:47:55 +11:00
Simon Brazell a8b1681648
Merge pull request #170 from howoz/master
add turkish translation
2021-02-10 09:45:55 +11:00
Martin Matous f42ccd8891
Add Presearch search engine 2021-02-01 08:10:01 +01:00
howoz 1d120b2165 tr translation done 2021-01-30 06:42:15 +03:00
howoz ed0ddd7575 start of tr translation 2021-01-30 02:41:20 +03:00
Simon Brazell f446c0922d
Merge pull request #164 from yshalsager/patch-1
invidious: Add invidious.tube to instances
2021-01-19 13:45:37 +11:00
Youssif Shaaban Alsager bf1bc849ba
invidious: Add invidious.tube to instances 2021-01-16 22:38:00 +02:00
Simon Brazell a33542eefc
Merge pull request #161 from TotalCaesar659/patch-1
Update Russian translation
2021-01-13 13:14:35 +11:00
TotalCaesar659 a12ec9dc55
Update Russian translation 2021-01-13 03:40:42 +03:00
28 changed files with 1818 additions and 14047 deletions

1
.nvmrc Normal file
View File

@ -0,0 +1 @@
lts/fermium

View File

@ -12,13 +12,15 @@
[![Donate](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/SimonBrazell/donate) [![Buy me a coffee](src/assets/images/buy-me-a-coffee.png)](https://www.buymeacoffee.com/SimonBrazell)
- **BTC:** 3JZWooswwmmqQKw5iW6AYFfK5gcWTrvueE
- **FIRO** `aEyKPU7mwWBYRFGoLiUGeQQybyzD8jzsS8`
- **BTC:** `3JZWooswwmmqQKw5iW6AYFfK5gcWTrvueE`
- **ETH:** `0x90049dc59365dF683451319Aa4632aC61193dFA7`
<img src="https://img.shields.io/liberapay/receives/SimonBrazell.svg?logo=liberapay">
## About
A web extension that redirects _Twitter, YouTube, Instagram, Google Maps, Reddit & Google Search_ requests to privacy friendly alternatives - [Nitter](https://github.com/zedeus/nitter), [Invidious](https://github.com/iv-org/invidious), [FreeTube](https://github.com/FreeTubeApp/FreeTube), [Bibliogram](https://sr.ht/~cadence/bibliogram/), [OpenStreetMap](https://www.openstreetmap.org/) & Private Search Engines like [DuckDuckGo](https://duckduckgo.com) and [Startpage](https://startpage.com).
A web extension that redirects _Twitter, YouTube, Instagram, Google Maps, Reddit, Google Search, & Google Translate_ requests to privacy friendly alternative frontends for those sites - [Nitter](https://github.com/zedeus/nitter), [Invidious](https://github.com/iv-org/invidious), [FreeTube](https://github.com/FreeTubeApp/FreeTube), [Bibliogram](https://sr.ht/~cadence/bibliogram/), [OpenStreetMap](https://www.openstreetmap.org/), [SimplyTranslate](https://git.sr.ht/~metalune/simplytranslate_web) & Private Search Engines like [DuckDuckGo](https://duckduckgo.com) and [Startpage](https://startpage.com).
It's possible to toggle all redirects on and off. The extension will default to using random instances if none are selected. If these instances are not working, you can try and set a custom instance from the list below.
@ -27,8 +29,9 @@ It's possible to toggle all redirects on and off. The extension will default to
Privacy Redirect allows setting custom instances, instances can be found here:
- [Nitter instances](https://github.com/zedeus/nitter/wiki/Instances)
- [Invidious instances](https://github.com/iv-org/invidious/wiki/Invidious-Instances)
- [Invidious instances](https://docs.invidious.io/Invidious-Instances.md)
- [Bibliogram instances](https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md)
- [SimplyTranslate instances](https://git.sr.ht/~metalune/simplytranslate_web#list-of-instances)
- [OpenStreetMap tile servers](https://wiki.openstreetmap.org/wiki/Tile_servers)
- Reddit alternatives:
- [Libreddit](https://github.com/spikecodes/libreddit#instances)
@ -39,8 +42,11 @@ Privacy Redirect allows setting custom instances, instances can be found here:
- [SearX](https://searx.github.io/searx/)
- [DuckDuckGo](https://duckduckgo.com)
- [Startpage](https://startpage.com)
- [Ecosia](https://www.ecosia.org)
- [Qwant](https://www.qwant.com)
- [Mojeek](https://www.mojeek.com)
- [Presearch](https://www.presearch.org)
- [Whoogle](https://benbusby.com/projects/whoogle-search/)
## Development
@ -60,7 +66,7 @@ Privacy Redirect allows setting custom instances, instances can be found here:
## License
[GPLv3](LICENSE.txt).
[GPLv3](LICENSE).
## Permissions

14750
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "privacy-redirect",
"description": "Redirects Twitter, YouTube, Instagram & Google Maps requests to privacy friendly alternatives.",
"description": "Redirects Twitter, YouTube, Instagram and more to privacy friendly alternatives.",
"engines": {
"node": ">=10.0.0",
"npm": ">=5.6.0"
@ -14,12 +14,12 @@
"url": "git+https://github.com/SimonBrazell/privacy-redirect.git"
},
"author": "SimonBrazell",
"license": "GPLv3",
"license": "GPL-3.0-only",
"bugs": {
"url": "https://github.com/SimonBrazell/privacy-redirect/issues"
},
"homepage": "https://github.com/SimonBrazell/privacy-redirect#readme",
"devDependencies": {
"web-ext": "^5.4.1"
"web-ext": "^6.2.0"
}
}

View File

@ -4,7 +4,7 @@
"description": "Name of the extension."
},
"extensionDescription": {
"message": "Redirects Twitter, YouTube, Instagram, Google Maps, Reddit & Google Search requests to privacy friendly alternatives.",
"message": "Redirects Twitter, YouTube, Instagram and more to privacy friendly alternatives.",
"description": "Description of the extension."
},
"nitterInstance": {
@ -31,6 +31,14 @@
"message": "Search Engine Instance",
"description": "Label for Search Engine instance field option (options)."
},
"simplyTranslateInstance": {
"message": "SimplyTranslate Instance",
"description": "Label for SimplyTranslate instance field option (options)."
},
"wikipediaInstance": {
"message": "Wikipedia Instance",
"description": "Label for Wikipedia instance field option (options)."
},
"disableNitter": {
"message": "Nitter Redirects",
"description": "Label for enable/disable Nitter redirects option (options & pop-up)."
@ -55,6 +63,14 @@
"message": "Search Engine Redirects",
"description": "Label for enable/disable Search Engine redirects option (options & pop-up)."
},
"disableSimplyTranslate": {
"message": "SimplyTranslate Redirects",
"description": "Label for enable/disable SimplyTranslate redirects option (options & pop-up)."
},
"disableWikipedia": {
"message": "Wikipedia Redirects",
"description": "Label for enable/disable Wikipedia redirects option (options & pop-up)."
},
"alwaysProxy": {
"message": "Always proxy videos through Invidious",
"description": "Label for 'Always proxy videos through Invidious' option (options)."

View File

@ -0,0 +1,162 @@
{
"extensionName": {
"message": "Privacy Redirect",
"description": "Nombre de la extensión."
},
"extensionDescription": {
"message": "Redirige las solicitudes de Twitter, Youtube, Instagram, Google Maps, Reddit y la Búsqueda de Google a alternativas que respetan su privacidad.",
"description": "Descripción de la extensión."
},
"nitterInstance": {
"message": "Instancia de Nitter",
"description": "Etiqueta del campo para la instancia de Nitter (opciones)."
},
"invidiousInstance": {
"message": "Instancia de Invidious",
"description": "Etiqueta del campo para la instancia de Invidious (opciones)."
},
"bibliogramInstance": {
"message": "Instancia de Bibliogram",
"description": "Etiqueta del campo para la instancia de Bibliogram (opciones)."
},
"osmInstance": {
"message": "Instancia de OpenStreetMap",
"description": "Etiqueta del campo para la instancia de OSM (opciones)."
},
"redditInstance": {
"message": "Instancia de Reddit",
"description": "Etiqueta del campo para la instancia de Reddit (opciones)."
},
"searchEngineInstance": {
"message": "Instancia de Buscador",
"description": "Etiqueta del campo para la instancia de Buscador (opciones)."
},
"simplyTranslateInstance": {
"message": "Instancia deSimplyTranslate",
"description": "Etiqueta del campo para la instancia de SimplyTranslate (opciones)."
},
"wikipediaInstance": {
"message": "Instancia de Wikipedia",
"description": "Etiqueta del campo para la instancia de Wikipedia (opciones)."
},
"disableNitter": {
"message": "Redirecciones de Nitter",
"description": "Etiqueta para activar/desactivar la opción de redirecciones de Nitter (opciones y pop-up)."
},
"disableInvidious": {
"message": "Redirecciones de Invidious",
"description": "Etiqueta para activar/desactivar la opción de redirecciones de Invidious (opciones y pop-up)."
},
"disableBibliogram": {
"message": "Redirecciones de Bibliogram",
"description": "Etiqueta para activar/desactivar la opción de redirecciones de Bibliogram (opciones y pop-up)."
},
"disableOsm": {
"message": "Redirecciones de OpenStreetMap",
"description": "Etiqueta para activar/desactivar la opción de redirecciones de OSM (opciones y pop-up)."
},
"disableReddit": {
"message": "Redirecciones de Reddit",
"description": "Etiqueta para activar/desactivar la opción de redirecciones de Reddit (opciones y pop-up)."
},
"disableSearchEngine": {
"message": "Redirecciones de Buscador",
"description": "Etiqueta para activar/desactivar la opción de redirecciones de Buscador (opciones y pop-up)."
},
"disableSimplyTranslate": {
"message": "Redirecciones de SimplyTranslate",
"description": "Etiqueta para activar/desactivar la opción de redirecciones de SimplyTranslate (opciones y pop-up)."
},
"disableWikipedia": {
"message": "Redirecciones de Wikipedia",
"description": "Etiqueta para activar/desactivar la opción de redirecciones de Wikipedia (opciones y pop-up)."
},
"alwaysProxy": {
"message": "Siempre usar el proxy de Invidious para videos",
"description": "Etiqueta para la opción de 'Siempre usar el proxy de Invidious para videos' (opciones)."
},
"onlyEmbeddedVideo": {
"message": "Solo redirigir los videos incrustados a Invidious",
"description": "Etiqueta para la opción de 'Solo redirigir los videos incrustados a Invidious' (opciones)."
},
"videoQuality": {
"message": "Calidad de Video de Invidious",
"description": "Etiqueta para la opción de 'Calidad de Video de Invidious' (opciones)."
},
"removeTwitterSW": {
"message": "Eliminar proactivamente el service worker de Twitter",
"description": "Etiqueta para la opción de 'Eliminar proactivamente el service worker de Twitter' (opciones)."
},
"invidiousDarkMode": {
"message": "Modo oscuro de Invidious siempre activo",
"description": "Etiqueta para la opción de 'Modo oscuro de Invidious siempre activo' (opciones)."
},
"persistInvidiousPrefs": {
"message": "Preservar preferencias de Invidious (como cookie)",
"description": "Etiqueta para la opción de 'Preservar preferencias de Invidious (como cookie)' (opciones)."
},
"generalTab": {
"message": "General",
"description": "Pestaña general (opciones)."
},
"advancedTab": {
"message": "Avanzado",
"description": "Pestaña avanzado (opciones)."
},
"exceptionsTab": {
"message": "Excepciones",
"description": "Pestaña de excepciones (opciones)."
},
"exceptionsDescriptionP1": {
"message": "Ingrese la URL o la Expresión Regular a excluir de las redirecciones.",
"description": "Una descripción de la función 'Excepciones' párrafo 1 (opciones)."
},
"exceptionsDescriptionP2": {
"message": "Todas las solicitudes para o provenientes de una URL que coincida con la excepción serán excluidas de las redirecciones.",
"description": "Una descripción de la función 'Excepciones' párrafo 2 (opciones)."
},
"exceptionsDescriptionP3": {
"message": "Nota Soporta expresiones regulares de JavaScript, excluyendo las barras oblicuas de cierre.",
"description": "Una descripción de la función 'Excepciones' párrafo 3 (opciones)."
},
"addException": {
"message": "Agregar Excepción",
"description": "Botón de 'Agregar Excepción' (opciones)."
},
"moreOptions": {
"message": "Más Opciones",
"description": "Botón de 'Más Opciones' (pop-up)."
},
"privacy": {
"message": "Privacy",
"description": "Título de la extensión - Privacy (pop-up)."
},
"redirect": {
"message": "Redirect",
"description": "Título de la extensión - Redirect (pop-up)."
},
"version": {
"message": "Versión",
"description": "Versión"
},
"useFreeTube": {
"message": "Usar FreeTube en vez de Invidious cuando sea posible",
"description": "Etiqueta para la opción de 'Usar FreeTube en vez de Invidious cuando sea posible' (opciones)."
},
"nitterRandomPool": {
"message": "Grupo de instancias aleatorias de Nitter (separadas por coma)",
"description": "Etiqueta para la opción de 'Grupo de instancias aleatorias de Nitter (separadas por coma)' (opciones)."
},
"invidiousRandomPool": {
"message": "Grupo de instancias aleatorias de Invidious (separadas por coma)",
"description": "Etiqueta para la opción de 'Grupo de instancias aleatorias de Invidious (separadas por coma)' (opciones)."
},
"bibliogramRandomPool": {
"message": "Grupo de instancias aleatorias de Bibliogram (separadas por coma)",
"description": "Etiqueta para la opción de 'Grupo de instancias aleatorias de Bibliogram (separadas por coma)' (opciones)."
},
"randomInstancePlaceholder": {
"message": "Instancia aleatoria (ninguna seleccionada)",
"description": "Entrada provisional en la configuración del proveedor de instancia que selecciona una instancia aleatoria del grupo cuando ninguna está seleccionada"
}
}

54
src/_locales/es/store.md Normal file
View File

@ -0,0 +1,54 @@
# Extension Store (AMO & Chrome Web Store) Listing
## Summary:
```
Una extensión web simple que redirige las solicitudes de Twitter, Youtube, Instagram, Google Maps, Reddit y la Búsqueda de Google a alternativas que respetan su privacidad.
```
## Description (AMO):
```
Redirige las solicitudes de Twitter, Youtube, Instagram, Google Maps, Reddit y la Búsqueda de Google a alternativas que respetan su privacidad. - <a href='https://nitter.net/'>Nitter</a>, <a href='https://invidio.us/'>Invidious</a>, <a href='https://bibliogram.art/'>Bibliogram</a>, & <a href='https://www.openstreetmap.org'>OpenStreetMap</a>.
Permite ingresar instancias personalizadas, activar/desactivar todas las redirecciones y más.
<b>★ Más Información: </b>
<ul>
<li><a href='https://github.com/zedeus/nitter#nitter-wip'>Nitter</a></li>
<li><a href='https://github.com/omarroth/invidious#invidious'>Invidious</a></li>
<li><a href='https://github.com/cloudrac3r/bibliogram#bibliogram'>Bibliogram</a></li>
<li><a href='https://wiki.openstreetmap.org/'>OpenStreetMap</a></li>
</ul>
El código de esta extensión web está disponible en <a href='https://github.com/SimonBrazell/privacy-redirect'>Github</a>.
<b>★ Dona: 👨🏻‍💻</b>
Si te gusta esta extensión y tienes los recursos económicos, por favor considera <a href='https://www.buymeacoffee.com/SimonBrazell'>comprarme un café</a> ☕️ para mostrar tu aprecio y apoyo al desarrollo del proyecto.
<b>★ Permisos: </b>
<ul>
<li>Por favor, tenga en cuenta que se requiere acceso a todos los eventos de navegación del sitio web (todas las URL), no solo a los dominios de destino, para permitir redireccionamientos de videos incrustados. En este momento no conozco ninguna otra manera de lograr redirecciones iframe; sin embargo, estaría feliz de escuchar algunas sugerencias al respecto 🙂</li>
</ul>
```
## Description (Chrome & Mircosoft):
```
★ Más Información:
• Nitter - https://github.com/zedeus/nitter
• Invidious - https://github.com/omarroth/invidious
• Bibliogram - https://github.com/cloudrac3r/bibliogram
• OpenStreetMap - https://wiki.openstreetmap.org
El código de esta extensión web está disponible en Github - https://github.com/SimonBrazell/privacy-redirect
★ Dona: 👨🏻‍💻
Si te gusta esta extensión y tienes los recursos económicos, por favor considera comprarme un café ☕️ para mostrar tu aprecio y apoyo al desarrollo del proyecto.
☕️ https://www.buymeacoffee.com/SimonBrazell ☕️
🍻 https://liberapay.com/SimonBrazell/donate 🍻
★ Permisos:
• Por favor, tenga en cuenta que se requiere acceso a todos los eventos de navegación del sitio web (todas las URL), no solo a los dominios de destino, para permitir redireccionamientos de videos incrustados. En este momento no conozco ninguna otra manera de lograr redirecciones iframe; sin embargo, estaría feliz de escuchar algunas sugerencias al respecto 🙂
```

View File

@ -9,7 +9,7 @@ Redirige les requêtes les demandes Twitter, YouTube, Instagram et Google Maps v
## Description:
```
Redirige les requètes pour Twitter, YouTube, Instagram et Google Maps vers des alternatives respectueuses de la confidentialité - <a href="https://nitter.net/">Nitter</a>, <a href="https://invidio.us/">Invidious</a>, <a href="https://bibliogram.art/">Bibliogram</a>, & <a href="https://www.openstreetmap.org">OpenStreetMap</a>.
Redirige les requêtes pour Twitter, YouTube, Instagram et Google Maps vers des alternatives respectueuses de la confidentialité - <a href="https://nitter.net/">Nitter</a>, <a href="https://invidio.us/">Invidious</a>, <a href="https://bibliogram.art/">Bibliogram</a>, & <a href="https://www.openstreetmap.org">OpenStreetMap</a>.
Permet de définir des instances personnalisées et d'activer ou désactiver toutes les redirections.

View File

@ -0,0 +1,154 @@
{
"extensionName": {
"message": "Privacy Redirect",
"description": "Name of the extension."
},
"extensionDescription": {
"message": "Reindirizza Twitter, YouTube, Instagram ed altri verso alternative rispettose della privacy.",
"description": "Description of the extension."
},
"nitterInstance": {
"message": "Istanza di Nitter",
"description": "Label for Nitter instance field option (options)."
},
"invidiousInstance": {
"message": "Istanza di Invidious",
"description": "Label for Invidious instance field option (options)."
},
"bibliogramInstance": {
"message": "Istanza di Bibliogram",
"description": "Label for Bibliogram instance field option (options)."
},
"osmInstance": {
"message": "Istanza di OpenStreetMap",
"description": "Label for OSM instance field option (options)."
},
"redditInstance": {
"message": "Istanza di Reddit",
"description": "Label for Reddit instance field option (options)."
},
"searchEngineInstance": {
"message": "Istanza del motore di ricerca",
"description": "Label for Search Engine instance field option (options)."
},
"simplyTranslateInstance": {
"message": "Istanza di SimplyTranslate",
"description": "Label for SimplyTranslate instance field option (options)."
},
"disableNitter": {
"message": "Reindirizzamenti Nitter",
"description": "Label for enable/disable Nitter redirects option (options & pop-up)."
},
"disableInvidious": {
"message": "Reindirizzamenti Invidious",
"description": "Label for enable/disable Invidious redirects option (options & pop-up)."
},
"disableBibliogram": {
"message": "Reindirizzamenti Bibliogram",
"description": "Label for enable/disable Bibliogram redirects option (options & pop-up)."
},
"disableOsm": {
"message": "Reindirizzamenti OpenStreetMap",
"description": "Label for enable/disable OSM redirects option (options & pop-up)."
},
"disableReddit": {
"message": "Reindirizzamenti Reddit",
"description": "Label for enable/disable Reddit redirects option (options & pop-up)."
},
"disableSearchEngine": {
"message": "Reindirizzamenti motore di ricerca",
"description": "Label for enable/disable Search Engine redirects option (options & pop-up)."
},
"disableSimplyTranslate": {
"message": "Reindirizzamenti SimplyTranslate",
"description": "Label for enable/disable SimplyTranslate redirects option (options & pop-up)."
},
"alwaysProxy": {
"message": "Usa sempre il proxy per i video su Invidious",
"description": "Label for 'Always proxy videos through Invidious' option (options)."
},
"onlyEmbeddedVideo": {
"message": "Reindirizza solo i video incorporati verso Invidious",
"description": "Label for 'Only redirect embedded video to Invidious' option (options)."
},
"videoQuality": {
"message": "Qualità video di Invidious",
"description": "Label for 'Invidious Video Quality' option (options)."
},
"removeTwitterSW": {
"message": "Rimuovi proattivamente il service worker di Twitter",
"description": "Label for 'Proactively remove Twitter service worker' option (options)."
},
"invidiousDarkMode": {
"message": "Modalità scura di Invidious sempre attiva",
"description": "Label for 'Invidious dark mode always on' option (options)."
},
"persistInvidiousPrefs": {
"message": "Mantieni le preferenze di Invidious (con cookie)",
"description": "Label for 'Persist Invidious preferences (as cookie)' option (options)."
},
"generalTab": {
"message": "Generali",
"description": "General tab (options)."
},
"advancedTab": {
"message": "Avanzate",
"description": "Advanced tab (options)."
},
"exceptionsTab": {
"message": "Eccezioni",
"description": "Exceptions tab (options)."
},
"exceptionsDescriptionP1": {
"message": "Inserisci un URL o espressione regolare da escludere dai reindirizzamenti.",
"description": "A description of the 'Exceptions' feature paragraph 1 (options)."
},
"exceptionsDescriptionP2": {
"message": "Tutte le richieste verso o da un URL corrispondente all'eccezione saranno escluse dai reindirizzamenti.",
"description": "A description of the 'Exceptions' feature paragraph 2 (options)."
},
"exceptionsDescriptionP3": {
"message": "Nota - Supporta le espressioni regolari JavaScript, esclusi gli slash.",
"description": "A description of the 'Exceptions' feature paragraph 3 (options)."
},
"addException": {
"message": "Aggiungi eccezione",
"description": "'Add Exceptions' button (options)."
},
"moreOptions": {
"message": "Altre opzioni",
"description": "More Options button (pop-up)."
},
"privacy": {
"message": "Privacy",
"description": "Extension title - Privacy (pop-up)."
},
"redirect": {
"message": "Redirect",
"description": "Extension title - Redirect (pop-up)."
},
"version": {
"message": "Versione",
"description": "Version"
},
"useFreeTube": {
"message": "Usa FreeTube al posto di Invidious quando possibile",
"description": "Label for 'Use FreeTube over Invidious when possible' option (options)."
},
"nitterRandomPool": {
"message": "Gruppo di istanze Nitter casuali (separate da virgola)",
"description": "Label for 'Nitter random instance pool (comma-separated)' option (options)."
},
"invidiousRandomPool": {
"message": "Gruppo di istanze Invidious casuali (separate da virgola)",
"description": "Label for 'Invidious random instance pool (comma-separated)' option (options)."
},
"bibliogramRandomPool": {
"message": "Gruppo di istanze Bibliogram casuali (separate da virgola)",
"description": "Label for 'Bibliogram random instance pool (comma-separated)' option (options)."
},
"randomInstancePlaceholder": {
"message": "Istanza casuale (nessuna selezione)",
"description": "Input placeholder for provider instance settings that select a random instance from a pool when none is selected"
}
}

33
src/_locales/it/store.md Normal file
View File

@ -0,0 +1,33 @@
# Extension Store (AMO & Chrome Web Store) Listing
## Summary:
```
Una semplice estensione che reindirizza le richieste di Twitter, YouTube, Instagram e Google Maps verso alternative rispettose della privacy.
```
## Description:
```
Reindirizza le richieste di Twitter, YouTube, Instagram e Google Maps verso alternative rispettose della privacy - <a href='https://nitter.net/'>Nitter</a>, <a href='https://invidio.us/'>Invidious</a>, <a href='https://bibliogram.art/'>Bibliogram</a> e <a href='https://www.openstreetmap.org'>OpenStreetMap</a>.
Permette di impostare istanze personalizzate, attivare/disattivare tutti i reindirizzamenti e altro.
<b>★ Maggiori informazioni: </b>
<ul>
<li><a href='https://github.com/zedeus/nitter#nitter-wip'>Nitter</a></li>
<li><a href='https://github.com/omarroth/invidious#invidious'>Invidious</a></li>
<li><a href='https://github.com/cloudrac3r/bibliogram#bibliogram'>Bibliogram</a></li>
<li><a href='https://wiki.openstreetmap.org/'>OpenStreetMap</a></li>
</ul>
Il codice sorgente di questa estensione è disponibile su <a href='https://github.com/SimonBrazell/privacy-redirect'>Github</a>.
<b>★ Dona: 👨🏻‍💻</b>
Se ti piace questa estensione e te lo puoi permettere, considera di <a href='https://www.buymeacoffee.com/SimonBrazell'>offrirmi un caffè</a> ☕️ per mostrare il tuo apprezzamento e supportare lo sviluppo del progetto.
<b>★ Permessi: </b>
<ul>
<li>Si prega di notare che l'accesso a tutti gli eventi di navigazione web (tutti gli URL), non solo ai domini di destinazione, è necessario per permettere i reindirizzamenti dei video incorporati. Ad oggi non conosco un altro modo per fare i reindirizzamenti di iframe, sarò felice di ricevere suggerimenti al riguardo 🙂</li>
</ul>
```

View File

@ -31,6 +31,10 @@
"message": "Сервис поисковой системы",
"description": "Название настройки (в настройках) поля сервиса поисковой системы."
},
"simplyTranslateInstance": {
"message": "Сервис SimplyTranslate",
"description": "Название настройки (в настройках) поля сервиса SimplyTranslate."
},
"disableNitter": {
"message": "Перенаправление на Nitter",
"description": "Название настройки для включения/выключения перенаправления на Nitter (в настройках и всплывающем окне)."
@ -55,6 +59,10 @@
"message": "Перенаправление поисковой системы",
"description": "Название настройки для включения/выключения перенаправления поисковой системы (в настройках и всплывающем окне)."
},
"disableSimplyTranslate": {
"message": "Перенаправление на SimplyTranslate",
"description": "Название настройки для включения/выключения перенаправления на SimplyTranslate (в настройках и всплывающем окне)."
},
"theme": {
"message": "Тема",
"description": "Название настройки для 'Тема' (в настройках)."
@ -158,5 +166,9 @@
"bibliogramRandomPool": {
"message": "Список случайных сервисов Bibliogram (разделяется запятой)",
"description": "Название настройки для 'Список случайных сервисов Bibliogram (разделяется запятой)' (в настройках)."
},
"randomInstancePlaceholder": {
"message": "Случайный сервис (ничего не выбрано)",
"description": "Заглушка в настройках сервиса провайдера с выбором случайного сервиса из списка, если ничего не выбрано"
}
}

View File

@ -0,0 +1,146 @@
{
"extensionName": {
"message": "Privacy Redirect",
"description": "Uzantı ismi."
},
"extensionDescription": {
"message": "Twitter, YouTube, Instagram, Google Haritalar, Reddit & Google Arama bağlantılarını gizlilik dostu alternatiflerine yönlendirir.",
"description": "Uzantııklaması."
},
"nitterInstance": {
"message": "Nitter Servisi",
"description": "Nitter Servisi seçeneği için etiket (seçenekler)."
},
"invidiousInstance": {
"message": "Invidious Servisi",
"description": "Invidious Servisi seçeneği için etiket (seçenekler)."
},
"bibliogramInstance": {
"message": "Bibliogram Servisi",
"description": "Bibliogram Servisi seçeneği için etiket (seçenekler)."
},
"osmInstance": {
"message": "OpenStreetMap Servisi",
"description": "OSM Servisi seçeneği için etiket (seçenekler)."
},
"redditInstance": {
"message": "Reddit Servisi",
"description": "Reddit Servisi seçeneği için etiket (seçenekler)."
},
"searchEngineInstance": {
"message": "Arama Motoru Servisi",
"description": "Arama Motoru Servisi seçeneği için etiket (seçenekler)."
},
"disableNitter": {
"message": "Nitter Yönlendirmesi",
"description": "Nitter Yönlendirmesi'ni etkinleştirme/devre dışı bırakma seçeneği için etiket (seçenekler & açılır pencere)."
},
"disableInvidious": {
"message": "Invidious Yönlendirmesi",
"description": "Invidious Yönlendirmesi'ni etkinleştirme/devre dışı bırakma seçeneği için etiket (seçenekler & açılır pencere)."
},
"disableBibliogram": {
"message": "Bibliogram Yönlendirmesi",
"description": "Bibliogram Yönlendirmesi'ni etkinleştirme/devre dışı bırakma seçeneği için etiket (seçenekler & açılır pencere)."
},
"disableOsm": {
"message": "OpenStreetMap Yönlendirmesi",
"description": "OSM Yönlendirmesi'ni etkinleştirme/devre dışı bırakma seçeneği için etiket (seçenekler & açılır pencere)."
},
"disableReddit": {
"message": "Reddit Yönlendirmesi",
"description": "Reddit Yönlendirmesi'ni etkinleştirme/devre dışı bırakma seçeneği için etiket (seçenekler & açılır pencere)."
},
"disableSearchEngine": {
"message": "Arama Motoru Yönlendirmesi",
"description": "Arama Motoru Yönlendirmesi'ni etkinleştirme/devre dışı bırakma seçeneği için etiket (seçenekler & açılır pencere)."
},
"alwaysProxy": {
"message": "Videoları her zaman Invidious üzerinden geçir",
"description": "'Videoları her zaman Invidious üzerinden geçir' seçeneği için etiket (seçenekler)."
},
"onlyEmbeddedVideo": {
"message": "Sadece siteye gömülü videoları Invidious'a yönlendir",
"description": "'Sadece siteye gömülü videoları Invidious'a yönlendir' seçeneği için etiket (seçenekler)."
},
"videoQuality": {
"message": "Invidious Video Kalitesi",
"description": "'Invidious Video Kalitesi' seçeneği için etiket (seçenekler)."
},
"removeTwitterSW": {
"message": "Twitter servis çalışanını proaktif olarak kaldır",
"description": "'Twitter servis çalışanını proaktif olarak kaldır' seçeneği için etiket (seçenekler)."
},
"invidiousDarkMode": {
"message": "Invidious her zaman açık karanlık mod",
"description": "'Invidious her zaman açık karanlık mod' seçeneği için etiket (seçenekler)."
},
"persistInvidiousPrefs": {
"message": "Invidious tercihlerini kaydet (çerez olarak)",
"description": "'Persist Invidious preferences (as cookie)' option (seçenekler)."
},
"generalTab": {
"message": "Genel",
"description": "Genel sekme (seçenekler)."
},
"advancedTab": {
"message": "Gelişmiş",
"description": "Gelişmiş sekme (seçenekler)."
},
"exceptionsTab": {
"message": "İstisnalar",
"description": "İstisnalar sekmesi (seçenekler)."
},
"exceptionsDescriptionP1": {
"message": "Yönlendirmelerden hariç tutulacak bir URL veya düzenli ifade gir",
"description": "'İstisnalar' özelliği paragraf 1'in açıklaması (seçenekler)."
},
"exceptionsDescriptionP2": {
"message": "İstisnayla eşleşen bir URL'ye yönelik veya URL'den çıkan bütün bağlantılar yönlendirmelerden hariç tutulacak",
"description": "'İstisnalar' özelliği paragraf 2'nin açıklaması (seçenekler)."
},
"exceptionsDescriptionP3": {
"message": "Not - JavaScript düzenli ifadelerini destekler, kapalı eğik çizgiler kullanılmadan.",
"description": "'İstisnalar' özelliği paragraf 3'ün açıklaması (seçenekler)."
},
"addException": {
"message": "İstisna ekle",
"description": "'İstisna ekle' butonu (seçenekler)"
},
"moreOptions": {
"message": "Daha Fazla Seçenek",
"description": "Daha Fazla Seçenek butonu (açılır pencere)."
},
"privacy": {
"message": "Gizlilik",
"description": "Uzantı ismi - Gizlilik (açılır pencere)."
},
"redirect": {
"message": "Yönlendir",
"description": "Uzantı ismi - Yönlendir (açılır pencere)."
},
"version": {
"message": "Sürüm",
"description": "Sürüm"
},
"useFreeTube": {
"message": "Mümkün olduğunda Invidious yerine FreeTube kullan",
"description": "'Mümkün olduğunda Invidious yerine FreeTube kullan' seçeneği etiketi (seçenekler)."
},
"nitterRandomPool": {
"message": "Nitter rastgele servis havuzu (virgülle ayrılmış)",
"description": "'Nitter rastgele servis havuzu (virgülle ayrılmış)' seçeneği etiketi (seçenekler)."
},
"invidiousRandomPool": {
"message": "Invidious rastgele servis havuzu (virgülle ayrılmış)",
"description": "'Invidious rastgele servis havuzu (virgülle ayrılmış)' seçeneği etiketi (seçenekler)."
},
"bibliogramRandomPool": {
"message": "Bibliogram rastgele servis havuzu (virgülle ayrılmış)",
"description": "'Bibliogram rastgele servis havuzu (virgülle ayrılmış)' seçeneği etiketi (seçenekler)."
},
"randomInstancePlaceholder": {
"message": "Rastgele servis (hiçbir servis seçilmedi)",
"description": "Hiçbir servis seçilmediğinde bir havuzdan rastgele servis seçen sağlayıcı servis ayarları için yer tutucu"
}
}

56
src/_locales/tr/store.md Normal file
View File

@ -0,0 +1,56 @@
# Extension Store (AMO & Chrome Web Store) Listing
## Summary:
```
Twitter, YouTube, Instagram & Google Haritalar bağlantılarını gizlilik dostu alternatiflerine yönlendiren basit bir web uzantısı.
```
## Description (AMO):
```
Twitter, YouTube, Instagram, & Google Haritalar bağlantılarını gizlilik dostu alternatiflerine yönlendirir - <a href='https://nitter.net/'>Nitter</a>, <a href='https://invidio.us/'>Invidious</a>, <a href='https://bibliogram.art/'>Bibliogram</a>, & <a href='https://www.openstreetmap.org'>OpenStreetMap</a>.
Allows for setting custom instances, toggling all redirects on/off and more.
<b>★ Daha Fazla Bilgi: </b>
<ul>
<li><a href='https://github.com/zedeus/nitter#nitter-wip'>Nitter</a></li>
<li><a href='https://github.com/omarroth/invidious#invidious'>Invidious</a></li>
<li><a href='https://github.com/cloudrac3r/bibliogram#bibliogram'>Bibliogram</a></li>
<li><a href='https://wiki.openstreetmap.org/'>OpenStreetMap</a></li>
</ul>
Bu web uzantısının kaynak kodu <a href='https://github.com/SimonBrazell/privacy-redirect'>Github</a>'da mevcut'.
<b>★ Bağış At: 👨🏻‍💻</b>
Eğer bu uzantıyı seviyorsan ve minnettarlığını gösterip projenin devamını destekliyorsan ve bana bir <a href='https://www.buymeacoffee.com/SimonBrazell'>kahve alıcak</a> ☕️ kadar maddi durumun varsa.
<b>★ İzinler: </b>
<ul>
<li>Lütfen aklınızda bulundurun, siteye gömülü video yönlendirmelerinin çalışması için bütün website dolaşım etkinliklerine, sadece hedef alan adlarına değil, erişim gereklidir. Şu anda çerçeve yönlendirmenin başka hiçbir yolunu bilmiyorum, bununla ilgili bazı öneriler duymaya sevinirim 🙂</li>
</ul>
```
## Description (Chrome & Mircosoft):
```
★ Daha Fazla Bilgi:
• Nitter - https://github.com/zedeus/nitter
• Invidious - https://github.com/omarroth/invidious
• Bibliogram - https://github.com/cloudrac3r/bibliogram
• OpenStreetMap - https://wiki.openstreetmap.org
Özel örnekler ayarlamaya, tüm yönlendirmeleri açıp kapatmaya ve daha fazlasına izin verir.
Bu web uzantısının kaynak kodu Github'da mevcut' - https://github.com/SimonBrazell/privacy-redirect
★ Bağış At: 👨🏻‍💻
Eğer bu uzantıyı seviyorsan ve minnettarlığını gösterip projenin devamını destekliyorsan ve bana bir kahve alıcak ☕️ kadar maddi durumun varsa.
☕️ https://www.buymeacoffee.com/SimonBrazell ☕️
🍻 https://liberapay.com/SimonBrazell/donate 🍻
★ İzinler:
• Lütfen aklınızda bulundurun, siteye gömülü video yönlendirmelerinin çalışması için bütün website dolaşım etkinliklerine, sadece hedef alan adlarına değil, erişim gereklidir. Şu anda çerçeve yönlendirmenin başka hiçbir yolunu bilmiyorum, bununla ilgili bazı öneriler duymaya sevinirim 🙂
```

View File

@ -2,6 +2,7 @@ const targets = /https?:\/\/(((www|maps)\.)?(google\.).*(\/search)|search\.(goog
const redirects = [
{ link: "https://duckduckgo.com", q: "/" },
{ link: "https://startpage.com", q: "/search/" },
{ link: "https://www.ecosia.org", q: "/search" },
{ link: "https://www.qwant.com", q: "/" },
{ link: "https://www.mojeek.com", q: "/search" },
{ link: "https://search.snopyta.org", q: "/" },
@ -11,6 +12,13 @@ const redirects = [
{ link: "https://searx.tuxcloud.net", q: "/" },
{ link: "https://searx.ninja", q: "/" },
{ link: "https://tromland.org/searx", q: "/search" },
{ link: "https://engine.presearch.org", q: "/search" },
{ link: "https://searx.silkky.cloud", q: "/" },
{ link: "https://search.trom.tf", q: "/" },
{ link: "https://whooglesearch.net", q: "/search" },
{ link: "https://whoogle.sdf.org", q: "/search" },
{ link: "https://whoogle.himiko.cloud", q: "/search" },
{ link: "https://whoogle-search.zeet.app", q: "/search" },
];
export default {

View File

@ -0,0 +1,8 @@
const targets = ["translate.google.com", "translate.google.no"];
const redirects = ["https://translate.metalune.xyz"];
export default {
targets,
redirects,
};

View File

@ -9,13 +9,10 @@ const redirects = [
"https://bibliogram.snopyta.org",
"https://bibliogram.pussthecat.org",
"https://bibliogram.nixnet.services",
"https://bg.endl.site",
"https://bibliogram.13ad.de",
"https://bibliogram.pixelfed.uno",
"https://bibliogram.ethibox.fr",
"https://bibliogram.hamster.dance",
"https://bibliogram.kavin.rocks",
"https://bibliogram.ggc-project.de",
"https://insta.trom.tf",
"https://bib.actionsack.com"
];
const reservedPaths = [
"about",

View File

@ -3,6 +3,9 @@ const targets = [
"np.reddit.com",
"new.reddit.com",
"amp.reddit.com",
"i.redd.it",
"redd.it",
"old.reddit.com",
];
const redirects = [
// libreddit: privacy w/ modern UI
@ -11,13 +14,14 @@ const redirects = [
"https://libreddit.kavin.rocks",
"https://libreddit.insanity.wtf",
"https://libreddit.dothq.co",
"https://libreddit.silkky.cloud",
"https://libreddit.himiko.cloud",
"https://reddit.artemislena.eu",
// teddit: privacy w/ old UI
"https://teddit.net",
"https://teddit.ggc-project.de",
"https://teddit.kavin.rocks",
"https://old.reddit.com", // desktop
"https://i.reddit.com", // mobile
"https://snew.notabug.io", // anti-censorship
"https://snew.notabug.io",
];
const bypassPaths = /\/(gallery\/poll\/rpan\/settings\/topics)/;

View File

@ -1,5 +1,5 @@
/*
Please remember to also update the manifest.json file
Please remember to also update the src/manifest.json file
(content_scripts > matches, 'remove-twitter-sw.js')
when updating this list:
*/
@ -10,14 +10,17 @@ const targets = [
"pbs.twimg.com",
"video.twimg.com",
];
/*
Please remember to also update the
src/assets/javascripts/remove-twitter-sw.js file
(const nitterInstances) when updating this list:
*/
const redirects = [
"https://nitter.net",
"https://nitter.snopyta.org",
"https://nitter.42l.fr",
"https://nitter.nixnet.services",
"https://nitter.13ad.de",
"https://nitter.pussthecat.org",
"https://nitter.mastodont.cat",
"https://nitter.dark.fail",
"https://nitter.tedomum.net",
"https://nitter.cattube.org",
@ -26,9 +29,9 @@ const redirects = [
"https://nitter.kavin.rocks",
"https://tweet.lambda.dance",
"https://nitter.cc",
"https://nitter.weaponizedhumiliation.com",
"https://nitter.vxempire.xyz",
"https://nitter.unixfox.eu",
"https://bird.trom.tf",
"http://3nzoldnxplag42gqjs23xvghtzf6t6yzssrtytnntc6ppc7xxuoneoad.onion",
"http://nitter.l4qlywnpwqsluw65ts7md3khrivpirse744un3x7mlskqauz5pyuzgqd.onion",
"http://nitterlgj3n5fgwesu3vxc5h67ruku33nqaoeoocae2mvlzhsu6k7fqd.onion",

View File

@ -0,0 +1,8 @@
const targets = /wikipedia.org/;
const redirects = ["https://wikiless.org"];
export default {
targets,
redirects,
};

View File

@ -10,8 +10,8 @@ const targets = [
"music.youtube.com",
];
/*
Please remember to also update the manifest.json file
(content_scripts > matches, 'persist-invidious-prefs.js')
Please remember to also update the manifest.json file
(content_scripts > matches, 'persist-invidious-prefs.js')
when updating this list:
*/
const redirects = [
@ -24,8 +24,17 @@ const redirects = [
"https://vid.mint.lgbt",
"https://invidious.site",
"https://yewtu.be",
"https://invidious.tube",
"https://invidious.silkky.cloud",
"https://invidious.himiko.cloud",
"https://inv.skyn3t.in",
"https://tube.incognet.io",
"https://invidious.tinfoil-hat.net",
"https://invidious.namazso.eu",
"https://vid.puffyan.us",
"https://dev.viewtube.io",
"https://invidious.048596.xyz",
"http://fz253lmuao3strwbfbmx46yu7acac2jz27iwtorgmbqlkurlclmancad.onion",
"http://qklhadlycap4cnod.onion",
"http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion",
"http://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion",
];

View File

@ -1,23 +1,23 @@
'use strict';
"use strict";
window.browser = window.browser || window.chrome;
function getCookie() {
let ca = document.cookie.split(';');
let ca = document.cookie.split(";");
for (let i = 0; i < ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf('PREFS=') == 0) {
while (c.charAt(0) == " ") c = c.substring(1, c.length);
if (c.indexOf("PREFS=") == 0) {
return JSON.parse(
decodeURIComponent(c.substring('PREFS='.length, c.length))
)
};
decodeURIComponent(c.substring("PREFS=".length, c.length))
);
}
}
return {};
}
browser.storage.sync.get(
['alwaysProxy', 'videoQuality', 'invidiousDarkMode', 'persistInvidiousPrefs'],
["alwaysProxy", "videoQuality", "invidiousDarkMode", "persistInvidiousPrefs"],
(result) => {
if (result.persistInvidiousPrefs) {
const prefs = getCookie();
@ -27,4 +27,4 @@ browser.storage.sync.get(
document.cookie = `PREFS=${encodeURIComponent(JSON.stringify(prefs))}`;
}
}
);
);

View File

@ -5,9 +5,7 @@ const nitterInstances = [
"https://nitter.snopyta.org",
"https://nitter.42l.fr",
"https://nitter.nixnet.services",
"https://nitter.13ad.de",
"https://nitter.pussthecat.org",
"https://nitter.mastodont.cat",
"https://nitter.dark.fail",
"https://nitter.tedomum.net",
"https://nitter.cattube.org",
@ -16,9 +14,9 @@ const nitterInstances = [
"https://nitter.kavin.rocks",
"https://tweet.lambda.dance",
"https://nitter.cc",
"https://nitter.weaponizedhumiliation.com",
"https://nitter.vxempire.xyz",
"https://nitter.unixfox.eu",
"https://bird.trom.tf"
];
let disableNitter;

View File

@ -1,7 +1,7 @@
{
"name": "__MSG_extensionName__",
"description": "__MSG_extensionDescription__",
"version": "1.1.46",
"version": "1.1.49",
"manifest_version": 2,
"background": {
"page": "pages/background/background.html",
@ -48,8 +48,17 @@
"*://vid.mint.lgbt/*",
"*://invidious.site/*",
"*://yewtu.be/*",
"*://invidious.tube/*",
"*://invidious.silkky.cloud/*",
"*://invidious.himiko.cloud/*",
"*://inv.skyn3t.in/*",
"*://tube.incognet.io/*",
"*://invidious.tinfoil-hat.net/*",
"*://invidious.namazso.eu/*",
"*://vid.puffyan.us/*",
"*://dev.viewtube.io/*",
"*://invidious.048596.xyz/*",
"*://fz253lmuao3strwbfbmx46yu7acac2jz27iwtorgmbqlkurlclmancad.onion/*",
"*://qklhadlycap4cnod.onion/*",
"*://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion/*",
"*://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion/*"
],
@ -65,7 +74,7 @@
"browser_specific_settings": {
"gecko": {
"id": "{b7f9d2cd-d772-4302-8c3f-eb941af36f76}",
"strict_min_version": "60.0"
"strict_min_version": "67.0"
}
}
}

View File

@ -7,6 +7,8 @@ import instagramHelper from "../../assets/javascripts/helpers/instagram.js";
import mapsHelper from "../../assets/javascripts/helpers/google-maps.js";
import redditHelper from "../../assets/javascripts/helpers/reddit.js";
import searchHelper from "../../assets/javascripts/helpers/google-search.js";
import googleTranslateHelper from "../../assets/javascripts/helpers/google-translate.js";
import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js";
const nitterInstances = twitterHelper.redirects;
const twitterDomains = twitterHelper.targets;
@ -29,6 +31,12 @@ const redditBypassPaths = redditHelper.bypassPaths;
const redditDefault = redditHelper.redirects[0];
const googleSearchRegex = searchHelper.targets;
const searchEngineInstances = searchHelper.redirects;
const simplyTranslateInstances = googleTranslateHelper.redirects;
const simplyTranslateDefault = simplyTranslateInstances[0];
const googleTranslateDomains = googleTranslateHelper.targets;
const wikipediaInstances = wikipediaHelper.redirects;
const wikipediaDefault = wikipediaInstances[0];
const wikipediaRegex = wikipediaHelper.targets;
let disableNitter;
let disableInvidious;
@ -36,12 +44,16 @@ let disableBibliogram;
let disableOsm;
let disableReddit;
let disableSearchEngine;
let disableSimplyTranslate;
let disableWikipedia;
let nitterInstance;
let invidiousInstance;
let bibliogramInstance;
let osmInstance;
let redditInstance;
let searchEngineInstance;
let simplyTranslateInstance;
let wikipediaInstance;
let alwaysProxy;
let onlyEmbeddedVideo;
let videoQuality;
@ -66,12 +78,16 @@ browser.storage.sync.get(
"osmInstance",
"redditInstance",
"searchEngineInstance",
"simplyTranslateInstance",
"wikipediaInstance",
"disableNitter",
"disableInvidious",
"disableBibliogram",
"disableOsm",
"disableReddit",
"disableSearchEngine",
"disableSimplyTranslate",
"disableWikipedia",
"alwaysProxy",
"onlyEmbeddedVideo",
"videoQuality",
@ -93,12 +109,17 @@ browser.storage.sync.get(
osmInstance = result.osmInstance || osmDefault;
redditInstance = result.redditInstance || redditDefault;
searchEngineInstance = result.searchEngineInstance;
simplyTranslateInstance =
result.simplyTranslateInstance || simplyTranslateDefault;
wikipediaInstance = result.wikipediaInstance || wikipediaDefault;
disableNitter = result.disableNitter;
disableInvidious = result.disableInvidious;
disableBibliogram = result.disableBibliogram;
disableOsm = result.disableOsm;
disableReddit = result.disableReddit;
disableSearchEngine = result.disableSearchEngine;
disableWikipedia = result.disableWikipedia;
disableSimplyTranslate = result.disableSimplyTranslate;
alwaysProxy = result.alwaysProxy;
onlyEmbeddedVideo = result.onlyEmbeddedVideo;
videoQuality = result.videoQuality;
@ -138,6 +159,13 @@ browser.storage.onChanged.addListener((changes) => {
if ("osmInstance" in changes) {
osmInstance = changes.osmInstance.newValue || osmDefault;
}
if ("simplyTranslateInstance" in changes) {
simplyTranslateInstance =
changes.simplyTranslateInstance.newValue || simplyTranslateDefault;
}
if ("wikipediaInstance" in changes) {
wikipediaInstance = changes.wikipediaInstance.newValue || wikipediaDefault;
}
if ("redditInstance" in changes) {
redditInstance = changes.redditInstance.newValue || redditDefault;
}
@ -162,6 +190,12 @@ browser.storage.onChanged.addListener((changes) => {
if ("disableSearchEngine" in changes) {
disableSearchEngine = changes.disableSearchEngine.newValue;
}
if ("disableSimplyTranslate" in changes) {
disableSimplyTranslate = changes.disableSimplyTranslate.newValue;
}
if ("disableWikipedia" in changes) {
disableWikipedia = changes.disableWikipedia.newValue;
}
if ("alwaysProxy" in changes) {
alwaysProxy = changes.alwaysProxy.newValue;
}
@ -261,7 +295,9 @@ function redirectYouTube(url, initiator, type) {
if (invidiousSubtitles) {
url.searchParams.append("subtitles", invidiousSubtitles);
}
url.searchParams.append("autoplay", invidiousAutoplay ? 1 : 0);
if (invidiousAutoplay) {
url.searchParams.append("autoplay", 1);
}
return `${
invidiousInstance || commonHelper.getRandomInstance(invidiousRandomPool)
@ -272,7 +308,7 @@ function redirectTwitter(url, initiator) {
if (disableNitter || isException(url, initiator)) {
return null;
}
if (url.pathname.includes("/home")) {
if (url.pathname.split("/").includes("home")) {
return null;
}
if (
@ -287,15 +323,11 @@ function redirectTwitter(url, initiator) {
});
return null;
}
if (url.host.split(".")[0] === "pbs") {
if (url.host.split(".")[0] === "pbs" || url.host.split(".")[0] === "video") {
return `${
nitterInstance || commonHelper.getRandomInstance(nitterRandomPool)
}/pic/${encodeURIComponent(url.href)}`;
} else if (url.host.split(".")[0] === "video") {
return `${
nitterInstance || commonHelper.getRandomInstance(nitterRandomPool)
}/gif/${encodeURIComponent(url.href)}`;
} else if (url.pathname.includes("tweets")) {
} else if (url.pathname.split("/").includes("tweets")) {
return `${
nitterInstance || commonHelper.getRandomInstance(nitterRandomPool)
}${url.pathname.replace("/tweets", "")}${url.search}`;
@ -342,6 +374,9 @@ function redirectGoogleMaps(url, initiator) {
if (disableOsm || isException(url, initiator)) {
return null;
}
if (initiator.host === "earth.google.com") {
return null;
}
let redirect;
let mapCentre = "";
let params = "";
@ -361,7 +396,7 @@ function redirectGoogleMaps(url, initiator) {
layers[url.searchParams.get("layer")] || layers["none"]
}`;
// Handle Google Maps Embed API
if (url.pathname.includes("/embed")) {
if (url.pathname.split("/").includes("embed")) {
let query = "";
if (url.searchParams.has("q")) {
query = url.searchParams.get("q");
@ -382,7 +417,7 @@ function redirectGoogleMaps(url, initiator) {
});
redirect = `${osmInstance}/export/embed.html?bbox=${bbox}&layer=mapnik&marker=${marker}`;
// Handle Google Maps Directions
} else if (url.pathname.includes("/dir")) {
} else if (url.pathname.split("/").includes("dir")) {
const travelMode =
travelModes[url.searchParams.get("travelmode")] || travelModes["driving"];
let origin;
@ -448,6 +483,35 @@ function redirectReddit(url, initiator, type) {
if (type !== "main_frame" || url.pathname.match(redditBypassPaths)) {
return null;
}
if (url.host === "i.redd.it") {
if (redditInstance.includes("libredd")) {
return `${redditInstance}/img${url.pathname}${url.search}`;
} else if (redditInstance.includes("teddit")) {
// As of 2021-04-09, redirects for teddit images are nontrivial:
// - navigating to the image before ever navigating to its page causes
// 404 error (probably needs fix on teddit project)
// - some image links on teddit are very different
// Therefore, don't support redirecting image links for teddit.
return null;
} else {
return null;
}
} else if (url.host === "redd.it") {
if (
redditInstance.includes("teddit") &&
!url.pathname.match(/^\/+[^\/]+\/+[^\/]/)
) {
// As of 2021-04-22, redirects for teddit redd.it/foo links don't work.
// It appears that adding "/comments" as a prefix works, so manually add
// that prefix if it is missing. Even though redd.it/comments/foo links
// don't seem to work or exist, guard against affecting those kinds of
// paths.
//
// Note the difference between redd.it/comments/foo (doesn't work) and
// teddit.net/comments/foo (works).
return `${redditInstance}/comments${url.pathname}${url.search}`;
}
}
return `${redditInstance}${url.pathname}${url.search}`;
}
@ -469,6 +533,50 @@ function redirectSearchEngine(url, initiator) {
return `${searchEngine.link}${searchEngine.q}?${search}`;
}
function redirectGoogleTranslate(url, initiator) {
if (disableSimplyTranslate || isException(url, initiator)) {
return null;
}
return `${simplyTranslateInstance}/${url.search}`;
}
function redirectWikipedia(url, initiator) {
if (disableWikipedia || isException(url, initiator)) {
return null;
}
let GETArguments = [];
if (url.search.length > 0) {
let search = url.search.substring(1); //get rid of '?'
let argstrings = search.split("&");
for (let i = 0; i < argstrings.length; i++) {
let args = argstrings[i].split("=");
GETArguments.push([args[0], args[1]]);
}
}
let link = `${wikipediaInstance}${url.pathname}`;
let urlSplit = url.host.split(".");
if (urlSplit[0] != "wikipedia" && urlSplit[0] != "www") {
if (urlSplit[0] == "m")
GETArguments.push(["mobileaction", "toggle_view_mobile"]);
else GETArguments.push(["lang", urlSplit[0]]);
if (urlSplit[1] == "m")
GETArguments.push(["mobileaction", "toggle_view_mobile"]);
//wikiless doesn't have mobile view support yet
}
for (let i = 0; i < GETArguments.length; i++) {
link +=
(i == 0 ? "?" : "&") + GETArguments[i][0] + "=" + GETArguments[i][1];
}
if (
urlSplit[urlSplit.length - 1] == "org" &&
urlSplit[urlSplit.length - 2] == "wikipedia"
)
//just in case someone wanted to visit wikipedia.org.foo.bar.net
return link;
else return null;
}
browser.webRequest.onBeforeRequest.addListener(
(details) => {
const url = new URL(details.url);
@ -495,10 +603,7 @@ browser.webRequest.onBeforeRequest.addListener(
redirect = {
redirectUrl: redirectGoogleMaps(url, initiator),
};
} else if (
redditDomains.includes(url.host) ||
redditInstances.includes(url.origin)
) {
} else if (redditDomains.includes(url.host)) {
redirect = {
redirectUrl: redirectReddit(url, initiator, details.type),
};
@ -506,6 +611,14 @@ browser.webRequest.onBeforeRequest.addListener(
redirect = {
redirectUrl: redirectSearchEngine(url, initiator),
};
} else if (googleTranslateDomains.includes(url.host)) {
redirect = {
redirectUrl: redirectGoogleTranslate(url, initiator),
};
} else if (url.host.match(wikipediaRegex)) {
redirect = {
redirectUrl: redirectWikipedia(url, initiator),
};
}
if (redirect && redirect.redirectUrl) {
console.info(
@ -525,13 +638,26 @@ browser.webRequest.onBeforeRequest.addListener(
);
browser.runtime.onInstalled.addListener((details) => {
browser.storage.sync.get(["disableSearchEngine"], (result) => {
if (result.disableSearchEngine === undefined) {
browser.storage.sync.set({
disableSearchEngine: true,
});
browser.storage.sync.get(
["disableSearchEngine", "disableSimplyTranslate", "disableWikipedia"],
(result) => {
if (result.disableSearchEngine === undefined) {
browser.storage.sync.set({
disableSearchEngine: true,
});
}
if (result.disableSimplyTranslate === undefined) {
browser.storage.sync.set({
disableSimplyTranslate: true,
});
}
if (result.disableWikipedia === undefined) {
browser.storage.sync.set({
disableWikipedia: true,
});
}
}
});
);
if (details.reason === "update") {
browser.storage.sync.get(
["whitelist", "exceptions", "invidiousInstance", "disableSearchEngine"],

View File

@ -147,7 +147,7 @@
<tbody>
<tr>
<td>
<h1 data-localise="__MSG_disableSearchEngine__" class="new-badge" data-new-badge>
<h1 data-localise="__MSG_disableSearchEngine__">
Search Engine Redirects
</h1>
</td>
@ -164,6 +164,44 @@
</tbody>
</table>
</section>
<section class="settings-block">
<table class="option" aria-label="Toggle SimplyTranslate redirects">
<tbody>
<tr>
<td>
<h1 data-localise="__MSG_disableSimplyTranslate__">SimplyTranslate Redirects</h1>
</td>
<td>
<input
aria-hidden="true"
id="disable-simply-translate"
type="checkbox"
/>&nbsp;
<label for="disable-simply-translate" class="checkbox-label"></label>
</td>
</tr>
</tbody>
</table>
</section>
<section class="settings-block">
<table class="option" aria-label="Toggle Wikipedia redirects">
<tbody>
<tr>
<td>
<h1 data-localise="__MSG_disableWikipedia__" class="new-badge" data-new-badge>Wikipedia Redirects</h1>
</td>
<td>
<input
aria-hidden="true"
id="disable-wikipedia"
type="checkbox"
/>&nbsp;
<label for="disable-wikipedia" class="checkbox-label"></label>
</td>
</tr>
</tbody>
</table>
</section>
<section class="settings-block">
<h1 data-localise="__MSG_nitterInstance__">Nitter Instance</h1>
<div class="autocomplete">
@ -229,6 +267,26 @@
/>
</div>
</section>
<section class="settings-block">
<h1 data-localise="__MSG_simplyTranslateInstance__">SimplyTranslate Instance</h1>
<div class="autocomplete">
<input
id="simply-translate-instance"
type="url"
placeholder="https://translate.metalune.xyz"
/>
</div>
</section>
<section class="settings-block">
<h1 data-localise="__MSG_wikipediaInstance__">Wikipedia Instance</h1>
<div class="autocomplete">
<input
id="wikipedia-instance"
type="url"
placeholder="https://wikiless.org"
/>
</div>
</section>
<section class="settings-block">
<h1 data-localise="__MSG_theme__">Theme</h1>
<select id="theme">

View File

@ -7,6 +7,8 @@ import instagramHelper from "../../assets/javascripts/helpers/instagram.js";
import mapsHelper from "../../assets/javascripts/helpers/google-maps.js";
import redditHelper from "../../assets/javascripts/helpers/reddit.js";
import searchHelper from "../../assets/javascripts/helpers/google-search.js";
import googleTranslateHelper from "../../assets/javascripts/helpers/google-translate.js";
import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js";
const nitterInstances = twitterHelper.redirects;
const invidiousInstances = youtubeHelper.redirects;
@ -14,6 +16,8 @@ const bibliogramInstances = instagramHelper.redirects;
const osmInstances = mapsHelper.redirects;
const redditInstances = redditHelper.redirects;
const searchEngineInstances = searchHelper.redirects;
const simplyTranslateInstances = googleTranslateHelper.redirects;
const wikipediaInstances = wikipediaHelper.redirects;
const autocompletes = [
{ id: "nitter-instance", instances: nitterInstances },
{ id: "invidious-instance", instances: invidiousInstances },
@ -24,6 +28,8 @@ const autocompletes = [
id: "search-engine-instance",
instances: searchEngineInstances.map((instance) => instance.link),
},
{ id: "simply-translate-instance", instances: simplyTranslateInstances },
{ id: "wikipedia-instance", instances: wikipediaInstances },
];
const domparser = new DOMParser();
@ -33,12 +39,20 @@ let bibliogramInstance = document.getElementById("bibliogram-instance");
let osmInstance = document.getElementById("osm-instance");
let redditInstance = document.getElementById("reddit-instance");
let searchEngineInstance = document.getElementById("search-engine-instance");
let simplyTranslateInstance = document.getElementById(
"simply-translate-instance"
);
let wikipediaInstance = document.getElementById("wikipedia-instance");
let disableNitter = document.getElementById("disable-nitter");
let disableInvidious = document.getElementById("disable-invidious");
let disableBibliogram = document.getElementById("disable-bibliogram");
let disableOsm = document.getElementById("disable-osm");
let disableReddit = document.getElementById("disable-reddit");
let disableSearchEngine = document.getElementById("disable-search-engine");
let disableSimplyTranslate = document.getElementById(
"disable-simply-translate"
);
let disableWikipedia = document.getElementById("disable-wikipedia");
let alwaysProxy = document.getElementById("always-proxy");
let onlyEmbeddedVideo = document.getElementById("only-embed");
let videoQuality = document.getElementById("video-quality");
@ -90,12 +104,16 @@ browser.storage.sync.get(
"osmInstance",
"redditInstance",
"searchEngineInstance",
"simplyTranslateInstance",
"wikipediaInstance",
"disableNitter",
"disableInvidious",
"disableBibliogram",
"disableOsm",
"disableReddit",
"disableSearchEngine",
"disableSimplyTranslate",
"disableWikipedia",
"alwaysProxy",
"onlyEmbeddedVideo",
"videoQuality",
@ -123,12 +141,16 @@ browser.storage.sync.get(
redditInstance.value = result.redditInstance || "";
searchEngineInstance.value =
(result.searchEngineInstance && result.searchEngineInstance.link) || "";
simplyTranslateInstance.value = result.simplyTranslateInstance || "";
wikipediaInstance.value = result.wikipediaInstance || "";
disableNitter.checked = !result.disableNitter;
disableInvidious.checked = !result.disableInvidious;
disableBibliogram.checked = !result.disableBibliogram;
disableOsm.checked = !result.disableOsm;
disableReddit.checked = !result.disableReddit;
disableSearchEngine.checked = !result.disableSearchEngine;
disableSimplyTranslate.checked = !result.disableSimplyTranslate;
disableWikipedia.checked = !result.disableWikipedia;
alwaysProxy.checked = result.alwaysProxy;
onlyEmbeddedVideo.checked = result.onlyEmbeddedVideo;
videoQuality.value = result.videoQuality || "";
@ -303,6 +325,30 @@ const searchEngineInstanceChange = debounce(() => {
}, 500);
searchEngineInstance.addEventListener("input", searchEngineInstanceChange);
const simplyTranslateInstanceChange = debounce(() => {
if (simplyTranslateInstance.checkValidity()) {
browser.storage.sync.set({
simplyTranslateInstance: parseURL(simplyTranslateInstance.value),
});
}
}, 500);
simplyTranslateInstance.addEventListener(
"input",
simplyTranslateInstanceChange
);
const wikipediaInstanceChange = debounce(() => {
if (wikipediaInstance.checkValidity()) {
browser.storage.sync.set({
wikipediaInstance: parseURL(wikipediaInstance.value),
});
}
}, 500);
wikipediaInstance.addEventListener(
"input",
wikipediaInstanceChange
);
disableNitter.addEventListener("change", (event) => {
browser.storage.sync.set({ disableNitter: !event.target.checked });
});
@ -327,6 +373,14 @@ disableSearchEngine.addEventListener("change", (event) => {
browser.storage.sync.set({ disableSearchEngine: !event.target.checked });
});
disableSimplyTranslate.addEventListener("change", (event) => {
browser.storage.sync.set({ disableSimplyTranslate: !event.target.checked });
});
disableWikipedia.addEventListener("change", (event) => {
browser.storage.sync.set({ disableWikipedia: !event.target.checked });
});
alwaysProxy.addEventListener("change", (event) => {
browser.storage.sync.set({ alwaysProxy: event.target.checked });
});
@ -477,7 +531,7 @@ function autocomplete(input, list) {
div.prepend(strong);
div.appendChild(hiddenInput);
div.addEventListener("click", function (e) {
input.value = e.target.getElementsByTagName("input")[0].value;
input.value = div.getElementsByTagName("input")[0].value;
input.dispatchEvent(new Event("input"));
closeAllLists();
});

View File

@ -142,11 +142,7 @@
<tbody>
<tr>
<td>
<h1
data-localise="__MSG_disableSearchEngine__"
class="new-badge"
data-new-badge
>
<h1 data-localise="__MSG_disableSearchEngine__">
Search Engine Redirects
</h1>
</td>
@ -164,6 +160,57 @@
</table>
</section>
<section class="settings-block">
<table class="option" aria-label="Toggle SimplyTranslate redirects">
<tbody>
<tr>
<td>
<h1 data-localise="__MSG_disableSimplyTranslate__">
SimplyTranslate Redirects
</h1>
</td>
<td>
<input
aria-hidden="true"
id="disable-simplyTranslate"
type="checkbox"
/>&nbsp;
<label
for="disable-simplyTranslate"
class="checkbox-label"
></label>
</td>
</tr>
</tbody>
</table>
</section>
<section class="settings-block">
<table class="option" aria-label="Toggle Wikipedia redirects">
<tbody>
<tr>
<td>
<h1
data-localise="__MSG_disableWikipedia__"
class="new-badge"
data-new-badge
>
Wikipedia Redirects
</h1>
</td>
<td>
<input
aria-hidden="true"
id="disable-wikipedia"
type="checkbox"
/>&nbsp;
<label for="disable-wikipedia" class="checkbox-label"></label>
</td>
</tr>
</tbody>
</table>
</section>
<section class="settings-block"></section>
<footer>

View File

@ -6,6 +6,8 @@ let disableBibliogram = document.querySelector("#disable-bibliogram");
let disableOsm = document.querySelector("#disable-osm");
let disableReddit = document.querySelector("#disable-reddit");
let disableSearchEngine = document.querySelector("#disable-searchEngine");
let disableSimplyTranslate = document.querySelector("#disable-simplyTranslate");
let disableWikipedia = document.querySelector("#disable-wikipedia");
let version = document.querySelector("#version");
window.browser = window.browser || window.chrome;
@ -18,6 +20,8 @@ browser.storage.sync.get(
"disableOsm",
"disableReddit",
"disableSearchEngine",
"disableSimplyTranslate",
"disableWikipedia",
"theme",
],
(result) => {
@ -28,6 +32,8 @@ browser.storage.sync.get(
disableOsm.checked = !result.disableOsm;
disableReddit.checked = !result.disableReddit;
disableSearchEngine.checked = !result.disableSearchEngine;
disableSimplyTranslate.checked = !result.disableSimplyTranslate;
disableWikipedia.checked = !result.disableWikipedia;
}
);
@ -57,6 +63,14 @@ disableSearchEngine.addEventListener("change", (event) => {
browser.storage.sync.set({ disableSearchEngine: !event.target.checked });
});
disableSimplyTranslate.addEventListener("change", (event) => {
browser.storage.sync.set({ disableSimplyTranslate: !event.target.checked });
});
disableWikipedia.addEventListener("change", (event) => {
browser.storage.sync.set({ disableWikipedia: !event.target.checked });
});
document.querySelector("#more-options").addEventListener("click", () => {
browser.runtime.openOptionsPage();
});