knuxify / fxtumblr

Make Tumblr embeds on other websites way better. Like TwitFix/fxtwitter, but for Tumblr.
https://tpmblr.com
MIT License
16 stars 2 forks source link

fxtumblr

Like TwitFix, but for Tumblr

Why?

Because Tumblr embeds suck, that's why. If you're a Tumblr user and you keep sending funny posts to your non-Tumblr friends on places like Discord, you probably know. If you're the non-Tumblr friend in question (like me) then you doubly so know.

I got so annoyed at the status quo that I made this to fix it. The initial version was quickly written in one day, and improvements are still being made.

This is heavily inspired by fxtwitter.com, vxtwitter.com, twxtter/s/i/x and so on, but it works with Tumblr instead.

How to use it

Simply replace www.tumblr.com in your URL with the URL of the fxtumblr instance you want to use.

You can also try out the official instance at tpmblr.com (or fx.dissonant.dev). For Discord users - you can post a tumblr.com link, then in the next message type s/u/p; this will automatically replace tumblr.com in the previous message with tpmblr.com.

Privacy

The only information used by fxtumblr is the post URL that is passed to it; no other data is collected by the software itself. By default, this data is not logged anywhere, but there are two optional mechanisms available to set in the config.yml file by the instance admin:

For anonymous statistics, the following information is logged:

Full disclosure - the official instance at tpmblr.com has anonymous statistics enabled. These are used only to keep traffic under control and act accordingly in the event of sudden failure or an increase in requests.

Admins may still be able to track requests, e.g. through nginx access logs (disabled on tpmblr.com) or by checking the renders folder.

Setting up for self-hosting

Enabling thread rendering support

Unfortunately, standard embeds are too limited to fully display an entire Tumblr thread. Thus, there's optional support for rendering threads using a headless version of Chrome/Chromium using the pyppeteer package.

In order to make use of it, set renders_enable in your config. Then, run ./run-renderer.sh to start the renderer process.

By default, the renderer will try to use the system install of Chromium (/usr/bin/chromium). If your Chromium location is different set the renders_chromium_path config option to the path of the Chromium executable.

You will also have to download Tumblr's web fonts for the best experience - see fonts/README.md. You should also get a system font that has emoji suport (like Noto Emoji).