aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-03-19 00:36:18 +0300
committerManeraKai <manerakai@protonmail.com>2022-03-19 00:36:18 +0300
commit9de383439e32e69da7233c652455ba496d2ffe43 (patch)
tree8359b3a0724f8d556bb24168c3c15e6ccccb5eea
parentMerge branch 'master' of https://github.com/libredirect/libredirect (diff)
downloadlibredirect-9de383439e32e69da7233c652455ba496d2ffe43.zip
Restricted auto redirection to only 503, 504. Added a 'Cancel Redirection' btn
Diffstat (limited to '')
-rw-r--r--src/pages/background/background.js11
-rw-r--r--src/pages/errors/instance_offline.html16
-rw-r--r--src/pages/errors/instance_offline.js22
3 files changed, 39 insertions, 10 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index d1488870..4a48a15f 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -130,8 +130,9 @@ browser.webRequest.onResponseStarted.addListener(
details => {
if (!generalHelper.getAutoRedirect()) return null;
- console.log("statusCode", details.statusCode);
- if (details.type == 'main_frame' && details.statusCode >= 500) {
+ 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);
let newUrl;
@@ -159,10 +160,8 @@ browser.webRequest.onResponseStarted.addListener(
// if (!newUrl) newUrl = spotifyHelper.changeInstance(url);
- if (newUrl) {
- browser.tabs.update({ url: '/pages/errors/instance_offline.html' });
- setTimeout(() => browser.tabs.update({ url: newUrl }), 2000);
- }
+ if (newUrl) browser.tabs.update(details.tabId, { url: `/pages/errors/instance_offline.html?url=${encodeURIComponent(newUrl)}` });
+
}
},
{ urls: ["<all_urls>"], }
diff --git a/src/pages/errors/instance_offline.html b/src/pages/errors/instance_offline.html
index 7536b3c2..09ffb431 100644
--- a/src/pages/errors/instance_offline.html
+++ b/src/pages/errors/instance_offline.html
@@ -9,19 +9,31 @@
<link href="../stylesheets/styles.css" rel="stylesheet" />
<style>
body {
+ margin: 0;
+ padding: 0;
height: 100vh;
width: 100vw;
- display: flex;
+ flex-wrap: wrap;
justify-content: center;
align-items: center;
font-size: 30px;
+ display: flex;
+ }
+
+ div {
+ text-align: center;
}
</style>
</head>
<body>
- This instance is offline, you'll be redirected after&nbsp;<span id="number">2</span>&nbsp;seconds
+ <div>
+ <p id="message">This instance is offline, you'll be redirected after&nbsp;<span
+ id="number">2</span>&nbsp;seconds
+ </p>
+ <button id="cancel">Cancel</button>
+ </div>
<script src="instance_offline.js"></script>
</body>
diff --git a/src/pages/errors/instance_offline.js b/src/pages/errors/instance_offline.js
index 586585d6..c3aee2c1 100644
--- a/src/pages/errors/instance_offline.js
+++ b/src/pages/errors/instance_offline.js
@@ -1,2 +1,20 @@
-setTimeout(() => document.getElementById("number").innerHTML = '1', 1000);
-setTimeout(() => document.getElementById("number").innerHTML = '0', 2000); \ No newline at end of file
+const params = new Proxy(
+ new URLSearchParams(window.location.search),
+ { get: (searchParams, prop) => searchParams.get(prop) }
+);
+
+let number = document.getElementById("number");
+setTimeout(() => number.innerHTML = '1', 1000);
+setTimeout(
+ () => {
+ number.innerHTML = '0'
+ if (!isCanceled) window.location = params.url;
+ },
+ 2000
+);
+
+let isCanceled = false;
+document.getElementById("cancel").addEventListener("click", () => {
+ isCanceled = true;
+ document.getElementById("message").innerHTML = "Redirection Canceled";
+}) \ No newline at end of file