Skip to content
Discord bot to post links from an RSS feed into a channel
TypeScript Dockerfile JavaScript
Branch: master
Clone or download

README.md

Build status Health status

Discord RSS fetcher

A Discord bot to post the latest articles from an RSS feed into a channel, optionally mentioning a role when posting

Features

  • Multiple feeds per server
  • Commands to configure feeds in different channels
  • Optional role to be mentioned when a feed article is posted
  • Detects if a user "beats me to it" by posting the URL before the bot can (useful for slow feeds)
  • Specific handling for YouTube links, detects both long and short YouTube URLs

Use cases

  • You want to stay up to date with an RSS feed
  • You want your Discord server to be notified of events via an RSS feed

Getting started

Invite

Setup

Use @RSS Fetcher help to view available commands

Admin only These commands require administrator permission in the Discord server

  • @RSS Fetcher add-feed <url> <#channel> [@role] to add a new feed
  • @RSS Fetcher view-feeds to view configured feeds for this server
  • @RSS Fetcher remove-feed <feed-id> to remove a feed by it's ID (found using the view-feeds command)

Example: @RSS Fetcher add-feed http://lorem-rss.herokuapp.com/feed?unit=second&interval=30 #rss-posts @subscribers

Permissions

The bot requires certain permissions, which you are prompted for on the invite screen. Each permission has a reason for being required, explained below.

Permission Reason
Read messages Detect when you use commands
Send messages Respond when you use commands; post new RSS links
Read message history Check if any new RSS links have been posted during downtime
Embed links Responses to 'help' requests use message embeds for nice formatting

Self hosting

Manually

  1. Install Node.js v10
  2. Clone the repository, or download and extract the zip file (preferrably from the release page)
  3. Create a new file config.json from a copy of config.sample.json; paste your bot token in the token field (between the quotes)
  4. Run npm run full-start to compile and run the bot
    • If you see yellow 'WARN' messages about peer dependencies, you can safely ignore these

Git users

If you cloned the repository with git, make sure you git reset --hard vX.Y to a specific version, as latest master isn't always production ready!

Docker

docker run [OPTIONS] benji7425/discord-rss-fetcher

Options

  • To gain access to the log files
    -v /path/to/logs:/app/logs
  • To provide a token (for the default configuration)
    -e TOKEN="your-token-here"
  • To maintain a persistent copy of the local database (for the default configuration)
    -v /path/to/data:/app/nedb-data
  • To provide your own configuration
    -v /path/to/config.json:/app/config.json

Notes

  • Due to limitations with volume mounting cross-OS you cannost use a Windows host with the inbuilt NeDB database
  • View the image on Docker Hub here

Database

  • Out of the box the project uses NeDB as a local database, storing the data in ./nedb-data
  • Both NeDB and MongoDB are supported
  • Edit the connection string in config.json or by setting the DB_STRING environment variable

Need help?

I am available for contact via my support Discord server. I will always do my best to respond, however I am often busy so can't always be available right away, and as this is a free service I may not always be able to resolve your query.

Built With

Versioning

SemVer is used for versioning; view available versions on the tags page

License

This project is licensed under the MIT License - see the LICENSE file for details

You can’t perform that action at this time.