aboutsummaryrefslogtreecommitdiffstats
path: root/src/assets
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/assets/javascripts/services.js16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js
index 8aa044ea..9c4205f6 100644
--- a/src/assets/javascripts/services.js
+++ b/src/assets/javascripts/services.js
@@ -400,7 +400,21 @@ function redirect(url, type, initiator, forceRedirection) {
if (url.href.search(/^https?:\/{2}(?:[im]\.)?stack\./) > -1) return `${randomInstance}/stack${url.pathname}${url.search}`
else return `${randomInstance}${url.pathname}${url.search}`
case "libreddit":
- if (url.hostname.match(/^(i|preview)\.redd\.it/)) return `${randomInstance}/img${url.pathname}`
+ const subdomain = url.hostname.match(/^(?:(?:external-)?preview|i)(?=\.redd\.it)/)
+ if (!subdomain) return `${randomInstance}${url.pathname}${url.search}`
+ switch (subdomain[0]) {
+ case "preview":
+ return `${randomInstance}/preview/pre${url.pathname}${url.search}`
+ case "external-preview":
+ return `${randomInstance}/preview/external-pre${url.pathname}${url.search}`
+ case "i":
+ return `${randomInstance}/img${url.pathname}`
+ }
+ case "teddit":
+ if (/^(?:(?:external-)?preview|i)\.redd\.it/.test(url.hostname)) {
+ if (url.search == "") return `${randomInstance}${url.pathname}?teddit_proxy=${url.hostname}`
+ else return `${randomInstance}${url.pathname}${url.search}&teddit_proxy=${url.hostname}`
+ }
return `${randomInstance}${url.pathname}${url.search}`
default:
return `${randomInstance}${url.pathname}${url.search}`