about summary refs log tree commit diff stats
path: root/src/assets
diff options
context:
space:
mode:
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/javascripts/services.js14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js
index 3481273c..bedc3549 100644
--- a/src/assets/javascripts/services.js
+++ b/src/assets/javascripts/services.js
@@ -459,10 +459,16 @@ function redirect(url, type, initiator, forceRedirection) {
 		}
 		case "anonymousOverflow": {
 			if (!url.pathname.startsWith('/questions') && url.pathname != '/') return
-			const threadID = /\/(\d+)\/?$/.exec(url.pathname)
-			if (threadID) return `${randomInstance}/questions/${threadID[1]}${url.search}`
-			return `${randomInstance}${url.pathname}${url.search}`
-
+			if (url.hostname == "stackoverflow.com") {
+				const threadID = /\/(\d+)\/?$/.exec(url.pathname)
+				if (threadID) return `${randomInstance}/questions/${threadID[1]}${url.search}`
+				return `${randomInstance}${url.pathname}${url.search}`
+			}
+			const regex = url.href.match(/https?:\/{2}(?:([a-zA-Z0-9-]+)\.)?stackexchange\.com\//)
+			if (regex && regex.length > 1) {
+				const subdomain = regex[1]
+				return `${randomInstance}/exchange/${subdomain}${url.pathname}${url.search}`
+			}
 		}
 		case "biblioReads": {
 			if (!url.pathname.startsWith('/book/show/') && url.pathname != '/') return