mirror of
https://github.com/R0m1k3/noteflow.git
synced 2026-10-12 01:39:47 +02:00
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
63 lines
2.0 KiB
JavaScript
63 lines
2.0 KiB
JavaScript
// Script de migration vers le nouveau système RSS V2
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
console.log('\n==================== MIGRATION RSS V2 ====================\n');
|
|
|
|
try {
|
|
// 1. Backup de l'ancien système
|
|
console.log('Backup de l\'ancien systeme...');
|
|
|
|
const oldScheduler = path.join(__dirname, '../services/rss-scheduler.js');
|
|
const oldRoutes = path.join(__dirname, '../routes/rss.routes.js');
|
|
|
|
if (fs.existsSync(oldScheduler)) {
|
|
fs.copyFileSync(oldScheduler, oldScheduler + '.backup');
|
|
console.log(' OK rss-scheduler.js -> rss-scheduler.js.backup');
|
|
}
|
|
|
|
if (fs.existsSync(oldRoutes)) {
|
|
fs.copyFileSync(oldRoutes, oldRoutes + '.backup');
|
|
console.log(' OK rss.routes.js -> rss.routes.js.backup');
|
|
}
|
|
|
|
console.log('');
|
|
|
|
// 2. Remplacer par les nouvelles versions
|
|
console.log('Installation du nouveau systeme...');
|
|
|
|
const newScheduler = path.join(__dirname, '../services/rss-scheduler-v2.js');
|
|
const newRoutes = path.join(__dirname, '../routes/rss.routes-v2.js');
|
|
|
|
if (fs.existsSync(newScheduler)) {
|
|
fs.copyFileSync(newScheduler, oldScheduler);
|
|
console.log(' OK rss-scheduler-v2.js -> rss-scheduler.js');
|
|
}
|
|
|
|
if (fs.existsSync(newRoutes)) {
|
|
fs.copyFileSync(newRoutes, oldRoutes);
|
|
console.log(' OK rss.routes-v2.js -> rss.routes.js');
|
|
}
|
|
|
|
console.log('');
|
|
|
|
console.log('Pour nettoyer la base de donnees RSS:');
|
|
console.log(' node scripts/reset-rss.js');
|
|
console.log('');
|
|
|
|
console.log('========================================================');
|
|
console.log('Migration terminee!');
|
|
console.log('');
|
|
console.log('Prochaines etapes:');
|
|
console.log('1. Redemarrez le serveur');
|
|
console.log('2. (Optionnel) Nettoyez la DB: node scripts/reset-rss.js');
|
|
console.log('3. Ajoutez vos flux RSS via l\'interface');
|
|
console.log('========================================================\n');
|
|
|
|
} catch (error) {
|
|
console.error('Erreur migration:', error);
|
|
process.exit(1);
|
|
}
|
|
|
|
process.exit(0);
|