A combination of boredom, inspiration, and a desire to keep my programming skills in check has led me to code a series of Twitter bots. These are Twitter accounts which automatically tweet every so often. They run on my personal computer, which is always turned on except when I lose power or something, so they don’t “go down” very often.
I currently have nine Twitter bots, and they are all coded in Perl (unless noted otherwise).
Content Type: Memetic crowdsourced humor
Posting Frequency: Up to one tweet per hour
Description: Foul Bachelor Frog is one of my favorite memes of all time, and one of the few memes which I actually enjoy. It is yet another one of those “modified Advice Dog” memes, featuring an image with a two-color starburst background, and two lines of text (one at the top, one at the bottom). However, instead of giving questionable advice like Advice Dog, the Foul Bachelor Frog describes activities which may be enjoyed by a stereotypical male bachelor. They tend to be, well, quite foul. One common theme is that the Foul Bachelor Frog likes to “blast things with piss” for some reason. Anyway, this bot reads the Foul Bachelor Frog page at Meme Generator, grabs the text of the latest user-created Foul Bachelor Frog image, and posts it as a tweet with the #FoulBachelorFrog hashtag. If it’s not able to do this for some reason (such as the website being down, or the text being too long), it simply does nothing, and tries again the next time it triggers.
Content Type: Humorously inappropriate retweets
Posting Frequency: Up to five tweets per hour
Bonus: Sodomy Bot also has a tumblr feed and a daily newspaper! Be sure to check them out!
Description: I really don’t know what I was thinking when I made this bot. It definitely elicits strong reactions from the people it retweets, though. This is probably due to the very nature of what it’s doing, which is pointing out to the world the fact that the person mentioned sodomy. The fact that the bot’s icon features Pedophile Mario probably doesn’t help, either, not to mention the fact that it adds the #sodomy hashtag to everything it tweets, and proudly proclaims “I love sodomy!” before every message it posts. Anyway, Sodomy Bot uses the Twitter Search API to perform searches for “sodomy” and several similar words. It compiles all of the tweets into a list, shuffles the list up, and keeps popping tweets off the top of the list and attempting to tweet them until it has successfully posted five retweets, or until the entire list is exhausted, whichever comes first. To prevent the bot from seeming like it is “picking” on any particular user, it maintains a list of users which it has retweeted, and it will never tweet at anybody on the list. This list is purged once it exceeds 10,000 users, so it may tweet at the same person twice, but not for a very long time! It also will not tweet at itself, and it will not retweet a message which mentions the bot by name.
Content Type: 100% pure derpiness
Posting Frequency: Up to five responses per hour, plus up to one random tweet per hour
Description: One day, I asked my Twitter followers to give me an idea for a new bot to make. Somebody said “Make a Bidoof bot!” I thought it was a wonderful idea, so I went ahead and did it. I really wish I remember who gave me the idea. Originally, Bidoof Bot only posted random tweets in Pokémon-style “Bidoof Language”, consisting of it saying randomized versions of “Bidoof”, which are generated by a context-free grammar. Basically, each tweet consists of one to three “Bidoof Sentences”, each of which consists of “doof” either repeated one to three times or “doof” with a random amount of o’s in the middle, and randomly begins with “bi” or not. Each sentence can end with random punctuation, or no punctuation, and in some random cases the word will be capitalized to make it look like it’s yelling. At first this was all it did, and it tweeted one to five times per hour. I eventually toned this down to once per hour. I then came up with the idea of making him tweet at people who use the word “Bidoof” in their tweets. I use the Twitter Search API to search for mentions of Bidoof, and have Bidoof tweet at them with a random Bidoof tweet. Similar to Sodomy Bot, this bot keeps a list of who it has tweeted at and will not tweet at the same person twice; however, this list is reset after only 100 tweets, so it will occasionally tweet at the same person twice, just never twice in a row and there will always be a good deal of time before it tweets at somebody it’s already tweeted at.
Content Type: Useless but well-intentioned advice
Posting Frequency: Up to five tweets per hour
Somebody on my Twitter feed commented that they wanted to make a bot which searches for “kill myself” and tweets back at the users with “DO IT!!!” So, I decided to do just that… but before actually turning the bot on, I decided that this would probably not be a good idea for several reasons. So, I renamed the bot and re-purposed it as a bot which searches for “kill myself” (as a phrase), and tweets at the user with “Don’t do it!
” Of all the bots I’ve written, this one generates the highest number of responses from the people it tweets at, and most of the responses are in the form of “I was just kidding” with the occasional “shut up” thrown in for good measure. I doubt that this bot will actually convince anyone seriously contemplating suicide to not go through with it… but I don’t think it will have the opposite effect either, and that’s just fine with me.
Content Type: Quinquaginta Sex
Posting Frequency: Up to five tweets per hour
In a scene from the television show “Futurama”, a deranged robot named Roberto asks Fry to think of a number from one to ten, or he’ll kill him. Fry, in his nervousness, responds with fifty-six. This drives Roberto crazy, and he responds “Fifty-six? Fifty-six?! Now that’s all I can think about!” This has become somewhat of a meme in the Multipurpose Spam community. Anyway, this bot simply uses the Twitter Search API to look for “fifty-six” (not 56, they have to actually spell it out) and tweets at them with Roberto’s aforementioned line. What can I say? I find it amusing!
Content Type: Prehistoric philosophy
Posting Frequency: Up to one tweet per hour
Deep questions… this bot is all about Philosoraptor, and he’s all about the deep questions, man. Well, for the most part. Lots of the time it just spouts random nonsense, sometimes not even in English. In terms of programming, this is just a clone of the Foul Bachelor Frog bot, except it looks at the Philosoraptor page on Meme Generator instead of the Foul Bachelor Frog page, grabbing the latest Philosoraptor quote and adding the #Philosoraptor hashtag to the quote before attempting to tweet it.
Content Type: Abuse
Posting Frequency: Up to five responses per hour, plus up to one random tweet per hour
This is a line-for-line clone of Bidoof Bot, with two important differences: it is Pikachu, so it spouts off random Pika-speak; and it is fat, so about 2/3 of the time it will make a comment about eating, or wanting to eat, or looking for food. It may even check its blood sugar level! (Yes, it’s diabetic.)
Content Type: GODSPEEDSPIDERMAN!!!
Posting Frequency: Up to five responses per hour, plus up to one random tweet per hour
I made this bot as a gift for my good friend Tatsudoshi. It is a line-for-line clone of Bidoof Bot, except that it is much simpler: it responds to tweets of “Spider-Man” with “GODSPEEDSPIDERMAN!!!” It also occasionally tweets one of a very small number of random Green Goblin quotes. Hey, we find it amusing, and that’s what matters!
Content Type: The Fucking Moon Man
Posting Frequency: One random tweet per hour, plus unlimited real-time responses to anyone who tweets directly at him
He’s back, bitches!
I also have a small army of simple “retweet” bots (I’ve honestly lost track of how many are out there in the wild). Want to make one of your own? It’s very simple, and doesn’t even require any programming skills! Even better, the bots run out there on the Cloud, not on your personal computer – so they never go down, and don’t take up resources on your machine! Check out this little tutorial I whipped up.










