The story of u/ObviousReplyBot

02/09/19 - Downvotes, here we go!

Hello reddit!

If you're reading this, you probably found a backlink to my site. Furthermore, I'm going to guess it's from somewhere on Reddit. In that case, hello, Redditor! If you've looked on the comments section of anything with more than 1000 upvotes in the last few days, you might have seen my bot, u/obviousreplybot. You probably hated it, or maybe you thought it was funny. Either way, I'm writing this article.

Let it be understood that this bot was not created out of malice towards the subreddits I replied with, nor was it created out of a desire to troll anyone. Mainly, I wanted to see what would happen, and I was not disappointed.

The Beginning

On Reddit, there is a subreddit called r/thirdsub, a subreddit that essentially just replies whenever there is a chain of multiple subreddits. Since its inception, r/thirdsub has become the laughingstock of Reddit. Subreddits like r/ShootingFishInABarrel make fun of how easy it is to reply with r/thirdsub, and popular instances get replies asking them to edit the screenshot when posting it to the actual r/thirdsub.

Now somebody, somewhere, thought: this sub is such an automatic reply, I can make a bot do it! Subreddits usually allow bots to automatically do their work, usually having useful functions like previewing subreddits. Replying to every subreddit chain with r/thirdsub was not that. Nonetheless, the u/thirdsub_bot made a splash.

Another incident that occured: there's a subreddit, making fun of replies like r/thirdsub, called r/everyfuckingthread. Somebody, somewhere, thought it would be funny to link to r/everyfuckingthread in every actual fucking thread. And so, EFTBot was created. It got banned almost immediately from almost everywhere. but it had a good run.

I thought recently that r/thirdsub isn't the only automatic reply. There are also subs like r/TwentyCharacterLimit, which is automatically replied when a fake subreddit name exceeds the 21-character limit on subreddit names. I'd already made a news bot for GNU social/Mastodon (albeit I used someone else's code), so how hard could it be? I decided to make a bot that covered as many of these cases as I could.

Let's make a bot!

To start with, I created the accound u/obviousreplybot and an API account to go along with it. Next, I created the subreddit r/ivanastantest so as to avoid spamming subreddits (until I launched, that is). Last, I programmed the bot, based on the LMGTFY bot's source code. I started with r/TwentyCharacterLimit, then r/SubsYouFellFor, then r/itswooooshwith4os. It worked pretty smoothly so I started testing it on r/memes.

I realised I forgot to inhibit duplicate replies, so I added that feature, thankfully before unleashing it on r/all. The rate limiting on reddit for accounts with only 1 karma was oddly useful in testing since it helped me avoid making too many comments during my test.

Another issue I ran into was that determining when to reply was much harder than I thought. I thought that r/TwentyCharacterLimit would work on any post containing "r/" and more than 23 characters, but then there are subreddits in sentences, subreddit names in links, links to individual posts, and people who use "/r/" rather than "r/".

The final version of the bot also supported r/thirdsub among other things, and it worked by checking randomly sorted comments the top 100 posts of r/all (later the top 200 posts of r/all) and replying to them when certain cases were detected. As I added features, the bot's code became spaghetti code, and I really don't like how it turned out in that respect.

The Fallout

So I released the bot into the wild. For a while there were numerous bugs I had to deal with but I fixed them quickly. I also added later on random descriptions for posts, to make it more interesting. Most people thought it was cool, and upvoted my description post or said "Good bot."

Eventually r/ShootingFishInABarrel and r/EveryFuckingThread users started to catch on, and public opinion turned against the bot. I was mostly able to ignore the negative messages me and my bot received. I got a few feature requests, like adding "Perfectly balanced as all things should be." I was planning on making posts on r/thirdsub when I got "put me in the screenshot" requests for my bot, but the r/thirdsub community had me covered. You can't comment once every 10 minutes on a post on the front page without getting noticed.

I moved the bot from my laptop to my server, where I realized it never emptied its memory. I fixed that bug in the hackiest way possible, by killing the bot every twelve minutes and restarting it, occasionally rebooting the server...

I realized the "Perfectly balanced" feature would spam a person with "As all things should be," and accidentally replied to u/Obsidian2289 four times before I found the bug (if you're reading this, I'm so sorry).

One of the most spectacular moments was when the bot - not my account, the bot account - was invited to moderate r/TitansTV, a DC subreddit, and received full permissions! Yes, that actually happened. Check the moderator list!

The end

r/funny was the first subreddit to ban my bot, followed by r/MurderedByWords. Both at least claimed to not allow bots. The first subreddits to ban me despite allowing bots were r/natureismetal and r/gifs. Furthermore, in subreddits where the bot was not banned, occasionally its posts were removed.

r/SubsYouFellFor requested that it stop linking to them (which I did). This for a time significantly reduced how often the bot replied.

I decided that I'd stop the bot when it started replying at a less-than-hourly frequency. However, some of my bans actually seemed to increase the rate at which my bot replied, probably because it was quicker to process comments if the bot can't reply to them and is forced to reset its loop.

Two days after releasing the bot into the wild, I was getting a bit bored of haing a bot spam my own inbox by linking to my account across Reddit, so I killed the bot program on my server and removed the restart script. It was very fun to watch the reaction of most of Reddit, but all good things must come to an end.

The future

I might make another bot again in the future. It probably won't be a meme bot like this one, since this bot was the ultimate in that.

Maybe I could make an html2text bot - that is, a bot that, when summoned, creates a reddit post from a link. Maybe I could make a bot that, when summoned, plays Colossal Cave Adventure. There's already such a bot on Twitter. It sounds like a fun challenge to make one on Reddit.

Actually, speaking of Twitter, there's a Python library for that too! Maybe I could make a new Twitter bot. I wouldn't be able to do the low-effort memes of Twitter (like "Twitter for Android") since that is against Twitter's rules (not just against etiquette as on Reddit). But Twitter does allow bots, so it's something to think about.

Maybe obviousreplybot will come back if I ever feel like making it come back. That would be fun.

I think, though, that I'll just focus on website design and development and see where that takes me.

If you want to see the source code, please tell me and I might post it on GitLab in the public domain. Fair warning, though, it's a mess and should not be used as a template for your own bot. If you want to make a bot, I recommend starting with the LMGTFY bot instead.

Oh, and check out the two creators I recommended with my bot - C418 and Hbomberguy.