const { enhance } = require("../lib/pradigm"); const drawever = require("../lib/pix"); // Import dari pix.js const fs = require("fs"); const path = require("path"); const { v4: uuidv4 } = require("uuid"); async function checkCaptcha(response) { const url = new URL("https://www.google.com/recaptcha/api/siteverify"); url.searchParams.set("secret", "6Le0_-YqAAAAAPFjisvdA9ruGjWr_V0wv9j1OP-d"); url.searchParams.set("response", response); const res = await fetch(url, { method: "POST" }); /** @type {{ success: boolean, challenge_ts: string, hostname: string, score: number, action: string, "error-codes": ("missing-input-secret"|"invalid-input-secret"|"missing-input-response"|"invalid-input-response"|"bad-request"|"timeout-or-duplicate")[] }} */ const data = await res.json(); return data; } module.exports = async function (req, res) { try { const { buffer, type, style = "anime", quality = "medium" } = req.body; //const ip = req._ip; /** @type {string} */ const authHeader = req.headers.authorization; if(!authHeader || !authHeader.startsWith("Bearer ")) { return res.status(401).json({ message: "Unauthorized: Token is missing or invalid" }); } if (!buffer) return res.status(400).json({ error: "Buffer diperlukan." }); if (type === "hd") { const imgBuffer = Buffer.from(buffer); const enhancedImage = await enhance(imgBuffer); if (!enhancedImage) throw new Error("Gagal memproses gambar."); res.setHeader("Content-Type", "image/png"); return res.send(enhancedImage); } if (type === "effect") { // Simpan buffer ke file sementara const fileName = `${uuidv4()}.png`; const filePath = path.join(__dirname, "../cdn", fileName); await fs.writeFileSync(filePath, Buffer.from(buffer)); // Proses gambar dengan pix.js const imageUrl = `https://beta.wzblueline.xyz/cdn/${fileName}`; const quality = "medium"; await drawever.create(imageUrl, style, quality); return res.json({ url: imageUrl }); } } catch (error) { console.error(error); res.status(500).json({ error: "Terjadi kesalahan saat memproses gambar." }); } };