From 42602cc2a43a2931a30755dcf778199c9aeb75f6 Mon Sep 17 00:00:00 2001 From: Isaac Shoebottom Date: Tue, 27 Sep 2022 18:40:42 -0300 Subject: [PATCH] Add manifest v2 extension --- .idea/SearchSwitch.iml | 2 ++ .idea/jsLibraryMappings.xml | 3 ++- v2/background.js | 53 +++++++++++++++++++++++++++++++++++++ v2/manifest.json | 15 +++++++++++ 4 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 v2/background.js create mode 100644 v2/manifest.json diff --git a/.idea/SearchSwitch.iml b/.idea/SearchSwitch.iml index b8f4056..5153ecf 100644 --- a/.idea/SearchSwitch.iml +++ b/.idea/SearchSwitch.iml @@ -9,5 +9,7 @@ + + \ No newline at end of file diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml index 1adbe87..d91be87 100644 --- a/.idea/jsLibraryMappings.xml +++ b/.idea/jsLibraryMappings.xml @@ -1,6 +1,7 @@ - + + \ No newline at end of file diff --git a/v2/background.js b/v2/background.js new file mode 100644 index 0000000..b3a15b1 --- /dev/null +++ b/v2/background.js @@ -0,0 +1,53 @@ +function switchSearch(tab) { + const bingSearch = "https://www.bing.com/search?q="; + const googleSearch = "https://www.google.com/search?q="; + + const bingImageSearch = "https://www.bing.com/images/search?q=" + const googleImageSearchSubstring = "&tbm=isch"; + const url = tab.url; + + let newURL; + let removeEngine; + let searchEnd; + let justSearch; + //Handle bing searches + if (url.substring(0, bingSearch.length) === bingSearch) { + removeEngine = url.slice(bingSearch.length); + searchEnd = removeEngine.indexOf('&'); + justSearch = removeEngine.substring(0, searchEnd); + + newURL = googleSearch + justSearch + '&'; + + } + //Handle Google image searches + else if (url.indexOf(googleImageSearchSubstring) > googleSearch.length) { + removeEngine = url.slice(googleSearch.length); + searchEnd = removeEngine.indexOf('&'); + justSearch = removeEngine.substring(0, searchEnd); + + newURL = bingImageSearch + justSearch + '&'; + } + //Handle Google searches + else if (url.substring(0, googleSearch.length) === googleSearch) { + removeEngine = url.slice(googleSearch.length); + searchEnd = removeEngine.indexOf('&'); + justSearch = removeEngine.substring(0, searchEnd); + + newURL = bingSearch + justSearch + '&'; + } + //Handle bing image searches + else if (url.substring(0, bingImageSearch.length) === bingImageSearch) { + removeEngine = url.slice(bingImageSearch.length) + searchEnd = removeEngine.indexOf('&'); + justSearch = removeEngine.substring(0, searchEnd); + + newURL = googleSearch + justSearch + googleImageSearchSubstring + '&'; + } + + return newURL; +} + +chrome.browserAction.onClicked.addListener((tab) => { + chrome.tabs.update({url: switchSearch(tab)}).then(r => console.log(r)) + } +) \ No newline at end of file diff --git a/v2/manifest.json b/v2/manifest.json new file mode 100644 index 0000000..9ac3986 --- /dev/null +++ b/v2/manifest.json @@ -0,0 +1,15 @@ +{ + "name": "SearchSwitcher", + "version": "0.0.2", + "description": "Search switcher", + "manifest_version": 2, + "author": "Isaac Shoebottom", + "browser_action": { + "default_title": "Switch Search" + }, + "permissions": ["activeTab", "scripting"], + "background": { + "scripts": ["background.js"], + "persistent": false + } +} \ No newline at end of file