README du dépôt
🤖 Bot Discord RSS
Un bot Discord puissant qui surveille plusieurs flux RSS et publie automatiquement les nouveaux articles dans des canaux spécifiques. Parfait pour suivre l'actualité, les blogs, ou tout autre contenu RSS.
✨ Fonctionnalités
- 🔄 Vérification périodique des flux RSS (configurable)
- 📢 Publication automatique dans les canaux Discord dédiés
- 🖼️ Support des images (extraction depuis les flux RSS)
- 📝 Nettoyage automatique du HTML
- 📅 Affichage des dates de publication
- 👤 Affichage des auteurs
- 🔒 Évite les doublons même après redémarrage
- 📊 Logging complet des activités
- 🛡️ Gestion robuste des erreurs
📋 Prérequis
- Python 3.8 ou supérieur
- Un serveur Discord
- Un token de bot Discord (à obtenir sur le Portail des développeurs Discord)
- Les permissions suivantes pour le bot :
View ChannelsSend MessagesEmbed LinksAttach Files
🚀 Installation
- Clonez le dépôt :
git clone https://github.com/CedricPoint/discord-rss-bot.git
cd discord-rss-bot
- Installez les dépendances :
pip install -r requirements.txt
- Configurez le token Discord :
Créez un fichier
.envà la racine du projet :
DISCORD_TOKEN=votre_token_discord
- Configurez les flux RSS :
Modifiez le fichier
feeds_config.json:
{
"rss_feeds": [
{
"url": "https://exemple.com/rss.xml",
"channel_id": 123456789012345678
}
],
"check_interval": 300
}
⚙️ Configuration
Structure de feeds_config.json
{
"rss_feeds": [
{
"url": "URL_DU_FLUX_RSS",
"channel_id": ID_DU_CANAL_DISCORD
}
],
"check_interval": 300
}
url: L'URL du flux RSS à surveillerchannel_id: L'ID du canal Discord où publier les articlescheck_interval: Intervalle de vérification en secondes (par défaut : 300)
Format des messages
Les articles sont publiés sous forme d'embeds Discord avec :
- Titre de l'article
- Lien vers l'article
- Description (nettoyée du HTML)
- Image principale (si disponible)
- Date de publication
- Nom de l'auteur (si disponible)
🏃♂️ Lancement
Mode développement
python bot.py
Production avec systemd
- Créez le fichier de service :
sudo nano /etc/systemd/system/discord-rss-bot.service
- Ajoutez la configuration suivante :
[Unit]
Description=Bot Discord RSS
After=network.target
[Service]
Type=simple
User=votre_utilisateur
WorkingDirectory=/chemin/vers/votre/bot
ExecStart=/usr/bin/python3 bot.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
- Activez et démarrez le service :
sudo systemctl daemon-reload
sudo systemctl enable discord-rss-bot
sudo systemctl start discord-rss-bot
📝 Logs
Les logs sont enregistrés dans rss_bot.log avec le format suivant :
2024-01-01 12:00:00 - INFO - Bot en cours de démarrage...
2024-01-01 12:00:01 - INFO - Bot connecté en tant que BotName#1234
2024-01-01 12:00:01 - INFO - Vérification des flux toutes les 300 secondes
🛠️ Maintenance
Vérification du statut
sudo systemctl status discord-rss-bot
Redémarrage
sudo systemctl restart discord-rss-bot
Arrêt
sudo systemctl stop discord-rss-bot
🔍 Dépannage
Problèmes courants
-
Le bot ne démarre pas
- Vérifiez le token Discord
- Vérifiez les permissions du bot
- Consultez les logs
-
Les articles ne sont pas publiés
- Vérifiez les IDs des canaux
- Vérifiez les URLs des flux RSS
- Vérifiez les permissions du bot dans les canaux
-
Erreurs de parsing
- Vérifiez le format des dates dans les flux RSS
- Vérifiez la structure des flux RSS
📚 Ressources utiles
🤝 Contribution
Les contributions sont les bienvenues ! N'hésitez pas à :
- Fork le projet
- Créer une branche (
git checkout -b feature/AmazingFeature) - Commit vos changements (
git commit -m 'Add some AmazingFeature') - Push vers la branche (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
🙏 Remerciements
- discord.py - La bibliothèque Discord pour Python
- feedparser - Le parseur RSS/Atom
- python-dotenv - Gestion des variables d'environnement