aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-03-22 21:57:01 +0300
committerManeraKai <manerakai@protonmail.com>2022-03-22 21:57:01 +0300
commit1079e64f0d391bd4dbd63d6927c313199b81d141 (patch)
tree65d582ab0b026d42c0117104a59b0959ed10e6d2 /src
parentBypassing pathname for Imgur #124 (diff)
downloadlibredirect-1079e64f0d391bd4dbd63d6927c313199b81d141.zip
Triggering AutoRedirect on Unknown Host and other Internet connectivity errors #127
Diffstat (limited to 'src')
-rw-r--r--src/assets/javascripts/helpers/imgur.js2
-rw-r--r--src/assets/javascripts/helpers/medium.js2
-rw-r--r--src/assets/javascripts/helpers/pixiv.js2
-rw-r--r--src/assets/javascripts/helpers/reddit.js2
-rw-r--r--src/assets/javascripts/helpers/search.js2
-rw-r--r--src/assets/javascripts/helpers/sendTargets.js2
-rw-r--r--src/assets/javascripts/helpers/spotify.js2
-rw-r--r--src/assets/javascripts/helpers/tiktok.js2
-rw-r--r--src/assets/javascripts/helpers/twitter.js2
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js2
-rw-r--r--src/assets/javascripts/helpers/youtubeMusic.js2
-rw-r--r--src/pages/background/background.js54
12 files changed, 44 insertions, 32 deletions
diff --git a/src/assets/javascripts/helpers/imgur.js b/src/assets/javascripts/helpers/imgur.js
index 6d8028db..407a7586 100644
--- a/src/assets/javascripts/helpers/imgur.js
+++ b/src/assets/javascripts/helpers/imgur.js
@@ -97,7 +97,7 @@ function isImgur(url, initiator) {
initiator &&
([...redirects.rimgo.normal, ...rimgoNormalCustomRedirects].includes(initiator.origin) || targets.includes(initiator.host))
) return false;
- return targets.some((rx) => rx.test(url.href));
+ return targets.some(rx => rx.test(url.href));
}
function redirect(url, type) {
diff --git a/src/assets/javascripts/helpers/medium.js b/src/assets/javascripts/helpers/medium.js
index 3d002445..02d5a9b6 100644
--- a/src/assets/javascripts/helpers/medium.js
+++ b/src/assets/javascripts/helpers/medium.js
@@ -123,7 +123,7 @@ function redirect(url, type, initiator) {
if (initiator && ([...redirects.scribe.normal, ...scribeNormalCustomRedirects].includes(initiator.origin))) return;
- if (!targets.some((rx) => rx.test(url.host))) return;
+ if (!targets.some(rx => rx.test(url.host))) return;
let instancesList;
if (protocol == 'normal') instancesList = [...scribeNormalRedirectsChecks, ...scribeNormalCustomRedirects];
diff --git a/src/assets/javascripts/helpers/pixiv.js b/src/assets/javascripts/helpers/pixiv.js
index 86ef6509..f965a27d 100644
--- a/src/assets/javascripts/helpers/pixiv.js
+++ b/src/assets/javascripts/helpers/pixiv.js
@@ -99,7 +99,7 @@ function redirect(url, type, initiator) {
if (disable) return null;
if (initiator && ([...redirects.pixivMoe.normal, ...pixivMoeNormalCustomRedirects].includes(initiator.origin) || targets.includes(initiator.host))) return null;
- if (!targets.some((rx) => rx.test(url.href))) return null;
+ if (!targets.some(rx => rx.test(url.href))) return null;
console.log("PixivMoe!!");
if (type != "main_frame" && type != "sub_frame") return null;
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index 1948588e..9a970a68 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -282,7 +282,7 @@ function redirect(url, type, initiator) {
(isTeddit || isLibreddit) && !isCheckedLibreddit
) return switchInstance(url);
- if (!targets.some((rx) => rx.test(url.href))) return null;
+ if (!targets.some(rx => rx.test(url.href))) return null;
if (
bypassWatchOnReddit &&
diff --git a/src/assets/javascripts/helpers/search.js b/src/assets/javascripts/helpers/search.js
index f3ae49a0..e1c3bdef 100644
--- a/src/assets/javascripts/helpers/search.js
+++ b/src/assets/javascripts/helpers/search.js
@@ -234,7 +234,7 @@ function initWhoogleCookies() {
function redirect(url) {
if (disable) return;
- if (!targets.some((rx) => rx.test(url.href))) return;
+ if (!targets.some(rx => rx.test(url.href))) return;
if (url.searchParams.has('tbm')) return;
if (!url.searchParams.has('q') && url.pathname != '/') return;
diff --git a/src/assets/javascripts/helpers/sendTargets.js b/src/assets/javascripts/helpers/sendTargets.js
index d33bccf2..d81aa4ee 100644
--- a/src/assets/javascripts/helpers/sendTargets.js
+++ b/src/assets/javascripts/helpers/sendTargets.js
@@ -138,7 +138,7 @@ function redirect(url, type, initiator) {
if (disable) return null;
if (initiator && ([...redirects.send.normal, ...sendNormalCustomRedirects].includes(initiator.origin) || targets.includes(initiator.host))) return null;
- if (!targets.some((rx) => rx.test(url.href))) return null;
+ if (!targets.some(rx => rx.test(url.href))) return null;
if (type != "main_frame") return null;
diff --git a/src/assets/javascripts/helpers/spotify.js b/src/assets/javascripts/helpers/spotify.js
index 8319f9bc..a4e56f77 100644
--- a/src/assets/javascripts/helpers/spotify.js
+++ b/src/assets/javascripts/helpers/spotify.js
@@ -119,7 +119,7 @@ function switchInstance(url) {
function redirect(url, type, initiator) {
if (disable) return null;
if (initiator && ([...redirects.soju.normal, ...sojuNormalCustomRedirects].includes(initiator.origin) || targets.includes(initiator.host))) return null;
- if (!targets.some((rx) => rx.test(url.href))) return null;
+ if (!targets.some(rx => rx.test(url.href))) return null;
if (type != "main_frame") return null;
diff --git a/src/assets/javascripts/helpers/tiktok.js b/src/assets/javascripts/helpers/tiktok.js
index 671e6427..af7e3d7d 100644
--- a/src/assets/javascripts/helpers/tiktok.js
+++ b/src/assets/javascripts/helpers/tiktok.js
@@ -93,7 +93,7 @@ function setProtocol(val) {
function isTiktok(url, initiator) {
if (disable) return false;
if (initiator && ([...redirects.proxiTok.normal, ...proxiTokNormalCustomRedirects].includes(initiator.origin) || targets.includes(initiator.host))) return false;
- return targets.some((rx) => rx.test(url.href));
+ return targets.some(rx => rx.test(url.href));
}
function redirect(url, type) {
diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js
index 8152adf8..3ad01b7f 100644
--- a/src/assets/javascripts/helpers/twitter.js
+++ b/src/assets/javascripts/helpers/twitter.js
@@ -120,7 +120,7 @@ function redirect(url, initiator) {
if (disable) return null;
- if (!targets.some((rx) => rx.test(url.href))) return null;
+ if (!targets.some(rx => rx.test(url.href))) return null;
if (url.pathname.split("/").includes("home")) {
console.log("twitter homepage");
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index ae57f4f6..c5b0e9d4 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -354,7 +354,7 @@ function redirect(url, details, initiator) {
(isInvidious || isPiped) && !isCheckedPiped
) return switchInstance(url);
- if (!targets.some((rx) => rx.test(url.href))) return null;
+ if (!targets.some(rx => rx.test(url.href))) return null;
if (
details.type != "main_frame" &&
diff --git a/src/assets/javascripts/helpers/youtubeMusic.js b/src/assets/javascripts/helpers/youtubeMusic.js
index df713aae..1833b101 100644
--- a/src/assets/javascripts/helpers/youtubeMusic.js
+++ b/src/assets/javascripts/helpers/youtubeMusic.js
@@ -58,7 +58,7 @@ function setDisable(val) {
function isYoutubeMusic(url, initiator) {
if (disable) return false
- return targets.some((rx) => rx.test(url.href));
+ return targets.some(rx => rx.test(url.href));
}
function redirect(url, type) {
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index f8a7e54c..9b32bbdf 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -131,47 +131,59 @@ browser.tabs.onRemoved.addListener(
}
);
-browser.webRequest.onResponseStarted.addListener(
- details => {
- if (!generalHelper.getAutoRedirect()) return null;
+function redirectOfflineInstance(url, tabId) {
+ let newUrl;
- if (details.type == 'main_frame' && (details.statusCode == 503 || details.statusCode == 504)) {
- // if (details.type == 'main_frame' && details.statusCode >= 200) {
- console.log("statusCode", details.statusCode);
+ newUrl = youtubeHelper.switchInstance(url);
+ if (!newUrl) newUrl = twitterHelper.switchInstance(url);
- const url = new URL(details.url);
- let newUrl;
+ if (!newUrl) newUrl = instagramHelper.switchInstance(url);
- newUrl = youtubeHelper.switchInstance(url);
- if (!newUrl) newUrl = twitterHelper.switchInstance(url);
+ if (!newUrl) newUrl = redditHelper.switchInstance(url);
- if (!newUrl) newUrl = instagramHelper.switchInstance(url);
+ if (!newUrl) newUrl = searchHelper.switchInstance(url);
- if (!newUrl) newUrl = redditHelper.switchInstance(url);
+ if (!newUrl) newUrl = translateHelper.switchInstance(url);
- if (!newUrl) newUrl = searchHelper.switchInstance(url);
+ if (!newUrl) newUrl = mediumHelper.switchInstance(url);
- if (!newUrl) newUrl = translateHelper.switchInstance(url);
+ if (!newUrl) newUrl = imgurHelper.switchInstance(url);
- if (!newUrl) newUrl = mediumHelper.switchInstance(url);
+ if (!newUrl) newUrl = wikipediaHelper.switchInstance(url);
- if (!newUrl) newUrl = imgurHelper.switchInstance(url);
+ if (!newUrl) newUrl = peertubeHelper.switchInstance(url);
- if (!newUrl) newUrl = wikipediaHelper.switchInstance(url);
+ if (!newUrl) newUrl = lbryHelper.switchInstance(url);
- if (!newUrl) newUrl = peertubeHelper.switchInstance(url);
+ if (!newUrl) newUrl = spotifyHelper.switchInstance(url);
- if (!newUrl) newUrl = lbryHelper.switchInstance(url);
+ if (newUrl) browser.tabs.update(tabId, { url: `/pages/errors/instance_offline.html?url=${encodeURIComponent(newUrl)}` });
+}
- if (!newUrl) newUrl = spotifyHelper.switchInstance(url);
+browser.webRequest.onResponseStarted.addListener(
+ details => {
+ if (!generalHelper.getAutoRedirect()) return null;
- if (newUrl) browser.tabs.update(details.tabId, { url: `/pages/errors/instance_offline.html?url=${encodeURIComponent(newUrl)}` });
+ if (details.type == 'main_frame' && (details.statusCode == 503 || details.statusCode == 504)) {
+ // if (details.type == 'main_frame' && details.statusCode >= 200) {
+ console.log("statusCode", details.statusCode);
+ const url = new URL(details.url);
+ redirectOfflineInstance(url, details.tabId);
}
},
{ urls: ["<all_urls>"], }
)
+browser.webRequest.onErrorOccurred.addListener(
+ details => {
+ if (!generalHelper.getAutoRedirect()) return;
+ const url = new URL(details.url);
+ redirectOfflineInstance(url, details.tabId);
+ },
+ { urls: ["<all_urls>"], }
+)
+
browser.tabs.onUpdated.addListener(
(tabId, changeInfo, _) => {
let url;