Compare commits

..

No commits in common. "master" and "v1.1.47" have entirely different histories.

24 changed files with 702 additions and 776 deletions

View File

@ -12,7 +12,6 @@
[![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)
- **FIRO** `aEyKPU7mwWBYRFGoLiUGeQQybyzD8jzsS8`
- **BTC:** `3JZWooswwmmqQKw5iW6AYFfK5gcWTrvueE`
- **ETH:** `0x90049dc59365dF683451319Aa4632aC61193dFA7`
@ -20,7 +19,7 @@
## About
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).
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).
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.
@ -29,9 +28,8 @@ 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://docs.invidious.io/Invidious-Instances.md)
- [Invidious instances](https://github.com/iv-org/invidious/wiki/Invidious-Instances)
- [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)
@ -66,7 +64,7 @@ Privacy Redirect allows setting custom instances, instances can be found here:
## License
[GPLv3](LICENSE).
[GPLv3](LICENSE.txt).
## Permissions

979
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -20,6 +20,6 @@
},
"homepage": "https://github.com/SimonBrazell/privacy-redirect#readme",
"devDependencies": {
"web-ext": "^6.2.0"
"web-ext": "^6.0.0"
}
}

View File

@ -35,10 +35,6 @@
"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)."
@ -67,10 +63,6 @@
"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

@ -31,14 +31,6 @@
"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)."
@ -63,14 +55,6 @@
"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)."

View File

@ -6,7 +6,7 @@
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):
## Description:
```
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>.
@ -31,24 +31,3 @@ Si te gusta esta extensión y tienes los recursos económicos, por favor conside
<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

@ -1,154 +0,0 @@
{
"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"
}
}

View File

@ -1,33 +0,0 @@
# 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,10 +31,6 @@
"message": "Сервис поисковой системы",
"description": "Название настройки (в настройках) поля сервиса поисковой системы."
},
"simplyTranslateInstance": {
"message": "Сервис SimplyTranslate",
"description": "Название настройки (в настройках) поля сервиса SimplyTranslate."
},
"disableNitter": {
"message": "Перенаправление на Nitter",
"description": "Название настройки для включения/выключения перенаправления на Nitter (в настройках и всплывающем окне)."
@ -59,10 +55,6 @@
"message": "Перенаправление поисковой системы",
"description": "Название настройки для включения/выключения перенаправления поисковой системы (в настройках и всплывающем окне)."
},
"disableSimplyTranslate": {
"message": "Перенаправление на SimplyTranslate",
"description": "Название настройки для включения/выключения перенаправления на SimplyTranslate (в настройках и всплывающем окне)."
},
"theme": {
"message": "Тема",
"description": "Название настройки для 'Тема' (в настройках)."

View File

@ -6,7 +6,7 @@
Twitter, YouTube, Instagram & Google Haritalar bağlantılarını gizlilik dostu alternatiflerine yönlendiren basit bir web uzantısı.
```
## Description (AMO):
## Description:
```
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>.
@ -31,26 +31,3 @@ Eğer bu uzantıyı seviyorsan ve minnettarlığını gösterip projenin devamı
<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

@ -1,4 +1,4 @@
const targets = ["translate.google.com", "translate.google.no"];
const targets = ["translate.google.com"];
const redirects = ["https://translate.metalune.xyz"];

View File

@ -11,8 +11,9 @@ const redirects = [
"https://bibliogram.nixnet.services",
"https://bibliogram.ethibox.fr",
"https://bibliogram.hamster.dance",
"https://bibliogram.kavin.rocks",
"https://insta.trom.tf",
"https://bib.actionsack.com"
"https://bibliogram.hamster.dance",
];
const reservedPaths = [
"about",

View File

@ -4,8 +4,6 @@ const targets = [
"new.reddit.com",
"amp.reddit.com",
"i.redd.it",
"redd.it",
"old.reddit.com",
];
const redirects = [
// libreddit: privacy w/ modern UI
@ -16,12 +14,13 @@ const redirects = [
"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://snew.notabug.io",
"https://old.reddit.com", // desktop
"https://i.reddit.com", // mobile
"https://snew.notabug.io", // anti-censorship
];
const bypassPaths = /\/(gallery\/poll\/rpan\/settings\/topics)/;

View File

@ -20,7 +20,9 @@ const redirects = [
"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",

View File

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

View File

@ -26,6 +26,7 @@ const redirects = [
"https://yewtu.be",
"https://invidious.tube",
"https://invidious.silkky.cloud",
"https://invidious.fdn.fr",
"https://invidious.himiko.cloud",
"https://inv.skyn3t.in",
"https://tube.incognet.io",
@ -35,6 +36,7 @@ const redirects = [
"https://dev.viewtube.io",
"https://invidious.048596.xyz",
"http://fz253lmuao3strwbfbmx46yu7acac2jz27iwtorgmbqlkurlclmancad.onion",
"http://qklhadlycap4cnod.onion",
"http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion",
"http://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion",
];

View File

@ -5,7 +5,9 @@ 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,7 +18,7 @@ const nitterInstances = [
"https://nitter.cc",
"https://nitter.vxempire.xyz",
"https://nitter.unixfox.eu",
"https://bird.trom.tf"
"https://bird.trom.tf",
];
let disableNitter;

View File

@ -1,7 +1,7 @@
{
"name": "__MSG_extensionName__",
"description": "__MSG_extensionDescription__",
"version": "1.1.49",
"version": "1.1.47",
"manifest_version": 2,
"background": {
"page": "pages/background/background.html",
@ -50,6 +50,7 @@
"*://yewtu.be/*",
"*://invidious.tube/*",
"*://invidious.silkky.cloud/*",
"*://invidious.fdn.fr/*",
"*://invidious.himiko.cloud/*",
"*://inv.skyn3t.in/*",
"*://tube.incognet.io/*",
@ -59,6 +60,7 @@
"*://dev.viewtube.io/*",
"*://invidious.048596.xyz/*",
"*://fz253lmuao3strwbfbmx46yu7acac2jz27iwtorgmbqlkurlclmancad.onion/*",
"*://qklhadlycap4cnod.onion/*",
"*://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion/*",
"*://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion/*"
],

View File

@ -8,7 +8,6 @@ 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;
@ -34,9 +33,6 @@ 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;
@ -45,7 +41,6 @@ let disableOsm;
let disableReddit;
let disableSearchEngine;
let disableSimplyTranslate;
let disableWikipedia;
let nitterInstance;
let invidiousInstance;
let bibliogramInstance;
@ -53,7 +48,6 @@ let osmInstance;
let redditInstance;
let searchEngineInstance;
let simplyTranslateInstance;
let wikipediaInstance;
let alwaysProxy;
let onlyEmbeddedVideo;
let videoQuality;
@ -79,7 +73,6 @@ browser.storage.sync.get(
"redditInstance",
"searchEngineInstance",
"simplyTranslateInstance",
"wikipediaInstance",
"disableNitter",
"disableInvidious",
"disableBibliogram",
@ -87,7 +80,6 @@ browser.storage.sync.get(
"disableReddit",
"disableSearchEngine",
"disableSimplyTranslate",
"disableWikipedia",
"alwaysProxy",
"onlyEmbeddedVideo",
"videoQuality",
@ -111,14 +103,12 @@ browser.storage.sync.get(
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;
@ -163,9 +153,6 @@ browser.storage.onChanged.addListener((changes) => {
simplyTranslateInstance =
changes.simplyTranslateInstance.newValue || simplyTranslateDefault;
}
if ("wikipediaInstance" in changes) {
wikipediaInstance = changes.wikipediaInstance.newValue || wikipediaDefault;
}
if ("redditInstance" in changes) {
redditInstance = changes.redditInstance.newValue || redditDefault;
}
@ -193,9 +180,6 @@ browser.storage.onChanged.addListener((changes) => {
if ("disableSimplyTranslate" in changes) {
disableSimplyTranslate = changes.disableSimplyTranslate.newValue;
}
if ("disableWikipedia" in changes) {
disableWikipedia = changes.disableWikipedia.newValue;
}
if ("alwaysProxy" in changes) {
alwaysProxy = changes.alwaysProxy.newValue;
}
@ -295,9 +279,7 @@ function redirectYouTube(url, initiator, type) {
if (invidiousSubtitles) {
url.searchParams.append("subtitles", invidiousSubtitles);
}
if (invidiousAutoplay) {
url.searchParams.append("autoplay", 1);
}
url.searchParams.append("autoplay", invidiousAutoplay ? 1 : 0);
return `${
invidiousInstance || commonHelper.getRandomInstance(invidiousRandomPool)
@ -323,10 +305,14 @@ function redirectTwitter(url, initiator) {
});
return null;
}
if (url.host.split(".")[0] === "pbs" || url.host.split(".")[0] === "video") {
if (url.host.split(".")[0] === "pbs") {
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.split("/").includes("tweets")) {
return `${
nitterInstance || commonHelper.getRandomInstance(nitterRandomPool)
@ -496,21 +482,6 @@ function redirectReddit(url, initiator, type) {
} 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}`;
}
@ -541,42 +512,6 @@ function redirectGoogleTranslate(url, initiator) {
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);
@ -603,7 +538,10 @@ browser.webRequest.onBeforeRequest.addListener(
redirect = {
redirectUrl: redirectGoogleMaps(url, initiator),
};
} else if (redditDomains.includes(url.host)) {
} else if (
redditDomains.includes(url.host) ||
redditInstances.includes(url.origin)
) {
redirect = {
redirectUrl: redirectReddit(url, initiator, details.type),
};
@ -615,10 +553,6 @@ browser.webRequest.onBeforeRequest.addListener(
redirect = {
redirectUrl: redirectGoogleTranslate(url, initiator),
};
} else if (url.host.match(wikipediaRegex)) {
redirect = {
redirectUrl: redirectWikipedia(url, initiator),
};
}
if (redirect && redirect.redirectUrl) {
console.info(
@ -639,7 +573,7 @@ browser.webRequest.onBeforeRequest.addListener(
browser.runtime.onInstalled.addListener((details) => {
browser.storage.sync.get(
["disableSearchEngine", "disableSimplyTranslate", "disableWikipedia"],
["disableSearchEngine", "disableSimplyTranslate"],
(result) => {
if (result.disableSearchEngine === undefined) {
browser.storage.sync.set({
@ -651,11 +585,6 @@ browser.runtime.onInstalled.addListener((details) => {
disableSimplyTranslate: true,
});
}
if (result.disableWikipedia === undefined) {
browser.storage.sync.set({
disableWikipedia: true,
});
}
}
);
if (details.reason === "update") {

View File

@ -169,7 +169,7 @@
<tbody>
<tr>
<td>
<h1 data-localise="__MSG_disableSimplyTranslate__">SimplyTranslate Redirects</h1>
<h1 data-localise="__MSG_disableSimplyTranslate__" class="new-badge" data-new-badge>SimplyTranslate Redirects</h1>
</td>
<td>
<input
@ -183,25 +183,6 @@
</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">
@ -277,16 +258,6 @@
/>
</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

@ -8,7 +8,6 @@ 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;
@ -17,7 +16,6 @@ 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 },
@ -29,7 +27,6 @@ const autocompletes = [
instances: searchEngineInstances.map((instance) => instance.link),
},
{ id: "simply-translate-instance", instances: simplyTranslateInstances },
{ id: "wikipedia-instance", instances: wikipediaInstances },
];
const domparser = new DOMParser();
@ -42,7 +39,6 @@ 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");
@ -52,7 +48,6 @@ 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");
@ -105,7 +100,6 @@ browser.storage.sync.get(
"redditInstance",
"searchEngineInstance",
"simplyTranslateInstance",
"wikipediaInstance",
"disableNitter",
"disableInvidious",
"disableBibliogram",
@ -113,7 +107,6 @@ browser.storage.sync.get(
"disableReddit",
"disableSearchEngine",
"disableSimplyTranslate",
"disableWikipedia",
"alwaysProxy",
"onlyEmbeddedVideo",
"videoQuality",
@ -142,7 +135,6 @@ browser.storage.sync.get(
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;
@ -150,7 +142,6 @@ browser.storage.sync.get(
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 || "";
@ -337,18 +328,6 @@ simplyTranslateInstance.addEventListener(
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 });
});
@ -377,10 +356,6 @@ 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 });
});

View File

@ -165,7 +165,11 @@
<tbody>
<tr>
<td>
<h1 data-localise="__MSG_disableSimplyTranslate__">
<h1
data-localise="__MSG_disableSimplyTranslate__"
class="new-badge"
data-new-badge
>
SimplyTranslate Redirects
</h1>
</td>
@ -185,32 +189,6 @@
</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

@ -7,7 +7,6 @@ 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;
@ -21,7 +20,6 @@ browser.storage.sync.get(
"disableReddit",
"disableSearchEngine",
"disableSimplyTranslate",
"disableWikipedia",
"theme",
],
(result) => {
@ -33,7 +31,6 @@ browser.storage.sync.get(
disableReddit.checked = !result.disableReddit;
disableSearchEngine.checked = !result.disableSearchEngine;
disableSimplyTranslate.checked = !result.disableSimplyTranslate;
disableWikipedia.checked = !result.disableWikipedia;
}
);
@ -67,10 +64,6 @@ 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();
});