Wolfie’s Wanderings

Chirumer
Newolf Society
Published in
6 min readJul 10, 2021

What in valhowla’s halls is this?

Herein lies the tale of an adorable pup ‘Wolfie’. Wolfie — who takes the avatar of a discord bot — makes it his mission to entertain and be useful to the young and old alike. Come, let’s learn his secrets and workings (yes, he is a he).

How did Wolfie get his adorable appearance?

Adorable Wolfie

It might seem unlikely that such an adorable face could have been the work of a man (or a woman).

Indeed, we don’t know the full origin of this masterpiece ourselves!

Ideally, we would have made Wolfie’s avatar completely from scratch. But having as much experience as a toddler when it comes to graphic designing, that was not an option for us.

A compromise:

Okay, we aren’t capable of designing an avatar from scratch.. how about modifying existing images to the point where it looks and feels as though we’ve made it from scratch?

Much to our chagrin, we failed at even that. We settled on decolourizing an existing stock image. Nevertheless, it is our most proudest decolourize that we have ever applied.

What does Wolfie offer, apart from being adorable?

Offers many things, he does

For this, we may refer to Wolfie’s in-built help manual. To access Wolfie’s help manual, we type the command:

!w help

This gives us an overview of the many things currently available in the bot. For more detailed information on a particular command, we type the command:

!w help <cmd_name>

help for bank command
help for reading command

Wolfie automatically generates the help manual as well as specific help for most of the commands. We believe in quick modifications, it is a principle we kept in mind when building the bot, so this design decision was a natural one.

Let’s say hello to Wolfie

wolfie says hi

You can say hello to wolfie by typing:

!w hi

Alternatively you can use any of the alises mentioned in the help manual:

aliases of hi
wolfie says hi too

This is a demonstration of our aliases feature. We have modeled our command handling to allow for dynamic aliases. Users will be able to customize their own aliases for the bot commands.

This is the second principle that we kept in mind when building the bot: user customizability.

Wolfie is robust

The third principle that we kept in mind when building the bot is robustness. The bot is well equipped to handle any kind of invalid input and internally sets a timeout to any command which expects a response from the user.

Wolfie has the memes

Wolfie supports getting a random meme from the reddit’s ‘ProgrammerHumor’, ‘sciencememes’ and ‘memes’ by default.

The commands ‘programming’ ‘science’ and ‘meme’ are used respectively.

We have modeled our random post handler in a way that it’s possible for users to customize their own commands to get a random post from any subreddit they desire.

So for instance, you can set a command ‘dank’ to load a random post from the ‘dankmemes’ subreddit.

This design choice was made keeping user customizability in mind. Which as was already mentioned, is one of our main principles that we kept in mind when making the bot.

In order to improve latency, rather than fetching the reddit post when the user requests it, the bot internally caches a certain amount of reddit posts from which the posts can be retrieved instantaneously and then refilled automatically at a later stage.

This design choice was made keeping user experience in mind. Our most important principle that we kept in mind when making the bot.

Wolfie rewards all

wolfie bonus

Wolfie encourages users to use bot commands by randomly rewarding users howls to their howling bank account when they are using bot commands.

You can view and utilize your howling bank account balance using the bank command.

Wolfie encourages you to be helpful

user being thanked

Wolfie detects when a user is thanking one or more people by scanning for keywords like ‘thx’ or ‘thanks’. It makes a list of the people being thanked by eliminating bots and users that have been recently thanked. It then asks the user for confirmation.

We know that bots are never perfect, and this is the reason we have added the confirmation dialogue. The confirmation dialogue is deleted if the user reacts with an X or the message times out, so as not to disrupt the conversation in case of a faulty thanks trigger.

This is one of the many features we are adding to encourage users to be more helpful and kind to their peers.

Wolfie has cool commands

here is a reading game which you can invoke with

!w reading

It gives you random excerpts from a list of books and tells you your reading speed at the end, as well as which books you received excerpts from.

As with all the other commands, the feature is very robust in that multiple people can be using the command at the same time. It is also robust in that it assigns a timeout for every message response. It can also load as many paragraphs as the user wants, so the user could load as many paragraphs as he/she may want during a single reading session.

Wolfie has a lot of cool stuff

For an updated list of features and commands available, refer to the command manuals.

A web interface is being made for Wolfie. Along with a web-version of the help manual with more in-depth information, the web interface will also have a dashboard which can be used by server admins and users to customize the bot to their preferences (for eg. the server admin can change the prefix of the bot in his/her server).

Wolfie’s code

Wolfie is written in Python using a discord API wrapper called discord-py. It currently uses MongoDB for database, and is being hosted at Heroku.

--

--