import exifr from 'exifr'; import fs from 'fs'; import path from 'path'; const searchDir = '.'; async function walk(dir) { let files = []; const list = fs.readdirSync(dir); for (const file of list) { if (file === 'node_modules' || file === '.git' || file === '.vscode') continue; const fullPath = path.join(dir, file); const stat = fs.statSync(fullPath); if (stat.isDirectory()) { files = files.concat(await walk(fullPath)); } else { if (['.jpg', '.jpeg', '.png'].includes(path.extname(file).toLowerCase())) { files.push(fullPath); } } } return files; } async function run() { const images = await walk(searchDir); console.log(`Found ${images.length} images to scan...`); for (const img of images) { try { const gps = await exifr.gps(img); if (gps) { console.log(`FOUND IMAGE WITH GPS: ${img}`, gps); } } catch (e) { // ignore } } console.log('Scan completed.'); } run();