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:
Yechiel KI don't know who needs this, but here's a hug.
You deserve it!15:31 PM - 12 Feb 2020
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!
I'm no stranger to Twitter bots, having written one some time ago:
Creating my first Twitter Bot
Yechiel Kalmenson ・ Dec 26 '17 ・ 3 min read
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
Emily Cain (@data_bae) ・ Jun 24 '18 ・ 6 min read
And by the end of the weekend, @ICanHazHugzPlz was born!
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):
achasveachas / hug-bot
A twitter bot that replies to mentions with a hug.
Hug Bot is a Twitter bot written in Python that tweets a random hug gif every few hours.
You can follow @ICanHazHugzPlz on Twitter for all your huggy needs.
This bot is licensed under the MIT license.
Bug reports and pull requests are welcome on GitHub at https://github.com/achasveachas/hug-bot/issues or by email to email@example.com.
This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
Feel free to get in touch with me if you have any suggestions or comments at yechiel.me
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!
Top comments (12)
"I just took a DNA tet, turns out I'm 100% hugs!" should be DNA test. Very cool project!
Lol whoops, good catch! I'll fix it tonight.
But you can submit a PR before I get around to it if you'd like 😊
I used @emcain ’s tutorial too! I love your bot! Hugs for making a hugs bot!!! 🤗 🤗
I know! I got it from your README 😂
Hugs back! 🤗
Oh! The benefits of documentation. Glad I could help. 🤗
Never underestimate the power of a great README!
I love this entirely too much!
But is it really too much? 🤗
Haha this is awesome!
I'm so glad I could help 💖 your hug bot is lovely!
Thank you! 🤗