Files
Claude 95e263dd3f REFONTE: Système RSS V2 - Réécriture complète
Problèmes résolus:
- Articles non mis à jour (toujours 12 nov au lieu de 14 nov)
- Détection de doublons défaillante
- Cache trop agressif bloquant les nouveaux articles
- Logique complexe et difficile à déboguer

Architecture V2 (simple et robuste):

**services/rss-scheduler-v2.js**
- Détection doublons SIMPLE: uniquement par lien
- Pas de double vérification titre+date (trop complexe)
- Nettoyage automatique (garde les 100 derniers)
- Logs clairs pour chaque étape
- Fetch séquentiel pour éviter les races
- Timeout robuste (15s par flux)

**routes/rss.routes-v2.js**
- Suppression du cache de 30s
- Requêtes SQL directes simples
- Pas de logique de filtre temporel compliquée
- Endpoint /refresh déclenche un fetch immédiat
- Logs cohérents

**Scripts utilitaires**
- reset-rss.js: Nettoie complètement la DB RSS
- migrate-to-rss-v2.js: Migre de V1 à V2
- Plus tous les scripts de debug existants

Backups:
- rss-scheduler.js.backup (ancien système)
- rss.routes.js.backup (ancien système)

Migration:
1. node scripts/reset-rss.js (optionnel, nettoie la DB)
2. Redémarrer le serveur
3. Ajouter les flux RSS via l'interface
4. Les articles seront récupérés toutes les 2 minutes

Résultat attendu:
- Les nouveaux articles apparaissent dans les 2 minutes
- Pas de doublons même avec liens changeants
- Affichage du plus récent au plus ancien
- Système simple, maintenable et debuggable
2025-11-14 07:08:13 +00:00

43 lines
1.5 KiB
JavaScript

// Script pour réinitialiser complètement le système RSS
const { runQuery, initDatabase } = require('../config/database');
async function resetRSS() {
console.log('\n==================== RESET SYSTÈME RSS ====================\n');
try {
await initDatabase();
// Supprimer tous les articles
console.log('🗑️ Suppression de tous les articles RSS...');
await runQuery('DELETE FROM rss_articles');
console.log('✓ Articles supprimés\n');
// Supprimer tous les flux
console.log('🗑️ Suppression de tous les flux RSS...');
await runQuery('DELETE FROM rss_feeds');
console.log('✓ Flux supprimés\n');
// Supprimer tous les résumés
console.log('🗑️ Suppression de tous les résumés...');
await runQuery('DELETE FROM rss_summaries');
console.log('✓ Résumés supprimés\n');
// Réinitialiser les séquences
console.log('🔄 Réinitialisation des compteurs...');
await runQuery('DELETE FROM sqlite_sequence WHERE name IN ("rss_articles", "rss_feeds", "rss_summaries")');
console.log('✓ Compteurs réinitialisés\n');
console.log('========================================================');
console.log('✅ Système RSS complètement réinitialisé!');
console.log('Vous pouvez maintenant ajouter de nouveaux flux.');
console.log('========================================================\n');
} catch (error) {
console.error('❌ Erreur:', error);
}
process.exit(0);
}
resetRSS();