goat
command
catbox
Upload file to catbox.moe
0
views
0
likes
0
installs
Aliases: cb
raw source
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs-extra');
const path = require('path');
module.exports = {
config: {
name: "catbox",
aliases: ["cb"],
version: "1.0",
author: "Tenzo",
countDown: 5,
role: 0,
shortDescription: "Upload file to catbox.moe",
category: "media",
guide: {
en: "Reply to an image/video"
}
},
onStart: async function ({ message, event, api }) {
if (!event.messageReply || !event.messageReply.attachments) {
return message.reply("Reply to an image or video");
}
const attachment = event.messageReply.attachments[0];
api.setMessageReaction("⏳", event.messageID);
const cacheDir = path.join(__dirname, 'cache');
await fs.ensureDir(cacheDir);
const tempPath = path.join(cacheDir, `upload_${Date.now()}.tmp`);
try {
const dlRes = await axios({ url: attachment.url, responseType: 'stream' });
const writer = fs.createWriteStream(tempPath);
dlRes.data.pipe(writer);
await new Promise((resolve, reject) => {
writer.on('finish', resolve);
writer.on('error', reject);
});
const form = new FormData();
form.append('reqtype', 'fileupload');
form.append('fileToUpload', fs.createReadStream(tempPath));
const uploadRes = await axios.post('https://catbox.moe/user/api.php', form, {
headers: {
...form.getHeaders(),
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
'Origin': 'https://catbox.moe',
'Referer': 'https://catbox.moe/'
}
});
await fs.unlink(tempPath);
api.setMessageReaction("✅", event.messageID);
message.reply(uploadRes.data);
} catch (err) {
api.setMessageReaction("❌", event.messageID);
message.reply(`Failed: ${err.message}`);
if (fs.existsSync(tempPath)) await fs.unlink(tempPath);
}
}
};