Lynxdecode / AIO DOWNLOADER
Base Code : Plugin Esm Author : Lynx Decode Note : Fast + Support image dengan sentuhan album message biar rapih dah gitu aja, kalo ga cocok sama base mu sesuakan sendiri
UtilityJavaScript
6 views
Base Code : Plugin Esm Author : Lynx Decode Note : Fast + Support image dengan sentuhan album message biar rapih dah gitu aja, kalo ga cocok sama base mu sesuakan sendiri
/**
* ───「 FEATURE AUTHOR 」───
* 👤 Author : Lynx Decode
* 📞 Contact : +62 882-5804-1396
* 📢 Channel : https://whatsapp.com/channel/0029VbAnuii6GcGCu73oep1i
* ⚠️ Note : Keep credit to respect the creator!
* ─────────────────────────
* 📝 Plugin: All In One Downloader
*/
import fetch from 'node-fetch';
const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
let handler = async (m, { conn, text, usedPrefix, command }) => {
if (!text) return m.reply(`┌˚₊ ๑│ ᴀ ɪ ᴏ ᴅ ᴏ ᴡ ɴ ʟ ᴏ ᴀ ᴅ ᴇ ʀ │๑˚₊ 🎬\n┇ \n│ ❌ Masukkan URL yang ingin di-download!\n│ *Contoh:* ${usedPrefix + command} https://vt.tiktok.com/xxxxxx\n┇ \n└˚₊ ๑ ────────────── ๑˚₊\n> © ERINE-AI`);
await m.react('💫');
try {
const resAPI = await fetch(`https://api.azbry.com/api/download/allinonev2?url=${encodeURIComponent(text)}`);
const json = await resAPI.json();
if (!json.status || !json.result) throw new Error('Gagal mendapatkan data dari API Downloader.');
const data = json.result;
const title = data.title || 'No Title';
const owner = data.owner || 'Unknown';
const downloads = data.downloads || [];
let images = data.images || [];
if (images.length === 0 && downloads.length > 0) {
images = downloads.filter(d => d.label && d.label.toLowerCase().includes('image')).map(d => d.url);
}
const videoObj = downloads.find(d => d.label && (d.label.includes('hd_no_watermark') || d.label.includes('watermark') || d.label.toLowerCase().includes('video')));
const mp3Obj = downloads.find(d => d.label && (d.label.includes('MP3') || d.label.toLowerCase().includes('audio')));
let capInfo = `┌˚₊ ๑│ ᴀ ɪ ᴏ ᴅ ʟ │๑˚₊ 🎬\n┇ \n` +
`│ 📌 *Title:* ${title}\n` +
`│ 👤 *Owner:* ${owner}\n` +
`┇ \n` +
`└˚₊ ๑ ────────────── ๑˚₊\n> © ERINE-AI`;
if (images && images.length > 0) {
for (let imgUrl of images) {
await conn.sendMessage(m.chat, { image: { url: imgUrl } }, { quoted: m });
await delay(2000);
}
await conn.sendMessage(m.chat, { text: capInfo }, { quoted: m });
await delay(1500);
} else if (videoObj && videoObj.url) {
await conn.sendMessage(m.chat, {
video: { url: videoObj.url },
caption: capInfo
}, { quoted: m });
await delay(1500);
} else if (data.thumbnail && !mp3Obj) {
await conn.sendMessage(m.chat, {
image: { url: data.thumbnail },
caption: capInfo
}, { quoted: m });
await delay(1500);
}
if (mp3Obj && mp3Obj.url) {
await conn.sendMessage(m.chat, {
audio: { url: mp3Obj.url },
mimetype: 'audio/mpeg',
ptt: false
}, { quoted: m });
}
await m.react('⚡');
} catch (e) {
console.error(e);
await m.react('❌');
m.reply(`┌˚₊ ๑│ s ʏ s ᴛ ᴇ ᴍ ᴇ ʀ ʀ ᴏ ʀ │๑˚₊ \n┇ Gagal memproses AIO Downloader:\n┇ ${e.message}\n└˚₊ ๑ ────────────── ๑˚₊\n> © ERINE-AI`);
}
};
handler.help = ['aio <link>'];
handler.tags = ['downloader'];
handler.command = /^aio$/i;
handler.limit = true;
export default handler;