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 @@ + + + + + + + + + + + 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