Skip to content

Discord bot that uses SubsPlease RSS feed for fetching shows and notifying of them

Notifications You must be signed in to change notification settings

kristianka/anibot

Repository files navigation

anibot

Anibot is a discord bot that notifies user of latest releases from their favourite animes. This bot uses discord.js and data is fetched from SubsPlease RSS feed.

Made with TypeScript, MongoDB and NodeJS.

How to run

  • Visit Discord Developer Portal and create a bot. Choose basic permissions, atleast sending messages. Turn on all the Privileged Gateway Intents options inside "Bot" section.

  • Clone this repository to your machine and run npm i to install dependencies.

  • Create .env file and place your discord tokens there. Example:

DISCORD_TOKEN= ""
CLIENT_ID= ""
GUILD_ID= ""
RELEASE_CHANNEL_ID= ""
DEV_CHANNEL_ID= ""
LOGS_CHANNEL_ID= ""
DB_CONNECTION_STRING= "" // mongodb connection, see below
  • Create a MongoDB Atlas account and create a cluster that has series database and data collection in there. Press connect, select drivers and copy the uri value. Make sure to modify the <password> to be your cluster password.

  • You can list your favourite shows that you want to track to the data collection. Here's a list of airing shows. I recommend connecting with MongoDB compass to the datanase. The schema is the following:

{
  "_id": {
    "$oid": "64396564a26ce63fc6fc90ca"
  },
  "name": "Vinland Saga S2",
  "latestEpisode": ""
}

where id will be generated automatically. You need to create name and latestEpisode keys, you can leave latestEpisode empty. Both are strings.

  • Build the files with the command tsc. JavaScript files will be created to /dist folder.

  • Run node dist/index.js inside the repository.

  • Done!

Note! Make sure to type names correctly, use rōmaji version of names. Season in title are shortened, like "Season 2" to "S2".

Screenshots

Click to see screenshots

Bot sending notification of a new release. Runs every five minutes automatically in the background.

Picture of the bot sending a new release message

/latest command which responds with ten latest releases

image

FAQ

My timezone or time formatting is wrong!

Modify the these variables in functions/fetchAPI.ts to your liking:

const timezone = "Europe/Helsinki";
const timeFormat = "en-FI";

The bot doesn't work!

Have you made sure that:

  • you added the credentials to .env
  • mongodb connection is working
  • mongodb schema is correct?

Suggestions

Create an issue! Feel free to fork this and improve it or modify it to your liking.

About

Discord bot that uses SubsPlease RSS feed for fetching shows and notifying of them

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published