diff options
author | Hygna <hygna@proton.me> | 2022-09-07 18:05:18 +0100 |
---|---|---|
committer | Hygna <hygna@proton.me> | 2022-09-07 18:05:18 +0100 |
commit | da446a981bd4d29bdb47b4fbf58a8c561d05f578 (patch) | |
tree | 4685b27649c0b45164ed8ce0be9f339ca9ed2645 | |
parent | Finish initial config.json draft (diff) | |
download | libredirect-da446a981bd4d29bdb47b4fbf58a8c561d05f578.zip |
Started work on services.js
-rw-r--r-- | src/assets/javascripts/services.js | 105 | ||||
-rw-r--r-- | src/config/config.json | 874 | ||||
-rw-r--r-- | src/pages/background/background.js | 5 |
3 files changed, 547 insertions, 437 deletions
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js new file mode 100644 index 00000000..cf193e30 --- /dev/null +++ b/src/assets/javascripts/services.js @@ -0,0 +1,105 @@ +window.browser = window.browser || window.chrome + +import utils from "./utils.js" + +let config + +function getConfig() { + return new Promise(async resolve => { + fetch("/config/config.json") + .then(response => response.text()) + .then(data => { + config = JSON.parse(data) + }) + resolve() + }) +} + +let redirects = {} +let disabled, curNetwork, networkFallback, redirectType + +function init() { + return new Promise(async resolve => { + browser.storage.local.get(["network", "networkFallback"], r => { + curNetwork = r.network + networkFallback = r.networkFallback + }) + //cur = current + getConfig() + for (service in config.services) { + redirects = {} + browser.storage.local.get([`disable${camelCase(service)}`, `${service}Redirects`, `${service}RedirectType,`, `${service}Frontend`], r => { + disabled = r["disable" + camelCase(service)] + redirects = r[service + "Redirects"] + frontend = r[service + "Frontend"] + }) + for (frontend in config[service].frontends) { + redirects[frontend] = {} + for (network in config.networks) { + browser.storage.local.get([`${frontend}${camelCase(network)}RedirectsChecks`, `${frontend}${camelCase(network)}CustomRedirects`], r => { + redirects[frontend][network] = [...r[frontend + camelCase(network) + "RedirectsChecks"], ...r[frontend + camelCase(network) + "CustomRedirects"]] + }) + } + } + } + resolve() + }) +} + +init() +browser.storage.onChanged.addListener(init) + +function redirect(url, type, initiator) { + if (url.pathname == "/") return + for (curService in config.services) { + if (disabled && !disableOverride) continue + if (initiator && (all().includes(initiator.origin) || targets.includes(initiator.host))) continue + //if (!targets.some(rx => rx.test(url.href))) continue + if (!target.test(url)) continue + if (type != redirectType && type != "both") continue + let instanceList = redirects[frontend][curNetwork] + if (instanceList.length === 0 && networkFallback) instanceList = redirects[frontend].clearnet + if (instanceList.length === 0) return + const randomInstance = utils.getRandomInstance(instanceList) + return `${randomInstance}${url.pathname}${url.search}` + } +} + +function initDefaults() { + return new Promise(resolve => { + fetch("/instances/data.json") + .then(response => response.text()) + .then(data => { + let dataJson = JSON.parse(data) + redirects = dataJson + browser.storage.local.get(["cloudflareBlackList", "authenticateBlackList", "offlineBlackList"], async r => { + for (service in config.services) { + for (frontend in service.frontends) { + for (const instance of [...r.cloudflareBlackList, ...r.authenticateBlackList, ...r.offlineBlackList]) { + let i = redirects[frontend]["clearnet"].indexOf(instance) + if (i > -1) redirects[frontend]["clearnet"].splice(i, 1) + } + browser.storage.local.set({ + ["disable" + camelCase(service)]: false, + [service + "Redirects"]: redirects, + [service + "RedirectType"]: "both", + }) + for (frontend in service.frontends) { + for (protocol in config.protocols) { + browser.storage.local.set({ + [frontend + camelCase(protocol) + "RedirectsChecks"]: [...redirects[frontend][protocol]], + [frontend + camelCase(protocol) + "CustomRedirects"]: [], + }) + } + } + ;() => resolve() + } + } + }) + }) + }) +} + +export default { + redirect, +} diff --git a/src/config/config.json b/src/config/config.json index 9051d118..db991772 100644 --- a/src/config/config.json +++ b/src/config/config.json @@ -1,437 +1,437 @@ -{ - "networks": { - "clearnet": { - "url": "org", - "name": "Clearnet" - }, - "tor": { - "url": "onion", - "name": "Tor" - }, - "i2p": { - "url": "i2p", - "name": "I2P" - }, - "loki": { - "url": "loki", - "name": "Lokinet" - } - }, - "services": { - "youtube": { - "frontends": { - "invidious": { - "preferences": { - "cookies": ["PREFS"] - } - }, - "piped": { - "preferences": { - "localstorage": [ - "bufferGoal", - "comments", - "disableLBRY", - "enabledCodecs", - "hl", - "homepage", - "instance", - "listen", - "minimizeDescription", - "playerAutoPlay", - "proxyLBRY", - "quality", - "region", - "selectedSkip", - "sponsorblock", - "theme", - "volume", - "watchHistory" - ] - } - }, - "pipedMaterial": { - "preferences": { - "localstorage": ["PREFERENCES"] - } - }, - "cloudtube": { - "preferences": { - "token": "token", - "fetchEndpoint": "/api/settings", - "setEndpoint": "/settings" - } - } - }, - "singleInstanceFrontends": ["freetube", "yatte"], - "targets": [ - "^https?:\\/{2}(www\\.|music\\.|m\\.|)youtube.com(\\/.*|$)", - "^https?:\\/{2}img\\.youtube.com\\/vi\\/.*\\/..*", - "^https?:\\/{2}(i|s)\\.ytimg.com\\/vi\\/.*\\/..*", - "^https?:\\/{2}(www\\.|music\\.|)youtube.com\\/watch?v=..*", - "^https?:\\/{2}youtu\\.be\\/..*", - "^https?:\\/{2}(www\\.|)(youtube|youtube-nocookie)\\.com\\/embed\\/..*" - ], - "name": "Youtube", - "defaults": { - "disableYoutube": false, - "enableYoutubeCustomSettings": false, - "onlyEmbeddedVideo": "both", - "youtubeFrontend": "invidious", - "youtubeEmbedFrontend": "invidious" - }, - "imageType": "png" - }, - "youtubeMusic": { - "frontends": { - "beatbump": {}, - "hyperpipe": {} - }, - "targets": ["^https?:\\/{2}music\\.youtube\\.com(\\/.*|$)"], - "name": "YT Music", - "defaults": { - "disableYoutubeMusic": false, - "youtubeMusicFrontend": "beatbump" - }, - "imageType": "png" - }, - "twitter": { - "frontends": { - "nitter": { - "preferences": { - "cookies": [ - "theme", - "infiniteScroll", - "stickyProfile", - "bidiSupport", - "hideTweetStats", - "hideBanner", - "hidePins", - "hideReplies", - "squareAvatars", - "mp4Playback", - "hlsPlayback", - "proxyVideos", - "muteVideos", - "autoplayGifs", - "replaceInstagram", - "replaceReddit", - "replaceTwitter", - "replaceYouTube" - ] - } - } - }, - "targets": ["^https?:\\/{2}(www\\.|mobile\\.|)twitter\\.com", "^https?:\\/{2}(pbs\\.|video\\.|)twimg\\.com", "^https?:\\/{2}platform\\.twitter\\.com/embed", "^https?:\\/{2}t\\.co"], - "name": "Twitter", - "defaults": { - "disableTwitter": false, - "twitterRedirectType": "both" - }, - "imageType": "png" - }, - "instagram": { - "frontends": { - "bibliogram": { - "preferences": { - "token": "token", - "fetchEndpoint": "/settings.json", - "setEndpoint": "/applysettings" - } - } - }, - "targets": ["^https?:\\/{2}(www\\.)?instagram\\.com"], - "name": "Instagram", - "defaults": { - "disableInstagram": false - }, - "imageType": "png" - }, - "tiktok": { - "frontends": { - "proxiTok": {} - }, - "targets": ["^https?:\\/{2}(www\\.|)tiktok\\.com.*"], - "name": "TikTok", - "defaults": { - "disableTiktok": false - }, - "imageType": "png" - }, - "reddit": { - "frontends": { - "libreddit": { - "preferences": { - "cookies": ["theme", "front_page", "layout", "wide", "post_sort", "comment_sort", "show_nsfw", "autoplay_videos", "use_hls", "hide_hls_notification", "subscriptions", "filters"] - } - }, - "teddit": { - "preferences": { - "cookies": [ - "collapse_child_comments", - "domain_instagram", - "domain_twitter", - "domain_youtube", - "flairs", - "highlight_controversial", - "nsfw_enabled", - "post_media_max_height", - "show_upvoted_percentage", - "show_upvotes", - "theme", - "videos_muted" - ] - } - } - }, - "targets": ["^https?:\\/{2}(www\\.|old\\.|np\\.|new\\.|amp\\.|)reddit\\.com", "^https?:\\/{2}(i\\.|preview\\.)redd\\.it"], - "name": "Reddit", - "defaults": { - "disableReddit": false, - "redditFrontend": "libreddit" - }, - "imageType": "png" - }, - "imgur": { - "frontends": { - "rimgo": { - "preferences": {} - } - }, - "targets": ["^https?:\\/{2}([im]\\.)?imgur\\.(com|io)(\\/|$)"], - "name": "Imgur", - "defaults": { "disableImgur": false }, - "imageType": "png" - }, - "wikipedia": { - "frontends": { - "wikiless": { - "preferences": { - "cookies": ["theme", "default_lang"] - } - } - }, - "targets": ["^https?:\\/{2}([a-z]+\\.)*wikipedia\\.org"], - "name": "Wikipedia", - "defaults": { "disableWikipedia": true }, - "imageType": "svg" - }, - "medium": { - "frontends": { - "scribe": { - "preferences": {} - } - }, - "targets": [ - "(?:.*\\.)*(?<!(link\\.|cdn\\-images\\-\\d+\\.))medium\\.com(\\/.*)?$", - "^towardsdatascience\\.com", - "^uxdesign\\.cc", - "^uxplanet\\.org", - "^betterprogramming\\.pub", - "^aninjusticemag\\.com", - "^betterhumans\\.pub", - "^psiloveyou\\.xyz", - "^entrepreneurshandbook\\.co", - "^blog\\.coinbase\\.com", - "^levelup\\.gitconnected\\.com ", - "^javascript\\.plainenglish\\.io ", - "^blog\\.bitsrc\\.io ", - "^itnext\\.io ", - "^codeburst\\.io ", - "^infosecwriteups\\.com ", - "^blog\\.devgenius\\.io ", - "^writingcooperative\\.com " - ], - "name": "Medium", - "defaults": { "disableMedium": false }, - "imageType": "svg" - }, - "quora": { - "frontends": { - "quetre": { - "preferences": {} - } - }, - "targets": ["^https?:\\/{2}(www\\.|)quora\\.com.*"], - "name": "Quora", - "defaults": { - "disableQuora": false - }, - "imageType": "png" - }, - "imdb": { - "frontends": { - "libremdb": { - "preferences": {} - } - }, - "targets": ["^https?:\\/{2}(?:www\\.|)imdb\\.com.*"], - "name": "IMDb", - "defaults": { - "disableImdb": true - }, - "imageType": "svg" - }, - "reuters": { - "frontends": { - "neuters": { - "preferences": {} - } - }, - "targets": ["^https?:\\/{2}(www\\.|)reuters\\.com.*"], - "name": "Reuters", - "defaults": { - "disableReuters": true - }, - "imageType": "svg" - }, - "peertube": { - "frontends": { - "simpleertube": { - "preferences": {} - } - }, - "targets": "datajson", - "name": "PeerTube", - "defaults": { - "disablePeertubeTargets": true - }, - "imageType": "svg" - }, - "lbry": { - "frontends": { - "librarian": { - "preferences": { - "cookies": ["nsfw", "theme"], - "localstorage": ["autoplay", "autoplayNextVid", "collapseComments", "plyr", "sb_categories", "showRelated"] - } - } - }, - "singleInstanceFrontends": ["lbryDesktop"], - "targets": ["^https?:\\/{2}odysee\\.com", "^https?:\\/{2}lbry\\.tv"], - "name": "LBRY", - "defaults": { - "disableLbryTargets": true, - "lbryFrontend": "librarian", - "lbryRedirectType": "both" - }, - "imageType": "png" - }, - "search": { - "frontends": { - "searx": { - "preferences": { - "cookies": [ - "advanced_search", - "autocomplete", - "categories", - "disabled_engines", - "disabled_plugins", - "doi_resolver", - "enabled_engines", - "enabled_plugins", - "image_proxy", - "language", - "locale", - "method", - "oscar-style", - "results_on_new_tab", - "safesearch", - "theme", - "tokens" - ] - } - }, - "searxng": { - "preferences": { - "cookies": [ - "autocomplete", - "categories", - "disabled_engines", - "disabled_plugins", - "doi_resolver", - "enabled_plugins", - "enabled_engines", - "image_proxy", - "infinite_scroll", - "language", - "locale", - "maintab", - "method", - "query_in_title", - "results_on_new_tab", - "safesearch", - "simple_style", - "theme", - "tokens" - ] - } - }, - "whoogle": { - "preferences": {} - }, - "librex": { - "preferences": { - "cookies": ["bibliogram", "disable_special", "invidious", "libreddit", "nitter", "proxitok", "theme", "wikiless"] - } - } - }, - "targets": ["^https?:\\/{2}search\\.libredirect\\.invalid"], - "name": "Search", - "defaults": { - "disableSearch": false, - "searchFrontend": "searxng", - "searxngCustomSettings": false - }, - "imageType": "svg" - }, - "translate": { - "frontends": { - "simplyTranslate": { - "preferences": { - "cookies": ["from_lang", "to_lang", "tts_enabled", "use_text_fields"] - } - }, - "lingva": { - "preferences": { - "localstorage": ["isauto", "source", "target"] - } - } - }, - "targets": ["^https?:\\/{2}translate\\.google(\\.[a-z]{2,3}){1,2}\\/"], - "name": "Translate", - "defaults": { - "translateDisable": false, - "translateFrontend": "simplyTranslate" - }, - "imageType": "svg" - }, - "maps": { - "frontends": { - "facil": { - "preferences": {} - } - }, - "singleInstanceFrontends": ["osm"], - "targets": ["^https?:\\/{2}(((www|maps)\\.)?(google\\.).*(\\/maps)|maps\\.(google\\.).*)"], - "name": "Maps", - "defaults": { - "disableMaps": false, - "mapsFrontend": "osm" - }, - "imageType": "svg" - }, - "sendTargets": { - "frontends": { - "send": { - "preferences": {} - } - }, - "targets": ["^https?:\\/{2}send\\.libredirect\\.invalid\\/$", "^https?:\\/{2}send\\.firefox\\.com\\/$", "^https?:\\/{2}sendfiles\\.online\\/$"], - "name": "Send Files", - "defaults": { - "disableSendTarget": false - }, - "imageType": "svg" - } - } -} +{ + "networks": { + "clearnet": { + "url": "org", + "name": "Clearnet" + }, + "tor": { + "url": "onion", + "name": "Tor" + }, + "i2p": { + "url": "i2p", + "name": "I2P" + }, + "loki": { + "url": "loki", + "name": "Lokinet" + } + }, + "services": { + "youtube": { + "frontends": { + "invidious": { + "preferences": { + "cookies": ["PREFS"] + } + }, + "piped": { + "preferences": { + "localstorage": [ + "bufferGoal", + "comments", + "disableLBRY", + "enabledCodecs", + "hl", + "homepage", + "instance", + "listen", + "minimizeDescription", + "playerAutoPlay", + "proxyLBRY", + "quality", + "region", + "selectedSkip", + "sponsorblock", + "theme", + "volume", + "watchHistory" + ] + } + }, + "pipedMaterial": { + "preferences": { + "localstorage": ["PREFERENCES"] + } + }, + "cloudtube": { + "preferences": { + "token": "token", + "fetchEndpoint": "/api/settings", + "setEndpoint": "/settings" + } + } + }, + "singleInstanceFrontends": ["freetube", "yatte"], + "targets": [ + "^https?:\\/{2}(www\\.|music\\.|m\\.|)youtube.com(\\/.*|$)", + "^https?:\\/{2}img\\.youtube.com\\/vi\\/.*\\/..*", + "^https?:\\/{2}(i|s)\\.ytimg.com\\/vi\\/.*\\/..*", + "^https?:\\/{2}(www\\.|music\\.|)youtube.com\\/watch?v=..*", + "^https?:\\/{2}youtu\\.be\\/..*", + "^https?:\\/{2}(www\\.|)(youtube|youtube-nocookie)\\.com\\/embed\\/..*" + ], + "name": "Youtube", + "defaults": { + "disableYoutube": false, + "enableYoutubeCustomSettings": false, + "onlyEmbeddedVideo": "both", + "youtubeFrontend": "invidious", + "youtubeEmbedFrontend": "invidious" + }, + "imageType": "png" + }, + "youtubeMusic": { + "frontends": { + "beatbump": {}, + "hyperpipe": {} + }, + "targets": ["^https?:\\/{2}music\\.youtube\\.com(\\/.*|$)"], + "name": "YT Music", + "defaults": { + "disableYoutubeMusic": false, + "youtubeMusicFrontend": "beatbump" + }, + "imageType": "png" + }, + "twitter": { + "frontends": { + "nitter": { + "preferences": { + "cookies": [ + "theme", + "infiniteScroll", + "stickyProfile", + "bidiSupport", + "hideTweetStats", + "hideBanner", + "hidePins", + "hideReplies", + "squareAvatars", + "mp4Playback", + "hlsPlayback", + "proxyVideos", + "muteVideos", + "autoplayGifs", + "replaceInstagram", + "replaceReddit", + "replaceTwitter", + "replaceYouTube" + ] + } + } + }, + "targets": ["^https?:\\/{2}(www\\.|mobile\\.|)twitter\\.com", "^https?:\\/{2}(pbs\\.|video\\.|)twimg\\.com", "^https?:\\/{2}platform\\.twitter\\.com/embed", "^https?:\\/{2}t\\.co"], + "name": "Twitter", + "defaults": { + "disableTwitter": false, + "twitterRedirectType": "both" + }, + "imageType": "png" + }, + "instagram": { + "frontends": { + "bibliogram": { + "preferences": { + "token": "token", + "fetchEndpoint": "/settings.json", + "setEndpoint": "/applysettings" + } + } + }, + "targets": ["^https?:\\/{2}(www\\.)?instagram\\.com"], + "name": "Instagram", + "defaults": { + "disableInstagram": false + }, + "imageType": "png" + }, + "tiktok": { + "frontends": { + "proxiTok": {} + }, + "targets": ["^https?:\\/{2}(www\\.|)tiktok\\.com.*"], + "name": "TikTok", + "defaults": { + "disableTiktok": false + }, + "imageType": "png" + }, + "reddit": { + "frontends": { + "libreddit": { + "preferences": { + "cookies": ["theme", "front_page", "layout", "wide", "post_sort", "comment_sort", "show_nsfw", "autoplay_videos", "use_hls", "hide_hls_notification", "subscriptions", "filters"] + } + }, + "teddit": { + "preferences": { + "cookies": [ + "collapse_child_comments", + "domain_instagram", + "domain_twitter", + "domain_youtube", + "flairs", + "highlight_controversial", + "nsfw_enabled", + "post_media_max_height", + "show_upvoted_percentage", + "show_upvotes", + "theme", + "videos_muted" + ] + } + } + }, + "targets": ["^https?:\\/{2}(www\\.|old\\.|np\\.|new\\.|amp\\.|)reddit\\.com", "^https?:\\/{2}(i\\.|preview\\.)redd\\.it"], + "name": "Reddit", + "defaults": { + "disableReddit": false, + "redditFrontend": "libreddit" + }, + "imageType": "png" + }, + "imgur": { + "frontends": { + "rimgo": { + "preferences": {} + } + }, + "targets": ["^https?:\\/{2}([im]\\.)?imgur\\.(com|io)(\\/|$)"], + "name": "Imgur", + "defaults": { "disableImgur": false }, + "imageType": "png" + }, + "wikipedia": { + "frontends": { + "wikiless": { + "preferences": { + "cookies": ["theme", "default_lang"] + } + } + }, + "targets": ["^https?:\\/{2}([a-z]+\\.)*wikipedia\\.org"], + "name": "Wikipedia", + "defaults": { "disableWikipedia": true }, + "imageType": "svg" + }, + "medium": { + "frontends": { + "scribe": { + "preferences": {} + } + }, + "targets": [ + "(?:.*\\.)*(?<!(link\\.|cdn\\-images\\-\\d+\\.))medium\\.com(\\/.*)?$", + "^towardsdatascience\\.com", + "^uxdesign\\.cc", + "^uxplanet\\.org", + "^betterprogramming\\.pub", + "^aninjusticemag\\.com", + "^betterhumans\\.pub", + "^psiloveyou\\.xyz", + "^entrepreneurshandbook\\.co", + "^blog\\.coinbase\\.com", + "^levelup\\.gitconnected\\.com ", + "^javascript\\.plainenglish\\.io ", + "^blog\\.bitsrc\\.io ", + "^itnext\\.io ", + "^codeburst\\.io ", + "^infosecwriteups\\.com ", + "^blog\\.devgenius\\.io ", + "^writingcooperative\\.com " + ], + "name": "Medium", + "defaults": { "disableMedium": false }, + "imageType": "svg" + }, + "quora": { + "frontends": { + "quetre": { + "preferences": {} + } + }, + "targets": ["^https?:\\/{2}([a-z]+\\.)*quora\\.com.*"], + "name": "Quora", + "defaults": { + "disableQuora": false + }, + "imageType": "png" + }, + "imdb": { + "frontends": { + "libremdb": { + "preferences": {} + } + }, + "targets": ["^https?:\\/{2}(?:www\\.|)imdb\\.com.*"], + "name": "IMDb", + "defaults": { + "disableImdb": true + }, + "imageType": "svg" + }, + "reuters": { + "frontends": { + "neuters": { + "preferences": {} + } + }, + "targets": ["^https?:\\/{2}(www\\.|)reuters\\.com.*"], + "name": "Reuters", + "defaults": { + "disableReuters": true + }, + "imageType": "svg" + }, + "peertube": { + "frontends": { + "simpleertube": { + "preferences": {} + } + }, + "targets": "datajson", + "name": "PeerTube", + "defaults": { + "disablePeertubeTargets": true + }, + "imageType": "svg" + }, + "lbry": { + "frontends": { + "librarian": { + "preferences": { + "cookies": ["nsfw", "theme"], + "localstorage": ["autoplay", "autoplayNextVid", "collapseComments", "plyr", "sb_categories", "showRelated"] + } + } + }, + "singleInstanceFrontends": ["lbryDesktop"], + "targets": ["^https?:\\/{2}odysee\\.com", "^https?:\\/{2}lbry\\.tv"], + "name": "LBRY", + "defaults": { + "disableLbryTargets": true, + "lbryFrontend": "librarian", + "lbryRedirectType": "both" + }, + "imageType": "png" + }, + "search": { + "frontends": { + "searx": { + "preferences": { + "cookies": [ + "advanced_search", + "autocomplete", + "categories", + "disabled_engines", + "disabled_plugins", + "doi_resolver", + "enabled_engines", + "enabled_plugins", + "image_proxy", + "language", + "locale", + "method", + "oscar-style", + "results_on_new_tab", + "safesearch", + "theme", + "tokens" + ] + } + }, + "searxng": { + "preferences": { + "cookies": [ + "autocomplete", + "categories", + "disabled_engines", + "disabled_plugins", + "doi_resolver", + "enabled_plugins", + "enabled_engines", + "image_proxy", + "infinite_scroll", + "language", + "locale", + "maintab", + "method", + "query_in_title", + "results_on_new_tab", + "safesearch", + "simple_style", + "theme", + "tokens" + ] + } + }, + "whoogle": { + "preferences": {} + }, + "librex": { + "preferences": { + "cookies": ["bibliogram", "disable_special", "invidious", "libreddit", "nitter", "proxitok", "theme", "wikiless"] + } + } + }, + "targets": ["^https?:\\/{2}search\\.libredirect\\.invalid"], + "name": "Search", + "defaults": { + "disableSearch": false, + "searchFrontend": "searxng", + "searxngCustomSettings": false + }, + "imageType": "svg" + }, + "translate": { + "frontends": { + "simplyTranslate": { + "preferences": { + "cookies": ["from_lang", "to_lang", "tts_enabled", "use_text_fields"] + } + }, + "lingva": { + "preferences": { + "localstorage": ["isauto", "source", "target"] + } + } + }, + "targets": ["^https?:\\/{2}translate\\.google(\\.[a-z]{2,3}){1,2}\\/"], + "name": "Translate", + "defaults": { + "translateDisable": false, + "translateFrontend": "simplyTranslate" + }, + "imageType": "svg" + }, + "maps": { + "frontends": { + "facil": { + "preferences": {} + } + }, + "singleInstanceFrontends": ["osm"], + "targets": ["^https?:\\/{2}(((www|maps)\\.)?(google\\.).*(\\/maps)|maps\\.(google\\.).*)"], + "name": "Maps", + "defaults": { + "disableMaps": false, + "mapsFrontend": "osm" + }, + "imageType": "svg" + }, + "sendTargets": { + "frontends": { + "send": { + "preferences": {} + } + }, + "targets": ["^https?:\\/{2}send\\.libredirect\\.invalid\\/$", "^https?:\\/{2}send\\.firefox\\.com\\/$", "^https?:\\/{2}sendfiles\\.online\\/$"], + "name": "Send Files", + "defaults": { + "disableSendTarget": false + }, + "imageType": "svg" + } + } +} diff --git a/src/pages/background/background.js b/src/pages/background/background.js index c6e9ab7a..87d498e4 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -22,6 +22,8 @@ import sendTargetsHelper from "../../assets/javascripts/sendTargets.js" import peertubeHelper from "../../assets/javascripts/peertube.js" import lbryHelper from "../../assets/javascripts/lbry.js" +import servicesHelper from "../../assets/javascripts/services.js" + window.browser = window.browser || window.chrome browser.runtime.onInstalled.addListener(details => { @@ -86,6 +88,7 @@ browser.webRequest.onBeforeRequest.addListener( return null } + /* let newUrl = youtubeMusicHelper.redirect(url, details.type) if (!newUrl) newUrl = youtubeHelper.redirect(url, details.type, initiator) if (!newUrl) newUrl = twitterHelper.redirect(url, details.type, initiator) @@ -104,6 +107,8 @@ browser.webRequest.onBeforeRequest.addListener( if (!newUrl) newUrl = translateHelper.redirect(url) if (!newUrl) newUrl = searchHelper.redirect(url) if (!newUrl) newUrl = wikipediaHelper.redirect(url) + */ + let newUrl = servicesHelper.redirect(url, details.type, initiator) if (details.frameAncestors && details.frameAncestors.length > 0 && generalHelper.isException(new URL(details.frameAncestors[0].url))) newUrl = null |