// api_v1/scanner/scanActivity.js const path = require('path'); const { log } = require('./logger'); const scanActivityCartella = require('./scanActivityCartella'); const createActivityOrphanCleanup = require('./activityOrphanCleanup'); const { WEB_ROOT } = require('../config'); // Il progresso globale viene letto dalla coda SQLite. // Mantiene la callback richiesta da scanActivityCartella. async function updateStatusFile() {} // --------------------------------------------------------- // SCAN UNA SOLA CARTELLA DI ATTIVITÀ // --------------------------------------------------------- async function scanActivity(dir, userName, db, CURRENT, TOTAL_FILES, start, onProgress) { const newActivities = []; const { deleteFromDB } = createActivityOrphanCleanup(db); const activitiesRoot = path.resolve(__dirname, '..', '..', WEB_ROOT, 'activities'); const userDir = path.join(activitiesRoot, userName, 'original'); const cartella = dir; const absCartella = path.join(userDir, cartella); log(`📁 [SCAN ACTIVITY CARTELLA] ${cartella}`); await scanActivityCartella( db, userName, cartella, absCartella, newActivities, updateStatusFile, CURRENT, TOTAL_FILES, start, deleteFromDB, onProgress ); // Parsing e sincronizzazione remota sono ora responsabilita // dell'ActivityIngestDaemon. return newActivities; } module.exports = scanActivity;