hutatools / fnc /ai.js
fullpwerr's picture
p
d145b59
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." });
}
};