import fs from "fs"
import path from "path"
import sharp from "sharp"

const processBlogImages = async () => {
	const srcDir = "posts/img"
	const destDir = "public/posts/img"

	if (!fs.existsSync(srcDir)) {
		console.error("⚠️  No posts/img directory found")
		return
	}

	if (!fs.existsSync(destDir)) {
		fs.mkdirSync(destDir, { recursive: true })
	}

	const files = fs.readdirSync(srcDir)
	const imageExtensions = [
		".jpg",
		".jpeg",
		".png",
		".gif",
		".webp",
		".svg",
		".webm",
	]

	for (const file of files) {
		const ext = path.extname(file).toLowerCase()
		if (imageExtensions.includes(ext)) {
			const inputPath = path.join(srcDir, file) // Define inputPath and outputPath
			const outputPath = path.join(destDir, file)

			if (ext === ".svg" || ext === ".webm") {
				fs.copyFileSync(inputPath, outputPath)
				console.info(`📸 Copied ${file}`)
			} else {
				await sharp(inputPath)
					.resize(1200, 800, {
						fit: "inside",
						withoutEnlargement: true,
					})
					.jpeg({ quality: 85, progressive: true })
					.png({ compressionLevel: 8 })
					.webp({ quality: 85 })
					.toFile(outputPath)
				console.info(`🖼️  Processed ${file}`)
			}
		}
	}

	console.log(`✅ Processed images from ${srcDir}`)
}

export { processBlogImages }
