Skip to content

WilliamPeynichou/BotVeillePy

Repository files navigation

🤖 Bot Discord de Veille Technologique

Projet Vibecode — Test des capacités et limites des modèles Claude (Opus, Sonnet, Haiku) dans le développement d'un projet complet de bout en bout.

🎯 Objectif du Projet

Ce projet a été développé dans le cadre d'une expérimentation Vibecode visant à évaluer les capacités des modèles Claude (Opus, Sonnet, Haiku) pour :

  • ✅ Créer un projet Python complet de A à Z
  • ✅ Gérer la complexité d'un bot Discord avec planification
  • ✅ Implémenter des collecteurs RSS multi-sources
  • ✅ Résoudre des problèmes de déploiement (Docker, réseau)
  • ✅ Adapter le code pour compatibilité Python 3.9
  • ✅ Personnaliser et affiner les fonctionnalités selon les besoins

Résultat : Un bot Discord fonctionnel, déployé en production, avec un code propre et maintenable, entièrement développé avec l'assistance de Claude.

📰 Fonctionnalités du Bot

🎯 Veille Automatique Hebdomadaire

Le bot collecte automatiquement l'actualité technologique sur 4 catégories et génère un rapport synthétique chaque lundi à 11h00 (heure de Paris).

🤖 IA pour Développeurs

  • Focus : Nouveaux modèles et outils IA pour le code
  • Filtrage intelligent : Seuls les articles pertinents pour les développeurs sont conservés
  • Sources : OpenAI, Anthropic, Google AI, Hugging Face, GitHub Blog
  • Exemples : Codex, Copilot, GPT pour le code, Claude pour développeurs, APIs/SDKs

⚙️ Frameworks & Outils Web

  • Contenu : Mises à jour des frameworks, nouvelles versions, bonnes pratiques
  • Sources : React, Next.js, Vue.js, Svelte, Node.js, Deno, Dev.to, MDN
  • Format : Top 5 articles avec résumés courts et liens directs

🔒 Sécurité & Vulnérabilités

  • Alertes : Vulnérabilités critiques, mises à jour de sécurité
  • Sources : CERT-FR (prioritaire), The Hacker News, OWASP, PortSwigger
  • Focus : Informations actionnables pour les développeurs

💼 Marché de l'Emploi Web

  • Tendances : Actualités du marché tech en France
  • Sources : Welcome to the Jungle, LesJeudis, BlogDuModérateur, FrenchWeb
  • Statistiques : Aperçu du marché avec nombre d'offres

📊 Format des Rapports

Structure Simplifiée

📰 Veille Tech Hebdomadaire
📅 Semaine du DD/MM/YYYY
Voici les nouveautés de la semaine ! 🚀

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🤖 IA pour Développeurs
🔍 Cette semaine : X actualités sur les nouveaux modèles et outils.

🚀 Nouveautés de la semaine :

1. [Titre de l'article]
   💡 [Résumé court - 120 caractères max]
   🔗 [Lien direct]
   📅 [Date] • [Source]

[... Top 5 articles par catégorie ...]

Caractéristiques

  • Top 5 articles par catégorie (lecture rapide)
  • Résumés courts (max 120 caractères)
  • 100% français : Tous les messages en français
  • Format uniforme : Structure claire et digeste
  • Multi-messages : Découpage automatique si > 2000 caractères

💬 Commandes Discord

Commande Description
!veille Génère un rapport de veille immédiat avec toutes les catégories
!status Affiche le statut du bot et la date du prochain rapport automatique
!aide Affiche l'aide complète avec toutes les informations

⚙️ Planification Automatique

  • Fréquence : Chaque lundi à 11h00 (heure de Paris)
  • Période : Articles des 7 derniers jours
  • Canal : Envoi automatique dans le canal Discord configuré
  • Configurable : Jour, heure et fuseau horaire modifiables via .env

🏗️ Architecture Technique

Structure du Projet

BotVeillePy/
├── bot/
│   ├── __init__.py
│   ├── main.py              # Point d'entrée, configuration logging
│   ├── config.py            # Gestion des variables d'environnement
│   ├── discord_bot.py       # Bot Discord, commandes, lifecycle
│   ├── messenger.py         # Envoi multi-messages (split 2000 chars)
│   ├── report.py            # Génération du rapport complet
│   ├── scheduler.py         # Planification APScheduler (cron)
│   └── collectors/
│       ├── __init__.py
│       ├── base.py              # Classe abstraite BaseCollector (RSS)
│       ├── ai_collector.py      # Veille IA avec filtrage dev
│       ├── frameworks_collector.py  # Veille frameworks web
│       ├── security_collector.py    # Veille sécurité web
│       └── jobs_collector.py        # Veille marché emploi
├── docker-compose.yml       # Configuration Docker Compose
├── Dockerfile               # Image Docker du bot
├── requirements.txt         # Dépendances Python
├── run.py                   # Script de lancement
├── .env.example            # Template de configuration
├── start_bot.sh            # Script de démarrage
├── stop_bot.sh             # Script d'arrêt
└── status_bot.sh           # Script de statut

Technologies Utilisées

  • Python 3.9+ : Langage principal
  • discord.py : Bibliothèque Discord officielle
  • aiohttp : Requêtes HTTP asynchrones
  • feedparser : Parsing des flux RSS
  • APScheduler : Planification des tâches (cron)
  • beautifulsoup4 : Parsing HTML pour scraping
  • python-dotenv : Gestion des variables d'environnement

Collecte de Données

Système de Collecteurs

  • Architecture modulaire : Chaque catégorie = un collecteur indépendant
  • Collecte asynchrone : Tous les flux RSS récupérés en parallèle
  • Gestion d'erreurs : Continue même si une source échoue
  • Filtrage intelligent : Pour l'IA, filtrage par mots-clés dev

Filtrage IA pour Développeurs

Le collecteur IA utilise un système de mots-clés pour ne garder que les articles pertinents :

  • Modèles de code : codex, copilot, gpt, claude, gemini
  • Outils : cursor, codeium, ide, editor
  • APIs : api, sdk, library, framework
  • Annonces : launch, release, new model

🚀 Installation et Déploiement

Prérequis

  • Python 3.9+ (ou Docker)
  • Un bot Discord créé sur Discord Developer Portal
  • Accès à un serveur Discord avec permissions d'envoyer des messages

1. Créer le Bot Discord

  1. Aller sur Discord Developer Portal
  2. Cliquer sur New Application → donner un nom
  3. Aller dans Bot → cliquer sur Reset Token → copier le token
  4. Activer : Message Content Intent dans Privileged Gateway Intents
  5. Aller dans OAuth2URL Generator :
    • Scopes : bot
    • Bot Permissions : Send Messages, Read Message History
  6. Copier l'URL générée et inviter le bot sur votre serveur

2. Configuration

# Cloner le repository
git clone git@github.com:WilliamPeynichou/BotVeillePy.git
cd BotVeillePy

# Créer l'environnement virtuel
python3 -m venv venv
source venv/bin/activate  # Sur Windows: venv\Scripts\activate

# Installer les dépendances
pip install -r requirements.txt

# Configurer les variables d'environnement
cp .env.example .env

Éditer .env avec vos valeurs :

DISCORD_TOKEN=votre_token_discord_ici
DISCORD_CHANNEL_ID=id_du_canal_ici
TIMEZONE=Europe/Paris
SCHEDULE_DAY=mon
SCHEDULE_HOUR=11
SCHEDULE_MINUTE=0
LOOKBACK_DAYS=7

Trouver l'ID du canal : Activer le mode développeur dans Discord (Paramètres → Avancés), puis clic droit sur le canal → Copier l'identifiant.

3. Lancer le Bot

Méthode 1 : Scripts de gestion (Recommandé)

# Démarrer le bot
./start_bot.sh

# Voir le statut
./status_bot.sh

# Voir les logs en temps réel
tail -f bot.log

# Arrêter le bot
./stop_bot.sh

Méthode 2 : Lancement direct

source venv/bin/activate
python run.py

Méthode 3 : Docker (si Docker fonctionne)

docker compose build
docker compose up -d
docker compose logs -f

⚙️ Configuration Avancée

Variables d'Environnement

Variable Défaut Description
DISCORD_TOKEN Token du bot Discord (obligatoire)
DISCORD_CHANNEL_ID ID du canal pour les rapports (obligatoire)
TIMEZONE Europe/Paris Fuseau horaire pour la planification
SCHEDULE_DAY mon Jour d'envoi (mon, tue, wed, thu, fri, sat, sun)
SCHEDULE_HOUR 11 Heure d'envoi (0-23)
SCHEDULE_MINUTE 0 Minute d'envoi (0-59)
LOOKBACK_DAYS 7 Nombre de jours de recul pour les articles

Personnalisation des Sources RSS

Éditez les fichiers dans bot/collectors/ pour ajouter ou modifier les sources :

# Exemple dans ai_collector.py
feeds = {
    "Nouvelle Source": "https://example.com/rss",
}

Modifier le Filtrage IA

Éditez bot/collectors/ai_collector.py pour ajouter des mots-clés :

DEV_KEYWORDS = [
    "votremotcle",
    # ...
]

📚 Documentation Complémentaire

🧪 Tests et Expérimentation Vibecode

Objectifs de Test

Ce projet a permis de tester :

  1. Capacités de développement : Création d'un projet complet de bout en bout
  2. Résolution de problèmes : Debug Docker, réseau, compatibilité Python
  3. Adaptation : Modification du code selon les besoins utilisateur
  4. Documentation : Génération de documentation complète
  5. Déploiement : Mise en production fonctionnelle

Résultats

  • Projet fonctionnel : Bot déployé et opérationnel
  • Code propre : Architecture modulaire et maintenable
  • Documentation : README, guides, changelog complets
  • Personnalisation : Adaptation rapide aux besoins spécifiques

Modèles Testés

  • Claude Opus : Développement initial et architecture
  • Claude Sonnet : Résolution de problèmes complexes (Docker, réseau)
  • Claude Haiku : Modifications rapides et ajustements

🤝 Contribution

Ce projet est un projet d'expérimentation Vibecode. Les contributions sont les bienvenues pour :

  • Améliorer les collecteurs RSS
  • Ajouter de nouvelles sources
  • Optimiser le filtrage IA
  • Améliorer la documentation

📝 Licence

MIT License - Voir le fichier LICENSE pour plus de détails.

🙏 Remerciements

  • Vibecode : Pour l'expérimentation avec Claude
  • Discord.py : Bibliothèque Discord officielle
  • Toutes les sources RSS : Pour leur contenu de qualité

Développé avec Claude (Opus, Sonnet, Haiku) dans le cadre d'une expérimentation Vibecode 🚀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors