mirror of
https://github.com/R0m1k3/noteflow.git
synced 2026-10-18 20:59:35 +02:00
Backend: Système complet RSS + OpenRouter + Administration améliorée
## Base de données: - Table settings (key-value pour paramètres globaux) - Table rss_feeds (url, title, description, enabled, last_fetched_at) - Table rss_articles (feed_id, title, link, description, pub_date, content) - Index optimisés pour performance ## Routes Settings (/api/settings): - GET /api/settings - Récupérer tous les paramètres - GET /api/settings/:key - Récupérer un paramètre - PUT /api/settings/:key - Mettre à jour un paramètre - DELETE /api/settings/:key - Supprimer un paramètre - Middleware requireAdmin sur toutes les routes ## Routes RSS (/api/rss): - GET /api/rss/feeds - Liste des flux RSS (admin) - POST /api/rss/feeds - Ajouter flux RSS avec parsing validation (admin) - PUT /api/rss/feeds/:id - Activer/désactiver flux (admin) - DELETE /api/rss/feeds/:id - Supprimer flux (admin) - POST /api/rss/fetch - Récupérer articles de tous flux actifs (admin) - GET /api/rss/articles - Récupérer 10 derniers articles (tous users) - POST /api/rss/summarize - Générer résumé OpenRouter (admin) - GET /api/rss/models - Liste modèles OpenRouter (admin) ## Intégration OpenRouter: - Appel API avec clé, modèle et prompt configurables - Résumé intelligent des 10 derniers articles - Prompt par défaut optimisé pour résumés d'actualités - Support GPT-4, Claude 3, Gemini, Llama 3, Mistral, etc. - Gestion erreurs et timeout ## Parser RSS: - rss-parser installé pour parsing flux - Gestion articles avec contenu, description, date - Détection doublons par URL - Update automatique infos flux ## Frontend HTML: - Modal admin avec système à onglets (Users/RSS/OpenRouter) - Modal changement mot de passe sans prompt navigateur - Box RSS dans page principale affichage 10 derniers articles - Bouton résumé IA dans header box RSS - Inputs pour gestion flux RSS - Configuration OpenRouter (API key, modèle, prompt, activation) - Sélecteur modèles avec recherche Prochaine étape: CSS + JavaScript pour fonctionnalités
This commit is contained in:
7 files changed
+744
-19
No files matched your search
@@ -88,11 +88,52 @@ function initDatabase() {
|
||||
)
|
||||
`);
|
||||
|
||||
// Table settings (paramètres globaux)
|
||||
db.run(`
|
||||
CREATE TABLE IF NOT EXISTS settings (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
key TEXT UNIQUE NOT NULL,
|
||||
value TEXT,
|
||||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
)
|
||||
`);
|
||||
|
||||
// Table rss_feeds (flux RSS)
|
||||
db.run(`
|
||||
CREATE TABLE IF NOT EXISTS rss_feeds (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
url TEXT UNIQUE NOT NULL,
|
||||
title TEXT,
|
||||
description TEXT,
|
||||
enabled BOOLEAN DEFAULT 1,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
last_fetched_at DATETIME
|
||||
)
|
||||
`);
|
||||
|
||||
// Table rss_articles (articles des flux RSS)
|
||||
db.run(`
|
||||
CREATE TABLE IF NOT EXISTS rss_articles (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
feed_id INTEGER NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
link TEXT UNIQUE NOT NULL,
|
||||
description TEXT,
|
||||
pub_date DATETIME,
|
||||
content TEXT,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (feed_id) REFERENCES rss_feeds(id) ON DELETE CASCADE
|
||||
)
|
||||
`);
|
||||
|
||||
// Créer les index pour la performance
|
||||
db.run('CREATE INDEX IF NOT EXISTS idx_notes_user ON notes(user_id)');
|
||||
db.run('CREATE INDEX IF NOT EXISTS idx_note_todos ON note_todos(note_id)');
|
||||
db.run('CREATE INDEX IF NOT EXISTS idx_global_todos_user ON global_todos(user_id)');
|
||||
db.run('CREATE INDEX IF NOT EXISTS idx_note_files ON note_files(note_id)');
|
||||
db.run('CREATE INDEX IF NOT EXISTS idx_settings_key ON settings(key)');
|
||||
db.run('CREATE INDEX IF NOT EXISTS idx_rss_articles_feed ON rss_articles(feed_id)');
|
||||
db.run('CREATE INDEX IF NOT EXISTS idx_rss_articles_date ON rss_articles(pub_date)');
|
||||
|
||||
logger.info('✓ Tables de base de données créées avec succès');
|
||||
|
||||
|
||||
Reference in new issue
Block a user