2 minute read

Hey all!

I know I haven’t posted in a while, but after a long break I finally had a free weekend and was able to work on a side project (my first one in over a year! Don’t believe the gatekeepers, you can have a successful career without side projects!)

It all started a few weeks ago when I was feeling down and felt like I could really use a hug.

Not being close to anyone with whom I’m friends on a hugging basis, I did the next best thing and turned to Twitter:

Sometime later, I was tweeting with a friend who was feeling down, and they mentioned that they could use a hug as well. I immediately sent them a (virtual) hug as well. And the idea came up for a bot that would help people feeling down by sending hugs at them!

a cat hugging her teddy bear

I’m no stranger to Twitter bots, having written one some time ago:

Creating My First Twitter Bot

This time I decided to write one in Python.

Python has a great library for interacting with Twitter called tweepy, and even a library around Giphy that makes things like getting a random gif of a hug pretty straightforward!

Between those two libraries, I didn’t have to write much code on my own. The whole bot is about 35 lines of code!

I followed this dev.to post by @emcain for instructions on how to get my bot set up on Heroku: How to Set Up a Twitter Bot with Python and Heroku

And by the end of the weekend, @ICanHazHugzPlz was born!

a rabbit saying "do you need a hug? Have one! Maybe you do even if you don't think so"

Scope Reduction

Of course, no project comes out the way you expect it.

I had initially envisioned that the bot would reply to people asking it for hugs with a gif of a hug.

It turns out that to implement that, I would have to work out a queue that could keep track of which tweets the bot already replied to. That queue would need to maintain state between restarts; otherwise, the bot would keep spamming anyone who tweeted at it every time the script restarts (multiple times a day on Heroku’s free dyno), as my bots earliest followers found out the hard way (sorry!!!)

I wasn’t planning on spending more than a weekend on the project, so in the end, I settled on a bot that tweets a hug at the world every few hours.

Show Me The Code!

If you would like to take a look at the code for the bot, you’ll find it here (including the failed implementation of the replying version of the bot on a separate branch):

GitHub: achasveachas/hug-bot

And of course, if you’d like to bless your Twitter timeline with wholesome hugs, please give my bot a follow at @ICanHazHugzPlz!

Until next time!

Rory Gilmore from Gilmore Girls giving a hug

Updated: