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