Let me start by saying I am thankful that feed2toot exists. It's a handy tool and I know I couldn't have made it myself, so thank you Carl for making it!

But getting it up and running the way I needed it to has been a wild ride for me.

I remember struggling getting it installed the first time I set it up to take the rss feed from USS Joshua Norton and post to our mastodon account whenever we released a new log. Most of the struggle was probably just a bad combination of my limited experience, and Dreamhost's managed VPS setup limiting what I have control over in exchange for them being able to keep everything updated and working for me. I got it in the end, but then getting the credentials working proved a new hurdle once I got it installed. This turned out to be a limitation of the library that was used to communicate with mastodon not providing a way to generate login credentials when one has 2fa turned on. Thankfully I wasn't the first person to run into this issue, and someone else had found a work around to create the authentication files manually using the api feature to generate keys in the user settings. Cool, I got that up and running and it's been working happily for a while now other than Dreamhost emailing me every time it posts with some BeautifulSoup error message. I mostly ignore that since it doesn't actually mean anything is wrong, and it tells me that the thing has posted correctly.

Then I decided to ditch WordPress after the drama with Automattic selling user content to AI/LLM from tumblr and WordPress.com (and may or may not have done so with content for JetPack users on self hosted WP installs), I figured that feed2toot was the perfect solution to keep automagic posting to Fedi when I migrated to Grav. That turned into a bit of a wild ride.

First hurdle. I could not get feed2toot to install at all. It was giving me errors about the version of some file, and Dreamhost was like "if you want to install a custom version..." and I didn't want to install a custom version, I wanted the version they installed and provided to work with what I was trying to do. Well, turned out that for some reason I can't remember, past me had put something into one of my config files on my server to look for a specific version of whatever it was calling for, and that was now out of date. Once I cleared that up, install went swimmingly. Hooray, all good now, right? lol. Come on now, this is me we're talking about.

I had to look up to remind myself how to get around the 2fa issue, because it'd been long enough since I set things up last time I couldn't remember what I did... and there was no guarantee it would work anyway. feed2toot was designed for Mastodon specifically, using a Mastodon specific library, and my main Fedi account was on an instance running Sharkey. Thankfully once I found the work around I'd used to set up the Emperor's account, it worked just fine for Sharkey as well.

Next came getting used to the differences in Grav compared to what I'd been used to on WordPress. The first post I wrote after migration I'd saved unpublished, then once I was done writing it, I set a publish date/time and trusted it to do its thing. Oops, no, because I'd just unchecked the published: no in the admin gui, the system didn't detect correctly that it could publish the thing once it hit the date time. So I ended up manually having to fix that after the planned release time passed and nothing showed up. Ooops. Live and learn, right?

Then came the hashtags. I'd decided to just keep all my hashtags lowercase on my site, because Grav was case sensitive with its taxonomy: Linux and linux were two different tags, as far as it was concerned. Okay, cool, consistency is good so let's standardize on all lowercase. Except when feed2toot posted to fedi, it pulled the spaces out of the hashtags and my multi word tags were all smooshed together in lowercase and that was inaccessible. So I spend the time going through and editing all my tags so everything was Camel Case, so that when feed2toot posted them, they became #CamelCase. Good.

Everything fixed now, right? I kept tweaking and adjusting things on the site as I learned more about Grav, then I posted a new thing here on the blog. All good, right? I'd made sure hashtags would post correctly, I figured out what settings I needed to set how to ensure the auto-publish worked as I expected. The post showed up on the site, good good, but I waited for the hourly cron job to run feed2toot and nothing happened. I scratched my head, looked at the site, looked at the rss feed. Everything looked fine there. Checked the cron scheduling in Dreamhost's control panel to make sure the job was scheduled to run. It was. It was getting close to bedtime for me as I'm trying to figure it out, so I threw in the hat for the night, went to bed and came back to it in the morning.

The problem was a PEBCAK (Problem exists between chair and keyboard) — when I was adjusting settings in Grav, I turned off the setting that added a language code into the url. I didn't need it because my site was a personal blog that was only ever going to be in English. English is the only language I'm fluent in. I took German in high school, spent a month in Germany even, but my German is atrocious. I get excited listening to Eisbrecher's cover of Eisbär because the lyrics are simple enough I can actually follow them and understand them. And let's not even talk about how bad my attempts to learn Klingon have gone. This blog was 100% English, and there was no reason to include the en in the url as a result. Except when I turned that off, I forgot to update feed2toot's config to pull that out of the feed url, so it was polling the feed url when the cron job ran, finding nothing, and either Dreamhost wasn't sending me the error message (you'd think it would have returned a 404) or feed2toot isn't configured to return that error message for whatever reason. Easily fixed once I realized the problem, the thing posts to Fedi... everything looked good, except now, where were my hashtags?

I manually edit the post to add them in, and I'm just scratching my head. feed2toot included the tag variable in the setting for what to include in the post, the tags were on the entry on the site. So why didn't they post?

This one took me a hot minute to figure out, but I am pleased I think I have. It was a mixture of things:

  1. feed2toot has a setting so you can tell it what the toot/post character limit is for your instance. As Mastodon's default is 500 characters, that's what feed2toot's default is. ibe.social's limit is 3k, but since I hadn't told feed2toot that, it was operating on the assumption that the character limit was 500 still.
  2. Grav's supposed to just take the first ~300 characters of a post and treat it as the summary. For whatever reason, the summary feed2toot picked up from the rss feed was returning more than 300 characters for the summary, so it just filled the post until it thought it ran out of characters. I'd set my variables up to put the post title, the post url, the summary, then the tags... so if it ran out of space in the middle of the summary, of course the tags would get lost.

Everything should be good now though, because I changed feed2toot's settings — It now knows that my instance character limit is 3k, and I removed summary from the post template since I've started setting the description meta tag with a summary anyway, which will display in the url preview card. So, hopefully that's that, and everything is good. I'll post this, wait and see how feed2toot behaves, and hopefully I can move onto new things to worry about.

Previous Post Next Post