about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/assets/javascripts/services.js31
-rw-r--r--src/config.json5
2 files changed, 27 insertions, 9 deletions
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js
index 4bcc7618..603f9c23 100644
--- a/src/assets/javascripts/services.js
+++ b/src/assets/javascripts/services.js
@@ -572,19 +572,36 @@ function redirect(url, type, initiator, forceRedirection, incognito) {
 			return `${randomInstance}?url=${encodeURIComponent(url.href)}`
 		}
 		case "priviblur": {
-			if (url.hostname.startsWith("blog"))
-				return `${randomInstance}/blog${url.pathname}${url.search}`
+			// www.tumblr.com
+			if (url.hostname === "www.tumblr.com")
+				return `${randomInstance}${url.pathname}${url.search}`;
 
+			// assets.tumblr.com
 			if (url.hostname.startsWith("assets"))
-				return `${randomInstance}/assets${url.pathname}${url.search}`
+				return `${randomInstance}/tblr/assets${url.pathname}${url.search}`;
 
+			// static.tumblr.com
 			if (url.hostname.startsWith("static"))
-				return `${randomInstance}/static${url.pathname}${url.search}`
+				return `${randomInstance}/tblr/static${url.pathname}${url.search}`;
 
-			const reg = /^([0-9]+)\.media\.tumblr\.com/.exec(url.hostname)
+			// *.media.tumblr.com
+			const reg = /^([0-9]+)\.media\.tumblr\.com/.exec(url.hostname);
 			if (reg)
-				return `${randomInstance}/media/${reg[1]}${url.pathname}${url.search}`
-			return `${randomInstance}${url.pathname}${url.search}`
+				return `${randomInstance}/tblr/media/${reg[1]}${url.pathname}${url.search}`;
+
+			// <blog>.tumblr.com
+			const blogregex = /^(www.)?([a-z\d]{1}[a-z\d-]{0,30}[a-z\d]{0,1})\.tumblr\.com/.exec(url.hostname);
+			const blog_name = blogregex[2];
+
+			if (blogregex)
+				// Under the <blog>.tumblr.com domain posts are under a /post path
+				if (url.pathname.startsWith("/post")) {
+					return `${randomInstance}/${blog_name}${url.pathname.slice(5)}${url.search}`;
+				} else {
+					return `${randomInstance}/${blog_name}${url.pathname}${url.search}`;
+				}
+
+			return `${randomInstance}${url.pathname}${url.search}`;
 		}
 		default: {
 			return `${randomInstance}${url.pathname}${url.search}`
diff --git a/src/config.json b/src/config.json
index 13d5dc30..a99a3907 100644
--- a/src/config.json
+++ b/src/config.json
@@ -1006,8 +1006,9 @@
 				}
 			},
 			"targets": [
-				"^https?:\\/{2}(media\\.|blog\\.|assets\\.|static\\.)?tumblr\\.com\\/",
-				"^https?:\\/{2}[0-9]+\\.media\\.tumblr\\.com\\/"
+				"^https?:\\/{2}(media\\.|assets\\.|static\\.)?tumblr\\.com\\/",
+				"^https?:\\/{2}[0-9]+\\.media\\.tumblr\\.com\\/",
+				"^https?:\\/{2}(www\\.)?(.*)\\.tumblr.com\\/"
 			],
 			"name": "Tumblr",
 			"options": {