const BASE = 'https://tempmail.plus' const UA = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36' async function getDomains() { let res = await fetch(BASE + '/', { headers: { 'User-Agent': UA, Accept: 'text/html' } }) let html = await res.text() let re = /dropdown-item[^>]*>([^<]+) { let cmd = (args[0] || '').toLowerCase() if (!['create', 'inbox', 'read'].includes(cmd)) { return m.reply(`*Panduan Tempmail*\n\n` + `• *${usedPrefix + command} create* [nama]\n` + `• *${usedPrefix + command} inbox* \n` + `• *${usedPrefix + command} read* `) } await m.react('⏳') try { if (cmd === 'create') { let domains = await getDomains() let domain = domains[Math.floor(Math.random() * domains.length)] let name = args[1] || randomName() if (!/^[A-Za-z0-9]+([.\-_][A-Za-z0-9]+)*$/.test(name)) { throw new Error('Format nama email salah, pake huruf sama angka aja') } let email = `${name}@${domain}` await m.reply(`✅ *Email Dibuat!*\n\n📧 *${email}*\n\nCek inbox:\n*${usedPrefix + command} inbox ${email}*`) } else if (cmd === 'inbox') { let email = args[1] if (!email || !email.includes('@')) throw new Error(`Format salah, contoh: *${usedPrefix + command} inbox nama@domain.com*`) let j = await apiJSON(`${BASE}/api/mails?email=${email}&limit=20&epin=`) if (!j.result) throw new Error(j.err?.msg || 'Gagal ngambil inbox') if (!j.mail_list?.length) { return m.reply(`📬 *Kotak Masuk: ${email}*\n\nMasih kosong.`) } let cap = `📬 *Kotak Masuk: ${email}*\n\n` j.mail_list.forEach((m, i) => { cap += `*${i + 1}. ${m.subject || '(Tanpa Subjek)'}*\n` cap += `👤 Dari: ${m.from_name ? m.from_name + ' ' : ''}<${m.from_mail}>\n` cap += `🆔 ID: ${m.mail_id}\n\n` }) cap += `Baca pesan:\n*${usedPrefix + command} read ${email} *` await m.reply(cap.trim()) } else if (cmd === 'read') { let email = args[1] let id = args[2] if (!email || !id) throw new Error(`Format salah, contoh: *${usedPrefix + command} read nama@domain.com 12345*`) let j = await apiJSON(`${BASE}/api/mails/${encodeURIComponent(id)}?email=${email}&epin=`) if (!j.result) throw new Error(j.err?.msg || 'Pesan ga ketemu') let cap = `📩 *MEMBACA PESAN*\n\n` cap += `👤 Dari: ${j.from_name ? j.from_name + ' ' : ''}<${j.from_mail || j.from}>\n` cap += `📌 Subjek: ${j.subject || '(Tanpa Subjek)'}\n` cap += `🕒 Waktu: ${j.date || j.time}\n\n` cap += `📝 *Isi Pesan:*\n${j.text || '_(Pesan kosong / cuma HTML)_'}\n` if (j.attachments?.length) { cap += `\n📎 *Lampiran:*\n` j.attachments.forEach(a => { let dl = `${BASE}/api/mails/${encodeURIComponent(id)}/attachments/${encodeURIComponent(a.attachment_id)}?email=${encodeURIComponent(email)}` cap += `• ${a.name} (${(a.size / 1024).toFixed(2)} KB)\n 🔗 Link: ${dl}\n` }) } await m.reply(cap.trim()) } await m.react('✅') } catch (e) { console.error(e) await m.react('❌') m.reply(`Error: ${e.message}`) } } handler.help = ['tempmail'] handler.tags = ['tools'] handler.command = /^(tempmail)$/i handler.limit = true handler.register = true export default handler