From 9a7c2ce3cbd0b80c241180daa8c55eff6e8ecc42 Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Tue, 7 Mar 2023 17:25:43 +0300 Subject: Supported Stackexchange https://github.com/libredirect/libredirect/issues/636 --- src/assets/javascripts/services.js | 14 ++++++++++---- src/config.json | 3 ++- 2 files changed, 12 insertions(+), 5 deletions(-) (limited to 'src') 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 diff --git a/src/config.json b/src/config.json index 107a78ed..3bd300a8 100644 --- a/src/config.json +++ b/src/config.json @@ -562,7 +562,8 @@ } }, "targets": [ - "^https?:\\/{2}stackoverflow\\.com\\/" + "^https?:\\/{2}?stackoverflow\\.com\\/", + "^https?:\\/{2}([a-zA-Z0-9-]+\\.)?stackexchange\\.com\\/" ], "name": "Stack Overflow", "options": { -- cgit 1.4.1