Back when I was comparing social media archives, I considered resurrecting my old LOLspam project as a Mastodon bot. I never quite got around to it, partly because I was able to do most of what I wanted to automate using IFTTT, so I stopped investigating that last 5%.

Last night, I threw together a quick and dirty bot to post a random item from a text file in about 20 minutes.

Then I spent three hours going through the Twitter archive for @LOL_Spam, pulling out jokes that are too dated or cringeworthy. (I hope I didn’t miss any. It was midnight by the time I finished, and I was really tired!)

This morning I modified the script to take a second file as a queue for new items.

  • I can add new items to the queue file as I find them.
  • It’ll post from the queue on a schedule (using cron).
  • When it uses up the queue, it returns to posting random posts from the archive.

If you’re interested in funny/odd spam subjects (and you’re OK with swearing and occasional lewdness), check out @LOLspam@BotsIn.Space. You can follow from any Mastodon or other Fediverse account.

The script itself is called fedbotrandom. I wrote it in Perl, using text files, so I could just put it in cron on any *nix box instead of worrying about language/database support or installing a runtime or DB engine. I’ve made it really simple on purpose, and while I do plan on writing some better error handling when I have time, it’s already more complex than I wanted it to be!

I have mixed feelings on Facebook closing down automated posts to personal* profiles. It might cut down on spam, and it will lead to better descriptions on link posts, but it also locks you further into their silo.

You can still write elsewhere and link back to it on Facebook, but you can’t use WordPress Publicize or IFTTT to post it, or Buffer to schedule it. You have to do it manually, which adds more friction, and you can’t time-shift it. I used to spread out look-at-this-cool-link posts using Buffer, and queue them up from Pocket while offline, but I can’t do that anymore.

If you want your Facebook audience to see your words or photos, it nudges you to maybe just post on Facebook to begin with (never mind that you want its main home to be somewhere you have more control). And it’s another way for them to get you back onto the site so they can try to keep you there for another 15 minutes, see some more ads, and generate more value content for Facebook.

Then again, I can’t help looking at it in terms of the debate over cross-posting from Twitter to Mastodon. There’s an argument that if you’re not actually on the platform, you’re not contributing to it. And while that debate tends to focus on auto-posts from a specific mismatched (and hostile) community, I think it’s fair to consider the broader context that if you’re not at least following up, you’re not really participating. (I’m especially guilty of that with my cross-posts to Tumblr.)

Though I suppose it matters more to a smaller community like the Fediverse than to something as massive as Facebook.

*Pages and groups can still accept automatic posts through the API, but those supposedly represent a business, or an organization, or a public persona rather than a “real” person.

Expanded from a Mastodon post on Wandering.Shop.

You can broadly categorize social networks, or really any communication software, based on four criteria:

  1. Are replies subordinate to the original post (Facebook, Instagram, blog comments) or top-level posts but linked (Twitter, Mastodon, Tumblr, blogs with pingbacks/trackbacks/webmentions)?
  2. Do you primarily follow people/organizations (all the above) or topics (Reddit, message boards)?
  3. Is the default interaction one-on-one (email, Skype) or broadcast (most of what we call “social media” these days)?
  4. Is it a single service (Facebook, Twitter), a collection of isolated services (message boards), or a collection of interacting services (email, the Fediverse, blogs to some extent)?

More than whether the content is likely to be short text, long text, a photo, a video, or a link, these questions define the types of connections and types of interactions that people are going to have.