From 2edc497f2a647a9270d9d724204841f94ebf47f8 Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Sun, 28 May 2023 11:04:33 +0300 Subject: [PATCH] Added Redirect as a shortcut --- src/assets/javascripts/services.js | 24 ++++++------------------ src/manifest.json | 8 +++++++- src/pages/background/background.js | 13 +++++++++++++ 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js index a0201023..4621e48b 100644 --- a/src/assets/javascripts/services.js +++ b/src/assets/javascripts/services.js @@ -497,26 +497,14 @@ function redirect(url, type, initiator, forceRedirection) { return `${randomInstance}${url.pathname}${url.search}` } case "wikiless": { - 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 = `${randomInstance}${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"]) + let hostSplit = url.host.split(".") + if (hostSplit[0] != "wikipedia" && hostSplit[0] != "www") { // wikiless doesn't have mobile view support yet + if (hostSplit[0] == "m") url.searchParams.append("mobileaction", "toggle_view_mobile") + else url.searchParams.append("lang", hostSplit[0]) + if (hostSplit[1] == "m") url.searchParams.append("mobileaction", "toggle_view_mobile") } - for (let i = 0; i < GETArguments.length; i++) link += (i == 0 ? "?" : "&") + GETArguments[i][0] + "=" + GETArguments[i][1] - return link + url.hash + return `${randomInstance}${url.pathname}${GETArguments.toString()}${url.hash}` } case "proxiTok": { if (url.pathname.startsWith('/email')) return diff --git a/src/manifest.json b/src/manifest.json index 5bb7c0c3..e2f79bd3 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -71,9 +71,15 @@ }, "reverse": { "suggested_key": { - "default": "Alt+Shift+R" + "default": "Alt+Shift+O" }, "description": "Redirect to the original link. Ex: Redirects to the original twitter link while in the nitter website" + }, + "redirect": { + "suggested_key": { + "default": "Alt+Shift+R" + }, + "description": "Redirect link. Ex: Redirects original twitter link to nitter" } }, "default_locale": "en", diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 467259cd..d7f96a34 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -97,6 +97,19 @@ browser.commands.onCommand.addListener(async command => { else if (command == "copyRaw") { servicesHelper.copyRaw(url) } + else if (command == "redirect") { + browser.tabs.query({ active: true, currentWindow: true }, async tabs => { + if (tabs[0].url) { + const url = new URL(tabs[0].url) + const newUrl = servicesHelper.redirect(url, "main_frame", null, true) + if (newUrl) { + browser.tabs.update(tabs[0].id, { url: newUrl }, () => { + tabIdRedirects[tabs[0].id] = true + }) + } + } + }) + } else if (command == "reverse") { browser.tabs.query({ active: true, currentWindow: true }, async tabs => { if (tabs[0].url) {