mirror of
https://github.com/R0m1k3/noteflow.git
synced 2026-10-12 01:39:47 +02:00
Améliorations majeures de la fluidité de l'application : RSS Auto-Initialization: - Auto-initialisation de 3 flux français par défaut (Le Monde, BBC, Le Figaro) - Lancement automatique au premier démarrage du serveur - Timeout protection (15s) pour parsing RSS - Logging détaillé avec emojis pour meilleur suivi Visual Feedback System: - Skeleton loaders CSS pour performance perçue améliorée - Indicateur de rafraîchissement (top-right) pendant mises à jour RSS - Loading spinners animés - Animations fade-in fluides - Empty states avec styles appropriés Diagnostic Tools: - Script diagnose-rss.js pour troubleshooting - Affiche état complet: feeds, articles, résumés, settings - Auto-initialise la base de données si nécessaire Client Improvements: - Fonctions showRefreshIndicator() / hideRefreshIndicator() - Indicateur visuel pendant auto-refresh toutes les 30s - Meilleure gestion des erreurs avec feedback visuel Files modified: - services/rss-scheduler.js: initializeDefaultFeeds() - public/css/skeleton.css: NEW - Complete visual feedback system - public/index.html: Added skeleton.css + refresh indicator - public/js/complete-app.js: Visual feedback functions - scripts/diagnose-rss.js: NEW - RSS diagnostic tool User impact: ✓ Flux RSS automatiquement peuplés au premier lancement ✓ Interface plus fluide avec indicateurs visuels ✓ Performance perçue grandement améliorée ✓ Auto-refresh transparent toutes les 30s
81 lines
2.7 KiB
JavaScript
81 lines
2.7 KiB
JavaScript
// Script de diagnostic RSS
|
|
const { getAll, initDatabase } = require('../config/database');
|
|
const logger = require('../config/logger');
|
|
|
|
async function diagnoseRSS() {
|
|
console.log('\n==================== DIAGNOSTIC RSS ====================\n');
|
|
|
|
try {
|
|
// Initialize database first
|
|
await initDatabase();
|
|
// Vérifier les flux RSS
|
|
const feeds = await getAll('SELECT * FROM rss_feeds');
|
|
console.log(`📰 Flux RSS en base: ${feeds?.length || 0}`);
|
|
if (feeds && feeds.length > 0) {
|
|
feeds.forEach(feed => {
|
|
console.log(` - ${feed.title || feed.url} (${feed.enabled ? 'activé' : 'désactivé'})`);
|
|
console.log(` Dernière mise à jour: ${feed.last_fetched_at || 'jamais'}`);
|
|
});
|
|
} else {
|
|
console.log(' ⚠️ Aucun flux RSS configuré');
|
|
console.log(' 💡 Ajoutez un flux via l\'interface admin');
|
|
}
|
|
|
|
console.log('');
|
|
|
|
// Vérifier les articles
|
|
const articles = await getAll('SELECT COUNT(*) as count FROM rss_articles');
|
|
console.log(`📄 Articles RSS en base: ${articles[0]?.count || 0}`);
|
|
|
|
if (articles[0]?.count > 0) {
|
|
const recentArticles = await getAll(`
|
|
SELECT
|
|
a.title,
|
|
a.pub_date,
|
|
f.title as feed_title
|
|
FROM rss_articles a
|
|
LEFT JOIN rss_feeds f ON a.feed_id = f.id
|
|
ORDER BY a.pub_date DESC
|
|
LIMIT 5
|
|
`);
|
|
|
|
console.log('\n5 derniers articles:');
|
|
recentArticles.forEach((article, i) => {
|
|
console.log(` ${i + 1}. ${article.title}`);
|
|
console.log(` Source: ${article.feed_title || 'Inconnu'}`);
|
|
console.log(` Date: ${article.pub_date}`);
|
|
});
|
|
}
|
|
|
|
console.log('');
|
|
|
|
// Vérifier les résumés
|
|
const summaries = await getAll('SELECT COUNT(*) as count FROM rss_summaries');
|
|
console.log(`📝 Résumés RSS en base: ${summaries[0]?.count || 0}`);
|
|
|
|
console.log('');
|
|
|
|
// Vérifier les settings
|
|
const settings = await getAll('SELECT * FROM settings WHERE key LIKE "rss%" OR key LIKE "openrouter%"');
|
|
console.log(`⚙️ Settings RSS/OpenRouter: ${settings?.length || 0}`);
|
|
if (settings && settings.length > 0) {
|
|
settings.forEach(setting => {
|
|
const value = setting.key.includes('api_key')
|
|
? (setting.value ? '***' + setting.value.slice(-4) : 'non défini')
|
|
: setting.value;
|
|
console.log(` - ${setting.key}: ${value}`);
|
|
});
|
|
}
|
|
|
|
console.log('\n========================================================\n');
|
|
|
|
} catch (error) {
|
|
console.error('❌ Erreur lors du diagnostic:', error);
|
|
}
|
|
|
|
process.exit(0);
|
|
}
|
|
|
|
// Exécuter le diagnostic
|
|
diagnoseRSS();
|