File size: 7,664 Bytes
6f55a1e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
const util = require('util');
const fetch = require('node-fetch'); // Pastikan Anda telah menginstal node-fetch
const yts = require('yt-search'); // Pastikan Anda telah menginstal yt-search

let handler = async (m, { conn, text }) => {
    // Inisialisasi mode auto AI untuk pengguna
    conn.autoAiMode = conn.autoAiMode || {};

    if (!text) throw `*• Contoh:* .autoai *[on/off]*`;

    if (text === "on") {
        conn.autoAiMode[m.sender] = { pesan: [] };
        m.reply("Hai! Auto AI telah diaktifkan! 🎉✨");
    } else if (text === "off") {
        delete conn.autoAiMode[m.sender];
        m.reply("Auto AI telah dinonaktifkan. Sampai jumpa! 💔");
    }
};

handler.before = async (m, { conn }) => {
    conn.autoAiMode = conn.autoAiMode || {};
    if (m.isBaileys && m.fromMe) return;
    if (!m.text) return; // Pastikan m.text ada
    if (!conn.autoAiMode[m.sender]) return;

    // Periksa apakah pesan dimulai dengan karakter khusus
    if (m.text.startsWith(".") || m.text.startsWith("#") || m.text.startsWith("!") || m.text.startsWith("/") || m.text.startsWith("\\")) return;

    // Menjawab pertanyaan tentang identitas
    if (m.text.toLowerCase().includes("siapa kamu") || m.text.toLowerCase().includes("siapa pembuatmu")) {
        m.reply("Saya adalah OpenAI Realtime buatan Rizki Irfan. Proyek ini masih baru dan saat ini hanya mendukung AI ,terabox dan mengunduh audio musik dari YouTube. untuk pertanyaan lainya kamu bisa bertanya lewat chat instagram https://www.instagram.com/ikykunnnn untuk *donasi* cukup ketik donasi ya cara penggunan nya cukup gampang misal untuk downlowd musik cukup ketik  *tolong putarkan lagu bernadaya* gitu aja nanti respon fitur lain juga sama misal *tolong download kan file dari terabox* terus link nya untuk next fitur lain nya juga sama kaya gitu");
        return; // Keluar dari fungsi setelah menjawab
    }
    if (m.text.toLowerCase().includes("donasi") || m.text.toLowerCase().includes("qiris")) {
        m.reply("jika ingin donasi bisa ke qiris ini https://pomf2.lain.la/f/yyj4kr8f.jpg");
        return; // Keluar dari fungsi setelah menjawab
    }

    if (conn.autoAiMode[m.sender] && m.text) {
        let name = conn.getName(m.sender);
// Periksa apakah pengguna mengetik "terabox"
        if (m.text.toLowerCase().includes("terabox")) {
            try {
                // Ganti dengan URL yang sesuai jika ada parameter lain yang diperlukan
                const response = await fetch(`https://api.betabotz.eu.org/api/download/terabox?url=${encodeURIComponent(m.text)}&apikey=btzrizkiirfan1709`);
                
                if (!response.ok) throw new Error('Gagal mengambil data dari API Terabox');

                const data = await response.json();
                if (!data.status) throw new Error('Tidak ada hasil dari API Terabox');

                // Kirim semua file yang ditemukan
                for (let result of data.result) {
                    let file = result.files[0]; // Ambil file pertama
                    let fileUrl = file.url;

                    // Kirim file kepada pengguna
                    await conn.sendMessage(m.chat, { document: { url: fileUrl }, mimetype: 'application/octet-stream', fileName: file.filename }, { quoted: m });
                }
                
            } catch (err) {
                console.error(err); // Catat kesalahan untuk debugging
                m.reply(`Terjadi kesalahan: ${util.format(err)}`);
            }
        } else if (m.text.toLowerCase().includes("putarkan") || m.text.toLowerCase().includes("lagu") || m.text.toLowerCase().includes("music")) {
            try {
                // Ambil data dari API untuk mengunduh audio
                const response = await fetch(`https://ikygantengbangetanjay-api.hf.space/yt?query=${encodeURIComponent(m.text)}`);
                
                if (!response.ok) throw new Error('Gagal mengambil data dari API');

                const data = await response.json();
                if (!data.success) throw new Error('Tidak ada hasil dari API');

                let result = data.result;
                let audioUrl = result.download.audio; // Gunakan URL unduh audio yang benar

                // Periksa apakah audioUrl valid
                if (!audioUrl) throw new Error('URL audio tidak ditemukan');

                // Kirim file audio langsung kepada pengguna
                await conn.sendMessage(m.chat, { audio: { url: audioUrl }, mimetype: 'audio/mpeg' }, { quoted: m });

                // Kirim detail video kepada pengguna
                let videoDetails = `🎥 *Judul:* ${result.title}\n*Link:* ${result.url}\n*Durasi:* ${result.timestamp}\n*Views:* ${result.views}\n*Dari:* [${result.author.name}](${result.author.url})`;
                await conn.sendMessage(m.chat, { text: videoDetails }, { quoted: m });
                
            } catch (err) {
                console.error(err); // Catat kesalahan untuk debugging
                m.reply(`Terjadi kesalahan: ${util.format(err)}`);
            }
        } else if (m.text.toLowerCase().includes("yt-search")) {
            // Periksa apakah pengguna ingin mencari di YouTube
            try {
                const searchQuery = m.text.replace("yt-search", "").trim();
                const searchResults = await yts(searchQuery);
                
                if (searchResults.videos.length > 0) {
                    let video = searchResults.videos[0]; // Ambil hasil pencarian pertama
                    let hasil = `🎥 *Judul:* ${video.title}\n*Link:* ${video.url}\n*Durasi:* ${video.timestamp}\n*Views:* ${video.views}`;
                    await conn.sendMessage(m.chat, { text: hasil }, { quoted: m });
                } else {
                    m.reply("Tidak ada hasil ditemukan di YouTube.");
                }
                
            } catch (err) {
                console.error(err); // Catat kesalahan untuk debugging
                m.reply(`Terjadi kesalahan saat mencari di YouTube: ${util.format(err)}`);
            }
        } else {
            // Ambil data dari API lain jika bukan perintah lagu
            try {
                const response = await fetch(`https://loco.web.id/wp-content/uploads/api/v1/bingai.php?q=${encodeURIComponent(m.text)}`);
                if (!response.ok) throw new Error('Gagal mengambil data dari API');

                const data = await response.json();
                if (!data.status) throw new Error('Tidak ada hasil dari API');

                let aiResponse = data.result.ai_response;
                let searchResults = data.result.search_results;

                // Check if there are search results
                if (searchResults && searchResults.length > 0) {
                    let firstSearchResult = searchResults[0]; // Get only the first search result
                    let hasil = `${aiResponse}\n\n**Hasil Pencarian Pertama:**\n[Link](${firstSearchResult.url})`;
                    await conn.sendMessage(m.chat, { text: hasil }, { quoted: m });
                } else {
                    // If no search results found
                    let hasil = `${aiResponse}\n\n**Tidak ada hasil pencarian yang ditemukan.**`;
                    await conn.sendMessage(m.chat, { text: hasil }, { quoted: m });
                }
                
            } catch (err) {
                console.error(err); // Log errors for debugging
                m.reply(`Terjadi kesalahan: ${util.format(err)}`);
            }
        }
    }
};

handler.command = /^(autoai)$/i;
handler.help = ["autoai"];
handler.tags = ["ai"];
handler.limit = true;

module.exports = handler;