File size: 1,986 Bytes
47ab1ce
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
let fetch = require('node-fetch');

let handler = async (m, { conn, args, usedPrefix, command }) => {
    if (!args[0]) throw `*Contoh:* ${usedPrefix}${command} https://www.instagram.com/p/ByxKbUSnubS/?utm_source=ig_web_copy_link`;
    
    if (!args[0].match(/instagram/gi)) {
        throw `URL Instagram Tidak Valid!`;
    }
    
    await m.reply("Tunggu sebentar...");

    try {
        const api = await fetch(`https://btch.us.kg/download/igdl?url=${encodeURIComponent(args[0])}`);
        const res = await api.json();
        
        if (!res.status || res.code !== 200 || !res.result || res.result.length === 0) {
            throw `Tidak ada hasil ditemukan.`;
        }

        const limitnya = 3; // Batas jumlah media yang akan dikirim
        
        for (let i = 0; i < Math.min(limitnya, res.result.length); i++) {
            await sleep(3000); // Delay sebelum mengirim
            const mediaUrl = res.result[i].url;
            const mediaType = mediaUrl.endsWith('.mp4') ? 'video' : 'image'; // Cek apakah media adalah video atau gambar
            
            if (mediaType === 'video') {
                conn.sendFile(m.chat, mediaUrl, null, `*Instagram Downloader*\n\n` +
                    `◦ Watermark: ${res.result[i].wm}\n` +
                    `◦ Thumbnail: ${res.result[i].thumbnail}`, m);
            } else {
                conn.sendFile(m.chat, mediaUrl, null, `*Instagram Downloader*\n\n` +
                    `◦ Watermark: ${res.result[i].wm}`, m);
            }
        }
    } catch (e) {
        console.error("Terjadi kesalahan:", e); // Log kesalahan
        throw `Terjadi kesalahan saat mengunduh media. Silakan periksa log untuk detail.`;
    }
}

handler.help = ['instagram'].map(v => v + ' <url>');
handler.tags = ['downloader'];
handler.command = /^(ig|instagram|igdl|instagramdl|igstory)$/i;
handler.limit = true;

module.exports = handler;

function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}