diff options
author | ManeraKai <manerakai@protonmail.com> | 2022-03-19 01:19:46 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2022-03-19 01:19:46 +0300 |
commit | d333b966021ec5b8c201884c78d1588fc0ebeec7 (patch) | |
tree | 7de85ab9d2ba1a7bb92e71ee9b34918e69e63040 /src | |
parent | Restricted auto redirection to only 503, 504. Added a 'Cancel Redirection' btn (diff) | |
download | libredirect-d333b966021ec5b8c201884c78d1588fc0ebeec7.zip |
Added buttons to the browser_action menu
Diffstat (limited to 'src')
-rw-r--r-- | src/assets/javascripts/helpers/.spotify.js | 4 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/imgur.js | 4 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/instagram.js | 4 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/lbry.js | 4 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/medium.js | 4 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/peertube.js | 4 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/reddit.js | 8 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/search.js | 4 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/sendTargets.js | 4 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/translate/translate.js | 4 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/twitter.js | 6 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/wikipedia.js | 4 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/youtube/youtube.js | 8 | ||||
-rw-r--r-- | src/manifest.json | 5 | ||||
-rw-r--r-- | src/pages/background/background.js | 74 | ||||
-rw-r--r-- | src/pages/popup/popup.js | 28 |
16 files changed, 97 insertions, 72 deletions
diff --git a/src/assets/javascripts/helpers/.spotify.js b/src/assets/javascripts/helpers/.spotify.js index 10fbdcb6..8319f9bc 100644 --- a/src/assets/javascripts/helpers/.spotify.js +++ b/src/assets/javascripts/helpers/.spotify.js @@ -90,7 +90,7 @@ function setProtocol(val) { console.log("spotifyTargetsProtocol: ", val) } -function changeInstance(url) { +function switchInstance(url) { let protocolHost = `${url.protocol}//${url.host}`; let sojuList = [ @@ -197,7 +197,7 @@ export default { getSojuNormalCustomRedirects, setSojuNormalCustomRedirects, - changeInstance, + switchInstance, redirect, init, diff --git a/src/assets/javascripts/helpers/imgur.js b/src/assets/javascripts/helpers/imgur.js index 73f62c5d..6018fc87 100644 --- a/src/assets/javascripts/helpers/imgur.js +++ b/src/assets/javascripts/helpers/imgur.js @@ -118,7 +118,7 @@ function redirect(url, type) { return `${randomInstance}${url.pathname}${url.search}`; } -function changeInstance(url) { +function switchInstance(url) { let protocolHost = `${url.protocol}//${url.host}`; let imgurList = [ @@ -207,5 +207,5 @@ export default { redirect, isImgur, init, - changeInstance, + switchInstance, }; diff --git a/src/assets/javascripts/helpers/instagram.js b/src/assets/javascripts/helpers/instagram.js index cad49d22..bae8147e 100644 --- a/src/assets/javascripts/helpers/instagram.js +++ b/src/assets/javascripts/helpers/instagram.js @@ -120,7 +120,7 @@ function redirect(url, type, initiator) { return `${randomInstance}/u${url.pathname}${url.search}`; // Likely a user profile, redirect to '/u/...' } -function changeInstance(url) { +function switchInstance(url) { let protocolHost = `${url.protocol}//${url.host}`; let instagramList = [ @@ -266,5 +266,5 @@ export default { redirect, init, - changeInstance, + switchInstance, }; diff --git a/src/assets/javascripts/helpers/lbry.js b/src/assets/javascripts/helpers/lbry.js index c1eb4600..56857f17 100644 --- a/src/assets/javascripts/helpers/lbry.js +++ b/src/assets/javascripts/helpers/lbry.js @@ -96,7 +96,7 @@ function setProtocol(val) { console.log("lbryTargetsProtocol: ", val) } -function changeInstance(url) { +function switchInstance(url) { let protocolHost = `${url.protocol}//${url.host}`; let librarianList = [ @@ -198,7 +198,7 @@ export default { getLibrarianNormalCustomRedirects, setLibrarianNormalCustomRedirects, - changeInstance, + switchInstance, redirect, init, diff --git a/src/assets/javascripts/helpers/medium.js b/src/assets/javascripts/helpers/medium.js index 4bd323c9..3d002445 100644 --- a/src/assets/javascripts/helpers/medium.js +++ b/src/assets/javascripts/helpers/medium.js @@ -134,7 +134,7 @@ function redirect(url, type, initiator) { return `${randomInstance}${url.pathname}${url.search}`; } -function changeInstance(url) { +function switchInstance(url) { let protocolHost = `${url.protocol}//${url.host}`; let mediumList = [ @@ -221,5 +221,5 @@ export default { redirect, init, - changeInstance, + switchInstance, }; diff --git a/src/assets/javascripts/helpers/peertube.js b/src/assets/javascripts/helpers/peertube.js index 8254a382..a68eddba 100644 --- a/src/assets/javascripts/helpers/peertube.js +++ b/src/assets/javascripts/helpers/peertube.js @@ -91,7 +91,7 @@ function setProtocol(val) { console.log("peertubeTargetsProtocol: ", val) } -function changeInstance(url) { +function switchInstance(url) { let protocolHost = `${url.protocol}//${url.host}`; let simpleertubeList = [ @@ -200,7 +200,7 @@ export default { getSimpleertubeNormalCustomRedirects, setSimpleertubeNormalCustomRedirects, - changeInstance, + switchInstance, redirect, init, diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js index 500a3925..9dd900ac 100644 --- a/src/assets/javascripts/helpers/reddit.js +++ b/src/assets/javascripts/helpers/reddit.js @@ -275,12 +275,12 @@ function redirect(url, type, initiator) { if ( alwaysUsePreferred && frontend == 'teddit' && (isTeddit || isLibreddit) && !isCheckedTeddit - ) return changeInstance(url); + ) return switchInstance(url); if ( alwaysUsePreferred && frontend == 'libreddit' && (isTeddit || isLibreddit) && !isCheckedLibreddit - ) return changeInstance(url); + ) return switchInstance(url); if (!targets.some((rx) => rx.test(url.href))) return null; @@ -364,7 +364,7 @@ function redirect(url, type, initiator) { } } -function changeInstance(url) { +function switchInstance(url) { let protocolHost = `${url.protocol}//${url.host}`; let isTeddit = [ @@ -523,5 +523,5 @@ export default { redirect, init, - changeInstance, + switchInstance, }; diff --git a/src/assets/javascripts/helpers/search.js b/src/assets/javascripts/helpers/search.js index 85865f67..f3ae49a0 100644 --- a/src/assets/javascripts/helpers/search.js +++ b/src/assets/javascripts/helpers/search.js @@ -269,7 +269,7 @@ function redirect(url) { return `${randomInstance}${path}${searchQuery}`; } -function changeInstance(url) { +function switchInstance(url) { let protocolHost = `${url.protocol}//${url.host}`; let searchList = [ @@ -409,5 +409,5 @@ export default { redirect, init, - changeInstance, + switchInstance, }; diff --git a/src/assets/javascripts/helpers/sendTargets.js b/src/assets/javascripts/helpers/sendTargets.js index d0691567..d33bccf2 100644 --- a/src/assets/javascripts/helpers/sendTargets.js +++ b/src/assets/javascripts/helpers/sendTargets.js @@ -106,7 +106,7 @@ function setProtocol(val) { console.log("sendTargetsProtocol: ", val) } -function changeInstance(url) { +function switchInstance(url) { let protocolHost = `${url.protocol}//${url.host}`; let sendList = [ @@ -210,7 +210,7 @@ export default { getSendNormalCustomRedirects, setSendNormalCustomRedirects, - changeInstance, + switchInstance, redirect, init, diff --git a/src/assets/javascripts/helpers/translate/translate.js b/src/assets/javascripts/helpers/translate/translate.js index 05145542..24339ed7 100644 --- a/src/assets/javascripts/helpers/translate/translate.js +++ b/src/assets/javascripts/helpers/translate/translate.js @@ -270,7 +270,7 @@ function redirect(url) { } } -function changeInstance(url) { +function switchInstance(url) { let protocolHost = `${url.protocol}//${url.host}`; let translateList = [ @@ -413,5 +413,5 @@ export default { redirect, init, - changeInstance, + switchInstance, }; diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js index 6a283869..8152adf8 100644 --- a/src/assets/javascripts/helpers/twitter.js +++ b/src/assets/javascripts/helpers/twitter.js @@ -116,7 +116,7 @@ function redirect(url, initiator) { ...nitterTorCustomRedirects ].includes(protocolHost); - if (alwaysUsePreferred && isNitter && !isCheckedNitter) return changeInstance(url); + if (alwaysUsePreferred && isNitter && !isCheckedNitter) return switchInstance(url); if (disable) return null; @@ -158,7 +158,7 @@ function redirect(url, initiator) { return `${randomInstance}${url.pathname}${url.search}`; } -function changeInstance(url) { +function switchInstance(url) { let protocolHost = `${url.protocol}//${url.host}`; let twitterList = [ @@ -307,5 +307,5 @@ export default { redirect, init, - changeInstance, + switchInstance, }; diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js index 4294683b..21263e33 100644 --- a/src/assets/javascripts/helpers/wikipedia.js +++ b/src/assets/javascripts/helpers/wikipedia.js @@ -156,7 +156,7 @@ function redirect(url) { } -function changeInstance(url) { +function switchInstance(url) { let protocolHost = `${url.protocol}//${url.host}`; let wikipediaList = [ @@ -250,5 +250,5 @@ export default { redirect, init, - changeInstance, + switchInstance, }; diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js index acdb8eb4..ae57f4f6 100644 --- a/src/assets/javascripts/helpers/youtube/youtube.js +++ b/src/assets/javascripts/helpers/youtube/youtube.js @@ -347,12 +347,12 @@ function redirect(url, details, initiator) { if ( alwaysUsePreferred && frontend == 'invidious' && (isInvidious || isPiped) && !isCheckedInvidious - ) return changeInstance(url); + ) return switchInstance(url); if ( alwaysUsePreferred && frontend == 'piped' && (isInvidious || isPiped) && !isCheckedPiped - ) return changeInstance(url); + ) return switchInstance(url); if (!targets.some((rx) => rx.test(url.href))) return null; @@ -447,7 +447,7 @@ function redirect(url, details, initiator) { return 'CANCEL'; } -function changeInstance(url) { +function switchInstance(url) { let protocolHost = `${url.protocol}//${url.host}`; if ( protocol == 'normal' && @@ -730,7 +730,7 @@ export default { setPipedRedirects, redirect, - changeInstance, + switchInstance, isPipedorInvidious, diff --git a/src/manifest.json b/src/manifest.json index 54068ee5..e2d05518 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -18,6 +18,7 @@ "webRequestBlocking", "storage", "cookies", + "menus", "<all_urls>" ], "browser_action": { @@ -47,11 +48,11 @@ } }, "commands": { - "changeInstance": { + "switchInstance": { "suggested_key": { "default": "Alt+Shift+L" }, - "description": "Change Instance" + "description": "Switch Instance" } } } \ No newline at end of file diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 4a48a15f..867f3271 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -137,28 +137,28 @@ browser.webRequest.onResponseStarted.addListener( const url = new URL(details.url); let newUrl; - newUrl = youtubeHelper.changeInstance(url); - if (!newUrl) newUrl = twitterHelper.changeInstance(url); + newUrl = youtubeHelper.switchInstance(url); + if (!newUrl) newUrl = twitterHelper.switchInstance(url); - if (!newUrl) newUrl = instagramHelper.changeInstance(url); + if (!newUrl) newUrl = instagramHelper.switchInstance(url); - if (!newUrl) newUrl = redditHelper.changeInstance(url); + if (!newUrl) newUrl = redditHelper.switchInstance(url); - if (!newUrl) newUrl = searchHelper.changeInstance(url); + if (!newUrl) newUrl = searchHelper.switchInstance(url); - if (!newUrl) newUrl = translateHelper.changeInstance(url); + if (!newUrl) newUrl = translateHelper.switchInstance(url); - if (!newUrl) newUrl = mediumHelper.changeInstance(url); + if (!newUrl) newUrl = mediumHelper.switchInstance(url); - if (!newUrl) newUrl = imgurHelper.changeInstance(url); + if (!newUrl) newUrl = imgurHelper.switchInstance(url); - if (!newUrl) newUrl = wikipediaHelper.changeInstance(url); + if (!newUrl) newUrl = wikipediaHelper.switchInstance(url); - if (!newUrl) newUrl = peertubeHelper.changeInstance(url); + if (!newUrl) newUrl = peertubeHelper.switchInstance(url); - if (!newUrl) newUrl = lbryHelper.changeInstance(url); + if (!newUrl) newUrl = lbryHelper.switchInstance(url); - // if (!newUrl) newUrl = spotifyHelper.changeInstance(url); + // if (!newUrl) newUrl = spotifyHelper.switchInstance(url); if (newUrl) browser.tabs.update(details.tabId, { url: `/pages/errors/instance_offline.html?url=${encodeURIComponent(newUrl)}` }); @@ -181,34 +181,34 @@ browser.tabs.onUpdated.addListener( }); function changeWholeInstance(url) { - let newUrl = youtubeHelper.changeInstance(url); + let newUrl = youtubeHelper.switchInstance(url); - if (!newUrl) newUrl = twitterHelper.changeInstance(url); + if (!newUrl) newUrl = twitterHelper.switchInstance(url); - if (!newUrl) newUrl = instagramHelper.changeInstance(url); + if (!newUrl) newUrl = instagramHelper.switchInstance(url); - if (!newUrl) newUrl = redditHelper.changeInstance(url); + if (!newUrl) newUrl = redditHelper.switchInstance(url); - if (!newUrl) newUrl = searchHelper.changeInstance(url); + if (!newUrl) newUrl = searchHelper.switchInstance(url); - if (!newUrl) newUrl = translateHelper.changeInstance(url); + if (!newUrl) newUrl = translateHelper.switchInstance(url); - if (!newUrl) newUrl = mediumHelper.changeInstance(url); + if (!newUrl) newUrl = mediumHelper.switchInstance(url); - if (!newUrl) newUrl = sendTargetsHelper.changeInstance(url); + if (!newUrl) newUrl = sendTargetsHelper.switchInstance(url); - if (!newUrl) newUrl = peertubeHelper.changeInstance(url); + if (!newUrl) newUrl = peertubeHelper.switchInstance(url); - if (!newUrl) newUrl = imgurHelper.changeInstance(url); + if (!newUrl) newUrl = imgurHelper.switchInstance(url); - if (!newUrl) newUrl = wikipediaHelper.changeInstance(url); + if (!newUrl) newUrl = wikipediaHelper.switchInstance(url); return newUrl; } browser.commands.onCommand.addListener( command => { - if (command === 'changeInstance') + if (command === 'switchInstance') chrome.tabs.query( { active: true, currentWindow: true }, tabs => { @@ -220,4 +220,28 @@ browser.commands.onCommand.addListener( } ); } -) \ No newline at end of file +) + +browser.menus.create({ + id: "settings", + title: "Settings", + contexts: ["browser_action"] +}); + +browser.menus.create({ + id: "switchInstance", + title: "Switch Instance", + contexts: ["browser_action"] +}); + +browser.menus.onClicked.addListener((info, tab) => { + if (info.menuItemId == 'switchInstance') { + let url; + try { url = new URL(tab.url); } + catch (_) { return } + let newUrl = changeWholeInstance(url); + if (newUrl) browser.tabs.update({ url: newUrl }); + } + else if (info.menuItemId == 'settings') + browser.runtime.openOptionsPage() +}); \ No newline at end of file diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js index 4d7d302d..6c9b942c 100644 --- a/src/pages/popup/popup.js +++ b/src/pages/popup/popup.js @@ -78,7 +78,7 @@ wholeInit().then(() => { disableLbryElement.checked = !lbryHelper.getDisable(); let changeInstanceElement = document.getElementById("change-instance") - changeInstanceElement.addEventListener("click", changeInstance); + changeInstanceElement.addEventListener("click", switchInstance); }) disableTwitterElement.addEventListener("change", @@ -154,7 +154,7 @@ document.getElementById("more-options").addEventListener("click", ); -function changeInstance() { +function switchInstance() { browser.tabs.query({ active: true, currentWindow: true }, function (tabs) { let currTab = tabs[0]; if (currTab) { @@ -164,29 +164,29 @@ function changeInstance() { catch (_) { return false; } let newUrl; - newUrl = youtubeHelper.changeInstance(tabUrl); + newUrl = youtubeHelper.switchInstance(tabUrl); - if (!newUrl) newUrl = twitterHelper.changeInstance(tabUrl); + if (!newUrl) newUrl = twitterHelper.switchInstance(tabUrl); - if (!newUrl) newUrl = instagramHelper.changeInstance(tabUrl); + if (!newUrl) newUrl = instagramHelper.switchInstance(tabUrl); - if (!newUrl) newUrl = redditHelper.changeInstance(tabUrl); + if (!newUrl) newUrl = redditHelper.switchInstance(tabUrl); - if (!newUrl) newUrl = searchHelper.changeInstance(tabUrl); + if (!newUrl) newUrl = searchHelper.switchInstance(tabUrl); - if (!newUrl) newUrl = translateHelper.changeInstance(tabUrl); + if (!newUrl) newUrl = translateHelper.switchInstance(tabUrl); - if (!newUrl) newUrl = mediumHelper.changeInstance(tabUrl); + if (!newUrl) newUrl = mediumHelper.switchInstance(tabUrl); - if (!newUrl) newUrl = sendTargetsHelper.changeInstance(tabUrl); + if (!newUrl) newUrl = sendTargetsHelper.switchInstance(tabUrl); - if (!newUrl) newUrl = peertubeHelper.changeInstance(tabUrl); + if (!newUrl) newUrl = peertubeHelper.switchInstance(tabUrl); - if (!newUrl) newUrl = lbryHelper.changeInstance(tabUrl); + if (!newUrl) newUrl = lbryHelper.switchInstance(tabUrl); - if (!newUrl) newUrl = imgurHelper.changeInstance(tabUrl); + if (!newUrl) newUrl = imgurHelper.switchInstance(tabUrl); - if (!newUrl) newUrl = wikipediaHelper.changeInstance(tabUrl); + if (!newUrl) newUrl = wikipediaHelper.switchInstance(tabUrl); if (newUrl) { browser.tabs.update({ url: newUrl }); |