FITUR Bot WhatsApp

AMBIL FITUR YANG KAMU BUTUHKAN

CASE FITUR

case 'yts': 
case 'ytsearch': {
    if (!text) return m.reply(`πŸ” *Judul atau kata kunci videonya mana, Kak?*\n\nContoh:\n${prefix + command} story wa anime`);

    try {
        await reactionMessage('⏳');
        let search = await yts(text);

        if (!search || !search.videos || search.videos.length === 0) {
            return m.reply(`❌ *Video tidak ditemukan!* Coba kata kunci lain ya, Kak.`);
        }

        let results = search.videos.slice(0, 5);
        for (let i = 0; i < results.length; i++) {
            let video = results[i];
            let caption = `πŸ”’ *No:* ${i + 1}\n`;
            caption += `🎬 *Judul:* ${video.title || 'Tidak ada judul'}\n`;
            caption += `πŸ‘€ *Channel:* ${video.author?.name || 'Tidak diketahui'}\n`;
            caption += `πŸ‘οΈ *Views:* ${video.views || 'Tidak diketahui'}\n`;
            caption += `⏳ *Durasi:* ${video.timestamp || 'Tidak diketahui'}\n`;
            caption += `πŸ“† *Diunggah:* ${video.ago || 'Tidak diketahui'}\n`;
            caption += `πŸ”— *Link:* ${video.url || 'Tidak ada link'}\n`;

            await sock.sendMessage(m.chat, {
                image: { url: video.thumbnail || thumbUrl },
                caption: caption,
            }, { 
                quoted: m 
            });
        }

        m.reply(`βœ… *Berhasil menampilkan 5 hasil pencarian dari YouTube!*`);
    } catch (err) {
        console.error(err);
        m.reply(`❌ *Terjadi kesalahan saat mencari video!* 😭\n${err.message || err}`);
    }
}
break
case 'myip':
case 'ipbot':
    if (!isCreator) return m.reply(mess.owner);
    var http = require('http');
    http.get({
        'host': 'api.ipify.org',
        'port': 80,
        'path': '/'
    }, function(resp) {
        resp.on('data', function(ip) {
            m.reply("πŸ”Ž Oii, alamat IP publik aku nih: " + ip);
        })
    });
break;
case 'delete':
case 'd':
case 'del': {
    if (!args.length) return m.reply('Kak, kamu perlu mengirim pesan yang mau dihapus ya! πŸ€”')
    await kenz.sendMessage(from, {
        delete: {
            remoteJid: from,
            id: m.quoted,
            participant: m.quoted.sender
        }
    })
}
break
case "bikinpayment": 
case "cpayment": {
          if (args.length < 3) return m.reply(`❌ Format salah Gunakan: .bikinpayment noDana noGopay urlQris`)
          
          const [noDana, noGopay, urlQris] = args;
          
          return kenz.sendMessage(from, { text: `BIKIN PAYMENT OTOMATIS SUDAH SELESAI SILAHKAN DIPAKAI\n\n\`DETAL PEMBAYARAN\`\n\n*πŸ’°NOMOR DANA :* ${noDana}\n*πŸ’ΈNOMOR GOPAY :* ${noGopay}\n*πŸ’³QRIS ALL PAYMENT :* ${urlQris}\n\n> POWERED BY KENZMARKET`,
          contextInfo: {
            externalAdReply: {
              forwardingScore: 999,
              isForwarded: true,
              showAdAttribution: true,
              title: "Detal Pembayaranβœ…",
              body: "Β© Powered By KenzMarket",
              previewType: "IMAGE",
              thumbnailUrl: "https://pomf2.lain.la/f/8zjh4ohv.jpg",
              sourceUrl: "https://whatsapp.com/channel/0029VazCs3v2Jl8Eyr1rSi0X",
              renderLargerThumbnail: false,
              mediaType: 1
            }
          }
        })
      }
      break
console.log("FITUR 5: Notifikasi masuk!");

PLUGIN ESM FITUR

import axios from 'axios';

async function pinterest(query) {
  try {
    const response = await axios.get(`https://id.pinterest.com/resource/BaseSearchResource/get/?source_url=/search/pins/?q=${query}&data={"options":{"query":"${query}","scope":"pins","page_size":25}}`, {
      headers: {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
      }
    });

    let images = [];
    const data = response.data;

    data.resource_response.data.results.forEach(item => {
      if (item.images?.orig?.url) {
        images.push(item.images.orig.url);  
      }
    });

    return images;
  } catch (error) {
    console.error('Error:', error.response ? error.response.data : error.message);
    return [];
  }
}

const handler = async (m, { conn, text }) => {
  if (!text) return m.reply('Masukkan query pencarian. Contoh: !pinterest nature');

  try {
    const images = await pinterest(text);
    if (images.length === 0) return m.reply('Tidak ada gambar yang ditemukan.');

    // Mengirim minimal 5 dan maksimal 10 gambar
    const jumlahGambar = Math.min(Math.max(images.length, 5), 10); // Pastikan minimal 5 dan maksimal 10
    const selectedImages = images.slice(0, jumlahGambar);

    for (const img of selectedImages) {
      await conn.sendMessage(m.chat, { image: { url: img } }, { quoted: m }); // Tanpa caption
    }
  } catch (error) {
    console.error(error);
    m.reply('Terjadi kesalahan saat mengambil gambar.');
  }
};

handler.help = ['pinterest'].map(v => v + ' ');
handler.command = /^(pinterest|pin)$/i;
handler.tags = ['search']
handler.limit = false;

export default handler;
import axios from "axios";

let handler = async (m, { conn, args, usedPrefix, command }) => {
  if (!args[0]) {
    return m.reply(`Masukkan username TikTok!\n\nContoh: *${usedPrefix + command} alvianuxio*`);
  }

  let username = args[0];
  let apiKey = "aluxi";
  let baseURL = "https://api.alvianuxio.my.id/api/tiktok/stalk";
  let params = new URLSearchParams({ search: username, apikey: apiKey });

  try {
    let response = await axios({
      method: "get",
      url: `${baseURL}?${params.toString()}`,
      headers: {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, seperti Gecko) Chrome/120.0.0.0 Safari/537.36",
        Accept: "application/json",
      },
    });

    let data = response.data;
    if (!data || !data.data || !data.data.response) {
      return m.reply("❌ Gagal mendapatkan data! Pastikan username benar.");
    }

    let userInfo = JSON.parse(data.data.response).userInfo;

    let result = `╭── *γ€Œ TikTok Stalker 」*\n` +
                 `β”‚ πŸ†” *Username:* @${userInfo.username}\n` +
                 `β”‚ πŸ”Ή *ID:* ${userInfo.id}\n` +
                 `β”‚ πŸ‘€ *Nama:* ${userInfo.nama}\n` +
                 `β”‚ πŸ“œ *Bio:* ${userInfo.bio}\n` +
                 `β”‚ βœ… *Verifikasi:* ${userInfo.verifikasi ? "Ya" : "Tidak"}\n` +
                 `╰───────────────\n\n` +
                 `πŸ“Š *Statistik:*\n` +
                 `*Followers:* ${userInfo.statistik.totalFollowers}\n` +
                 `*Mengikuti:* ${userInfo.statistik.totalMengikuti}\n` +
                 `*Total Like:* ${userInfo.statistik.totalDisukai}\n` +
                 `*Total Video:* ${userInfo.statistik.totalVideo}\n` +
                 `*Total Teman:* ${userInfo.statistik.totalTeman}\n\n` +
                 `*Profile:* https://www.tiktok.com/@${userInfo.username}\n\n`;

    let avatar = userInfo.avatar;
    await conn.sendFile(m.chat, avatar, "profile.jpg", result, m);
  } catch (error) {
    console.error(error);
    m.reply("⚠️ Terjadi kesalahan saat mengambil data.");
  }
};

handler.help = ["tiktokstalk"].map((a) => a + " ");
handler.tags = ["stalker"];
handler.command = ["tiktokstalk", "ttstalk"];

export default handler
import axios from "axios";
import cheerio from "cheerio";
import FormData from "form-data";

let handler = async (m, { conn, text, usedPrefix, command }) => {
  if (!text) {
    return m.reply(`Gunakan perintah:\n${usedPrefix + command} `);
  }
  try {
    let res = await x(text);
    if (res.status !== 200 || (!res.result.video && !res.result.image)) {
      throw "Gagal mengambil data. Pastikan link benar dan coba lagi.";
    }
    let { title, duration, thumb, video, image } = res.result;
    let caption = `*πŸ“Œ twitter Media*\n\nπŸ“Œ *Judul:* ${title}\n⏳ *Durasi:* ${duration || "-"}!*`;
    if (image) {
      caption += `πŸ–Ό *gambar ditemukan!* Mengunduh...`;
      await conn.sendFile(m.chat, image, "twitter.jpg", caption, m);
    } else {
      caption += `🎞 *mengunduh video dengan Kualitas Terbaik...*`;

      await conn.sendFile(m.chat, thumb, "thumb.jpg", caption, m);
 
      let videoUrl = video.fhd 
      if (videoUrl) {
        await conn.sendFile(m.chat, videoUrl, "twitter.mp4", `πŸŽ₯ *Twitter Video*\n\nπŸ“Œ *Judul:* ${title}\n\n*DOSA TANGGUNG SENDIRI!`, m);
      } else {
        throw "Video tidak tersedia untuk diunduh.";
      }
    }
  } catch (e) {
    console.error(e);
    m.reply("Terjadi kesalahan saat mengambil data.");
  }
};

handler.help = ["twitterdl"];
handler.tags = ["downloader"];
handler.command = ["twitterdl", "x", "xdl"];

export default handler
import fetch from 'node-fetch'

let handler = async (m, { conn, text }) => {
if (!text || !text.trim()) throw '⚠️ Masukkan nomor telepon yang valid!';

try {
let url = `https://api.ryzendesu.vip/api/stalk/get-contact?number=${encodeURIComponent(text.trim())}`;
let res = await fetch(url);
if (!res.ok) throw `❌ Gagal mengambil data dari API! Status: ${res.status}`;

let json = await res.json();
if (!json.result) throw '❌ Tidak ada data yang ditemukan untuk nomor tersebut.';

let { name, phone, provider } = json.result.userData;
let tags = json.result.tags || [];
let message = `
πŸ“ž *Informasi Kontak* πŸ“ž
━━━━━━━━━━━━━━━━━━━
πŸ‘€ *Nama*: ${name}
πŸ“± *Nomor*: ${phone}
🌐 *Provider*: ${provider}

🏷️ *Tags*:
${tags.length ? tags.map(tag => `- ${tag}`).join('\n') : 'Tidak ada tag.'}
`.trim();

await conn.sendMessage(m.chat, { text: message }, { quoted: m });
} catch (err) {
await conn.sendMessage(m.chat, { text: `❌ Error: ${err.message || 'Gagal mengambil data.'}` }, { quoted: m });
}
};

handler.help = ['getcontact ']
  handler.tags = ['tools']
  handler.command = /^(getcontact)$/i

  handler.limit = 5
  handler.register = true

  export default handler
import uploadImage from '../lib/uploadImage.js'

const baileys = (await import("@adiwajshing/baileys")).default;
// const uploadImage = require('../lib/uploadImage.js');
// const baileys = = require('@whiskeysockets/baileys');
if (!baileys.proto.Message.ProtocolMessage.Type.STATUS_MENTION_MESSAGE) {
throw new Error("no STATUS_MENTION_MESSAGE found in ProtocolMessage (is your WAProto up-to-date?)");
}

// Function to fetch participants of groups
const fetchParticipants = async (...jids) => {
let results = [];
for (const jid of jids) {
let { participants } = await conn.groupMetadata(jid);
participants = participants.map(({ id }) => id);
results = results.concat(participants);
}
return results;
};

async function mentionStatus(jids, content) {
let colors = ['#7ACAA7', '#6E257E', '#5796FF', '#7E90A4', '#736769', '#57C9FF', '#25C3DC', '#FF7B6C', '#55C265', '#FF898B', '#8C6991', '#C69FCC', '#B8B226', '#EFB32F', '#AD8774', '#792139', '#C1A03F', '#8FA842', '#A52C71', '#8394CA', '#243640'];
let fonts = [0, 1, 2, 6, 7, 8, 9, 10];

let users = [];
for (let id of jids) {
let userId = await conn.groupMetadata(id);
users.push(...userId.participants.map(u => conn.decodeJid(u.id)));
}

let message = await conn.sendMessage(
"status@broadcast",
content,
{
backgroundColor: colors[Math.floor(Math.random() * colors.length)],
font: fonts[Math.floor(Math.random() * fonts.length)],
statusJidList: users,
additionalNodes: [
{
tag: "meta",
attrs: {},
content: [
{
tag: "mentioned_users",
attrs: {},
content: jids.map((jid) => ({
tag: "to",
attrs: { jid },
content: undefined,
})),
},
],
},
],
}
);

jids.forEach(id => {
conn.relayMessage(
id,
{
groupStatusMentionMessage: {
message: {
protocolMessage: {
key: message.key,
type: 25,
},
},
},
},
{
userJid: conn.user.jid,
additionalNodes: [
{
tag: "meta",
attrs: { is_status_mention: "true" },
content: undefined,
},
],
}
);
});
}

let handler = async (m, { conn, text, usedPrefix, command }) => {
if (command == 'upswimage') {
let q = m.quoted ? m.quoted : m
let mime = (q.msg || q).mimetype || ''
if (!mime) throw 'No media found'
let media = await q.download()
let isTele = /image\/(png|jpe?g|gif)|video\/mp4/.test(mime)
let link = await uploadImage(media)
await mentionStatus([m.chat], {
image: {
url: `${link}`
},
caption: `${text}`
});
}
if (command == 'upswvideo') {
let q = m.quoted ? m.quoted : m
let mime = (q.msg || q).mimetype || ''
if (!mime) throw 'No media found'
let media = await q.download()
let isTele = /image\/(png|jpe?g|gif)|video\/mp4/.test(mime)
let link = await uploadImage(media)
await mentionStatus([m.chat], {
video: {
url: `${link}`
},
caption: `${text}`
});
}
if (command == 'upswaudio') {
let q = m.quoted ? m.quoted : m
let mime = (q.msg || q).mimetype || ''
if (!mime) throw 'No media found'
let media = await q.download()
let isTele = /image\/(png|jpe?g|gif)|video\/mp4/.test(mime)
let link = await uploadImage(media)
await mentionStatus([m.chat], {
audio: {
url: `${link}`
},
});
}
if (command == 'upswtext') {
let anu = `${text}`
await mentionStatus([m.chat], {
text: anu
});
}
if (command == 'upsw') {
let anu = `MAU YANG MANA?
.upswimage < caption/no caption> ( untuk foto )
  .upswvideo < caption/no caption> ( untuk video )
    .upswaudio ( untuk audio )
    .upswtext < caption> ( untuk text )`
      m.reply(anu);
      }
      }
      handler.help = ['upswimage','upswvideo','upswtext','upswaudio','upsw']
      handler.tags = ['owner']
      handler.command = /^(upswimage|upswvideo|upswtext|upswaudio|upsw)$/i
      handler.owner = true
      export default handler
      //module.exports = handler;
import axios from 'axios';

const handler = async (m, { conn, args }) => {
if (args.length === 0) {
return conn.reply(m.chat, 'Masukkan prompt untuk menghasilkan gambar. Contoh: .flux perempuan imut menggunakan seragam Jepang, sedang berjalan di malam hari, menggunakan payung karena sedang hujan', m);
}

const prompt = args.join(' ');

try {
const result = await axios.get(`https://exonity.tech/api/image/flux_1_schnell?text=${prompt}`);
const c = result.data.result
await conn.sendFile(m.chat, c.data.up)
} catch (error) {
await conn.reply(m.chat, `Gagal menghasilkan gambar. Error: ${error.message}`, m);
}
};

handler.help = ['flux'];
handler.tags = ['ai'];
handler.command = /^(flux)$/i;

module.exports = handler;

FITUR PLUGIN CJS

const axios = require('axios');

const handler = async (m, { conn, args }) => {
if (args.length === 0) {
return conn.reply(m.chat, 'Masukkan prompt untuk menghasilkan gambar. Contoh: .flux perempuan imut menggunakan seragam Jepang, sedang berjalan di malam hari, menggunakan payung karena sedang hujan', m);
}

const prompt = args.join(' ');

try {
const result = await axios.get(`https://exonity.tech/api/image/flux_1_schnell?text=${prompt}`);
const c = result.data.result
await conn.sendFile(m.chat, c.data.up)
} catch (error) {
await conn.reply(m.chat, `Gagal menghasilkan gambar. Error: ${error.message}`, m);
}
};

handler.help = ['flux'];
handler.tags = ['ai'];
handler.command = /^(flux)$/i;

module.exports = handler;