feat: fusion multi-département RSS, enrichissement catégorie/niveau/territoire
- Ajout colonnes territoires (JSON) dans veille_items et departements (JSON) dans aap_items - Logique de fusion : articles similaires (même sujet, départements différents) fusionnés en un seul - Extraction automatique : catégorie (Handicap/PA/Enfance/Précarité/Sanitaire/Autre), niveau et territoire - Endpoint POST /api/scheduled/rss-migrate pour migration des articles existants - Correction patterns détection : Loire, Rhône (sans Lyon seul), Auvergne-Rhône-Alpes protégé
This commit is contained in:
@@ -1,13 +1,14 @@
|
||||
/**
|
||||
* Routes pour les tâches planifiées.
|
||||
* POST /api/scheduled/rss-fetch — déclenche la lecture de tous les flux RSS actifs.
|
||||
* POST /api/scheduled/rss-fetch — déclenche la lecture de tous les flux RSS actifs.
|
||||
* POST /api/scheduled/rss-migrate — met à jour les articles existants avec les champs enrichis.
|
||||
* Protégé par cookie de session (rôle "user" minimum, conforme aux tâches planifiées Manus).
|
||||
*/
|
||||
import express, { Router, Request, Response } from "express";
|
||||
import { parse as parseCookieHeader } from "cookie";
|
||||
import { verifyLocalToken, LOCAL_AUTH_COOKIE } from "./localAuth";
|
||||
import { sdk } from "./_core/sdk";
|
||||
import { runRssFetch } from "./rssEngine";
|
||||
import { runRssFetch, migrateExistingItems } from "./rssEngine";
|
||||
|
||||
const router: Router = express.Router();
|
||||
|
||||
@@ -59,4 +60,25 @@ router.post("/api/scheduled/rss-fetch", requireAuth, async (req: Request, res: R
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* POST /api/scheduled/rss-migrate
|
||||
* Met à jour les articles existants (veille_items et aap_items) avec les champs enrichis :
|
||||
* - veille_items : catégorie, niveau, territoire
|
||||
* - aap_items : région, département
|
||||
*/
|
||||
router.post("/api/scheduled/rss-migrate", requireAuth, async (req: Request, res: Response) => {
|
||||
console.log("[Scheduled] Migration des articles existants...");
|
||||
try {
|
||||
const summary = await migrateExistingItems();
|
||||
res.json({
|
||||
success: true,
|
||||
summary,
|
||||
});
|
||||
} catch (e: unknown) {
|
||||
const msg = e instanceof Error ? e.message : String(e);
|
||||
console.error("[Scheduled/rss-migrate] Erreur:", msg);
|
||||
res.status(500).json({ success: false, error: msg });
|
||||
}
|
||||
});
|
||||
|
||||
export default router;
|
||||
|
||||
Reference in New Issue
Block a user