Project: Habitica Upvote Bot

Summary: The Habitica Upvote Bot is a Habitica bot that upvotes posts made by Alex a certain amount of times and following defined criteria. Communication between the Alex and the bot will be done on Discord.

Technologies used

The following technologies shall be used in the making of this bot:

Discord Bot Behavior

Sadly, the Habitica API doesn't have an endpoint to fetch messages made by a certain user. This means Alex has to manually inform the bot whenever he sends a message somewhere. The !habitica check command will enable him to do this, used as follows:

!habitica check [group id] [?number of upvotes]

The bot will fetch a list of messages made in that group, find the last one made by Alex and upvote it a certain number of times. The bot shall save the IDs of messages it upvoted in a file.

Habitica Bot Accounts

In order to upvote a post X times, we will need X Habitica accounts. These accounts shall be called “bot” accounts, with upvoting as their only purpose. X is limited to be 15 at maximum.

To prevent the Habitica moderators to catch on, bot rotation shall be put in place. This means we shall have about 25 bot account to use, and the bot will randomly select X bots in that pool to get its job done.

The list of bots will be stored in their own configuration file.