diff --git a/photo-gallery-app/backend/scripts/reprocess_uploads.js b/photo-gallery-app/backend/scripts/reprocess_uploads.js index 089020e..2b785ad 100644 --- a/photo-gallery-app/backend/scripts/reprocess_uploads.js +++ b/photo-gallery-app/backend/scripts/reprocess_uploads.js @@ -131,7 +131,12 @@ async function processDoc(doc) { const candidates = sourceCandidates(doc); const sourceFile = await findExistingFile(candidates); if (!sourceFile) { - return { status: 'missing-source', docId: doc._id, base: parseBaseName(doc) }; + return { + status: 'missing-source', + docId: doc._id, + base: parseBaseName(doc), + candidates + }; } const inputBuffer = await fsPromises.readFile(sourceFile); @@ -162,11 +167,15 @@ async function main() { console.log(`Found ${docs.length} photo docs. APPLY=${APPLY ? 'yes' : 'no (dry run)'}`); const results = { processed: 0, missing: 0 }; + const missing = []; for (const doc of docs) { try { const res = await processDoc(doc); if (res.status === 'processed') results.processed++; - else results.missing++; + else { + results.missing++; + missing.push(res); + } } catch (err) { console.error(`Error processing doc ${doc._id}:`, err.message || err); results.missing++; @@ -174,6 +183,13 @@ async function main() { } console.log(`Done. Processed: ${results.processed}. Skipped (no source/errors): ${results.missing}.`); + if (missing.length) { + const sample = missing.slice(0, 5); + console.log('Missing source examples (up to 5):'); + for (const item of sample) { + console.log(`- doc ${item.docId} base "${item.base}" candidates: ${item.candidates.join(', ')}`); + } + } await mongoose.disconnect(); }