Continuing the automation chronicles

I recently wrote here about automating my linklog (I called it the "linkblog" but have since changed it to linklog, for reasons I will explain in the course of this post).

Since setting up the linklog, I decided to automate a few other things - some just for me, some in order to automatically populate this very blog (considering that nary a person reads this blog, you could argue that this too I've done purely for myself).

Anyway, I have come here today to explain - to whoever might care - what else I've done and how it strengthens the underlying philosophy of creating your very own hub on the web.

Creating the photolog

I've never been a regular user (let alone fan) of Instagram. But ever since I started using federated services in earnest, I've taken an interest in using Pixelfed more. For those who don't know: it's an Instagram-alternative that lets you either join existing instances or set up your very own, quite like Mastodon (which, by now, you should be familiar with).

Taking advantage of its federating qualities, I can now post a picture to Pixelfed and then simply boost it into my Mastodon stream (because it behaves like any other Mastodon post).

But, I decided I wanted to also push those posts to this very blog. It makes sense that in addition to a linklog, whatever I post on Pixelfed should show up here as well.

So, I looked into Pixelfed, and lo and behold, it also allows me to create an application in the backend, which then allows me to hook up my trusty n8n-installation to it.

After some fiddling, I came up with this workflow:‌                                                                      

Screenshot of the graphical representation of the workflow on n8n: Five nodes caled "Schedule Trigger", "Pull in Pixelfed Posts", "Check for new posts", "Date & Time", "Ghost".
The Pixelfed to Ghost workflow

Let me explain: the trigger node polls my Pixelfed account for recent posts. Node 2 pulls in those posts, node 3 checks whether they are new or not, node 4 adds a human readable date to the titles of the posts and node 5 finally publishes them to this blog.

The resulting post then looks like this:‌                                                                      

Screenshot of a photolog post: It has an image of a plate of food - fries, fake stea, sauce in a little glass container - and below it the caption "Snack". Below a divider the text: "This images was pulled in from my Pixelfed to populate what I call the Photolog."
A photolog post

The photolog is born! On to the next one.

From Letterboxd to filmlog

Now, I don't know about you, but watching films is a great pastime. But, I sometimes forget which films I've already seen and which I haven't. In order to help me remember, I signed up to Letterboxd, a service that lets you log your watched films, give them stars from 1 to 5 and leave reviews (short or long, but mine are usually rather short).

Wouldn't it be great to liberate those little reviews from the confines of one service and have them available on my website as well? Why yes! Yes, it would.

So I looked into the Letterboxd API, which does in fact exist. Unfortunately, it's been in a private beta for a while, so I opted for something else: RSS!

You see, every account's activities on Letterboxd are logged in an RSS file, including the complete text of reviews.

So I pulled in that RSS feed, and while this approach lacks the flexibility of an API-call, it was still good enough.

And this is the resulting workflow:                                                                  

Screenshot of the graphical representation of the workflow on n8n: Five nodes caled "Schedule Trigger", "RSS Feed Read", "Item Lists", "Code", "Ghost".
The filmlog workflow

This time around there are no surprises. The feed is polled every hour, the "Item Lists" node limits the result to just two reviews (I usually write my reviews immediately after watching a film, so the chances that there's more than two within an hour are very slim), they are then checked for duplicates and if there's a new one, it's pushed to Ghost.

The result then looks like this:

Screenshot of a filmlog post about "Code Rush": Below my review, and below a divider the text: "This is a post pulled in via Letterboxd, find all of them here (linked to the tag). Reviews are short and sweet and very subjective. I'm not a film-major, folks."
A filmlog post

So here we are. I now have a filmlog, a photolog and a linklog (I hope it's obvious now why I chose to rename the linkblog to linklog).

Some work now for little work in the future

With all this detailing about how I did what, you might be asking yourself: "Isn't that a whole lot of work, especially considering nobody really cares?". And you're right - but also wrong.

I am a rather lazy person. I enjoy not having to do anything at all, and I especially don't care for doing the same work twice. Now, by setting up these automation-workflows, I have caught two flies with one stroke:

  1. I am filling up this blog - which lay more like a reminder of past endeavours in blog writing for so long - with fresh content directly pulled from sources I've filled up anyway.
  2. I am freeing the content that is mine anyway and making it actually mine - and am in the course creating my very own hub on the web (as it should be).

As for the second part of the question: I care, and that, when it comes to your very own place on the web, is the only thing that counts.

Fediverse