about summary refs log tree commit diff stats
path: root/src/assets/javascripts
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2023-02-06 18:05:15 +0300
committerManeraKai <manerakai@protonmail.com>2023-02-06 18:05:15 +0300
commit5f45e0b09cc24ff3c3559f763e221b7557e4b48b (patch)
treeb4ba94947dc8bbb29df5f6fddc0d4e67f10d1c1e /src/assets/javascripts
parentservices: Fix `anonymousOverflow` redirect (diff)
downloadlibredirect-5f45e0b09cc24ff3c3559f763e221b7557e4b48b.zip
Fixed AnonymousOverflow answers linking problem https://github.com/libredirect/libredirect/pull/619. Fixed Freetube https://github.com/libredirect/libredirect/issues/621
Diffstat (limited to 'src/assets/javascripts')
-rw-r--r--src/assets/javascripts/services.js18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js
index 0aac546d..f3fcfa0d 100644
--- a/src/assets/javascripts/services.js
+++ b/src/assets/javascripts/services.js
@@ -59,16 +59,16 @@ function redirect(url, type, initiator, forceRedirection) {
 			continue
 		}
 
+		let instanceList = options[frontend]
+		if (instanceList === undefined) break
+		if (instanceList.length === 0) return
+
 		if (
 			initiator
 			&&
-			options[frontend].includes(initiator.origin)
+			instanceList.includes(initiator.origin)
 		) return "BYPASSTAB"
 
-		let instanceList = options[frontend]
-		if (instanceList === undefined) break
-		if (instanceList.length === 0) return
-
 		randomInstance = utils.getRandomInstance(instanceList)
 
 		break
@@ -414,13 +414,15 @@ function redirect(url, type, initiator, forceRedirection) {
 			if (url.pathname.endsWith('-lyrics')) return `${randomInstance}${url.pathname}`
 		}
 		case "ruralDictionary": {
-			if (!url.pathname.endsWith('/define.php') && !url.pathname.endsWith('/random.php') && url.pathname != '/') return
+			if (!url.pathname.includes('/define.php') && !url.pathname.includes('/random.php') && url.pathname != '/') return
 			return `${randomInstance}${url.pathname}${url.search}`
 		}
 		case "anonymousOverflow": {
 			if (!url.pathname.startsWith('/questions') && url.pathname != '/') return
-			const threadID = /\/\d+(?=[?&#/]|$)/.exec(url.pathname)?.[0]
-			return `${randomInstance}${threadID ? '/questions' + threadID : url.pathname}${url.search}`
+			const threadID = /\/(\d+)\/?$/.exec(url.pathname)
+			if (threadID) return `${randomInstance}/questions/${threadID[1]}${url.search}`
+			return `${randomInstance}${url.pathname}${url.search}`
+
 		}
 		case "biblioReads": {
 			if (!url.pathname.startsWith('/book/show/') && url.pathname != '/') return