import fs from "node:fs"; import path from "node:path"; import axios from "axios"; import FormData from "form-data"; const CONFIG = { endpoint: "https://catbox.moe/user/api.php", file: "./image.png", userhash: "" }; async function uploadToCatbox(filePath) { const body = new FormData(); body.append("reqtype", "fileupload"); if (CONFIG.userhash?.trim()) { body.append("userhash", CONFIG.userhash); } body.append( "fileToUpload", fs.createReadStream(filePath), path.basename(filePath) ); try { const response = await axios({ method: "POST", url: CONFIG.endpoint, data: body, timeout: 120000, maxBodyLength: Infinity, headers: { ...body.getHeaders(), "User-Agent": "NodeJS Upload Client" } }); const uploaded = typeof response.data === "string" && response.data.includes("https://"); return { success: uploaded, status: response.status, file: filePath, url: uploaded ? response.data.trim() : null, raw: uploaded ? undefined : response.data }; } catch (error) { return { success: false, status: error.response?.status || 500, file: filePath, error: error.message }; } } (async () => { const result = await uploadToCatbox(CONFIG.file); if (result.success) { console.log("Upload berhasil"); console.log(result.url); } else { console.log("Upload gagal"); console.log(result); } })();