about summary refs log tree commit diff stats
path: root/src/pages
diff options
context:
space:
mode:
authorJason Kim <git@jasonk.me>2021-04-22 22:43:30 -0700
committerJason Kim <git@jasonk.me>2021-04-22 23:00:09 -0700
commit21ee6b8542af700dc3d81520c7e62bc2657cb2af (patch)
tree9f728e96ca2a4124420ff70e16bb498e1d612c42 /src/pages
parentfeat: support teddit by adding /comments hint (diff)
downloadlibredirect-21ee6b8542af700dc3d81520c7e62bc2657cb2af.zip
fix: add "/comments" prefix only if it's missing
Although I have never seen it in the wild, it is possible to navigate to
"redd.it/comments/...".  This should redirect to
"teddit.net/comments/..." in the case of instance teddit.net.  However,
the current code redirects it to "teddit.net/comments/comments/...".
Fix it by avoiding adding the prefix if it's already there.
Diffstat (limited to 'src/pages')
-rw-r--r--src/pages/background/background.js12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 82f65a20..d3ec06ca 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -483,9 +483,15 @@ function redirectReddit(url, initiator, type) {
       return null;
     }
   } else if (url.host === "redd.it") {
-    if (redditInstance.includes("teddit")) {
-      // As of 2021-04-22, redirects for teddit redd.it links don't work out of
-      // the box.  Prefixing the path with "/comments" seems to help.
+    if (
+      redditInstance.includes("teddit") &&
+      !url.pathname.startsWith("/comments/")
+    ) {
+      // As of 2021-04-22, redirects for teddit redd.it links don't work unless
+      // the path starts with "/comments".  It appears that all links that
+      // don't start with "/comments" are interchangeable with the ones
+      // that do start with "/comments", so manually add that prefix if it is
+      // missing.
       return `${redditInstance}/comments${url.pathname}${url.search}`;
     }
   }