From e272de67afbc548a0656c11eda253f607bf448af Mon Sep 17 00:00:00 2001 From: SimonBrazell Date: Tue, 14 Jan 2020 20:48:37 +1100 Subject: [PATCH] Fix embedded video redirects --- README.md | 2 +- background.js | 49 +++++++++++++++------------------------- manifest.json | 11 ++------- pages/options/options.js | 2 +- pages/popup/popup.html | 2 +- pages/popup/popup.js | 4 ++-- 6 files changed, 25 insertions(+), 45 deletions(-) diff --git a/README.md b/README.md index 4a38b52..a270372 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ A simple browser extension that redirects Twitter & Youtube requests to privacy friendly alternatives - [Nitter](https://github.com/zedeus/nitter) & [Invidious](https://github.com/omarroth/invidious). -No unnecessary permissions required, only listens for and redirects requests made to twitter.com, www.twitter.com, mobile.twitter.com, youtube.com, www.youtube.com, youtube-nocookie.com, www.youtube-nocookie.com, and m.youtube.com, nothing else. +Listens for and redirects requests made to `twitter.com`, `www.twitter.com`, `mobile.twitter.com`, `youtube.com`, `www.youtube.com`, `youtube-nocookie.com`, `www.youtube-nocookie.com`, and `m.youtube.com`. Allows for setting custom [Nitter](https://github.com/zedeus/nitter/wiki/Instances) & [Invidious](https://github.com/omarroth/invidious/wiki/Invidious-Instances) instances and toggling redirects on & off. diff --git a/background.js b/background.js index d5c8346..8d6c6b3 100644 --- a/background.js +++ b/background.js @@ -3,6 +3,7 @@ const nitterDefault = 'https://nitter.net'; const invidiousDefault = 'https://invidio.us'; const youtubeRegex = /((www|m)\.)?youtube(-nocookie)?\.com/; +const twitterRegex = /((www|mobile)\.)?twitter\.com/; const pathRegex = /^https?:\/\/[^\/]+([\S\s]*)/; let nitterInstance; @@ -12,7 +13,7 @@ let disableInvidious; chrome.storage.sync.get( ['disableNitter', 'disableInvidious', 'nitterInstance', 'invidiousInstance'], - (result) => { + result => { disableNitter = result.disableNitter; disableInvidious = result.disableInvidious; nitterInstance = result.nitterInstance || nitterDefault; @@ -20,7 +21,7 @@ chrome.storage.sync.get( } ); -chrome.storage.onChanged.addListener(function (changes) { +chrome.storage.onChanged.addListener(changes => { if ('nitterInstance' in changes) { nitterInstance = changes.nitterInstance.newValue || nitterDefault; } @@ -36,44 +37,30 @@ chrome.storage.onChanged.addListener(function (changes) { }); chrome.webRequest.onBeforeRequest.addListener( - function (details) { + details => { + let redirect; if (details.url.match(youtubeRegex)) { if (!disableInvidious) { - return { - redirectUrl: - invidiousInstance + details.url.match(pathRegex)[1] + redirect = { + redirectUrl: invidiousInstance + details.url.match(pathRegex)[1] }; } - } else { + } else if (details.url.match(twitterRegex)) { if (!disableNitter) { - return { - redirectUrl: - nitterInstance + details.url.match(pathRegex)[1] + redirect = { + redirectUrl: nitterInstance + details.url.match(pathRegex)[1] }; } } + if (redirect) { + console.log('Redirecting', `"${details.url}"`, '=>', `"${redirect.redirectUrl}"`); + console.log('Details', details); + } + return redirect; }, { - urls: [ - "*://twitter.com/*", - "*://www.twitter.com/*", - "*://mobile.twitter.com/*", - "*://youtube.com/*", - "*://www.youtube.com/*", - "*://youtube-nocookie.com/*", - "*://www.youtube-nocookie.com/*", - "*://m.youtube.com/" - ], - types: [ - "main_frame", - "sub_frame", - "stylesheet", - "script", - "image", - "object", - "xmlhttprequest", - "other" - ] + urls: [""], + types: ['main_frame', 'sub_frame',] }, - ["blocking"] + ['blocking'] ); diff --git a/manifest.json b/manifest.json index 629bfae..90c8691 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "name": "Privacy Redirect", "description": "Redirects Twitter & Youtube requests to privacy friendly alternatives (Nitter & Invidious).", - "version": "1.1.2", + "version": "1.1.3", "manifest_version": 2, "background": { "scripts": [ @@ -19,14 +19,7 @@ "storage", "webRequest", "webRequestBlocking", - "*://twitter.com/*", - "*://www.twitter.com/*", - "*://mobile.twitter.com/*", - "*://youtube.com/*", - "*://www.youtube.com/*", - "*://youtube-nocookie.com/*", - "*://www.youtube-nocookie.com/*", - "*://m.youtube.com/" + "" ], "browser_action": { "default_popup": "pages/popup/popup.html", diff --git a/pages/options/options.js b/pages/options/options.js index b5c097d..092a503 100644 --- a/pages/options/options.js +++ b/pages/options/options.js @@ -7,7 +7,7 @@ let invidiousInstance = document.querySelector('#invidiousInstance'); chrome.storage.sync.get( ['disableNitter', 'disableInvidious', 'nitterInstance', 'invidiousInstance'], - (result) => { + result => { disableNitter.checked = !result.disableNitter; disableInvidious.checked = !result.disableInvidious; nitterInstance.value = result.nitterInstance || ''; diff --git a/pages/popup/popup.html b/pages/popup/popup.html index 22ccb02..b5285de 100644 --- a/pages/popup/popup.html +++ b/pages/popup/popup.html @@ -14,7 +14,7 @@ Privacy Redirect logo - Version: 1.1.2 + Version: 1.1.3 diff --git a/pages/popup/popup.js b/pages/popup/popup.js index 799b5ea..cc1aa56 100644 --- a/pages/popup/popup.js +++ b/pages/popup/popup.js @@ -17,9 +17,9 @@ chrome.storage.sync.get( function debounce(func, wait, immediate) { let timeout; - return function () { + return () => { let context = this, args = arguments; - let later = function () { + let later = () => { timeout = null; if (!immediate) func.apply(context, args); };