Spaces:
Running
Running
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." }); | |
} | |
}; |