discord-rss-bot
A Discord bot that delivers RSS feed updates in real-time to your servers.
Enpowered by Feed Reader. Inspired by FeedCord.
Features
- 🔄 Automated RSS Feed Updates – Periodic updates with configurable intervals.
- 📜 Enhanced Message Formatting – Attempts to convert HTML to Markdown, truncates long summaries without breaking formatting.
- 🖼️ Image & Media Support – Uses the first image as an embed cover for rich Discord embeds.
- ⚡ Efficient & Scalable – Optimized with async processing and concurrent execution.
- 🐋 Dockerized for Easy Deployment – Run anywhere with minimal setup (
linux/amd64&linux/arm64supported).
Configuration
- Create a Discord server. See also How do I create a server?
- Create a Discord bot account and get its token. See also Creating a bot account
- Add the bot to your Discord server & channels.
The bot is configured via a YAML file. Here is an example:
db_path: data/rss.sqlite3 # path to the database
feeds:
# Releases of this project
- feed_url: https://github.com/VioletCranberry/discord-rss-bot/releases.atom
channel_id: 1336277462<redacted>
update_interval: 30
# Hacker news daily (Kudos to Colin Percival)
- feed_url: https://www.daemonology.net/hn-daily/index.rss
channel_id: 1334640995<redacted>
update_interval: 30 # optional, defaults to 60 minutes if not provided
# Ask hacker news weekly (Kudos to Colin Percival)
- feed_url: https://www.daemonology.net/hn-weekly-ask/index.rss
channel_id: 1335575467<redacted>
update_interval: 30
# Github - trending (all languages) daily
- feed_url: https://mshibanami.github.io/GitHubTrendingRSS/daily/all.xml
channel_id: 1336324646<redacted>
update_interval: 30
# Github - trending (all languages) weekly
- feed_url: https://mshibanami.github.io/GitHubTrendingRSS/weekly/all.xml
channel_id: 1336383236<redacted>
update_interval: 30
# Hacker News Best - top vote getters from the past few days
- feed_url: https://hnrss.org/best
channel_id: 1335577844<redacted>
update_interval: 30
...
Pypi package
pip install discord-rss-bot
mkdir data && python -m discord_rss_bot --token ${DISCORD_BOT_TOKEN} --config config.yaml
Docker run
docker run \
-v $(pwd)/config.yaml:/app/config.yaml \
-v $(pwd)/data:/app/data \
ghcr.io/violetcranberry/discord-rss-bot:latest --token ${DISCORD_BOT_TOKEN}
Docker compose
discord-rss-bot:
# Note: pin the image version to a specific release tag for production use
image: ghcr.io/violetcranberry/discord-rss-bot:latest
container_name: discord-rss-bot
environment:
- DISCORD_BOT_TOKEN=${DISCORD_BOT_TOKEN}
volumes:
- ./config.yaml:/app/config.yaml
- ./data:/app/data
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "--fail", "http://localhost:8080/healthz"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
# command:
# - "--token=${DISCORD_BOT_TOKEN}"
# - "--debug"
# - "--config=/app/config.yaml"
Local development
git clone https://github.com/VioletCranberry/discord-rss-bot.git && cd discord-rss-bot
poetry install --with dev
poetry run python -m discord_rss_bot <args>
poetry run pylint --verbose discord_rss_bot
poetry run black --verbose discord_rss_bot
Metadata
Release files for discord-rss-bot 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| discord_rss_bot-0.2.1.tar.gz | 11.2 kB | Without provenance | Details for discord_rss_bot-0.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| discord_rss_bot-0.2.1-py3-none-any.whl | Python 3 | none | any | Details for discord_rss_bot-0.2.1-py3-none-any.whl |
Total release size: 23.7 kB
Release files / discord_rss_bot-0.2.1.tar.gz
| Download URL | discord_rss_bot-0.2.1.tar.gz |
|---|---|
| Size | 11.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
95d860dfcec21aeef9cdb7d1af0b6796d5c7eaf94958005eee5067ac5fefe8d5
|
|
BLAKE2b-256 checksum How to use checksums |
ec1a841cf1da2904a6e89db78ae09f9d93d91e9f07464ec0cad7618ccf9e5643
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.0.1 CPython/3.13.2 Linux/6.8.0-1021-azure
|
Release files / discord_rss_bot-0.2.1-py3-none-any.whl
| Download URL | discord_rss_bot-0.2.1-py3-none-any.whl |
|---|---|
| Size | 12.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1f83e1cc794f9cb6fecc58e2e3bd028ff570b3ce05bababb6fadd641e021200e
|
|
BLAKE2b-256 checksum How to use checksums |
870c12a0a2759a5da5e36b29ff9aeb41d76eec21de4856195c625a7b23358d90
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.0.1 CPython/3.13.2 Linux/6.8.0-1021-azure
|
Security for discord-rss-bot 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.