Currently the bot uses five different APIs to get the jokes, memes and pickup lines.
One of which is the JokeAPI used to get the random jokes.
This API is a highly customizable API, open source and free to use for everyone.
It allows you to fetch random jokes from a variety of categories, such as programming
, misc
, dark
, pun
, spooky
and christmas
, making it the perfect API for this bot.
The second API used is a Reddit API that returns Reddit posts in JSON format. This is a basic API that I made myself, you can find it on GitHub. This API is intended to be hosted locally, so there is no remote URL to use.
The third API used is the pickup-lines-api. This is a free API that can be used to get random pickup lines. The only downside is that it requires an API key, which you can get for free by signing up on RapidAPI.
The fourth API used is the Evil Insult Generator. This API is used by the !insult
command to get a random insult.
The last API used is the complimentr. This API is used by the !compliment
command to get a random insult.
Underneath you will find a list of commands that the bot can perform.
Command | Description | Usage |
---|---|---|
help |
Shows a help message | !help |
ping |
Show the bot latency | !ping |
stats |
Show the bot's statistics | !stats |
joke |
Shows a random joke | !joke |
category |
Shows a random joke from a specific category | !category <category> Categories:
|
pickup-line |
Shows a random pickup line | !pickup-line |
insult |
Shows a random insult, or insults a mentioned user | !insult !insult @username |
compliment |
Shows a random compliment, or compliments a mentioned user | !compliment !compliment @username |
pp-size |
Shows the size of a mentioned user's "pp" (or yours if no user is mentioned) | !pp-size !pp-size @user |
how-gay |
Shows the level of gayness of a mentioned user (or yours if no user is mentioned) | !how-gay !how-gay @usern |
lovemeter |
Shows the love level between two mentioned users, or between you and a mentioned user | !lovemeter @user1 @user2 !lovemeter @user |
8ball |
Ask the magic 8-ball a question | !8ball <question> |
meme |
Shows a random meme from Reddit | !meme |
Note: The default prefix is a !
, this can be changed within the config.json
file.
Do you have a recommendation for a new command? Feel free to submit them here.
There are two ways to use the bot, either by running it directly on your machine or by running it within a Docker container. Regardless of the method you choose, you'll need to follow these initial steps:
- Clone the repository by running the following command in your terminal:
$ git clone https://github.com/AntonVanAssche/joke-bot.git
$ cd joke-bot
- Update the
config.json
file, located within the source directory (src/
), with your bot token. You can find the token in the Bot Settings of your bot under the Bot tab. If you wish to change the prefix of the bot, you can do so in the config.json file. This is by default !.
{
"prefix": "---YOUR-BOT-PREFIX---",
"token": "---PLACE-YOUR-TOKEN-HERE---"
}
- Since the
pickup-lines-api
requires an API key, you will have to create a.env
file in the root directory of the project. This file will contain the API key. You can get the API key by signing up on RapidAPI.
$ echo "RAPID_API_TOKEN='<YOUR-API-TOKEN>'" > ./src/.env
If you choose to run the bot directly, follow these additional steps:
- Install the dependencies by running the following command in your terminal:
$ npm install
- Start the bot by running the following command in your terminal:
$ cd src/
$ node ./index.js
If you choose to run the bot within a Docker container, follow these additional steps:
- Build the Docker image by running the following command in your terminal:
$ docker run joke-bot # Run the bot in the foreground.
$ docker run -d joke-bot # Run the bot in the background.
That's it! You can now use the bot by sending a message to the bot with the !joke
command.
If you encountered any issues while installing the bot, feel free to report them.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag enhancement
.
Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
See CONTRIBUTING.md
for more information.
This project isn't perfect, therefore suggestions/improvements are always welcome!