projek2 / plugins /autoai.js
devstok's picture
Upload folder using huggingface_hub
6f55a1e verified
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;