diff options
Diffstat (limited to 'data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}')
46 files changed, 0 insertions, 5156 deletions
diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/META-INF/manifest.mf b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/META-INF/manifest.mf deleted file mode 100644 index 1c321ec..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/META-INF/manifest.mf +++ /dev/null @@ -1,227 +0,0 @@ -Manifest-Version: 1.0 - -Name: manifest.json -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: ZW5IiAnjgLDxOkT/FS22LtWjmfc= -SHA256-Digest: ncAYOGupekLXjuIcIZCdHu/O171QDRBGjuDlcDjpHkE= - -Name: assets/images/chevron-down.svg -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: dfPSEdx2vMMKhdJhFgKxZVmAyw4= -SHA256-Digest: hULpUtMZwr10Hffyhh74w9s0edzSBjlEFLfbeKC1Cfo= - -Name: assets/images/icon128.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: Fl892VsnhFXuMeLG6suEewozR5Y= -SHA256-Digest: lKSB5TEiQBTLStCqK2o23zpKfsW5ccxwEa7XI2pgh2c= - -Name: assets/images/icon16.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: y+frq802MYqaCUE6q64rRkWHaNg= -SHA256-Digest: kPak84RlQ2fumueEU+CX7K5yvJcB9ldFZBRCa7mhNaU= - -Name: assets/images/icon32.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: NSrP/X5U1yOrWBr6etEC0eizahg= -SHA256-Digest: fB32lyePfDzAVSMgjUlk23/IcUZXumyBOu/OzklQBSw= - -Name: assets/images/icon48.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: cs4Tc32Xqyqg3dOdyQnCRpBHV8s= -SHA256-Digest: TafUSeCjc1RKPmBugJs7hRAa4nZL0bJkYkkQErebB34= - -Name: assets/javascripts/localise.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: b3uoMx56bOmKGHxMbKn9TY9sigk= -SHA256-Digest: F09dZ8QweUXCf+BVrDTZ3nHK7P1e+5DbKN4tDd/wVoE= - -Name: assets/javascripts/persist-invidious-prefs.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: CGlTMy2oG/GjEwm5xQRFUqnTLkg= -SHA256-Digest: AJXhmhtl/+QawREcJdxqMOhpdLNq/kBdogYVW1nCvTY= - -Name: assets/javascripts/remove-twitter-sw.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: xf/2jTaCZFMBVJQhLvzkGULpiIY= -SHA256-Digest: KxSV6rT4jADbluo6wCqjN4Z03pHTzjNjJ0feO8Ciapo= - -Name: assets/javascripts/helpers/common.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: oi2QijOmmlcdj1W/SiL1ArH7d9c= -SHA256-Digest: ZKEbSmfUw8XUz1uH0RQrGsvaWfaHW0veo9L8uEeHydY= - -Name: assets/javascripts/helpers/google-maps.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: LoTM8dzwoq05jXnPyX5MsouEzZQ= -SHA256-Digest: CJc4LB1CmmL429IsL24h1iVJV5T1/e4krB2aL4p8MA4= - -Name: assets/javascripts/helpers/instagram.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: R3Nm5FactZGR3yU8YMhVkdgQkHE= -SHA256-Digest: pzJzVwkwULrRVaR5FehQR9ajMVxQu/6L+kWFgOr6qMI= - -Name: assets/javascripts/helpers/google-translate.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: t32y0+5kPV3DrDkd4WH3+MoecW4= -SHA256-Digest: VN5T4xxC1372z0D8BIk0Urir2rxl+ARrpFr0+trKm8E= - -Name: assets/javascripts/helpers/google-search.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: hq7BvezJlAVyxOBe95tTkk5rcP8= -SHA256-Digest: hTd3dnRPBV6RP0M8IU/HxSQ7bPW47p5IjT6+LjEpp1M= - -Name: assets/javascripts/helpers/reddit.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: dgHHUu1imwlvpShUG6LbDCrny74= -SHA256-Digest: XNzTYHXQf7NdcQTRYAXzTCXa+Cgb7lm6TxQ9/c6j5n8= - -Name: assets/javascripts/helpers/twitter.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: Bs/2cLqmhtTrbQEdpq8jJZVUopc= -SHA256-Digest: MOiJEFXqCPy/SiqwTvl2vyROhwoTELwZFLHFJH4ThRo= - -Name: assets/javascripts/helpers/wikipedia.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: BKukbbDN0ALYYZsvlxQvj2mad+o= -SHA256-Digest: H8tNKbfV9S6oVREm8ndOyQa9lU3Hrv5juQpB9ZktFA8= - -Name: assets/javascripts/helpers/youtube.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: SQWWJpISSR0TvsfZlSg66XJioZE= -SHA256-Digest: N7N1mTYvAtHO3Yu1B5d0oYpG5YrZcH1ym/PepL7FX8g= - -Name: assets/stylesheets/styles.css -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: H5SR93/zgd86nSKFbV3fJxAm8Bo= -SHA256-Digest: 9vltSh5V5zRDUIzcvnbtGGzF6P4ndS+sB5JdHwTMi6Q= - -Name: _locales/en/messages.json -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: TGZmPjnTJf7VdjDBkjouQggwPGU= -SHA256-Digest: YxZr+vl9q9u8opdcxdfDA/xrTXu1b5PcKv59FhgcOLU= - -Name: _locales/en/store.md -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: JSUVKxCgMAPnsnVd2F5srSGCcxo= -SHA256-Digest: 5DbVA3hqEExKsD2XbIdtm6owGPYFmcg0WUc2VO6Z4hE= - -Name: _locales/de/messages.json -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: KmtK5le3VDXiM0UXT1VSbIjSJDM= -SHA256-Digest: skZ97OuUFUXObwielV2HotjSt/f1W/qd3OjEq+iv+oM= - -Name: _locales/de/store.md -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: bul4v+pv9D19H7HwV7YlQTduukw= -SHA256-Digest: oNM4Gk3T8nIrFUPdWLlXpcos1DK96MbInGzNYV10bMM= - -Name: _locales/es/messages.json -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: 3ak4js6ir4R7T5gYEq21b6AUO5k= -SHA256-Digest: VYVGsOFhXQQOXApqno+LuS5Cydw9+y4HhP48Z46xUNU= - -Name: _locales/es/store.md -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: 8bYlGwMXdeZ+dQJhO0voUGTIcSE= -SHA256-Digest: Q6WSuqYwTEAE98vHmLsM45fG+T5pM92/v2uIRN5UWPE= - -Name: _locales/fr/messages.json -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: dSZgWkBHXNcyxqTjTYocbkGfdYs= -SHA256-Digest: acY3Yqb005CMLcJ503lcpzUXDH58OHeKBNmCXc33jkA= - -Name: _locales/fr/store.md -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: O1tav7jD5VfrexvE80PBikEu4Uo= -SHA256-Digest: pGtHh7rGLB9qa+omrd5MavBw2rR8HUT5fbuXsc2Y2+A= - -Name: _locales/it/store.md -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: uV8v+Fow9OqQ7vT6thlLMMcMlzo= -SHA256-Digest: gziyywh/jwlPyFalPir+lsu/iOY05skEuSqJozD6lGc= - -Name: _locales/it/messages.json -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: AHkASiBw5BkR6FA1+8JemvBKCtc= -SHA256-Digest: Q7JbwZpYWDXOinfqYYApmb8HYMY0dtiidBRljHvXDJM= - -Name: _locales/ru/messages.json -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: OTSJsAbUE12d7pzL8JMDoHTMx0o= -SHA256-Digest: If2mr9Kx3O6GSDPNffuYN44v9x8Q7qjrdGpURMxjBmU= - -Name: _locales/ru/store.md -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: u9AE98CCN/LtXk7bIcZ0OxePLME= -SHA256-Digest: HbdjPNPn6mMV5w77Srr/avJXVv5Fg+szVezaSwFRM6c= - -Name: _locales/pl/messages.json -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: gQd5fLIHKOyOavyru8adr/ztwnY= -SHA256-Digest: HL7K0+ZftzvqxIVlITDvvAwzl+GMQKM4b6fLDm/RDrc= - -Name: _locales/pl/store.md -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: RMcqDIDTe/Ex30FEJDznuENpXn0= -SHA256-Digest: of0KnaPdKjX+z9s1FdJAC6mTqpKzmlI3TaOdXYWMHmI= - -Name: _locales/zh_CN/messages.json -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: zRm1ukfs7V6B6vk9V/n9uYy1jpI= -SHA256-Digest: ax4I124hyPJRDktf2OYRgGqrydnqh4dgpwd7VdSdMZk= - -Name: _locales/zh_CN/store.md -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: v8erVbXWsLj00zg9dN5w/E17ooI= -SHA256-Digest: FFm4SJaf+9NthfBvchkkR2ITHIs1sGlzc6niic1lDDs= - -Name: _locales/tr/messages.json -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: kFUta0Wd79q9sBorvelnQ35kgok= -SHA256-Digest: qyUL/bVxtKDBHbcu4V8U8Fv8Z0CogNi7jbAzKOG5va8= - -Name: _locales/tr/store.md -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: KPhT3Wzkx6ct6ok8fP1dja3f30E= -SHA256-Digest: j4E+aYE2EjPeF+EE5+GiDQOSNoVNdn9HMRvDu1j2+T8= - -Name: pages/background/background.html -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: JBtZZRlUYPSeNnXjDDxORGO/8v8= -SHA256-Digest: Esp//PblKaq7y5eo+uujp8aYxjvssLysVuKdPI9uve8= - -Name: pages/background/background.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: r94BkQzHbXdRyXScVDqC+8X+EzI= -SHA256-Digest: kpk8VUAYfSS0VVVwdOYoQF5qYYAq7c+XxZsu42BtvUU= - -Name: pages/options/options.html -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: vaJ0BYbHpOos/U1UIyR3SLXdcoE= -SHA256-Digest: yEj8ZaLoZF+CbjwXhmeixTdKCB+m4mMYFpR2pX8Zpm8= - -Name: pages/options/options.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: 9doCPK7wk13piD6ChVtRoYOqgo4= -SHA256-Digest: fEdlGQ8ed15C//qJ4O/Xks7oTZIPYAw9sKdrkOpL5uw= - -Name: pages/popup/popup.html -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: sqQ3nzZWpn73nHtpl9en5RYnw00= -SHA256-Digest: BZun7gUoYL8FXKLsJjrmJ+g8LBw/5xauLq1+rQMjgLc= - -Name: pages/popup/popup.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: ev8hSxUGPlVUWY0ZDloMiRacMUQ= -SHA256-Digest: 54sG8DUN+jaFWVJRvFG22/ex29ySjLJ2FOMIITaPb5A= - -Name: META-INF/cose.manifest -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: ZLerUY2UPlgO5zLcd9a7fd1C20E= -SHA256-Digest: 4mqxyyhhbssn7qIySkTPkCaZc1Q2LkB3oYq9X6MyAso= - -Name: META-INF/cose.sig -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: ftWr/ePJ+NWImhbFmX6RKU9lU5k= -SHA256-Digest: LcRHYmd/GRAyM+wvoySYt+Es+YgmnzBjKUEnCye+DdE= - diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/META-INF/mozilla.rsa b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/META-INF/mozilla.rsa Binary files differdeleted file mode 100644 index b661dc3..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/META-INF/mozilla.rsa +++ /dev/null diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/META-INF/mozilla.sf b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/META-INF/mozilla.sf deleted file mode 100644 index 2705827..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/META-INF/mozilla.sf +++ /dev/null @@ -1,4 +0,0 @@ -Signature-Version: 1.0 -SHA1-Digest-Manifest: nzoniWL+899Tsa3fwHIDrCrlhmQ= -SHA256-Digest-Manifest: TytlsRLiNhlBwaGi6MiwVsIGUz4x8ZVa5VAThm2+3tw= - diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/de/messages.json b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/de/messages.json deleted file mode 100644 index 431ed1d..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/de/messages.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "extensionName": { - "message": "Privacy Redirect", - "description": "Name of the extension." - }, - "extensionDescription": { - "message": "Leitet Anfragen von Twitter, YouTube, Instagram & Google Maps auf datenschutzfreundliche Alternativen weiter.", - "description": "Description of the extension." - }, - "nitterInstance": { - "message": "Nitter-Instanz", - "description": "Label for Nitter instance field option (options)." - }, - "invidiousInstance": { - "message": "Invidious-Instanz", - "description": "Label for Invidious instance field option (options)." - }, - "bibliogramInstance": { - "message": "Bibliogram-Instanz", - "description": "Label for Bibliogram instance field option (options)." - }, - "osmInstance": { - "message": "OpenStreetMap-Instanz", - "description": "Label for OSM instance field option (options)." - }, - "disableNitter": { - "message": "Nitter-Weiterleitungen", - "description": "Label for enable/disable Nitter redirects option (options & pop-up)." - }, - "disableInvidious": { - "message": "Invidious-Weiterleitungen", - "description": "Label for enable/disable Invidious redirects option (options & pop-up)." - }, - "disableBibliogram": { - "message": "Bibliogram-Weiterleitungen", - "description": "Label for enable/disable Bibliogram redirects option (options & pop-up)." - }, - "disableOsm": { - "message": "OpenStreetMap-Weiterleitungen", - "description": "Label for enable/disable OSM redirects option (options & pop-up)." - }, - "alwaysProxy": { - "message": "Videos immer durch Invidious-Proxy leiten", - "description": "Label for 'Always proxy videos through Invidious' option (options)." - }, - "onlyEmbeddedVideo": { - "message": "Nur eingebettete Videos zu Invidious weiterleiten", - "description": "Label for 'Only redirect embedded video to Invidious' option (options)." - }, - "videoQuality": { - "message": "Videoqualität bei Invidious", - "description": "Label for 'Invidious Video Quality' option (options)." - }, - "removeTwitterSW": { - "message": "Twitter-Serviceworker proaktiv entfernen", - "description": "Label for 'Proactively remove Twitter service worker' option (options)." - }, - "invidiousDarkMode": { - "message": "Dunklen Modus auf Invidious immer anschalten", - "description": "Label for 'Invidious dark mode always on' option (options)." - }, - "persistInvidiousPrefs": { - "message": "Invidious-Einstellungen dauerhaft beibehalten (als Cookie)", - "description": "Label for 'Persist Invidious preferences (as cookie)' option (options)." - }, - "generalTab": { - "message": "Allgmein", - "description": "General tab (options)." - }, - "advancedTab": { - "message": "Erweitert", - "description": "Advanced tab (options)." - }, - "exceptionsTab": { - "message": "Ausnahmen", - "description": "Exceptions tab (options)." - }, - "exceptionsDescriptionP1": { - "message": "Gib eine URL oder einen regulären Ausdruck (Regex) ein, die/der von Weiterleitungen ausgeschlossen werden soll.", - "description": "A description of the 'Exceptions' feature paragraph 1 (options)." - }, - "exceptionsDescriptionP2": { - "message": "Alle Anfragen für oder ausgehend von einer URL, die auf die Ausnahme zutrifft, werden von Weiterleitungen ausgeschlossen.", - "description": "A description of the 'Exceptions' feature paragraph 2 (options)." - }, - "exceptionsDescriptionP3": { - "message": "Hinweis – Unterstützt reguläre JavaScript-Ausdrücke (Regex), mit Ausnahme der einschließenden Schrägstriche.", - "description": "A description of the 'Exceptions' feature paragraph 3 (options)." - }, - "addException": { - "message": "Ausnahme hinzufügen", - "description": "'Add Exceptions' button (options)." - }, - "moreOptions": { - "message": "Weitere Optionen", - "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": "Version", - "description": "Version" - } -} diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/de/store.md b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/de/store.md deleted file mode 100644 index e88df91..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/de/store.md +++ /dev/null @@ -1,33 +0,0 @@ -# Extension Store (AMO & Chrome Web Store) Listing - -## Summary: - -``` -Eine einfache Browser-Erweiterung, die Anfragen an Twitter, YouTube, Instagram & Google Maps zu datenschutzfreundlichen Alternativen weiterleitet. -``` - -## Description: - -``` -Leitet Anfragen an Twitter, YouTube, Instagram & Google Maps zu datenschutzfreundlichen Alternativen weiter – <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>. - -Erlaubt das Einstellen benutzerdefinierter Instanzen, das Ein- und Ausschalten aller Weiterleitungen und vieles mehr. - -<b>★ Weitere Infos: ℹ️</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> - -Der Code dieser Browser-Erweiterung ist verfügbar auf <a href='https://github.com/SimonBrazell/privacy-redirect'>Github</a>. - -<b>★ Spenden: 👨🏻💻</b> -Wenn Ihnen diese Erweiterung gefällt und Sie finanziell in der Lage sind, erwägen Sie bitte <a href='https://www.buymeacoffee.com/SimonBrazell'> mir auf BuyMeACoffee einen Kaffee zu kaufen</a> ☕️ ️ um Ihre Wertschätzung zu zeigen und die Fortsetzung des Projekts zu unterstützen. - -<b>★ Berechtigungen: ℹ️</b> -<ul> - <li>Bitte beachten Sie, dass der Zugriff auf alle Website-Navigationsereignisse ( alle URLs), nicht nur auf die Zieldomains, erforderlich ist, damit eingebettete Video-Weiterleitungen stattfinden können. Zur Zeit kenne ich keine andere Möglichkeit, Iframe-Weiterleitungen zu realisieren, freue mich aber über Vorschläge dazu 🙂</li> -</ul> -``` diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/en/messages.json b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/en/messages.json deleted file mode 100644 index 18a4754..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/en/messages.json +++ /dev/null @@ -1,162 +0,0 @@ -{ - "extensionName": { - "message": "Privacy Redirect", - "description": "Name of the extension." - }, - "extensionDescription": { - "message": "Redirects Twitter, YouTube, Instagram and more to privacy friendly alternatives.", - "description": "Description of the extension." - }, - "nitterInstance": { - "message": "Nitter Instance", - "description": "Label for Nitter instance field option (options)." - }, - "invidiousInstance": { - "message": "Invidious Instance", - "description": "Label for Invidious instance field option (options)." - }, - "bibliogramInstance": { - "message": "Bibliogram Instance", - "description": "Label for Bibliogram instance field option (options)." - }, - "osmInstance": { - "message": "OpenStreetMap Instance", - "description": "Label for OSM instance field option (options)." - }, - "redditInstance": { - "message": "Reddit Instance", - "description": "Label for Reddit instance field option (options)." - }, - "searchEngineInstance": { - "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)." - }, - "disableInvidious": { - "message": "Invidious Redirects", - "description": "Label for enable/disable Invidious redirects option (options & pop-up)." - }, - "disableBibliogram": { - "message": "Bibliogram Redirects", - "description": "Label for enable/disable Bibliogram redirects option (options & pop-up)." - }, - "disableOsm": { - "message": "OpenStreetMap Redirects", - "description": "Label for enable/disable OSM redirects option (options & pop-up)." - }, - "disableReddit": { - "message": "Reddit Redirects", - "description": "Label for enable/disable Reddit redirects option (options & pop-up)." - }, - "disableSearchEngine": { - "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)." - }, - "onlyEmbeddedVideo": { - "message": "Only redirect embedded video to Invidious", - "description": "Label for 'Only redirect embedded video to Invidious' option (options)." - }, - "videoQuality": { - "message": "Invidious Video Quality", - "description": "Label for 'Invidious Video Quality' option (options)." - }, - "removeTwitterSW": { - "message": "Proactively remove Twitter service worker", - "description": "Label for 'Proactively remove Twitter service worker' option (options)." - }, - "invidiousDarkMode": { - "message": "Invidious dark mode always on", - "description": "Label for 'Invidious dark mode always on' option (options)." - }, - "persistInvidiousPrefs": { - "message": "Persist Invidious preferences (as cookie)", - "description": "Label for 'Persist Invidious preferences (as cookie)' option (options)." - }, - "generalTab": { - "message": "General", - "description": "General tab (options)." - }, - "advancedTab": { - "message": "Advanced", - "description": "Advanced tab (options)." - }, - "exceptionsTab": { - "message": "Exceptions", - "description": "Exceptions tab (options)." - }, - "exceptionsDescriptionP1": { - "message": "Enter a URL or Regular Expression to be excluded from redirects.", - "description": "A description of the 'Exceptions' feature paragraph 1 (options)." - }, - "exceptionsDescriptionP2": { - "message": "All requests for or initiating from a URL that matches the exception will be excluded from redirects.", - "description": "A description of the 'Exceptions' feature paragraph 2 (options)." - }, - "exceptionsDescriptionP3": { - "message": "Note - Supports JavaScript regular expressions, excluding the enclosing forward slashes.", - "description": "A description of the 'Exceptions' feature paragraph 3 (options)." - }, - "addException": { - "message": "Add Exception", - "description": "'Add Exceptions' button (options)." - }, - "moreOptions": { - "message": "More Options", - "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": "Version", - "description": "Version" - }, - "useFreeTube": { - "message": "Use FreeTube over Invidious when possible", - "description": "Label for 'Use FreeTube over Invidious when possible' option (options)." - }, - "nitterRandomPool": { - "message": "Nitter random instance pool (comma-separated)", - "description": "Label for 'Nitter random instance pool (comma-separated)' option (options)." - }, - "invidiousRandomPool": { - "message": "Invidious random instance pool (comma-separated)", - "description": "Label for 'Invidious random instance pool (comma-separated)' option (options)." - }, - "bibliogramRandomPool": { - "message": "Bibliogram random instance pool (comma-separated)", - "description": "Label for 'Bibliogram random instance pool (comma-separated)' option (options)." - }, - "randomInstancePlaceholder": { - "message": "Random instance (none selected)", - "description": "Input placeholder for provider instance settings that select a random instance from a pool when none is selected" - } -} diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/en/store.md b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/en/store.md deleted file mode 100644 index 69b47c3..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/en/store.md +++ /dev/null @@ -1,33 +0,0 @@ -# Extension Store (AMO & Chrome Web Store) Listing - -## Summary: - -``` -A simple web extension that redirects Twitter, YouTube, Instagram & Google Maps requests to privacy friendly alternatives. -``` - -## Description: - -``` -Redirects Twitter, YouTube, Instagram, & Google Maps requests to privacy friendly alternatives - <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>★ More Info: ℹ️</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> - -The code for this web extension is available on <a href='https://github.com/SimonBrazell/privacy-redirect'>Github</a>. - -<b>★ Donate: 👨🏻💻</b> -If you like this extension and are financially able please consider <a href='https://www.buymeacoffee.com/SimonBrazell'>buying me a coffee</a> ☕️ ️to show your appreciation and support the continuation of the project. - -<b>★ Permissions: ℹ️</b> -<ul> - <li>Please note, access to all website navigation events ( all URLs), not just the target domains, is required to allow embedded video redirects to occur. At this time I know of no other way to achieve iframe redirects, happy to hear some suggestions on this though 🙂</li> -</ul> -``` diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/es/messages.json b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/es/messages.json deleted file mode 100644 index 852c6ad..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/es/messages.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "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)." - }, - "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)." - }, - "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" - } -} diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/es/store.md b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/es/store.md deleted file mode 100644 index e80a1ac..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/es/store.md +++ /dev/null @@ -1,54 +0,0 @@ -# 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 🙂 -``` diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/fr/messages.json b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/fr/messages.json deleted file mode 100644 index 7b66ab4..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/fr/messages.json +++ /dev/null @@ -1,110 +0,0 @@ -{
- "extensionName": {
- "message": "Privacy Redirect",
- "description": "Nom du module complémentaire."
- },
- "extensionDescription": {
- "message": "Redirige les requêtes les demandes Twitter, YouTube, Instagram et Google Maps vers des alternatives respectueuses de la vie privée. pour Twitter, YouTube, Instagram et Google Maps vers des alternatives respectueuses de la vie privée.",
- "description": "Description du module complémentaire."
- },
- "nitterInstance": {
- "message": "Instance de Nitter",
- "description": "Étiquette pour l'option de champ d'instance Nitter (options)."
- },
- "invidiousInstance": {
- "message": "Instance de Invidious",
- "description": "Étiquette pour l'option de champ d'instance Invidious (options)."
- },
- "bibliogramInstance": {
- "message": "Instance de Bibliogram",
- "description": "Étiquette pour l'option de champ d'instance Bibliogram (options)."
- },
- "osmInstance": {
- "message": "Instance de OpenStreetMap",
- "description": "Étiquette pour l'option de champ d'instance OpenStreetMap (options)."
- },
- "disableNitter": {
- "message": "Redirection vers Nitter",
- "description": "Étiquette pour activer / désactiver l'option de redirection vers Nitter (options et pop-up)."
- },
- "disableInvidious": {
- "message": "Redirection vers Invidious",
- "description": "Étiquette pour activer / désactiver l'option de redirection vers Invidious (options et pop-up)."
- },
- "disableBibliogram": {
- "message": "Redirection vers Bibliogram",
- "description": "Étiquette pour activer / désactiver l'option de redirection vers Bibliogram (options et pop-up)."
- },
- "disableOsm": {
- "message": "Redirection vers OpenStreetMap",
- "description": "Étiquette pour activer / désactiver l'option de redirection vers OpenStreetMap (options et pop-up)."
- },
- "alwaysProxy": {
- "message": "Toujours transiter par proxy les vidéos via Invidious",
- "description": "Libellé pour l'option 'Toujours transiter par proxy les vidéos via Invidious' (options)."
- },
- "onlyEmbeddedVideo": {
- "message": "Rediriger uniquement les vidéos intégrées vers Invidious",
- "description": "Libellé pour l'option 'Rediriger uniquement les vidéos intégrées vers Invidious' (options)."
- },
- "videoQuality": {
- "message": "Qualité des vidéos Invidious",
- "description": "Libellé pour l'option 'Qualité des vidéos Invidious' (options)."
- },
- "removeTwitterSW": {
- "message": "Supprimer proactivement le service worker de Twitter",
- "description": "Libellé pour l'option 'Supprimer proactivement le service worker de Twitter' (options)."
- },
- "invidiousDarkMode": {
- "message": "Mode sombre toujours activé pour Invidious",
- "description": "Libellé pour l'option 'Mode sombre toujours activé pour Invidious' (options)."
- },
- "persistInvidiousPrefs": {
- "message": "Conserver les préférences d’Invidious (sous forme de cookie)",
- "description": "Libellé pour 'Conserver les préférences d’Invidious (sous forme de cookie)' option (options)."
- },
- "generalTab": {
- "message": "Général",
- "description": "Onglet général (options)."
- },
- "advancedTab": {
- "message": "Avancé",
- "description": "Onglet avancé (options)."
- },
- "exceptionsTab": {
- "message": "Exceptions",
- "description": "Onglet des Exceptions dans les options."
- },
- "exceptionsDescriptionP1": {
- "message": "Entrez une adresse URL ou une expression régulière qui sera exclue des redirections.",
- "description": "Description pour la rubrique 'Exceptions' dans les options."
- },
- "exceptionsDescriptionP2": {
- "message": "Toutes les demandes émanant d'une adresse URL et correspondant à l'exception seront exclues des redirections.",
- "description": "Description pour la rubrique 'Exceptions' dans les options."
- },
- "exceptionsDescriptionP3": {
- "message": "Remarque - Prend en charge les expressions régulières JavaScript, à l'exclusion des barres slash.",
- "description": "Description pour la rubrique 'Exceptions' dans les options."
- },
- "addException": {
- "message": "Ajoutez une exception",
- "description": "boutton 'Ajoutez une exception' dans les options."
- },
- "moreOptions": {
- "message": "Options supplémentaires",
- "description": "Boutton des options supplémentaires (pop-up)."
- },
- "privacy": {
- "message": "Vie privée",
- "description": "Titre du module complémentaire - Vie privée (pop-up)."
- },
- "redirect": {
- "message": "Redirection",
- "description": "Titre du module complémentaire - Redirection (pop-up)."
- },
- "version": {
- "message": "Version",
- "description": "Version"
- }
-}
diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/fr/store.md b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/fr/store.md deleted file mode 100644 index dc29f4f..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/fr/store.md +++ /dev/null @@ -1,33 +0,0 @@ -# Extension Store (AMO & Chrome Web Store) Listing - -## Summary: - -``` -Redirige les requêtes les demandes Twitter, YouTube, Instagram et Google Maps vers des alternatives respectueuses de la vie privée. pour Twitter, YouTube, Instagram et Google Maps vers des alternatives respectueuses de la vie privée. -``` - -## 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>. - -Permet de définir des instances personnalisées et d'activer ou désactiver toutes les redirections. - -<b>★ Plus d'informations: ℹ️</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> - -Le code de cette extension Web est disponible sur <a href="https://github.com/SimonBrazell/privacy-redirect">Github</a>. - -<b>★ Faire un don: 👨🏻💻</b> -Si vous aimez ce module complémentaire et si vous avez une bonne situation financière, pensez à <a href="https://www.buymeacoffee.com/SimonBrazell">m'acheter un café</a> ☕️ pour montrer que vous appréciez et soutenez la poursuite du projet. - -<b>★ Autorisations: ℹ️</b> -<ul> -<li>Veuillez noter que l'accès à tous les événements de navigation sur le site Web (toutes les adresses URL), et pas seulement aux domaines cibles, est requis pour permettre aux redirections vidéo intégrées de se faire correctement. Pour le moment, je ne connais aucun autre moyen de réaliser des redirections iframe, je serais heureux d'entendre quelques suggestions à ce sujet cependant 🙂</li> -</ul> -``` diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/it/messages.json b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/it/messages.json deleted file mode 100644 index 69996c5..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/it/messages.json +++ /dev/null @@ -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" - } -} diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/it/store.md b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/it/store.md deleted file mode 100644 index f4af12d..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/it/store.md +++ /dev/null @@ -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> -``` diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/pl/messages.json b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/pl/messages.json deleted file mode 100644 index 8587766..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/pl/messages.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "extensionName": { - "message": "Privacy Redirect", - "description": "Nazwa rozszerzenia." - }, - "extensionDescription": { - "message": "Przekierowuje serwisy takie jak: Twitter, YouTube, Instagram i Google Maps do alternatyw sprzyjających prywatności.", - "description": "Opis rozszerzenia." - }, - "nitterInstance": { - "message": "Instancja Nitter", - "description": "Etykieta dla pola wyboru instancji Nitter (opcje)." - }, - "invidiousInstance": { - "message": "Instancja Invidious", - "description": "Etykieta dla pola wyboru instancji Invidious (opcje)." - }, - "bibliogramInstance": { - "message": "Instancja Bibliogram", - "description": "Etykieta dla pola wyboru instancji Bibliogram (opcje)." - }, - "osmInstance": { - "message": "Instancja OpenStreetMap", - "description": "Etykieta dla pola wyboru instancji OpenStreetMap (opcje)." - }, - "disableNitter": { - "message": "Przekierowanie Nitter", - "description": "Etykieta dla włączenia/wyłączenia opcji przekierowania Nitter (opcje i okno pop-up)." - }, - "disableInvidious": { - "message": "Przekierowanie Invidious ", - "description": "Etykieta dla włączenia/wyłączenia opcji przekierowania Invidious (opcje i okno pop-up)." - }, - "disableBibliogram": { - "message": "Przekierowanie Bibliogram", - "description": "Etykieta dla włączenia/wyłączenia opcji przekierowania Bibliogram (opcje i okno pop-up)." - }, - "disableOsm": { - "message": "Przekierowanie OpenStreetMap", - "description": "Etykieta dla włączenia/wyłączenia opcji przekierowania OpenStreetMap (opcje i okno pop-up)." - }, - "alwaysProxy": { - "message": "Zawsze buforuj i wyświetlaj odnośniki wideo z YouTube poprzez Invidious", - "description": "Etykieta dla opcji 'Zawsze buforuj i wyświetlaj odnośniki wideo poprzez Invidious'." - }, - "onlyEmbeddedVideo": { - "message": "Jedynie przekieruj odnośniki wideo do instancji Invidious", - "description": "Etykieta dla opcji 'Jedynie przekieruj odnośniki wideo do instancji Invidious'." - }, - "videoQuality": { - "message": "Jakość wideo Invidious", - "description": "Etykieta dla opcji 'Jakość wideo Invidious'." - }, - "removeTwitterSW": { - "message": "Proaktywnie usuwaj skrypty serwisowe (service worker) Twittera", - "description": "Etykieta dla opcji 'Proaktywnie usuwaj skrypty serwisowe (service worker) Twittera'." - }, - "invidiousDarkMode": { - "message": "Tryb ciemny dla Invidious zawsze włączony", - "description": "Etykieta dla opcji 'Tryb ciemny dla Invidious zawsze włączony'." - }, - "persistInvidiousPrefs": { - "message": "Zapisz ustawienia Invidious (jako plik cookie)", - "description": "Etykieta dla 'Zapisz ustawienia Invidious (jako plik cookie)'." - }, - "generalTab": { - "message": "Główne", - "description": "Zakładka Główne (opcje)." - }, - "advancedTab": { - "message": "Advanced", - "description": "Zakładka zaawansowane (opcje)." - }, - "exceptionsTab": { - "message": "Wyjątki", - "description": "Zakładka wyjątki (opcje)." - }, - "exceptionsDescriptionP1": { - "message": "Wprowadź adres URL lub wyrażenie regularne, które zostanie wyłączone z przekierowania. ", - "description": "Opis funkcji 'Wyjątki' paragraf 1 (opcje)." - }, - "exceptionsDescriptionP2": { - "message": "Wszystkie żądania dla lub inicjalizujące z adresu URL które spełniają wyjątek zostaną wyłączone z przekierowania.", - "description": "Opis funkcji 'Wyjątki' paragraf 2 (opcje)." - }, - "exceptionsDescriptionP3": { - "message": "Informacja - Wspierane są wyrażenia regularne JavaScript, wyłączając ukośniki lewe zamykające.", - "description": "Opis funkcji 'Wyjątki' paragraf 3 (opcje)." - }, - "addException": { - "message": "Dodaj wyjątek", - "description": "Przycisk 'Dodaj wyjątek' (opcje)." - }, - "moreOptions": { - "message": "Więcej opcji", - "description": "Przycisk 'Więcej opcji' (okno pop-up)." - }, - "privacy": { - "message": "Prywatność", - "description": "Tytuł rozszerzenia - Privacy (okno pop-up)." - }, - "redirect": { - "message": "Redirect", - "description": "Tytuł rozszerzenia - Redirect (pop-up)." - }, - "version": { - "message": "Version", - "description": "Wersja" - } -} diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/pl/store.md b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/pl/store.md deleted file mode 100644 index 575e15b..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/pl/store.md +++ /dev/null @@ -1,32 +0,0 @@ -# Extension Store (AMO & Chrome Web Store) Listing - -## Summary: - -``` -Prosta wtyczka która przekierowuje żądania Twitter, YouTube, Instagram oraz Google Maps na odpowiedniki przyjazne dla prywatności. -``` - -## Description: - -``` -Przekierowuje żądania Twitter, YouTube, Instagram oraz Google Maps na odpowiedniki przyjazne dla prywatności - <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>. - -Umożliwia ustawienie niestandardowych instancji usług, przełączania przekierowania jako aktywne/nieaktwne i o wiele więcej. -<b>★ Więcej informacji: ℹ️</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> - -Kod źródłowy tego rozszerzenia jest dostępny na: <a href='https://github.com/SimonBrazell/privacy-redirect'>Github</a>. - -<b>★ Donate: 👨🏻💻</b> -Jeżeli lubisz to rozszerzenie i chcesz wesprzeć autora finanosowo, proszę pomyśl o <a href='https://www.buymeacoffee.com/SimonBrazell'>zaserwowaniu małej czarnej</a> ☕️ ️aby pokazać swoją wdzięczność i wesprzeć możliwości kontynuowania projektu. - -<b>★ Uprawnienia: ℹ️</b> -<ul> - <li>Zwróć uwagę, że dostęp do wszystkich zdarzeń dotyczących nawigacji po stronach (wszystkie adresy URL) jest wymagany dla poprawnego odtwarzania osadzonych plików wideo. Obecnie nie znam innych możliwości aby obsłużyć przekierowania ramek iFrame, będę wdzięczny za sugestie 🙂</li> -</ul> -``` diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/ru/messages.json b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/ru/messages.json deleted file mode 100644 index c371532..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/ru/messages.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "extensionName": { - "message": "Privacy Redirect", - "description": "Название расширения." - }, - "extensionDescription": { - "message": "Перенаправляет запросы к Twitter, YouTube, Instagram и Google Maps на альтернативные сервисы, дружелюбные к приватности.", - "description": "Описание расширения." - }, - "nitterInstance": { - "message": "Сервис Nitter", - "description": "Название настройки (в настройках) поля сервиса Nitter." - }, - "invidiousInstance": { - "message": "Сервис Invidious", - "description": "Название настройки (в настройках) поля сервиса Invidious." - }, - "bibliogramInstance": { - "message": "Сервис Bibliogram", - "description": "Название настройки (в настройках) поля сервиса Bibliogram." - }, - "osmInstance": { - "message": "Сервис OpenStreetMap", - "description": "Название настройки (в настройках) поля сервиса OSM." - }, - "redditInstance": { - "message": "Сервис Reddit", - "description": "Название настройки (в настройках) поля сервиса Reddit." - }, - "searchEngineInstance": { - "message": "Сервис поисковой системы", - "description": "Название настройки (в настройках) поля сервиса поисковой системы." - }, - "simplyTranslateInstance": { - "message": "Сервис SimplyTranslate", - "description": "Название настройки (в настройках) поля сервиса SimplyTranslate." - }, - "disableNitter": { - "message": "Перенаправление на Nitter", - "description": "Название настройки для включения/выключения перенаправления на Nitter (в настройках и всплывающем окне)." - }, - "disableInvidious": { - "message": "Перенаправление на Invidious", - "description": "Название настройки для включения/выключения перенаправления на Invidious redirects option (в настройках и всплывающем окне)." - }, - "disableBibliogram": { - "message": "Перенаправление на Bibliogram", - "description": "Название настройки для включения/выключения перенаправления на Bibliogram (в настройках и всплывающем окне)." - }, - "disableOsm": { - "message": "Перенаправление на OpenStreetMap", - "description": "Название настройки для включения/выключения перенаправления на OSM (в настройках и всплывающем окне)." - }, - "disableReddit": { - "message": "Перенаправление Reddit", - "description": "Название настройки для включения/выключения перенаправления Reddit (в настройках и всплывающем окне)." - }, - "disableSearchEngine": { - "message": "Перенаправление поисковой системы", - "description": "Название настройки для включения/выключения перенаправления поисковой системы (в настройках и всплывающем окне)." - }, - "disableSimplyTranslate": { - "message": "Перенаправление на SimplyTranslate", - "description": "Название настройки для включения/выключения перенаправления на SimplyTranslate (в настройках и всплывающем окне)." - }, - "theme": { - "message": "Тема", - "description": "Название настройки для 'Тема' (в настройках)." - }, - "alwaysProxy": { - "message": "Всегда проксировать видео через Invidious", - "description": "Название настройки для 'Всегда проксировать видео через Invidious' (в настройках)." - }, - "onlyEmbeddedVideo": { - "message": "Перенаправлять только встроенные видео на Invidious", - "description": "Название настройки для 'Перенаправлять только встроенные видео на Invidious' (в настройках)." - }, - "videoQuality": { - "message": "Качество видео Invidious", - "description": "Название настройки для 'Качество видео Invidious' (в настройках)." - }, - "removeTwitterSW": { - "message": "Проактивно удалять service worker для Twitter", - "description": "Название настройки для 'Проактивно удалять service worker для Twitter' (в настройках)." - }, - "invidiousDarkMode": { - "message": "Всегда включать темный режим Invidious", - "description": "Название настройки для 'Всегда включать темный режим Invidious' (в настройках)." - }, - "invidiousVolume": { - "message": "Громкость Invidious", - "description": "Название настройки для 'Громкость Invidious' (в настройках)." - }, - "invidiousPlayerStyle": { - "message": "Стиль плеера Invidious", - "description": "Название настройки для 'Стиль плеера Invidious' (в настройках)." - }, - "invidiousSubtitles": { - "message": "Субтитры Invidious - коды языков (разделяются запятой)", - "description": "Название настройки для 'Субтитры Invidious - коды языков (разделяются запятой)' (в настройках)." - }, - "invidiousAutoplay": { - "message": "Автоматически воспроизводить видео Invidious при загрузке", - "description": "Название настройки для 'Автоматически воспроизводить видео Invidious при загрузке' (в настройках)." - }, - "persistInvidiousPrefs": { - "message": "Сохранять настройки Invidious (в файле cookie)", - "description": "Название настройки для 'Сохранять настройки Invidious (в файле cookie)' (в настройках)." - }, - "generalTab": { - "message": "Общие", - "description": "Вкладка 'Общие' (в настройках)." - }, - "advancedTab": { - "message": "Дополнительно", - "description": "Вкладка 'Дополнительно' (в настройках)." - }, - "exceptionsTab": { - "message": "Исключения", - "description": "Вкладка 'Исключения' (в настройках)." - }, - "exceptionsDescriptionP1": { - "message": "Введите URL или регулярное выражение для исключения из перенаправлений.", - "description": "Описание функции 'Исключения' (в настройках)." - }, - "exceptionsDescriptionP2": { - "message": "Все запросы на URL, совпадающие с исключениями, или инициированные с них будут исключены из перенаправлений.", - "description": "Описание функции 'Исключения' (в настройках)." - }, - "exceptionsDescriptionP3": { - "message": "Примечание: Поддерживает регулярные выражения JavaScript, кроме закрывающих обратных слэшей.", - "description": "Описание функции 'Исключения' (в настройках)." - }, - "addException": { - "message": "Добавить исключение", - "description": "Кнопка 'Добавить исключения' (в настройках)." - }, - "moreOptions": { - "message": "Другие настройки", - "description": "Кнопка 'Другие настройки' (во всплывающем окне)." - }, - "privacy": { - "message": "Privacy", - "description": "Название расширения - Privacy (во всплывающем окне)." - }, - "redirect": { - "message": "Redirect", - "description": "Название расширения - Redirect (во всплывающем окне)." - }, - "version": { - "message": "Версия", - "description": "Версия." - }, - "useFreeTube": { - "message": "Использовать FreeTube поверх Invidious при возможности", - "description": "Название настройки для 'Использовать FreeTube поверх Invidious при возможности' (в настройках)." - }, - "nitterRandomPool": { - "message": "Список случайных сервисов Nitter (разделяется запятой)", - "description": "Название настройки для 'Список случайных сервисов Nitter (разделяется запятой)' (в настройках)." - }, - "invidiousRandomPool": { - "message": "Список случайных сервисов Invidious (разделяется запятой)", - "description": "Название настройки для 'Список случайных сервисов Invidious (разделяется запятой)' (в настройках)." - }, - "bibliogramRandomPool": { - "message": "Список случайных сервисов Bibliogram (разделяется запятой)", - "description": "Название настройки для 'Список случайных сервисов Bibliogram (разделяется запятой)' (в настройках)." - }, - "randomInstancePlaceholder": { - "message": "Случайный сервис (ничего не выбрано)", - "description": "Заглушка в настройках сервиса провайдера с выбором случайного сервиса из списка, если ничего не выбрано" - } -} diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/ru/store.md b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/ru/store.md deleted file mode 100644 index 7904efc..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/ru/store.md +++ /dev/null @@ -1,33 +0,0 @@ -# Extension Store (AMO & Chrome Web Store) Listing - -## Summary: - -``` -Простое расширение для браузера, которое перенаправляет запросы к Twitter, YouTube, Instagram & Google Maps на альтернативные сервисы, дружелюбные к приватности. -``` - -## Description: - -``` -Перенаправляет запросы к Twitter, YouTube, Instagram, & Google Maps на альтернативные сервисы, дружелюбные к приватности - <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>. - -Позволяет настраивать пользовательские сервисы, включать/выключать все перенаправления и т.д. - -<b>★ Дополнительная информация: ℹ</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> - -Исходный код данного расширения доступен на <a href='https://github.com/SimonBrazell/privacy-redirect'>Github</a>. - -<b>★ Пожертвовать: 👨🏻💻</b> -Если вам нравится это расширение и вы можете помочь финансово, пожалуйста, <a href='https://www.buymeacoffee.com/SimonBrazell'>купите мне кофе</a> ☕ и покажите ваше одобрение и поддержку развития проекта. - -<b>★ Разрешения: ℹ</b> -<ul> - <li>Важно: доступ ко всем сайтам (URL), не только к целевым, требуется для разрешения перенаправления встроенных видео. В данный момент я не знаю, как осуществить перенаправление iframe, буду рад выслушать ваши предложения 🙂</li> -</ul> -``` diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/tr/messages.json b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/tr/messages.json deleted file mode 100644 index fdf07ac..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/tr/messages.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "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ı açı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" - } -} diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/tr/store.md b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/tr/store.md deleted file mode 100644 index cbc7d7f..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/tr/store.md +++ /dev/null @@ -1,56 +0,0 @@ -# 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 🙂 -``` diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/zh_CN/messages.json b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/zh_CN/messages.json deleted file mode 100644 index 8c19e2d..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/zh_CN/messages.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "extensionName": { - "message": "Privacy Redirect", - "description": "Name of the extension." - }, - "extensionDescription": { - "message": "将 Twitter、YouTube、Instagram 和 Google Maps 重定向至尊重隐私的替代品", - "description": "Description of the extension." - }, - "nitterInstance": { - "message": "Nitter 实例", - "description": "Label for Nitter instance field option (options)." - }, - "invidiousInstance": { - "message": "Invidious 实例", - "description": "Label for Invidious instance field option (options)." - }, - "bibliogramInstance": { - "message": "Bibliogram 实例", - "description": "Label for Bibliogram instance field option (options)." - }, - "osmInstance": { - "message": "OpenStreetMap 实例", - "description": "Label for OSM instance field option (options)." - }, - "disableNitter": { - "message": "Nitter 重定向", - "description": "Label for enable/disable Nitter redirects option (options & pop-up)." - }, - "disableInvidious": { - "message": "Invidious 重定向", - "description": "Label for enable/disable Invidious redirects option (options & pop-up)." - }, - "disableBibliogram": { - "message": "Bibliogram 重定向", - "description": "Label for enable/disable Bibliogram redirects option (options & pop-up)." - }, - "disableOsm": { - "message": "OpenStreetMap 重定向", - "description": "Label for enable/disable OSM redirects option (options & pop-up)." - }, - "alwaysProxy": { - "message": "使用 Invidious 时始终使用视频代理", - "description": "Label for 'Always proxy videos through Invidious' option (options)." - }, - "onlyEmbeddedVideo": { - "message": "只重定向嵌入视频至 Invidious", - "description": "Label for 'Only redirect embedded video to Invidious' option (options)." - }, - "videoQuality": { - "message": "Invidious 视频画质", - "description": "Label for 'Invidious Video Quality' option (options)." - }, - "removeTwitterSW": { - "message": "主动移除 Twitter 后台脚本", - "description": "Label for 'Proactively remove Twitter service worker' option (options)." - }, - "invidiousDarkMode": { - "message": "Invidious 始终使用夜间模式", - "description": "Label for 'Invidious dark mode always on' option (options)." - }, - "persistInvidiousPrefs": { - "message": "以 cookie 形式记住 Invidious 设置", - "description": "Label for 'Persist Invidious preferences (as cookie)' option (options)." - }, - "generalTab": { - "message": "常规", - "description": "General tab (options)." - }, - "advancedTab": { - "message": "高级", - "description": "Advanced tab (options)." - }, - "exceptionsTab": { - "message": "例外", - "description": "Exceptions tab (options)." - }, - "exceptionsDescriptionP1": { - "message": "请输入一个不要重定向 URL 链接或正则表达式。", - "description": "A description of the 'Exceptions' feature paragraph 1 (options)." - }, - "exceptionsDescriptionP2": { - "message": "若发起请求或访问的页面 URL 符合任一表达式,则插件将不会将其重定向。", - "description": "A description of the 'Exceptions' feature paragraph 2 (options)." - }, - "exceptionsDescriptionP3": { - "message": "注:支持 JavaScript 正则表达式,且无须用正斜杠始末。", - "description": "A description of the 'Exceptions' feature paragraph 3 (options)." - }, - "addException": { - "message": "添加例外", - "description": "'Add Exceptions' button (options)." - }, - "moreOptions": { - "message": "更多设置", - "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": "版本", - "description": "Version" - } -} diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/zh_CN/store.md b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/zh_CN/store.md deleted file mode 100644 index 964debf..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/_locales/zh_CN/store.md +++ /dev/null @@ -1,33 +0,0 @@ -# Extension Store (AMO & Chrome Web Store) Listing - -## Summary: - -``` -一个简单的扩展程序来将 Twitter、YouTube、Instagram 和 Google地图重定向至尊重隐私的替代品。 -``` - -## Description: - -``` -将 Twitter、YouTube、Instagram 和 Google地图重定向至尊重隐私的替代品: <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>。 - -允许自定义实例,开关重定向等设定。 - -<b>★ 更多详细:ℹ️</b> -<ul> - <li><a href='https://github.com/zedeus/nitter#nitter-wip'>Nitter</a></li> - <li><a href='https://github.com/iv-org/invidious#invidious'>Invidious</a></li> - <li><a href='https://sr.ht/~cadence/bibliogram/#a-hrefhttpsbibliogramartbibliograma'>Bibliogram</a></li> - <li><a href='https://wiki.openstreetmap.org/'>OpenStreetMap</a></li> -</ul> - -本扩展的源代码可在 <a href='https://github.com/SimonBrazell/privacy-redirect'>Github</a> 上查看。 - -<b>★ 捐赠:👨🏻💻</b> -若您喜欢本扩展程序,且有闲钱,不妨<a href='https://www.buymeacoffee.com/SimonBrazell'>给我买杯咖啡</a>来表达您对这个项目的感谢与支持。 - -<b>★ 权限:ℹ️</b> -<ul> - <li>请注意,您需授予查看所有 URL(不只是需要重定向的URL)网站导向活动的权限,以来重定向嵌入的视频。目前我不知道其他重定向iframe的方法,有能者请解囊相助! 🙂</li> -</ul> -``` diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/images/chevron-down.svg b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/images/chevron-down.svg deleted file mode 100644 index 7679f26..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/images/chevron-down.svg +++ /dev/null @@ -1,3 +0,0 @@ -<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 512 512'> - <polyline points='112 184 256 328 400 184' style='fill:none;stroke:#FF5B56;stroke-linecap:round;stroke-linejoin:round;stroke-width:48px'/> -</svg>
\ No newline at end of file diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/images/icon128.png b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/images/icon128.png Binary files differdeleted file mode 100644 index cd16bef..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/images/icon128.png +++ /dev/null diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/images/icon16.png b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/images/icon16.png Binary files differdeleted file mode 100644 index f896608..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/images/icon16.png +++ /dev/null diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/images/icon32.png b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/images/icon32.png Binary files differdeleted file mode 100644 index c5b417c..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/images/icon32.png +++ /dev/null diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/images/icon48.png b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/images/icon48.png Binary files differdeleted file mode 100644 index 24dd5af..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/images/icon48.png +++ /dev/null diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/common.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/common.js deleted file mode 100644 index a0e05c7..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/common.js +++ /dev/null @@ -1,12 +0,0 @@ -function filterInstances(instances) { - return instances.filter((instance) => !instance.includes(".onion")); -} - -function getRandomInstance(instances) { - return instances[~~(instances.length * Math.random())]; -} - -export default { - filterInstances, - getRandomInstance, -}; diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/google-maps.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/google-maps.js deleted file mode 100644 index 2ba924b..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/google-maps.js +++ /dev/null @@ -1,52 +0,0 @@ -const targets = /https?:\/\/(((www|maps)\.)?(google\.).*(\/maps)|maps\.(google\.).*)/; -const redirects = ["https://openstreetmap.org"]; -const mapCentreRegex = /@(-?\d[0-9.]*),(-?\d[0-9.]*),(\d{1,2})[.z]/; -const dataLatLngRegex = /(!3d|!4d)(-?[0-9]{1,10}.[0-9]{1,10})/g; -const placeRegex = /\/place\/(.*)\//; -const travelModes = { - driving: "fossgis_osrm_car", - walking: "fossgis_osrm_foot", - bicycling: "fossgis_osrm_bike", - transit: "fossgis_osrm_car", // not implemented on OSM, default to car. -}; -const layers = { - none: "S", - transit: "T", - traffic: "S", // not implemented on OSM, default to standard. - bicycling: "C", -}; -function addressToLatLng(address, callback) { - const xmlhttp = new XMLHttpRequest(); - xmlhttp.onreadystatechange = () => { - if (xmlhttp.readyState === XMLHttpRequest.DONE) { - if (xmlhttp.status === 200) { - const json = JSON.parse(xmlhttp.responseText)[0]; - if (json) { - callback( - `${json.lat}%2C${json.lon}`, - `${json.boundingbox[2]},${json.boundingbox[1]},${json.boundingbox[3]},${json.boundingbox[0]}` - ); - } - } else { - console.info("Error: Status is " + xmlhttp.status); - } - } - }; - xmlhttp.open( - "GET", - `https://nominatim.openstreetmap.org/search/${address}?format=json&limit=1`, - false - ); - xmlhttp.send(); -} - -export default { - targets, - redirects, - mapCentreRegex, - dataLatLngRegex, - placeRegex, - travelModes, - layers, - addressToLatLng, -}; diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/google-search.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/google-search.js deleted file mode 100644 index 8bd6a10..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/google-search.js +++ /dev/null @@ -1,27 +0,0 @@ -const targets = /https?:\/\/(((www|maps)\.)?(google\.).*(\/search)|search\.(google\.).*)/; -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: "/" }, - { link: "https://searx.info", q: "/" }, - { link: "https://searx.be", q: "/" }, - { link: "https://search.disroot.org", q: "/" }, - { 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 { - targets, - redirects, -}; diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/google-translate.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/google-translate.js deleted file mode 100644 index 98bd09d..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/google-translate.js +++ /dev/null @@ -1,8 +0,0 @@ -const targets = ["translate.google.com", "translate.google.no"]; - -const redirects = ["https://translate.metalune.xyz"]; - -export default { - targets, - redirects, -}; diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/instagram.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/instagram.js deleted file mode 100644 index 7759603..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/instagram.js +++ /dev/null @@ -1,49 +0,0 @@ -const targets = [ - "instagram.com", - "www.instagram.com", - "help.instagram.com", - "about.instagram.com", -]; -const redirects = [ - "https://bibliogram.art", - "https://bibliogram.snopyta.org", - "https://bibliogram.pussthecat.org", - "https://bibliogram.nixnet.services", - "https://bibliogram.ethibox.fr", - "https://bibliogram.hamster.dance", - "https://insta.trom.tf", - "https://bib.actionsack.com" -]; -const reservedPaths = [ - "about", - "explore", - "support", - "press", - "api", - "privacy", - "safety", - "admin", - "graphql", - "accounts", - "help", - "terms", - "contact", - "blog", - "igtv", - "u", - "p", - "fragment", - "imageproxy", - "videoproxy", - ".well-known", - "tv", - "reel", -]; -const bypassPaths = /\/(accounts\/|embeds?.js)/; - -export default { - targets, - redirects, - reservedPaths, - bypassPaths, -}; diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/reddit.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/reddit.js deleted file mode 100644 index e37972b..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/reddit.js +++ /dev/null @@ -1,32 +0,0 @@ -const targets = [ - "www.reddit.com", - "np.reddit.com", - "new.reddit.com", - "amp.reddit.com", - "i.redd.it", - "redd.it", -]; -const redirects = [ - // libreddit: privacy w/ modern UI - "https://safereddit.com", - "https://reddit.rtrace.io", - "https://libreddit.privacydev.net", - "https://l.opnxng.com", - "https://libreddit.projectsegfau.lt", - "https://discuss.whatever.social", - "https://snoo.habedieeh.re", - "https://redlib.pussthecat.org", - "https://redlib.northboot.xyz", - "https://redlib.kylrth.com", - "https://red.artemislena.eu", - "https://old.reddit.com", // desktop - "http://red.lpoaj7z2zkajuhgnlltpeqh3zyq7wk2iyeggqaduhgxhyajtdt2j7wad.onion", - "http://snoo.habeehrhadazsw3izbrbilqajalfyqqln54mrja3iwpqxgcuxnus7eid.onion", -]; -const bypassPaths = /\/(gallery\/poll\/rpan\/settings\/topics)/; - -export default { - targets, - redirects, - bypassPaths, -}; diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/twitter.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/twitter.js deleted file mode 100644 index f57fb68..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/twitter.js +++ /dev/null @@ -1,30 +0,0 @@ -/* - Please remember to also update the src/manifest.json file - (content_scripts > matches, 'remove-twitter-sw.js') - when updating this list: - */ -const targets = [ - "x.com", - "mobile.x.com", - "twitter.com", - "www.twitter.com", - "mobile.twitter.com", - "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.privacydev.net", - "https://xcancel.com", - "http://nitter.pjsfkvpxlinjamtawaksbnnaqs2fc2mtvmozrzckxh7f3kis6yea25ad.onion", - "http://nitter.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion", -]; - -export default { - targets, - redirects, -}; diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/wikipedia.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/wikipedia.js deleted file mode 100644 index 2800661..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/wikipedia.js +++ /dev/null @@ -1,8 +0,0 @@ -const targets = /wikipedia.org/; - -const redirects = ["https://wikiless.org"]; - -export default { - targets, - redirects, -}; diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/youtube.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/youtube.js deleted file mode 100644 index 53aa099..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/helpers/youtube.js +++ /dev/null @@ -1,26 +0,0 @@ -const targets = [ - "m.youtube.com", - "youtube.com", - "img.youtube.com", - "www.youtube.com", - "youtube-nocookie.com", - "www.youtube-nocookie.com", - "youtu.be", - "s.ytimg.com", - "music.youtube.com", - "piped.video", -]; -/* - Please remember to also update the manifest.json file - (content_scripts > matches, 'persist-invidious-prefs.js') - when updating this list: - */ -const redirects = [ - "https://inv.nadeko.net", - "http://inv.nadekonw7plitnjuawu6ytjsl7jlglk2t6pyq6eftptmiv3dvqndwvyd.onion", -]; - -export default { - targets, - redirects, -}; diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/localise.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/localise.js deleted file mode 100644 index 78e4c90..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/localise.js +++ /dev/null @@ -1,35 +0,0 @@ -window.browser = window.browser || window.chrome; - -function getMessage(tag) { - return tag.replace(/__MSG_(\w+)__/g, function (_match, v1) { - return v1 ? browser.i18n.getMessage(v1) : null; - }); -} - -function localisePage() { - let elements = document.querySelectorAll("[data-localise]"); - - for (let i in elements) - if (elements.hasOwnProperty(i)) { - let obj = elements[i]; - let tag = obj.getAttribute("data-localise").toString(); - - let msg = getMessage(tag); - - if (msg && msg !== tag) obj.textContent = msg; - } - - let placeholders = document.querySelectorAll("[data-localise-placeholder]"); - - for (let i in placeholders) - if (placeholders.hasOwnProperty(i)) { - let obj = placeholders[i]; - let tag = obj.getAttribute("data-localise-placeholder").toString(); - - let msg = getMessage(tag); - - if (msg && msg !== tag) obj.placeholder = msg; - } -} - -localisePage(); diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/persist-invidious-prefs.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/persist-invidious-prefs.js deleted file mode 100644 index dff2dd5..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/persist-invidious-prefs.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; - -window.browser = window.browser || window.chrome; - -function getCookie() { - 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) { - return JSON.parse( - decodeURIComponent(c.substring("PREFS=".length, c.length)) - ); - } - } - return {}; -} - -browser.storage.sync.get( - ["alwaysProxy", "videoQuality", "invidiousDarkMode", "persistInvidiousPrefs"], - (result) => { - if (result.persistInvidiousPrefs) { - const prefs = getCookie(); - prefs.local = result.alwaysProxy; - prefs.quality = result.videoQuality; - prefs.dark_mode = result.invidiousDarkMode; - document.cookie = `PREFS=${encodeURIComponent(JSON.stringify(prefs))}`; - } - } -); diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/remove-twitter-sw.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/remove-twitter-sw.js deleted file mode 100644 index f8d9e76..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/javascripts/remove-twitter-sw.js +++ /dev/null @@ -1,172 +0,0 @@ -"use strict"; - -const nitterInstances = [ - "https://nitter.privacydev.net", - "https://nitter.lucabased.xyz" -]; - -let disableNitter; -let nitterInstance; -let redirectBypassFlag; -let exceptions; - -window.browser = window.browser || window.chrome; - -function getRandomInstance() { - return nitterInstances[~~(nitterInstances.length * Math.random())]; -} - -function isNotException(url) { - return !exceptions.some((regex) => regex.test(url.href)); -} - -function shouldRedirect(url) { - return ( - !redirectBypassFlag && - isNotException(url) && - !disableNitter && - url.host !== nitterInstance && - !url.pathname.includes("/home") - ); -} - -function redirectTwitter(url) { - if (url.host.split(".")[0] === "pbs") { - return `${nitterInstance}/pic/${encodeURIComponent(url.href)}`; - } else if (url.host.split(".")[0] === "video") { - return `${nitterInstance}/gif/${encodeURIComponent(url.href)}`; - } else { - return `${nitterInstance}${url.pathname}${url.search}`; - } -} - -browser.storage.sync.get( - [ - "nitterInstance", - "disableNitter", - "removeTwitterSW", - "redirectBypassFlag", - "exceptions", - ], - (result) => { - redirectBypassFlag = result.redirectBypassFlag; - browser.storage.sync.set({ - redirectBypassFlag: false, - }); - if (!result.removeTwitterSW) { - disableNitter = result.disableNitter; - nitterInstance = result.nitterInstance || getRandomInstance(); - exceptions = result.exceptions - ? result.exceptions.map((e) => { - return new RegExp(e); - }) - : []; - navigator.serviceWorker.getRegistrations().then((registrations) => { - for (let registration of registrations) { - if (registration.scope === "https://twitter.com/") { - registration.unregister(); - console.log("Unregistered Twitter SW", registration); - } - } - }); - const url = new URL(window.location); - if (shouldRedirect(url)) { - const redirect = redirectTwitter(url); - console.info("Redirecting", `"${url.href}"`, "=>", `"${redirect}"`); - window.location = redirect; - } - } - } -); - -// Keeping this here until https://bugzilla.mozilla.org/show_bug.cgi?id=1536094 is fixed... -// -//"use strict"; -// -//let disableNitter; -//let nitterInstance; -//let redirectBypassFlag; -//let exceptions; -// -//window.browser = window.browser || window.chrome; -// -//Promise.all([ -// import(browser.extension.getURL("src/assets/javascripts/helpers/common.js")), -// import(browser.extension.getURL("src/assets/javascripts/helpers/twitter.js")), -//]).then( -// (helpers) => { -// let commonHelper; -// let twitterHelper; -// [commonHelper, twitterHelper] = helpers; -// -// function isNotException(url) { -// return !exceptions.some((regex) => regex.test(url.href)); -// } -// -// function shouldRedirect(url) { -// return ( -// !redirectBypassFlag && -// isNotException(url) && -// !disableNitter && -// url.host !== nitterInstance && -// !url.pathname.includes("/home") -// ); -// } -// -// function redirectTwitter(url) { -// if (url.host.split(".")[0] === "pbs") { -// return `${nitterInstance}/pic/${encodeURIComponent(url.href)}`; -// } else if (url.host.split(".")[0] === "video") { -// return `${nitterInstance}/gif/${encodeURIComponent(url.href)}`; -// } else { -// return `${nitterInstance}${url.pathname}${url.search}`; -// } -// } -// -// browser.storage.sync.get( -// [ -// "nitterInstance", -// "disableNitter", -// "removeTwitterSW", -// "redirectBypassFlag", -// "exceptions", -// ], -// (result) => { -// redirectBypassFlag = result.redirectBypassFlag; -// browser.storage.sync.set({ -// redirectBypassFlag: false, -// }); -// if (!result.removeTwitterSW) { -// disableNitter = result.disableNitter; -// nitterInstance = -// result.nitterInstance || -// commonHelper.default.getRandomInstance( -// twitterHelper.default.redirects -// ); -// exceptions = result.exceptions -// ? result.exceptions.map((e) => { -// return new RegExp(e); -// }) -// : []; -// navigator.serviceWorker.getRegistrations().then((registrations) => { -// for (let registration of registrations) { -// if (registration.scope === "https://twitter.com/") { -// registration.unregister(); -// console.log("Unregistered Twitter SW", registration); -// } -// } -// }); -// const url = new URL(window.location); -// if (shouldRedirect(url)) { -// const redirect = redirectTwitter(url); -// console.info("Redirecting", `"${url.href}"`, "=>", `"${redirect}"`); -// window.location = redirect; -// } -// } -// } -// ); -// }, -// (error) => { -// console.error(error); -// } -//); diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/stylesheets/styles.css b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/stylesheets/styles.css deleted file mode 100644 index 5079a3c..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/assets/stylesheets/styles.css +++ /dev/null @@ -1,538 +0,0 @@ -body { - --text: #fff; - --bg-main: #3c4043; - --bg-secondary: #292a2d; - --active: #ff5b56; - --space: 5px; - --danger: #f04141; - --danger-light: #f9d0d5; - --dark-grey: #767676; - --light-grey: #c3c3c3; -} - -body.light-theme { - --text: #000; - --bg-main: #e3e7ea; - --bg-secondary: #fff; -} - -.light-theme.popup, -.light-theme .popup { - background-color: var(--bg-secondary); -} - -body { - margin: 0; - width: 400px; - margin: auto; - min-height: 572px; - font-family: Sans-Serif; - background-color: var(--bg-secondary); - color: var(--text); -} - -.popup { - width: 300px; - min-height: auto; - overflow: hidden; - background-color: var(--bg-main); -} - -input { - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; -} - -header { - background-color: var(--bg-main); - color: var(--text); - display: flex; - padding: var(--space); -} - -header .logo-container { - width: 100%; - margin: var(--space) 0 var(--space) 0; - display: flex; - align-items: center; -} - -header .logo-container img { - height: 85px; - float: left; -} - -header .logo-container h1 { - font-size: 25px; - float: left; - margin-left: 15px; - text-transform: uppercase; - font-weight: normal; -} - -header .privacy { - letter-spacing: 0.13em; -} - -header .version { - font-size: 8.5px; - font-weight: bold; - position: absolute; - top: var(--space); - right: var(--space); -} - -h1 { - font-size: 14px; - margin: 7px auto; -} - -i { - font-size: 12px; -} - -h2 { - clear: both; - font-size: 12px; - font-weight: normal; - margin: 0; -} - -h3 { - font-size: 16px; -} - -h1, -h2 { - color: var(--text); -} - -footer { - width: 100%; -} - -footer a.button { - margin: var(--space); -} - -input[type="url"], -input[type="text"], -select { - width: 100%; - box-sizing: border-box; - margin-bottom: var(--space); - background-color: var(--bg-main); - border-style: inset; - color: var(--text); -} - -input[type="url"] { - padding: 1px 2px; -} - -input[type="checkbox"] { - opacity: 0; -} - -input[type="radio"] { - appearance: radio; - -moz-appearance: radio; - -webkit-appearance: radio; -} - -input[type="radio"]:checked + label { - background: transparent; -} - -.checkbox-label { - margin-left: 5px; - background: grey; - border-radius: 25px; - color: var(--text); - cursor: pointer; - display: block; - float: right; - font-weight: bold; - height: 30px; - position: relative; - text-indent: -400px; - width: 50px; -} - -.checkbox-label:after { - background: white; - border-radius: 90px; - content: ""; - height: 20px; - left: var(--space); - position: absolute; - top: var(--space); - transition: 0.3s; - width: 20px; -} - -input:checked + label { - background: var(--active); -} - -input:checked + label:after { - left: calc(100% - var(--space)); - transform: translateX(-100%); -} - -.settings-block { - display: block; - padding: 5px 10px 5px 10px; -} - -.settings-block h1 { - float: left; -} - -.button { - border: var(--active) solid 1px; - color: var(--text); - stroke: var(--text); - display: block; - font-size: 12px; - font-weight: bold; - margin: var(--space) auto; - padding: 10px; - text-align: center; - text-decoration: none; - cursor: pointer; - -webkit-transition-duration: 0.4s; - transition-duration: 0.4s; -} - -.button * { - vertical-align: middle; -} - -.button:hover { - background-color: var(--active); - color: var(--text); - stroke: var(--text); -} - -.button:active { - background-color: var(--active); - box-shadow: 0 var(--space) var(--bg-main); - transform: translateY(4px); -} - -input:invalid { - color: var(--danger); - border-color: var(--danger); - background-color: var(--danger-light); -} - -.margin-bottom { - margin-bottom: 20px; -} - -.tab { - overflow: hidden; - background-color: var(--bg-secondary); - position: fixed; - top: 0; - width: 400px; - z-index: 2; -} - -.tab button { - border-top-left-radius: 10px; - border-top-right-radius: 10px; - color: var(--text); - background-color: inherit; - float: left; - border: none; - outline: none; - cursor: pointer; - padding: 14px 16px; - transition: 0.3s; - border: solid 1px var(--bg-main); - width: 33.333%; - font-size: 14px; -} - -.tab button:hover { - background-color: var(--active); -} - -.tab button.active { - background-color: var(--bg-main); -} - -.tabcontent { - padding-top: 50px; - display: none; - background-color: var(--bg-main); - min-height: 510px; -} - -div.exceptions { - clear: left; -} - -div.exceptions > input { - width: 240px; - float: left; -} - -#add-to-exceptions { - float: right; - border: var(--active) solid 1px; - background-color: var(--active); - color: var(--text); - font-weight: bold; - cursor: pointer; - border-radius: 50%; - padding: 1px 1px 0px 1px; - margin-right: 5px; -} - -#add-to-exceptions svg { - height: 20px; - width: 20px; -} - -ul { - padding: 0; - list-style-type: none; - color: var(--text); - margin: 20px 20px 0 20px; -} - -li { - border-bottom: solid 0.5px var(--bg-secondary); - padding: 20px 0px 20px 20px; -} - -#exceptions-items button { - float: right; - margin-right: -5px; - border: var(--active) solid 1px; - background-color: var(--active); - color: var(--text); - font-weight: bold; - cursor: pointer; - border-radius: 50%; - padding: 2px 2px 0px 2px; -} - -.button svg { - height: 18px; - width: 18px; -} - -.autocomplete { - position: relative; - display: inline-block; - width: 100%; -} - -.autocomplete input { - background: url(../images/chevron-down.svg) right no-repeat; -} - -.autocomplete-items { - position: absolute; - border: 1px solid var(--bg-main); - border-bottom: none; - border-top: none; - z-index: 99; - top: 85%; - left: 0; - right: 0; - overflow-y: auto; - max-height: 175px; - color: var(--text); - overflow-x: hidden; - max-width: 380px; -} - -.autocomplete-items div { - padding: 10px; - cursor: pointer; - background-color: var(--bg-secondary); - border-bottom: 1px solid var(--bg-main); -} - -.autocomplete-items div:hover { - background-color: var(--active); -} - -.autocomplete-active { - background-color: var(--active); - color: var(--text); -} - -.option { - width: 100%; -} - -.option td { - vertical-align: middle; -} - -input[type="range"] { - -webkit-appearance: none; - margin: 18px 0; - width: 100%; -} - -input[type="range"]:focus { - outline: none; -} - -input[type="range"]::-webkit-slider-runnable-track { - width: 100%; - height: 8.4px; - cursor: pointer; - border-color: var(--dark-grey), var(--light-grey); - background: var(--bg-main); - border-radius: 1.3px; - border: 0.2px inset var(--dark-grey); -} - -input[type="range"]::-webkit-slider-thumb { - border-color: var(--active); - border: 1px solid var(--dark-grey); - height: 36px; - width: 16px; - border-radius: 3px; - background: var(--active); - cursor: pointer; - -webkit-appearance: none; - margin-top: -14px; -} - -input[type="range"]:focus::-webkit-slider-runnable-track { - background: var(--bg-main); -} - -input[type="range"]::-moz-range-track { - width: 100%; - height: 8.4px; - cursor: pointer; - border-color: var(--dark-grey), var(--light-grey); - background: var(--bg-main); - border-radius: 1.3px; - border: 0.2px inset var(--dark-grey); -} - -input[type="range"]::-moz-range-thumb { - border-color: var(--active); - border: 1px solid var(--dark-grey); - height: 36px; - width: 16px; - border-radius: 3px; - background: var(--active); - cursor: pointer; -} - -::placeholder { - color: var(--text); - opacity: 0.7; -} - -*:focus { - outline: var(--active) solid 2px; -} - -@media (prefers-color-scheme: light) { - body { - --text: #000; - --text-secondary: #fff; - --bg-main: #e3e7ea; - --bg-secondary: #fff; - } - - body.dark-theme { - --text: #fff; - --text-secondary: #000; - --bg-main: #3c4043; - --bg-secondary: #292a2d; - } - - .popup { - background-color: var(--bg-secondary); - } -} - -#volume-value { - float: right; -} - -.collapsible { - background-color: var(--bg-main); - cursor: pointer; - color: var(--active); - padding: 18px; - width: 100%; - border: none; - text-align: left; - outline: none; - font-size: 15px; - border-bottom: solid var(--active); - font-weight: bold; -} - -.collapsible:after { - content: "\25BE"; - color: var(--active); - font-weight: bold; - float: right; - margin-left: 5px; -} - -.collapsible-active, -.collapsible:hover, -.collapsible:hover::after { - background-color: var(--active); - color: var(--text-secondary); -} - -.collapsible-active:after { - content: "\25B4"; - color: var(--text-secondary); - font-weight: bold; - float: right; - margin-left: 5px; -} - -.collapsible-content { - padding: 0 18px; - display: none; - overflow: hidden; -} - -hr { - height: 2px; - background-color: var(--active); - border: none; -} - -.new-badge { - position: relative; -} - -.new-badge[data-new-badge]:after { - content: "New!"; - position: absolute; - top: -10px; - right: -42px; - font-size: 0.9em; - background: var(--active); - color: white; - width: 35px; - height: 18px; - text-align: center; - line-height: 18px; - border-radius: 25px; - padding: 2px; - box-shadow: 0 0 1px var(--bg-secondary); - font-weight: bold; -} diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/manifest.json b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/manifest.json deleted file mode 100644 index d3bcec2..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/manifest.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "name": "__MSG_extensionName__", - "description": "__MSG_extensionDescription__", - "version": "1.1.49", - "manifest_version": 2, - "background": { - "page": "pages/background/background.html", - "persistent": true - }, - "default_locale": "en", - "icons": { - "16": "assets/images/icon16.png", - "32": "assets/images/icon32.png", - "48": "assets/images/icon48.png", - "128": "assets/images/icon128.png" - }, - "permissions": [ - "storage", - "webRequest", - "webRequestBlocking", - "<all_urls>" - ], - "browser_action": { - "default_title": "Privacy Redirect", - "default_popup": "pages/popup/popup.html", - "default_icon": { - "16": "assets/images/icon16.png", - "32": "assets/images/icon32.png", - "48": "assets/images/icon48.png", - "128": "assets/images/icon128.png" - } - }, - "content_scripts": [ - { - "matches": [ - "*://x.com/*", - "*://mobile.x.com/*", - "*://twitter.com/*", - "*://www.twitter.com/*", - "*://mobile.twitter.com/*", - "*://pbs.twimg.com/*", - "*://video.twimg.com/*" - ], - "js": [ - "assets/javascripts/remove-twitter-sw.js" - ], - "run_at": "document_start" - }, - { - "matches": [ - "*://inv.nadeko.net/*", - "*://inv.nadekonw7plitnjuawu6ytjsl7jlglk2t6pyq6eftptmiv3dvqndwvyd.onion/*" - ], - "js": [ - "assets/javascripts/persist-invidious-prefs.js" - ], - "run_at": "document_start" - } - ], - "options_ui": { - "page": "pages/options/options.html", - "open_in_tab": false - }, - "web_accessible_resources": [ - "assets/javascripts/helpers/*" - ], - "browser_specific_settings": { - "gecko": { - "id": "{b7f9d2cd-d772-4302-8c3f-eb941af36f76}", - "strict_min_version": "67.0" - } - } -} diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/background/background.html b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/background/background.html deleted file mode 100644 index 55f5b61..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/background/background.html +++ /dev/null @@ -1,7 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8" /> - <script type="module" src="background.js"></script> - </head> -</html> diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/background/background.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/background/background.js deleted file mode 100644 index c08d7b4..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/background/background.js +++ /dev/null @@ -1,689 +0,0 @@ -"use strict"; - -import commonHelper from "../../assets/javascripts/helpers/common.js"; -import twitterHelper from "../../assets/javascripts/helpers/twitter.js"; -import youtubeHelper from "../../assets/javascripts/helpers/youtube.js"; -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; -const youtubeDomains = youtubeHelper.targets; -const invidiousInstances = youtubeHelper.redirects; -const instagramDomains = instagramHelper.targets; -const bibliogramInstances = instagramHelper.redirects; -const instagramReservedPaths = instagramHelper.reservedPaths; -const bibliogramBypassPaths = instagramHelper.bypassPaths; -const osmDefault = mapsHelper.redirects[0]; -const googleMapsRegex = mapsHelper.targets; -const mapCentreRegex = mapsHelper.mapCentreRegex; -const dataLatLngRegex = mapsHelper.dataLatLngRegex; -const placeRegex = mapsHelper.placeRegex; -const travelModes = mapsHelper.travelModes; -const layers = mapsHelper.layers; -const redditInstances = redditHelper.redirects; -const redditDomains = redditHelper.targets; -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; -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; -let invidiousDarkMode; -let invidiousVolume; -let invidiousPlayerStyle; -let invidiousSubtitles; -let invidiousAutoplay; -let useFreeTube; -let nitterRandomPool; -let invidiousRandomPool; -let bibliogramRandomPool; -let exceptions; - -window.browser = window.browser || window.chrome; - -browser.storage.sync.get( - [ - "nitterInstance", - "invidiousInstance", - "bibliogramInstance", - "osmInstance", - "redditInstance", - "searchEngineInstance", - "simplyTranslateInstance", - "wikipediaInstance", - "disableNitter", - "disableInvidious", - "disableBibliogram", - "disableOsm", - "disableReddit", - "disableSearchEngine", - "disableSimplyTranslate", - "disableWikipedia", - "alwaysProxy", - "onlyEmbeddedVideo", - "videoQuality", - "invidiousDarkMode", - "invidiousVolume", - "invidiousPlayerStyle", - "invidiousSubtitles", - "invidiousAutoplay", - "useFreeTube", - "nitterRandomPool", - "invidiousRandomPool", - "bibliogramRandomPool", - "exceptions", - ], - (result) => { - nitterInstance = result.nitterInstance; - invidiousInstance = result.invidiousInstance; - bibliogramInstance = result.bibliogramInstance; - 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; - invidiousDarkMode = result.invidiousDarkMode; - exceptions = result.exceptions - ? result.exceptions.map((e) => { - return new RegExp(e); - }) - : []; - invidiousVolume = result.invidiousVolume; - invidiousPlayerStyle = result.invidiousPlayerStyle; - invidiousSubtitles = result.invidiousSubtitles || ""; - invidiousAutoplay = result.invidiousAutoplay; - useFreeTube = result.useFreeTube; - nitterRandomPool = result.nitterRandomPool - ? result.nitterRandomPool.split(",") - : commonHelper.filterInstances(nitterInstances); - invidiousRandomPool = result.invidiousRandomPool - ? result.invidiousRandomPool.split(",") - : commonHelper.filterInstances(invidiousInstances); - bibliogramRandomPool = result.bibliogramRandomPool - ? result.bibliogramRandomPool.split(",") - : commonHelper.filterInstances(bibliogramInstances); - } -); - -browser.storage.onChanged.addListener((changes) => { - if ("nitterInstance" in changes) { - nitterInstance = changes.nitterInstance.newValue; - } - if ("invidiousInstance" in changes) { - invidiousInstance = changes.invidiousInstance.newValue; - } - if ("bibliogramInstance" in changes) { - bibliogramInstance = changes.bibliogramInstance.newValue; - } - 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; - } - if ("searchEngineInstance" in changes) { - searchEngineInstance = changes.searchEngineInstance.newValue; - } - if ("disableNitter" in changes) { - disableNitter = changes.disableNitter.newValue; - } - if ("disableInvidious" in changes) { - disableInvidious = changes.disableInvidious.newValue; - } - if ("disableBibliogram" in changes) { - disableBibliogram = changes.disableBibliogram.newValue; - } - if ("disableOsm" in changes) { - disableOsm = changes.disableOsm.newValue; - } - if ("disableReddit" in changes) { - disableReddit = changes.disableReddit.newValue; - } - 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; - } - if ("onlyEmbeddedVideo" in changes) { - onlyEmbeddedVideo = changes.onlyEmbeddedVideo.newValue; - } - if ("videoQuality" in changes) { - videoQuality = changes.videoQuality.newValue; - } - if ("invidiousDarkMode" in changes) { - invidiousDarkMode = changes.invidiousDarkMode.newValue; - } - if ("invidiousVolume" in changes) { - invidiousVolume = changes.invidiousVolume.newValue; - } - if ("invidiousPlayerStyle" in changes) { - invidiousPlayerStyle = changes.invidiousPlayerStyle.newValue; - } - if ("invidiousSubtitles" in changes) { - invidiousSubtitles = changes.invidiousSubtitles.newValue; - } - if ("invidiousAutoplay" in changes) { - invidiousAutoplay = changes.invidiousAutoplay.newValue; - } - if ("useFreeTube" in changes) { - useFreeTube = changes.useFreeTube.newValue; - } - if ("nitterRandomPool" in changes) { - nitterRandomPool = changes.nitterRandomPool.newValue.split(","); - } - if ("invidiousRandomPool" in changes) { - invidiousRandomPool = changes.invidiousRandomPool.newValue.split(","); - } - if ("bibliogramRandomPool" in changes) { - bibliogramRandomPool = changes.bibliogramRandomPool.newValue.split(","); - } - if ("exceptions" in changes) { - exceptions = changes.exceptions.newValue.map((e) => { - return new RegExp(e); - }); - } -}); - -function isException(url, initiator) { - return ( - exceptions.some((regex) => regex.test(url.href)) || - (initiator && exceptions.some((regex) => regex.test(initiator.href))) - ); -} - -function isFirefox() { - return typeof InstallTrigger !== "undefined"; -} - -function redirectYouTube(url, initiator, type) { - if (disableInvidious || isException(url, initiator)) { - return null; - } - if ( - initiator && - (initiator.origin === invidiousInstance || - invidiousInstances.includes(initiator.origin) || - youtubeDomains.includes(initiator.host)) - ) { - return null; - } - if (url.pathname.match(/iframe_api/) || url.pathname.match(/www-widgetapi/)) { - // Don't redirect YouTube Player API. - return null; - } - if (url.host.split(".")[0] === "studio") { - // Avoid redirecting `studio.youtube.com` - return null; - } - if (onlyEmbeddedVideo && type !== "sub_frame") { - return null; - } - if (useFreeTube && type === "main_frame") { - return `freetube://${url}`; - } - // Apply settings - if (alwaysProxy) { - url.searchParams.append("local", true); - } - if (videoQuality) { - url.searchParams.append("quality", videoQuality); - } - if (invidiousDarkMode) { - url.searchParams.append("dark_mode", invidiousDarkMode); - } - if (invidiousVolume) { - url.searchParams.append("volume", invidiousVolume); - } - if (invidiousPlayerStyle) { - url.searchParams.append("player_style", invidiousPlayerStyle); - } - if (invidiousSubtitles) { - url.searchParams.append("subtitles", invidiousSubtitles); - } - if (invidiousAutoplay) { - url.searchParams.append("autoplay", 1); - } - - return `${ - invidiousInstance || commonHelper.getRandomInstance(invidiousRandomPool) - }${url.pathname.replace("/shorts", "")}${url.search}`; -} - -function redirectTwitter(url, initiator) { - if (disableNitter || isException(url, initiator)) { - return null; - } - if (url.pathname.split("/").includes("home")) { - return null; - } - if ( - isFirefox() && - initiator && - (initiator.origin === nitterInstance || - nitterInstances.includes(initiator.origin) || - twitterDomains.includes(initiator.host)) - ) { - browser.storage.sync.set({ - redirectBypassFlag: true, - }); - return null; - } - if (url.host.split(".")[0] === "pbs" || url.host.split(".")[0] === "video") { - return `${ - nitterInstance || commonHelper.getRandomInstance(nitterRandomPool) - }/pic/${encodeURIComponent(url.href)}`; - } else if (url.pathname.split("/").includes("tweets")) { - return `${ - nitterInstance || commonHelper.getRandomInstance(nitterRandomPool) - }${url.pathname.replace("/tweets", "")}${url.search}`; - } else { - return `${ - nitterInstance || commonHelper.getRandomInstance(nitterRandomPool) - }${url.pathname}${url.search}`; - } -} - -function redirectInstagram(url, initiator, type) { - if (disableBibliogram || isException(url, initiator)) { - return null; - } - // Do not redirect Bibliogram view on Instagram links - if ( - initiator && - (initiator.origin === bibliogramInstance || - bibliogramInstances.includes(initiator.origin) || - instagramDomains.includes(initiator.host)) - ) { - return null; - } - // Do not redirect /accounts, /embeds.js, or anything other than main_frame - if (type !== "main_frame" || url.pathname.match(bibliogramBypassPaths)) { - return null; - } - if ( - url.pathname === "/" || - instagramReservedPaths.includes(url.pathname.split("/")[1]) - ) { - return `${ - bibliogramInstance || commonHelper.getRandomInstance(bibliogramRandomPool) - }${url.pathname}${url.search}`; - } else { - // Likely a user profile, redirect to '/u/...' - return `${ - bibliogramInstance || commonHelper.getRandomInstance(bibliogramRandomPool) - }/u${url.pathname}${url.search}`; - } -} - -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 = ""; - // Set map centre if present - if (url.pathname.match(mapCentreRegex)) { - const [, lat, lon, zoom] = url.pathname.match(mapCentreRegex); - mapCentre = `#map=${zoom}/${lat}/${lon}`; - } else if (url.search.includes("center=")) { - const [lat, lon] = url.searchParams.get("center").split(","); - mapCentre = `#map=${url.searchParams.get("zoom") || "17"}/${lat}/${lon}`; - // Set default zoom if mapCentre not present - } else { - params = "&zoom=17"; - } - // Set map layer - params = `${params}&layers=${ - layers[url.searchParams.get("layer")] || layers["none"] - }`; - // Handle Google Maps Embed API - if (url.pathname.split("/").includes("embed")) { - let query = ""; - if (url.searchParams.has("q")) { - query = url.searchParams.get("q"); - } else if (url.searchParams.has("query")) { - query = url.searchParams.has("query"); - } else if (url.searchParams.has("pb")) { - try { - query = url.searchParams.get("pb").split(/!2s(.*?)!/)[1]; - } catch (error) { - console.error(error); - // Unable to find map marker in URL. - } - } - let marker, bbox; - mapsHelper.addressToLatLng(query, (coords, boundingbox) => { - marker = coords; - bbox = boundingbox; - }); - redirect = `${osmInstance}/export/embed.html?bbox=${bbox}&layer=mapnik&marker=${marker}`; - // Handle Google Maps Directions - } else if (url.pathname.split("/").includes("dir")) { - const travelMode = - travelModes[url.searchParams.get("travelmode")] || travelModes["driving"]; - let origin; - mapsHelper.addressToLatLng(url.searchParams.get("origin"), (coords) => { - origin = coords; - }); - let destination; - mapsHelper.addressToLatLng( - url.searchParams.get("destination"), - (coords) => { - destination = coords; - } - ); - redirect = `${osmInstance}/directions?engine=${travelMode}&route=${origin}%3B${destination}${mapCentre}${params}`; - // Get marker from data attribute - } else if ( - url.pathname.includes("data=") && - url.pathname.match(dataLatLngRegex) - ) { - const [mlat, mlon] = url.pathname.match(dataLatLngRegex); - redirect = `${osmInstance}/?mlat=${mlat.replace( - "!3d", - "" - )}&mlon=${mlon.replace("!4d", "")}${mapCentre}${params}`; - // Get marker from ll param - } else if (url.searchParams.has("ll")) { - const [mlat, mlon] = url.searchParams.get("ll").split(","); - redirect = `${osmInstance}/?mlat=${mlat}&mlon=${mlon}${mapCentre}${params}`; - // Get marker from viewpoint param. - } else if (url.searchParams.has("viewpoint")) { - const [mlat, mlon] = url.searchParams.get("viewpoint").split(","); - redirect = `${osmInstance}/?mlat=${mlat}&mlon=${mlon}${mapCentre}${params}`; - // Use query as search if present. - } else { - let query; - if (url.searchParams.has("q")) { - query = url.searchParams.get("q"); - } else if (url.searchParams.has("query")) { - query = url.searchParams.get("query"); - } else if (url.pathname.match(placeRegex)) { - query = url.pathname.match(placeRegex)[1]; - } - redirect = `${osmInstance}/${query ? "search?query=" + query : ""}${ - mapCentre || "#" - }${params}`; - } - - return redirect; -} - -function redirectReddit(url, initiator, type) { - if (disableReddit || isException(url, initiator)) { - return null; - } - // Do not redirect when already on the selected view - if ( - (initiator && initiator.origin === redditInstance) || - url.origin === redditInstance - ) { - return null; - } - // Do not redirect exclusions nor anything other than main_frame - 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}`; -} - -function redirectSearchEngine(url, initiator) { - if (disableSearchEngine || isException(url, initiator)) { - return null; - } - - const searchEngine = - searchEngineInstance || - commonHelper.getRandomInstance(searchEngineInstances); - let search = ""; - url.search - .slice(1) - .split("&") - .forEach(function (input) { - if (input.startsWith("q=")) search = input; - }); - 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); - let initiator; - if (details.originUrl) { - initiator = new URL(details.originUrl); - } else if (details.initiator) { - initiator = new URL(details.initiator); - } - let redirect; - if (youtubeDomains.includes(url.host)) { - redirect = { - redirectUrl: redirectYouTube(url, initiator, details.type), - }; - } else if (twitterDomains.includes(url.host)) { - redirect = { - redirectUrl: redirectTwitter(url, initiator), - }; -// -// Bibliogram has been discontinued. -// See <https://cadence.moe/blog/2022-09-01-discontinuing-bibliogram> -// We'll keep this code in case the project is resurrected, but for -// now we disable Bibliogram redirects and hide the associated UI. -// -// } else if (instagramDomains.includes(url.host)) { -// redirect = { -// redirectUrl: redirectInstagram(url, initiator, details.type), -// }; -// - } else if (url.href.match(googleMapsRegex)) { - redirect = { - redirectUrl: redirectGoogleMaps(url, initiator), - }; - } else if (redditDomains.includes(url.host)) { - redirect = { - redirectUrl: redirectReddit(url, initiator, details.type), - }; - } else if (url.href.match(googleSearchRegex)) { - 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( - "Redirecting", - `"${url.href}"`, - "=>", - `"${redirect.redirectUrl}"` - ); - console.info("Details", details); - } - return redirect; - }, - { - urls: ["<all_urls>"], - }, - ["blocking"] -); - -browser.runtime.onInstalled.addListener((details) => { - 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"], - (result) => { - if (result.whitelist) { - let whitelist = result.whitelist.map((e) => - e.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&") - ); - browser.storage.sync.set({ - exceptions: result.exceptions.concat(whitelist), - whitelist: null, - }); - } - if (result.invidiousInstance === "https://invidio.us") { - browser.storage.sync.set({ - invidiousInstance: null, - }); - } - } - ); - } -}); diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/options/options.html b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/options/options.html deleted file mode 100644 index c5d0096..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/options/options.html +++ /dev/null @@ -1,647 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1" /> - <title></title> - <link href="../../assets/stylesheets/styles.css" rel="stylesheet" /> - <title>Privacy Redirect Options</title> - </head> - - <body> - <div class="tab"> - <button - class="tablinks" - id="general-tab" - data-localise="__MSG_generalTab__" - > - General - </button> - <button - class="tablinks" - id="advanced-tab" - data-localise="__MSG_advancedTab__" - > - Advanced - </button> - <button - class="tablinks" - id="exceptions-tab" - data-localise="__MSG_exceptionsTab__" - > - Exceptions - </button> - </div> - - <div id="general" class="tabcontent"> - <section class="settings-block"> - <table class="option" aria-label="Toggle Nitter redirects"> - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_disableNitter__">Nitter Redirects</h1> - </td> - <td> - <input - aria-hidden="true" - id="disable-nitter" - type="checkbox" - checked - /> - <label for="disable-nitter" class="checkbox-label"></label> - </td> - </tr> - </tbody> - </table> - </section> - <section class="settings-block"> - <table class="option" aria-label="Toggle Invidious redirects"> - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_disableInvidious__"> - Invidious Redirects - </h1> - </td> - <td> - <input - aria-hidden="true" - id="disable-invidious" - type="checkbox" - checked - /> - <label for="disable-invidious" class="checkbox-label"> </label> - </td> - </tr> - </tbody> - </table> - </section> -<!-- <section class="settings-block"> - <table class="option" aria-label="Toggle Bibliogram redirects"> - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_disableBibliogram__"> - Bibliogram Redirects - </h1> - </td> - <td> - <input - aria-hidden="true" - id="disable-bibliogram" - type="checkbox" - checked - /> - <label for="disable-bibliogram" class="checkbox-label"> </label> - </td> - </tr> - </tbody> - </table> - </section> --> - <section class="settings-block"> - <table class="option" aria-label="Toggle OpenStreetMap redirects"> - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_disableOsm__"> - OpenStreetMap Redirects - </h1> - </td> - <td> - <input - aria-hidden="true" - id="disable-osm" - type="checkbox" - checked - /> - <label for="disable-osm" class="checkbox-label"> </label> - </td> - </tr> - </tbody> - </table> - </section> - <section class="settings-block"> - <table class="option" aria-label="Toggle Reddit redirects"> - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_disableReddit__"> - Reddit Redirects - </h1> - </td> - <td> - <input - aria-hidden="true" - id="disable-reddit" - type="checkbox" - checked - /> - <label for="disable-reddit" class="checkbox-label"> </label> - </td> - </tr> - </tbody> - </table> - </section> - <section class="settings-block"> - <table class="option" aria-label="Toggle Search Engine redirects"> - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_disableSearchEngine__"> - Search Engine Redirects - </h1> - </td> - <td> - <input - aria-hidden="true" - id="disable-search-engine" - type="checkbox" - checked - /> - <label for="disable-search-engine" class="checkbox-label"> </label> - </td> - </tr> - </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" - /> - <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" - /> - <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"> - <input - id="nitter-instance" - type="url" - name="nitter-instance" - data-localise-placeholder="__MSG_randomInstancePlaceholder__" - placeholder="Random instance (none selected)" - /> - </div> - </section> - <section class="settings-block"> - <h1 data-localise="__MSG_invidiousInstance__">Invidious Instance</h1> - <div class="autocomplete"> - <input - id="invidious-instance" - type="url" - data-localise-placeholder="__MSG_randomInstancePlaceholder__" - placeholder="Random instance (none selected)" - /> - </div> - </section> -<!-- <section class="settings-block"> - <h1 data-localise="__MSG_bibliogramInstance__">Bibliogram Instance</h1> - <div class="autocomplete"> - <input - id="bibliogram-instance" - type="url" - data-localise-placeholder="__MSG_randomInstancePlaceholder__" - placeholder="Random instance (none selected)" - /> - </div> - </section> --> - <section class="settings-block"> - <h1 data-localise="__MSG_osmInstance__">OpenStreetMap Instance</h1> - <div class="autocomplete"> - <input - id="osm-instance" - type="url" - placeholder="https://openstreetmap.org" - /> - </div> - </section> - <section class="settings-block"> - <h1 data-localise="__MSG_redditInstance__">Reddit Instance</h1> - <div class="autocomplete"> - <input - id="reddit-instance" - type="url" - placeholder="https://libreddit.de" - /> - </div> - </section> - <section class="settings-block"> - <h1 data-localise="__MSG_searchEngineInstance__">Search Engine Instance</h1> - <div class="autocomplete"> - <input - id="search-engine-instance" - type="url" - data-localise-placeholder="__MSG_randomInstancePlaceholder__" - placeholder="Random instance (none selected)" - /> - </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"> - <option value="">System</option> - <option value="light-theme">Light</option> - <option value="dark-theme">Dark</option> - </select> - </section> - </div> - - <div id="advanced" class="tabcontent"> - <button type="button" class="collapsible"> - Invidious - </button> - <div class="collapsible-content"> - <section class="settings-block"> - <h1 data-localise="__MSG_invidiousRandomPool__"> - Invidious random instance pool (comma-separated) - </h1> - <input - id="invidious-random-pool" - name="invidious-random-pool" - type="text" - /> - </section> - <section class="settings-block"> - <table - class="option" - aria-label="Redirect YouTube to FreeTube where possible" - > - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_useFreeTube__"> - Use FreeTube over Invidious when possible - </h1> - </td> - <td> - <input - aria-hidden="true" - id="use-freetube" - type="checkbox" - checked - /> - <label for="use-freetube" class="checkbox-label"> </label> - </td> - </tr> - </tbody> - </table> - </section> - <section class="settings-block"> - <table - class="option" - aria-label="Always proxy videos through Invidious" - > - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_alwaysProxy__"> - Always proxy videos through Invidious - </h1> - </td> - <td> - <input - aria-hidden="true" - id="always-proxy" - type="checkbox" - checked - /> - <label for="always-proxy" class="checkbox-label"> </label> - </td> - </tr> - </tbody> - </table> - </section> - <section class="settings-block"> - <table - class="option" - aria-label="Only redirect embedded video to Invidious" - > - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_onlyEmbeddedVideo__"> - Only redirect embedded video to Invidious - </h1> - </td> - <td> - <input - aria-hidden="true" - id="only-embed" - type="checkbox" - checked - /> - <label for="only-embed" class="checkbox-label"> </label> - </td> - </tr> - </tbody> - </table> - </section> - <section class="settings-block"> - <h1 data-localise="__MSG_videoQuality__">Invidious Video Quality</h1> - <select id="video-quality"> - <option value="">Default</option> - <option value="hd720">720p</option> - <option value="medium">480p</option> - <option value="dash">DASH (Dynamic Adaptive Streaming over HTTP)</option> - </option> - </select> - </section> - <section class="settings-block"> - <table class="option" aria-label="Invidious dark mode aways on"> - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_invidiousDarkMode__"> - Invidious dark mode always on - </h1> - </td> - <td> - <input - aria-hidden="true" - id="invidious-dark-mode" - type="checkbox" - checked - /> - <label for="invidious-dark-mode" class="checkbox-label"> - </label> - </td> - </tr> - </tbody> - </table> - </section> - <section class="settings-block"> - <h1 data-localise="__MSG_invidiousVolume__"> - Invidious Volume - </h1> - <input - id="invidious-volume" - name="invidious-volume" - type="range" - min="0" - max="100" - step="1" - /><span id="volume-value"></span> - </section> - <section class="settings-block"> - <h1 data-localise="__MSG_invidiousPlayerStyle__"> - Invidious Player Style - </h1> - <select id="invidious-player-style"> - <option value="">Invidious</option> - <option value="youtube">YouTube</option> - </select> - </section> - <section class="settings-block"> - <h1 data-localise="__MSG_invidiousSubtitles__"> - Invidious Subtitles - language codes (comma-separated) - </h1> - <input - id="invidious-subtitles" - name="invidious-subtitles" - type="text" - /> - </section> - <section class="settings-block"> - <table - class="option" - aria-label="Invidious automatically play video on load" - > - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_invidiousAutoplay__"> - Invidious automatically play video on load - </h1> - </td> - <td> - <input - aria-hidden="true" - id="invidious-autoplay" - type="checkbox" - checked - /> - <label for="invidious-autoplay" class="checkbox-label"> </label> - </td> - </tr> - </tbody> - </table> - </section> - <section class="settings-block"> - <table class="option" aria-label="Persist Invidious preferences"> - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_persistInvidiousPrefs__"> - Persist Invidious preferences (as cookie) - </h1> - </td> - <td> - <input - aria-hidden="true" - id="persist-invidious-prefs" - type="checkbox" - checked - /> - <label for="persist-invidious-prefs" class="checkbox-label"> - </label> - </td> - </tr> - </tbody> - </table> - </section> - <hr> - </div> - <button type="button" class="collapsible"> - Nitter - </button> - <div class="collapsible-content"> - <section class="settings-block"> - <h1 data-localise="__MSG_nitterRandomPool__"> - Nitter random instance pool (comma-separated) - </h1> - <input - id="nitter-random-pool" - name="nitter-random-pool" - type="text" - /> - </section> - <section class="settings-block"> - <table - class="option" - aria-label="Proactively remove Twitter service worker" - > - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_removeTwitterSW__"> - Proactively remove Twitter service worker - </h1> - </td> - <td> - <input - aria-hidden="true" - id="remove-twitter-sw" - type="checkbox" - checked - /> - <label for="remove-twitter-sw" class="checkbox-label"> </label> - </td> - </tr> - </tbody> - </table> - </section> - <hr> - </div> -<!-- <button type="button" class="collapsible"> - Bibliogram - </button> - <div class="collapsible-content"> - <section class="settings-block"> - <h1 data-localise="__MSG_bibliogramRandomPool__"> - Bibliogram random instance pool (comma-separated) - </h1> - <input - id="bibliogram-random-pool" - name="bibliogram-random-pool" - type="text" - /> - </section> - <hr> - </div> --> - </div> - - <div id="exceptions" class="tabcontent"> - <section class="settings-block"> - <p data-localise="__MSG_exceptionsDescriptionP1__"> - Enter a URL or Regular Expression to be excluded from redirects. - </p> - <p data-localise="__MSG_exceptionsDescriptionP2__"> - All requests for or initiating from a URL that matches your exception - will be excluded from redirects. - </p> - <p data-localise="__MSG_exceptionsDescriptionP3__"> - Note - Supports JavaScript regular expressions, excluding the - enclosing forward slashes. - </p> - </section> - <section class="settings-block"> - <table class="exceptions option"> - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_addException__">Add Exception</h1> - </td> - </tr> - <tr> - <td> - <input - id="new-exceptions-item" - type="text" - placeholder="URL or RegExp" - /> - </td> - <td> - <input type="radio" id="url" name="type" value="URL" checked /> - <label class="radio" for="url">URL</label> - <input type="radio" id="regExp" name="type" value="RegExp" /> - <label class="radio" for="regExp">RegExp</label> - </td> - <td> - <button id="add-to-exceptions"> - <svg - xmlns="http://www.w3.org/2000/svg" - width="512" - height="512" - viewBox="0 0 512 512" - > - <line - x1="256" - y1="112" - x2="256" - y2="400" - style=" - fill: none; - stroke: #fff; - stroke-linecap: round; - stroke-linejoin: round; - stroke-width: 32px; - " - /> - <line - x1="400" - y1="256" - x2="112" - y2="256" - style=" - fill: none; - stroke: #fff; - stroke-linecap: round; - stroke-linejoin: round; - stroke-width: 32px; - " - /> - </svg> - </button> - </td> - </tr> - </tbody> - </table> - </section> - <ul id="exceptions-items"></ul> - </div> - - <script type="module" src="./options.js"></script> - <script src="../../assets/javascripts/localise.js"></script> - </body> -</html> diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/options/options.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/options/options.js deleted file mode 100644 index 8309aab..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/options/options.js +++ /dev/null @@ -1,584 +0,0 @@ -"use strict"; - -import commonHelper from "../../assets/javascripts/helpers/common.js"; -import twitterHelper from "../../assets/javascripts/helpers/twitter.js"; -import youtubeHelper from "../../assets/javascripts/helpers/youtube.js"; -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; -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 }, -// { id: "bibliogram-instance", instances: bibliogramInstances }, - { id: "osm-instance", instances: osmInstances }, - { id: "reddit-instance", instances: redditInstances }, - { - 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(); - -let nitterInstance = document.getElementById("nitter-instance"); -let invidiousInstance = document.getElementById("invidious-instance"); -// 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"); -let removeTwitterSW = document.getElementById("remove-twitter-sw"); -let invidiousDarkMode = document.getElementById("invidious-dark-mode"); -let persistInvidiousPrefs = document.getElementById("persist-invidious-prefs"); -let invidiousVolume = document.getElementById("invidious-volume"); -let invidiousPlayerStyle = document.getElementById("invidious-player-style"); -let invidiousSubtitles = document.getElementById("invidious-subtitles"); -let invidiousAutoplay = document.getElementById("invidious-autoplay"); -let theme = document.getElementById("theme"); -let useFreeTube = document.getElementById("use-freetube"); -let nitterRandomPool = document.getElementById("nitter-random-pool"); -let invidiousRandomPool = document.getElementById("invidious-random-pool"); -// let bibliogramRandomPool = document.getElementById("bibliogram-random-pool"); -let exceptions; - -window.browser = window.browser || window.chrome; - -function prependExceptionsItem(item, index) { - const li = document.createElement("li"); - li.appendChild(document.createTextNode(item.toString())); - const button = document.createElement("button"); - li.appendChild(button); - document.getElementById("exceptions-items").prepend(li); - const svg = `<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 512 512'> - <line x1='368' y1='368' x2='144' y2='144' - style='fill:none;stroke:#FFF;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px' /> - <line x1='368' y1='144' x2='144' y2='368' - style='fill:none;stroke:#FFF;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px' /> - </svg>`; - button.appendChild( - domparser.parseFromString(svg, "image/svg+xml").documentElement - ); - button.addEventListener("click", () => { - exceptions.splice(index, 1); - browser.storage.sync.set({ - exceptions: exceptions, - }); - li.remove(); - }); -} - -browser.storage.sync.get( - [ - "nitterInstance", - "invidiousInstance", - "bibliogramInstance", - "osmInstance", - "redditInstance", - "searchEngineInstance", - "simplyTranslateInstance", - "wikipediaInstance", - "disableNitter", - "disableInvidious", - "disableBibliogram", - "disableOsm", - "disableReddit", - "disableSearchEngine", - "disableSimplyTranslate", - "disableWikipedia", - "alwaysProxy", - "onlyEmbeddedVideo", - "videoQuality", - "removeTwitterSW", - "invidiousDarkMode", - "persistInvidiousPrefs", - "invidiousVolume", - "invidiousPlayerStyle", - "invidiousSubtitles", - "invidiousAutoplay", - "exceptions", - "theme", - "useFreeTube", - "nitterRandomPool", - "invidiousRandomPool", - "bibliogramRandomPool", - ], - (result) => { - theme.value = result.theme || ""; - if (result.theme) document.body.classList.add(result.theme); - nitterInstance.value = result.nitterInstance || ""; - invidiousInstance.value = result.invidiousInstance || ""; -// bibliogramInstance.value = result.bibliogramInstance || ""; - osmInstance.value = result.osmInstance || ""; - 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 || ""; - removeTwitterSW.checked = !result.removeTwitterSW; - invidiousDarkMode.checked = result.invidiousDarkMode; - persistInvidiousPrefs.checked = result.persistInvidiousPrefs; - exceptions = result.exceptions || []; - exceptions.forEach(prependExceptionsItem); - invidiousVolume.value = result.invidiousVolume; - document.querySelector("#volume-value").textContent = result.invidiousVolume - ? `${result.invidiousVolume}%` - : " - "; - invidiousPlayerStyle.value = result.invidiousPlayerStyle || ""; - invidiousSubtitles.value = result.invidiousSubtitles || ""; - invidiousAutoplay.checked = result.invidiousAutoplay; - useFreeTube.checked = result.useFreeTube; - nitterRandomPool.value = - result.nitterRandomPool || commonHelper.filterInstances(nitterInstances); - invidiousRandomPool.value = - result.invidiousRandomPool || - commonHelper.filterInstances(invidiousInstances); -// bibliogramRandomPool.value = -// result.bibliogramRandomPool || -// commonHelper.filterInstances(bibliogramInstances); - } -); - -function openTab(tab, event) { - let i, tabcontent, tablinks; - tabcontent = document.getElementsByClassName("tabcontent"); - for (i = 0; i < tabcontent.length; i++) { - tabcontent[i].style.display = "none"; - } - tablinks = document.getElementsByClassName("tablinks"); - for (i = 0; i < tablinks.length; i++) { - tablinks[i].className = tablinks[i].className.replace(" active", ""); - } - document.getElementById(tab).style.display = "block"; - event.currentTarget.className += " active"; -} - -document - .getElementById("general-tab") - .addEventListener("click", openTab.bind(null, "general")); -document - .getElementById("advanced-tab") - .addEventListener("click", openTab.bind(null, "advanced")); -document - .getElementById("exceptions-tab") - .addEventListener("click", openTab.bind(null, "exceptions")); - -document.getElementById("general-tab").click(); - -function addToExceptions() { - const input = document.getElementById("new-exceptions-item"); - const type = document.querySelector('input[name="type"]:checked').value; - if (input.value) { - try { - let value = input.value; - new RegExp(input.value); - if (type === "URL") { - value = value.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"); - } - exceptions.push(value); - browser.storage.sync.set({ - exceptions: exceptions, - }); - prependExceptionsItem(value, exceptions.indexOf(value)); - input.value = ""; - } catch (error) { - input.setCustomValidity("Invalid RegExp"); - } - } else { - input.setCustomValidity("Invalid RegExp"); - } -} - -document - .getElementById("add-to-exceptions") - .addEventListener("click", addToExceptions); - -function debounce(func, wait, immediate) { - let timeout; - return () => { - let context = this, - args = arguments; - let later = () => { - timeout = null; - if (!immediate) func.apply(context, args); - }; - let callNow = immediate && !timeout; - clearTimeout(timeout); - timeout = setTimeout(later, wait); - if (callNow) func.apply(context, args); - }; -} - -function parseURL(urlString) { - if (urlString) { - try { - const url = new URL(urlString); - if (url.username && url.password) { - return `${url.protocol}//${url.username}:${url.password}@${url.host}`; - } else { - return url.origin; - } - } catch (error) { - console.log(error); - return ""; - } - } else { - return ""; - } -} - -const nitterInstanceChange = debounce(() => { - if (nitterInstance.checkValidity()) { - browser.storage.sync.set({ - nitterInstance: parseURL(nitterInstance.value), - }); - } -}, 500); -nitterInstance.addEventListener("input", nitterInstanceChange); - -const invidiousInstanceChange = debounce(() => { - if (invidiousInstance.checkValidity()) { - browser.storage.sync.set({ - invidiousInstance: parseURL(invidiousInstance.value), - }); - } -}, 500); -invidiousInstance.addEventListener("input", invidiousInstanceChange); - -// const bibliogramInstanceChange = debounce(() => { -// if (bibliogramInstance.checkValidity()) { -// browser.storage.sync.set({ -// bibliogramInstance: parseURL(bibliogramInstance.value), -// }); -// } -// }, 500); -// bibliogramInstance.addEventListener("input", bibliogramInstanceChange); - -const osmInstanceChange = debounce(() => { - if (osmInstance.checkValidity()) { - browser.storage.sync.set({ - osmInstance: parseURL(osmInstance.value), - }); - } -}, 500); -osmInstance.addEventListener("input", osmInstanceChange); - -const redditInstanceChange = debounce(() => { - if (redditInstance.checkValidity()) { - browser.storage.sync.set({ - redditInstance: parseURL(redditInstance.value), - }); - } -}, 500); -redditInstance.addEventListener("input", redditInstanceChange); - -const searchEngineInstanceChange = debounce(() => { - const instance = searchEngineInstances.find( - (instance) => instance.link === searchEngineInstance.value - ); - if (instance || !searchEngineInstance.value) { - browser.storage.sync.set({ - searchEngineInstance: instance || searchEngineInstance.value, - }); - } else { - searchEngineInstance.setCustomValidity("Must be an instance from the list"); - } -}, 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 }); -}); - -disableInvidious.addEventListener("change", (event) => { - browser.storage.sync.set({ disableInvidious: !event.target.checked }); -}); - -// disableBibliogram.addEventListener("change", (event) => { -// browser.storage.sync.set({ disableBibliogram: !event.target.checked }); -// }); - -disableOsm.addEventListener("change", (event) => { - browser.storage.sync.set({ disableOsm: !event.target.checked }); -}); - -disableReddit.addEventListener("change", (event) => { - browser.storage.sync.set({ disableReddit: !event.target.checked }); -}); - -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 }); -}); - -onlyEmbeddedVideo.addEventListener("change", (event) => { - browser.storage.sync.set({ onlyEmbeddedVideo: event.target.checked }); -}); - -videoQuality.addEventListener("change", (event) => { - browser.storage.sync.set({ - videoQuality: event.target.options[videoQuality.selectedIndex].value, - }); -}); - -removeTwitterSW.addEventListener("change", (event) => { - browser.storage.sync.set({ removeTwitterSW: !event.target.checked }); -}); - -invidiousDarkMode.addEventListener("change", (event) => { - browser.storage.sync.set({ invidiousDarkMode: event.target.checked }); -}); - -persistInvidiousPrefs.addEventListener("change", (event) => { - browser.storage.sync.set({ persistInvidiousPrefs: event.target.checked }); -}); - -useFreeTube.addEventListener("change", (event) => { - browser.storage.sync.set({ useFreeTube: event.target.checked }); -}); - -const invidiousVolumeChange = debounce(() => { - document.querySelector( - "#volume-value" - ).textContent = `${invidiousVolume.value}%`; - browser.storage.sync.set({ - invidiousVolume: invidiousVolume.value, - }); -}, 500); -invidiousVolume.addEventListener("input", invidiousVolumeChange); - -invidiousPlayerStyle.addEventListener("change", (event) => { - browser.storage.sync.set({ - invidiousPlayerStyle: - event.target.options[invidiousPlayerStyle.selectedIndex].value, - }); -}); - -const invidiousSubtitlesChange = debounce(() => { - browser.storage.sync.set({ invidiousSubtitles: invidiousSubtitles.value }); -}, 500); -invidiousSubtitles.addEventListener("input", invidiousSubtitlesChange); - -invidiousAutoplay.addEventListener("change", (event) => { - browser.storage.sync.set({ invidiousAutoplay: event.target.checked }); -}); - -const nitterRandomPoolChange = debounce(() => { - browser.storage.sync.set({ nitterRandomPool: nitterRandomPool.value }); -}, 500); -nitterRandomPool.addEventListener("input", nitterRandomPoolChange); - -const invidiousRandomPoolChange = debounce(() => { - browser.storage.sync.set({ invidiousRandomPool: invidiousRandomPool.value }); -}, 500); -invidiousRandomPool.addEventListener("input", invidiousRandomPoolChange); - -// const bibliogramRandomPoolChange = debounce(() => { -// browser.storage.sync.set({ -// bibliogramRandomPool: bibliogramRandomPool.value, -// }); -// }, 500); -// bibliogramRandomPool.addEventListener("input", bibliogramRandomPoolChange); - -theme.addEventListener("change", (event) => { - const value = event.target.options[theme.selectedIndex].value; - switch (value) { - case "dark-theme": - document.body.classList.add("dark-theme"); - document.body.classList.remove("light-theme"); - break; - case "light-theme": - document.body.classList.add("light-theme"); - document.body.classList.remove("dark-theme"); - break; - default: - document.body.classList.remove("light-theme"); - document.body.classList.remove("dark-theme"); - } - browser.storage.sync.set({ - theme: value, - }); -}); - -function autocomplete(input, list) { - let currentFocus; - input.addEventListener("focus", (e) => { - showOptions(e, true); - }); - input.addEventListener("input", (e) => { - const val = e.target.value; - if (!val) { - return false; - } - currentFocus = -1; - showOptions(e); - }); - input.addEventListener("keydown", function (e) { - let x = document.getElementById(this.id + "autocomplete-list"); - if (x) x = x.getElementsByTagName("div"); - if (e.keyCode == 40) { - currentFocus++; - addActive(x); - } else if (e.keyCode == 38) { - currentFocus--; - addActive(x); - } else if (e.keyCode == 13) { - e.preventDefault(); - if (currentFocus > -1) { - if (x) x[currentFocus].click(); - } - } - }); - function showOptions(event, showAll = false) { - let div, - i, - val = event.target.value; - closeAllLists(); - div = document.createElement("div"); - div.setAttribute("id", event.target.id + "autocomplete-list"); - div.setAttribute("class", "autocomplete-items"); - event.target.parentNode.appendChild(div); - for (i = 0; i < list.length; i++) { - if (list[i].toLowerCase().indexOf(val.toLowerCase()) > -1) { - div.appendChild(getItem(list[i], val)); - } else if (showAll) { - div.appendChild(getItem(list[i], val)); - } - } - } - function getItem(item, val) { - const div = document.createElement("div"); - const strong = document.createElement("strong"); - strong.textContent = item.substr(0, val.length); - div.innerText = item.substr(val.length); - const hiddenInput = document.createElement("input"); - hiddenInput.type = "hidden"; - hiddenInput.value = item; - div.prepend(strong); - div.appendChild(hiddenInput); - div.addEventListener("click", function (e) { - input.value = div.getElementsByTagName("input")[0].value; - input.dispatchEvent(new Event("input")); - closeAllLists(); - }); - return div; - } - function addActive(x) { - if (!x) return false; - removeActive(x); - if (currentFocus >= x.length) currentFocus = 0; - if (currentFocus < 0) currentFocus = x.length - 1; - x[currentFocus].classList.add("autocomplete-active"); - } - function removeActive(x) { - for (let i = 0; i < x.length; i++) { - x[i].classList.remove("autocomplete-active"); - } - } - function closeAllLists(elmnt) { - let x = document.getElementsByClassName("autocomplete-items"); - for (let i = 0; i < x.length; i++) { - if (elmnt != x[i] && elmnt != input) { - x[i].parentNode.removeChild(x[i]); - } - } - } - document.addEventListener("click", (e) => { - if (!autocompletes.find((element) => element.id === e.target.id)) { - closeAllLists(e.target); - } - }); -} - -autocompletes.forEach((value) => { - autocomplete(document.getElementById(value.id), value.instances); -}); - -var coll = document.getElementsByClassName("collapsible"); -var i; - -for (i = 0; i < coll.length; i++) { - coll[i].addEventListener("click", function () { - this.classList.toggle("collapsible-active"); - var content = this.nextElementSibling; - if (content.style.display === "block") { - content.style.display = "none"; - } else { - content.style.display = "block"; - } - }); -} diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/popup/popup.html b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/popup/popup.html deleted file mode 100644 index 0f3792b..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/popup/popup.html +++ /dev/null @@ -1,265 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1" /> - <title></title> - <link href="../../assets/stylesheets/styles.css" rel="stylesheet" /> - </head> - - <body class="popup"> - <header class="popup"> - <div class="logo-container"> - <img - src="../../assets/images/icon128.png" - alt="Privacy Redirect logo" - /> - <h1> - <span data-localise="__MSG_privacy__" class="privacy">Privacy</span - ><br /><span data-localise="__MSG_redirect__">Redirect</span> - </h1> - </div> - <div class="version"> - <span data-localise="__MSG_version__">Version</span>: <span - id="version" - ></span> - </div> - </header> - - <section class="settings-block"> - <table class="option" aria-label="Toggle Nitter redirects"> - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_disableNitter__">Nitter Redirects</h1> - </td> - <td> - <input - aria-hidden="true" - id="disable-nitter" - type="checkbox" - checked - /> - <label for="disable-nitter" class="checkbox-label"></label> - </td> - </tr> - </tbody> - </table> - </section> - - <section class="settings-block"> - <table class="option" aria-label="Toggle Invidious redirects"> - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_disableInvidious__"> - Invidious Redirects - </h1> - </td> - <td> - <input - aria-hidden="true" - id="disable-invidious" - type="checkbox" - checked - /> - <label for="disable-invidious" class="checkbox-label"> </label> - </td> - </tr> - </tbody> - </table> - </section> -<!-- - <section class="settings-block"> - <table class="option" aria-label="Toggle Bibliogram redirects"> - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_disableBibliogram__"> - Bibliogram Redirects - </h1> - </td> - <td> - <input - aria-hidden="true" - id="disable-bibliogram" - type="checkbox" - checked - /> - <label for="disable-bibliogram" class="checkbox-label"> </label> - </td> - </tr> - </tbody> - </table> - </section> --> - - <section class="settings-block"> - <table class="option" aria-label="Toggle OpenStreetMap redirects"> - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_disableOsm__"> - OpenStreetMap Redirects - </h1> - </td> - <td> - <input - aria-hidden="true" - id="disable-osm" - type="checkbox" - checked - /> - <label for="disable-osm" class="checkbox-label"> </label> - </td> - </tr> - </tbody> - </table> - </section> - - <section class="settings-block"> - <table class="option" aria-label="Toggle old Reddit redirects"> - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_disableReddit__">Reddit Redirects</h1> - </td> - <td> - <input - aria-hidden="true" - id="disable-reddit" - type="checkbox" - checked - /> - <label for="disable-reddit" class="checkbox-label"> </label> - </td> - </tr> - </tbody> - </table> - </section> - - <section class="settings-block"> - <table class="option" aria-label="Toggle Search Engine redirects"> - <tbody> - <tr> - <td> - <h1 data-localise="__MSG_disableSearchEngine__"> - Search Engine Redirects - </h1> - </td> - <td> - <input - aria-hidden="true" - id="disable-searchEngine" - type="checkbox" - checked - /> - <label for="disable-searchEngine" class="checkbox-label"></label> - </td> - </tr> - </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-simplyTranslate" - type="checkbox" - /> - <label - for="disable-simplyTranslate" - class="checkbox-label" - ></label> - </td> - </tr> - </tbody> - </table> - </section> - - <section class="settings-block"> - <table class="option" aria-label="Toggle Wikiepdia 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" - /> - <label for="disable-wikipedia" class="checkbox-label"></label> - </td> - </tr> - </tbody> - </table> - </section> - - <section class="settings-block"></section> - - <footer> - <a class="button" id="more-options"> - <span data-localise="__MSG_moreOptions__">More Options </span> - <svg - xmlns="http://www.w3.org/2000/svg" - width="512" - height="512" - viewBox="0 0 512 512" - > - <path - d="M384,224V408a40,40,0,0,1-40,40H104a40,40,0,0,1-40-40V168a40,40,0,0,1,40-40H271.48" - style=" - fill: none; - stroke: inherit; - stroke-linecap: round; - stroke-linejoin: round; - stroke-width: 32px; - " - /> - <polyline - points="336 64 448 64 448 176" - style=" - fill: none; - stroke: inherit; - stroke-linecap: round; - stroke-linejoin: round; - stroke-width: 32px; - " - /> - <line - x1="224" - y1="288" - x2="440" - y2="72" - style=" - fill: none; - stroke: inherit; - stroke-linecap: round; - stroke-linejoin: round; - stroke-width: 32px; - " - /> - </svg> - </a> - </footer> - - <script type="module" src="./popup.js"></script> - <script src="../../assets/javascripts/localise.js"></script> - </body> -</html> diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/popup/popup.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/popup/popup.js deleted file mode 100644 index b4699ca..0000000 --- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/popup/popup.js +++ /dev/null @@ -1,76 +0,0 @@ -"use strict"; - -let disableNitter = document.querySelector("#disable-nitter"); -let disableInvidious = document.querySelector("#disable-invidious"); -// 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; - -browser.storage.sync.get( - [ - "disableNitter", - "disableInvidious", - "disableBibliogram", - "disableOsm", - "disableReddit", - "disableSearchEngine", - "disableSimplyTranslate", - "disableWikipedia", - "theme", - ], - (result) => { - if (result.theme) document.body.classList.add(result.theme); - 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; - } -); - -version.textContent = browser.runtime.getManifest().version; - -disableNitter.addEventListener("change", (event) => { - browser.storage.sync.set({ disableNitter: !event.target.checked }); -}); - -disableInvidious.addEventListener("change", (event) => { - browser.storage.sync.set({ disableInvidious: !event.target.checked }); -}); - -// disableBibliogram.addEventListener("change", (event) => { -// browser.storage.sync.set({ disableBibliogram: !event.target.checked }); -// }); - -disableOsm.addEventListener("change", (event) => { - browser.storage.sync.set({ disableOsm: !event.target.checked }); -}); - -disableReddit.addEventListener("change", (event) => { - browser.storage.sync.set({ disableReddit: !event.target.checked }); -}); - -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(); -}); |