uploadcode
#ivrsnfujavascript ยท 91 baris ยท 518 dilihat
const BASE_URL = "https://lynxsnip.vercel.app";
const API_KEY = "Lynxsnippets";
let handler = async (m, { text, command, conn }) => {
// Wajib reply pesan yang berisi kode
if (!m.quoted || !m.quoted.text) {
return m.reply(
`๐ *Sistem Snippet Lynx (Reply Only)*\n\n` +
`1. Kirim kode lu ke chat.\n` +
`2. Reply kode tersebut dengan format:\n` +
`*${command} <nama_file>|<waktu>|<bahasa>*\n\n` +
`*Format Waktu:* \`1h\` (1 jam), \`1d\` (1 hari), \`30m\` (30 menit). Lewati jika ingin permanen.\n\n` +
`*Contoh Reply:*\n` +
`*${command} config.js|1h|javascript*\n` +
`*${command} index.html|html*`
);
}
let content = m.quoted.text.trim();
if (!content) return m.reply("โ Pesan yang di-reply tidak mengandung teks/kode.");
// Parsing argumen dari teks command
let args = text ? text.split("|").map(v => v.trim()) : [];
let title = "untitled";
let ttlHours = null;
let lang = "plaintext";
let timeRaw = "";
if (args.length > 0) {
title = args[0] || "untitled";
if (args.length > 1) {
// Cek apakah part ke-2 adalah format waktu (contoh: 1h, 2d, 30m)
let match = args[1].toLowerCase().match(/^(\d+)(h|d|m)$/);
if (match) {
timeRaw = args[1];
let val = parseInt(match[1]);
ttlHours = match[2] === 'h' ? val : match[2] === 'd' ? val * 24 : val / 60;
// Bahasa ada di part ke-3
lang = args[2] || "plaintext";
} else {
// Jika bukan format waktu, anggap user langsung masukin bahasa (title|lang)
lang = args[1] || "plaintext";
}
}
}
try {
await m.react('โณ');
await m.reply("โณ Mengupload snippet ke server Lynx...");
let res = await fetch(`${BASE_URL}/api/paste`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": API_KEY,
},
body: JSON.stringify({ title, lang, content, ttlHours }),
});
let data = await res.json();
if (!res.ok) {
await m.react('โ');
return m.reply(`โ Gagal upload: ${data.error || "error tidak diketahui"}`);
}
let expText = ttlHours ? `๐ Expire: ${timeRaw} lagi` : "๐ Expire: Permanen";
await m.react('โ
');
await m.reply(
`โ
*Snippet tersimpan!*\n\n` +
`๐ Nama: ${title}\n` +
`๐ค Bahasa: ${lang}\n` +
`${expText}\n` +
`๐ Link: ${data.url}\n` +
`๐ Raw: ${data.raw}`
);
} catch (e) {
await m.react('โ');
m.reply(`โ Error: ${e.message}`);
}
};
handler.help = ['snip'];
handler.command = /^(snip)$/i;
handler.tags = ['developer'];
handler.rowner = true;
export default handler;