Discord RSS Bot
Bot automatisé qui surveille les flux RSS et publie les mises à jour sur les canaux Discord via webhook. Entièrement configurable avec des flux et des catégories personnalisés. Comprend une gestion des timeouts pour éviter les blocages sur les flux RSS lents.

À propos de Discord RSS Bot
Discord RSS Bot est un bot automatisé qui surveille les flux RSS et publie les mises à jour sur les canaux Discord via des webhooks. Entièrement configurable avec des flux et des catégories personnalisés, il dispose d'une gestion des délais d'attente pour éviter les blocages sur les flux RSS lents.
Fonctionnalités clés
- Surveillance automatique des flux RSS avec des intervalles configurables
- Mise en forme élégante pour Discord avec des emojis de catégorie
- Mise en cache intelligente pour éviter les doublons
- Gestion des délais d'attente pour éviter les blocages sur les flux lents
- Gestion robuste des erreurs pour les problèmes réseau
- Entièrement conteneurisé avec support Docker
- Images pré-construites disponibles sur Docker Hub et GHCR
- Multiplateforme (AMD64, ARM64)
- Configuration flexible - flux universels ou basés sur des catégories
- Plusieurs options de déploiement (Docker, Service Système)
- Journalisation complète et vérifications de santé
- Axé sur la sécurité avec des conteneurs non-root
Guide de démarrage rapide
Utilisation du conteneur pré-construit (recommandé)
Images de conteneur
Des images pré-construites sont disponibles depuis plusieurs registres :
- Docker Hub :
isyuricunha/discord-news-rss-bot:latest|isyuricunha/discord-news-rss-bot:2.0.8 - GitHub Container Registry :
ghcr.io/isyuricunha/discord-news-rss-bot:latest|ghcr.io/isyuricunha/discord-news-rss-bot:2.0.8
Architectures supportées
linux/amd64(x86_64)linux/arm64(ARM64/AArch64)
Versionnage automatique
Le projet utilise un CI/CD automatisé qui :
- Crée automatiquement des tags Git à chaque push vers
main(ex.v2.0.8) - Crée une Release GitHub pour chaque tag
- Utilise le message de commit déclencheur comme titre et corps de la release
- Publie simultanément sur les deux registres
- Maintient la cohérence des versions entre Docker Hub et GHCR
- Met à jour les tags
latestet les versions spécifiques
Options de déploiement
1. Docker Compose standard (avec fichier .env)
2. Variables d'environnement en ligne
3. Image pré-construite (à partir d'un fichier .env)
4. Test avec tous les flux par défaut
Installation en tant que service système
Pour les déploiements en production, vous pouvez installer le bot en tant que service système :
Debian/Ubuntu
Fedora/RHEL/CentOS
Alpine Linux
Windows
Configuration
Variables requises
| Variable | Description |
|---|---|
DISCORD_WEBHOOK_URL | Requis : URL du webhook Discord |
Chemins (recommandés)
| Variable | Défaut (image Docker) | Description |
|---|---|---|
RSS_BOT_DATA | /app/data | Répertoire où la base de données SQLite est stockée |
RSS_BOT_LOGS | /app/logs | Répertoire où les fichiers de log sont écrits |
RSS_BOT_PID | /tmp/discord-news-rss-bot.pid | Chemin du fichier PID (éviter /var/run dans les conteneurs non-root) |
Surcharges avancées (optionnelles)
| Variable | Description |
|---|---|
DB_FILE | Chemin explicite du fichier de la base de données SQLite (remplace RSS_BOT_DATA) |
LOG_FILE | Chemin explicite du fichier de log (remplace RSS_BOT_LOGS) |
DATA_DIR | Ancien alias pour RSS_BOT_DATA |
Paramètres optionnels du botVoici la traduction en français :
| Variable | Défaut | Description |
|---|---|---|
CHECK_INTERVAL | 300 | Intervalle entre les vérifications (secondes) |
POST_DELAY | 3 | Délai entre les publications (secondes) |
COOLDOWN_DELAY | 60 | Délai après limitation de débit (secondes) |
MAX_POST_LENGTH | 1900 | Longueur maximale d'un message |
MAX_CONTENT_LENGTH | 800 | Longueur maximale du contenu |
FEED_TIMEOUT | 30 | Délai d'expiration des requêtes RSS (secondes) |
Configuration des flux RSS
Le bot prend en charge deux méthodes de configuration avec une gestion automatique des priorités :
Option 1 : Flux universels (simple)
Utilisez une seule variable pour tous vos flux RSS :
Option 2 : Flux par catégorie (organisé)
Utilisez des variables distinctes pour différentes catégories :
Système de priorité
- RSS_FEEDS (universel) – prioritaire s'il est défini
- RSS_FEEDS_CATEGORY (catégories) – utilisé s'il n'y a pas de flux universels
- Flux par défaut – flux d'actualités brésiliennes en l'absence de configuration personnalisée
Émojis automatiques par catégorie
- News/Noticias/General → 📰
- Technology/Tecnologia → 💻
- Politics/Politica → 🏛️
- Sports/Esportes → ⚽
- Business/Economia → 💼
- Autres catégories → 📢
Flux surveillés
📰 Actualités générales
- G1
- UOL
- Band
- CNN Brasil
- Folha de S.Paulo
🏛️ Politique et conservateur
- Gazeta do Povo
- Jovem Pan
- Diário do Poder
- Pragmatismo Político
- Conexão Política
- Poder 360
- Revista Crusoé
- Veja
- Metrópoles
- O Antagonista
- Terra Politics
💻 Technologie
- Canaltech
- Olhar Digital
- Tecnoblog
- Meio Bit
- ShowMeTech
- TecMundo
- Adrenaline
- Hardware.com.br
- Tudo Celular
- Oficina da Net
Développement
Exécution en local (sans Docker)
Personnalisation des flux
Vous pouvez personnaliser les flux de deux manières :
-
Variables d'environnement (recommandé) Utilisez le format
RSS_FEEDS_CATEGORY_NAMEcomme décrit dans la section Configuration ci-dessus. -
Modification du code Modifiez la fonction
parse_feeds_from_env()dansbot_service.pypour changer les flux par défaut.
Stack technique
- Python pour la logique principale du bot
- Webhooks Discord pour publier les mises à jour
- Docker pour la conteneurisation et le déploiement
- SQLite pour la persistance des données et la mise en cache
- Analyse RSS pour la surveillance des flux
- Systemd pour la gestion des services Linux
Discord RSS Bot est une solution complète pour publier automatiquement les mises à jour des flux RSS sur les canaux Discord, avec une gestion robuste des erreurs, une configuration flexible et plusieurs options de déploiement.