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/images/tumblr-icon.svg52
-rw-r--r--src/assets/javascripts/services.js16
-rw-r--r--src/config.json26
3 files changed, 94 insertions, 0 deletions
diff --git a/src/assets/images/tumblr-icon.svg b/src/assets/images/tumblr-icon.svg
new file mode 100644
index 00000000..8b985b36
--- /dev/null
+++ b/src/assets/images/tumblr-icon.svg
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363)  -->
+
+<svg
+   version="1.1"
+   id="Calque_1"
+   x="0px"
+   y="0px"
+   width="256px"
+   height="256px"
+   viewBox="0 0 256 256"
+   enable-background="new 0 0 256 256"
+   xml:space="preserve"
+   sodipodi:docname="Tumblr.svg"
+   inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg"><defs
+   id="defs4" /><sodipodi:namedview
+   id="namedview4"
+   pagecolor="#ffffff"
+   bordercolor="#000000"
+   borderopacity="0.25"
+   inkscape:showpageshadow="2"
+   inkscape:pageopacity="0.0"
+   inkscape:pagecheckerboard="0"
+   inkscape:deskcolor="#d1d1d1"
+   inkscape:zoom="2.622483"
+   inkscape:cx="108.10366"
+   inkscape:cy="127.93219"
+   inkscape:window-width="1888"
+   inkscape:window-height="1056"
+   inkscape:window-x="32"
+   inkscape:window-y="0"
+   inkscape:window-maximized="1"
+   inkscape:current-layer="g4" />
+<g
+   id="g4">
+	
+	<g
+   id="g3"
+   style="fill:#314358;fill-opacity:1"
+   transform="matrix(1.2688081,0,0,1.2688081,-34.911581,-33.121241)">
+		<path
+   fill="#FFFFFF"
+   d="m 168.08,170.918 c -2.969,1.416 -8.647,2.648 -12.881,2.754 -12.783,0.342 -15.264,-8.979 -15.367,-15.736 v -49.705 h 32.065 V 84.055 H 139.943 V 43.382 c 0,0 -23.008,0 -23.383,0 -0.385,0 -1.057,0.337 -1.152,1.192 -1.368,12.448 -7.192,34.296 -31.416,43.032 v 20.624 h 16.16 v 52.167 c 0,17.863 13.176,43.24 47.959,42.641 11.736,-0.201 24.77,-5.113 27.648,-9.354 l -7.679,-22.766"
+   id="path2"
+   style="fill:#314358;fill-opacity:1" />
+	</g>
+</g>
+</svg>
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js
index d431369d..4bcc7618 100644
--- a/src/assets/javascripts/services.js
+++ b/src/assets/javascripts/services.js
@@ -571,6 +571,21 @@ function redirect(url, type, initiator, forceRedirection, incognito) {
 			if (url.pathname == '/') return randomInstance
 			return `${randomInstance}?url=${encodeURIComponent(url.href)}`
 		}
+		case "priviblur": {
+			if (url.hostname.startsWith("blog"))
+				return `${randomInstance}/blog${url.pathname}${url.search}`
+
+			if (url.hostname.startsWith("assets"))
+				return `${randomInstance}/assets${url.pathname}${url.search}`
+
+			if (url.hostname.startsWith("static"))
+				return `${randomInstance}/static${url.pathname}${url.search}`
+
+			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}`
+		}
 		default: {
 			return `${randomInstance}${url.pathname}${url.search}`
 		}
@@ -742,6 +757,7 @@ const defaultInstances = {
 	'tuboSoundcloud': ['https://tubo.migalmoreno.com'],
 	'tekstoLibre': ['https://davilarek.github.io/TekstoLibre'],
 	'skyview': ['https://skyview.social'],
+	'priviblur': ['https://pb.bloat.cat'],
 }
 
 function initDefaults() {
diff --git a/src/config.json b/src/config.json
index 52358170..13d5dc30 100644
--- a/src/config.json
+++ b/src/config.json
@@ -994,6 +994,32 @@
 			},
 			"imageType": "svg",
 			"url": "https://bsky.app/"
+		},
+		"tumblr": {
+			"frontends": {
+				"priviblur": {
+					"name": "Priviblur",
+					"embeddable": true,
+					"instanceList": true,
+					"url": "https://github.com/syeopite/priviblur",
+					"localhost": true
+				}
+			},
+			"targets": [
+				"^https?:\\/{2}(media\\.|blog\\.|assets\\.|static\\.)?tumblr\\.com\\/",
+				"^https?:\\/{2}[0-9]+\\.media\\.tumblr\\.com\\/"
+			],
+			"name": "Tumblr",
+			"options": {
+				"enabled": false,
+				"redirectType": "main_frame",
+				"unsupportedUrls": "bypass",
+				"frontend": "priviblur",
+				"instance": "public"
+			},
+			"imageType": "svg",
+			"embeddable": true,
+			"url": "https://tumblr.com"
 		}
 	}
 }
\ No newline at end of file