From d7676700b74e6aec13c0e3478469d1308a933322 Mon Sep 17 00:00:00 2001 From: Daxmax123 <145521972+Daxmax123@users.noreply.github.com> Date: Sat, 18 Nov 2023 16:32:49 -0500 Subject: [PATCH] Add files via upload --- plugins/_antiarab.js | 29 ++ plugins/_antilink.js | 29 ++ plugins/_antilink2.js | 32 ++ plugins/_antiprivado.js | 13 + plugins/_antitoxic.js | 28 ++ plugins/_antitrabas.js | 33 ++ plugins/_antiviewonce.js | 22 ++ plugins/_autodel_chatgpt.js | 52 +++ plugins/_autosticker.js | 38 ++ plugins/_cmdWithMedia.js | 29 ++ plugins/_detectEvents.js | 99 +++++ plugins/_modoIA.js | 106 ++++++ plugins/_premium.js | 30 ++ plugins/_role.js | 55 +++ plugins/_simsimi.js | 32 ++ plugins/_templateResponse.js | 109 ++++++ plugins/adult-comandos+18.js | 171 +++++++++ plugins/adult-hentaipdf.js | 70 ++++ plugins/adult-hentaisearch.js | 45 +++ plugins/adult-pack_vid.js | 151 ++++++++ plugins/adult-xnxxdl.js | 63 ++++ plugins/adult-xnxxsearch.js | 68 ++++ plugins/adult-xvideosdl.js | 71 ++++ plugins/afk-_afk.js | 31 ++ plugins/afk-afk.js | 11 + plugins/anonymous_chat.js | 53 +++ plugins/anonymous_chat_.js.js | 23 ++ plugins/audio-efectos.js | 47 +++ plugins/buscador-animeinfo.js | 34 ++ plugins/buscador-githubsearch.js | 31 ++ plugins/buscador-google.js | 60 +++ plugins/buscador-lyrics.js | 33 ++ plugins/buscador-peliculas.js | 137 +++++++ plugins/buscador-playstore.js | 31 ++ plugins/buscador-stickersearch.js | 20 + plugins/buscador-stickersearch2.js | 20 + plugins/buscador-wikipedia.js | 42 +++ plugins/buscador-yts.js | 23 ++ plugins/cmd-add.js | 14 + plugins/cmd-del.js | 12 + plugins/cmd-list.js | 10 + plugins/config-enable.js | 474 ++++++++++++++++++++++++ plugins/convertidor-toanime.js | 29 ++ plugins/convertidor-togifaud.js | 13 + plugins/convertidor-toimg.js | 15 + plugins/convertidor-tomp3.js | 14 + plugins/convertidor-toptt.js | 18 + plugins/convertidor-tourl.js | 15 + plugins/convertidor-tovideo.js | 25 ++ plugins/convertidor-tts.js | 44 +++ plugins/convertidor-tts2.js | 109 ++++++ plugins/downloader-facebook.js | 89 +++++ plugins/downloader-gdrive.js | 41 ++ plugins/downloader-gitclone.js | 16 + plugins/downloader-ig.js | 70 ++++ plugins/downloader-igstalk.js | 42 +++ plugins/downloader-igstory.js | 26 ++ plugins/downloader-imagen.js | 13 + plugins/downloader-mediafire.js | 53 +++ plugins/downloader-modapk.js | 18 + plugins/downloader-pinterest.js | 13 + plugins/downloader-play.js | 457 +++++++++++++++++++++++ plugins/downloader-play_v2.js | 213 +++++++++++ plugins/downloader-playdoc.js | 246 ++++++++++++ plugins/downloader-playlist.js | 42 +++ plugins/downloader-pptiktok.js | 10 + plugins/downloader-ringtone.js | 21 ++ plugins/downloader-soundcloud.js | 26 ++ plugins/downloader-spotify.js | 126 +++++++ plugins/downloader-stickerpack.js | 21 ++ plugins/downloader-tiktok.js | 62 ++++ plugins/downloader-tiktok_img.js | 47 +++ plugins/downloader-tiktokstalk.js | 28 ++ plugins/downloader-wallpaper.js | 11 + plugins/downloader-x_twitter.js | 121 ++++++ plugins/downloader-yta.2.js | 30 ++ plugins/downloader-yta.js | 108 ++++++ plugins/downloader-ytmeta.js | 52 +++ plugins/downloader-ytv.2.js | 31 ++ plugins/downloader-ytv.js | 199 ++++++++++ plugins/downloader-ytvideodl.js | 50 +++ plugins/fix-esperando_mensaje.js | 38 ++ plugins/fix-owner-esperando_mensajes.js | 39 ++ plugins/frase-frases.js | 139 +++++++ plugins/frase-piropos.js | 14 + plugins/fun-calculador.js | 117 ++++++ plugins/fun-doxeo_falso.js | 113 ++++++ plugins/fun-follar.js | 17 + plugins/fun-formarpareja.js | 16 + plugins/fun-love.js | 57 +++ plugins/fun-personalidad.js | 31 ++ plugins/fun-pregunta.js | 12 + plugins/fun-reto.js | 100 +++++ plugins/fun-simi.js | 30 ++ plugins/fun-top.js | 45 +++ plugins/fun-tops.js | 58 +++ plugins/fun-verdad.js | 169 +++++++++ plugins/game-_cancion.js | 23 ++ plugins/game-_suitpvp.js | 97 +++++ 99 files changed, 6160 insertions(+) create mode 100644 plugins/_antiarab.js create mode 100644 plugins/_antilink.js create mode 100644 plugins/_antilink2.js create mode 100644 plugins/_antiprivado.js create mode 100644 plugins/_antitoxic.js create mode 100644 plugins/_antitrabas.js create mode 100644 plugins/_antiviewonce.js create mode 100644 plugins/_autodel_chatgpt.js create mode 100644 plugins/_autosticker.js create mode 100644 plugins/_cmdWithMedia.js create mode 100644 plugins/_detectEvents.js create mode 100644 plugins/_modoIA.js create mode 100644 plugins/_premium.js create mode 100644 plugins/_role.js create mode 100644 plugins/_simsimi.js create mode 100644 plugins/_templateResponse.js create mode 100644 plugins/adult-comandos+18.js create mode 100644 plugins/adult-hentaipdf.js create mode 100644 plugins/adult-hentaisearch.js create mode 100644 plugins/adult-pack_vid.js create mode 100644 plugins/adult-xnxxdl.js create mode 100644 plugins/adult-xnxxsearch.js create mode 100644 plugins/adult-xvideosdl.js create mode 100644 plugins/afk-_afk.js create mode 100644 plugins/afk-afk.js create mode 100644 plugins/anonymous_chat.js create mode 100644 plugins/anonymous_chat_.js.js create mode 100644 plugins/audio-efectos.js create mode 100644 plugins/buscador-animeinfo.js create mode 100644 plugins/buscador-githubsearch.js create mode 100644 plugins/buscador-google.js create mode 100644 plugins/buscador-lyrics.js create mode 100644 plugins/buscador-peliculas.js create mode 100644 plugins/buscador-playstore.js create mode 100644 plugins/buscador-stickersearch.js create mode 100644 plugins/buscador-stickersearch2.js create mode 100644 plugins/buscador-wikipedia.js create mode 100644 plugins/buscador-yts.js create mode 100644 plugins/cmd-add.js create mode 100644 plugins/cmd-del.js create mode 100644 plugins/cmd-list.js create mode 100644 plugins/config-enable.js create mode 100644 plugins/convertidor-toanime.js create mode 100644 plugins/convertidor-togifaud.js create mode 100644 plugins/convertidor-toimg.js create mode 100644 plugins/convertidor-tomp3.js create mode 100644 plugins/convertidor-toptt.js create mode 100644 plugins/convertidor-tourl.js create mode 100644 plugins/convertidor-tovideo.js create mode 100644 plugins/convertidor-tts.js create mode 100644 plugins/convertidor-tts2.js create mode 100644 plugins/downloader-facebook.js create mode 100644 plugins/downloader-gdrive.js create mode 100644 plugins/downloader-gitclone.js create mode 100644 plugins/downloader-ig.js create mode 100644 plugins/downloader-igstalk.js create mode 100644 plugins/downloader-igstory.js create mode 100644 plugins/downloader-imagen.js create mode 100644 plugins/downloader-mediafire.js create mode 100644 plugins/downloader-modapk.js create mode 100644 plugins/downloader-pinterest.js create mode 100644 plugins/downloader-play.js create mode 100644 plugins/downloader-play_v2.js create mode 100644 plugins/downloader-playdoc.js create mode 100644 plugins/downloader-playlist.js create mode 100644 plugins/downloader-pptiktok.js create mode 100644 plugins/downloader-ringtone.js create mode 100644 plugins/downloader-soundcloud.js create mode 100644 plugins/downloader-spotify.js create mode 100644 plugins/downloader-stickerpack.js create mode 100644 plugins/downloader-tiktok.js create mode 100644 plugins/downloader-tiktok_img.js create mode 100644 plugins/downloader-tiktokstalk.js create mode 100644 plugins/downloader-wallpaper.js create mode 100644 plugins/downloader-x_twitter.js create mode 100644 plugins/downloader-yta.2.js create mode 100644 plugins/downloader-yta.js create mode 100644 plugins/downloader-ytmeta.js create mode 100644 plugins/downloader-ytv.2.js create mode 100644 plugins/downloader-ytv.js create mode 100644 plugins/downloader-ytvideodl.js create mode 100644 plugins/fix-esperando_mensaje.js create mode 100644 plugins/fix-owner-esperando_mensajes.js create mode 100644 plugins/frase-frases.js create mode 100644 plugins/frase-piropos.js create mode 100644 plugins/fun-calculador.js create mode 100644 plugins/fun-doxeo_falso.js create mode 100644 plugins/fun-follar.js create mode 100644 plugins/fun-formarpareja.js create mode 100644 plugins/fun-love.js create mode 100644 plugins/fun-personalidad.js create mode 100644 plugins/fun-pregunta.js create mode 100644 plugins/fun-reto.js create mode 100644 plugins/fun-simi.js create mode 100644 plugins/fun-top.js create mode 100644 plugins/fun-tops.js create mode 100644 plugins/fun-verdad.js create mode 100644 plugins/game-_cancion.js create mode 100644 plugins/game-_suitpvp.js diff --git a/plugins/_antiarab.js b/plugins/_antiarab.js new file mode 100644 index 0000000..f8cf480 --- /dev/null +++ b/plugins/_antiarab.js @@ -0,0 +1,29 @@ +const handler = (m) => m; +handler.before = async function(m, {conn, isAdmin, isBotAdmin, isOwner, isROwner} ) { + /* if (m.message) { + console.log(m.message) + }*/ + if (!m.isGroup) return !1; + const chat = global.db.data.chats[m.chat]; + const bot = global.db.data.settings[conn.user.jid] || {}; + if (isBotAdmin && chat.antiArab2 && !isAdmin && !isOwner && !isROwner && bot.restrict) { + if (m.sender.startsWith('212' || '212')) { + m.reply(`*[โ—] ๐“”๐“ ๐“”๐“ข๐“ฃ๐“” ๐“–โ„›๐“ค๐“Ÿ๐“ž ๐“๐“ž ๐“ข๐“” ๐“Ÿ๐“”โ„›โ„ณ๐“˜๐“ฃ๐“”๐“ ๐“๐“คโ„ณ๐“”โ„›๐“ž๐“ข โ„›๐“โ„›๐“ž๐“ข ๐“ž ๐“โ„›๐“โ„ฌ๐“”๐“ข, ๐“Ÿ๐“žโ„› โ„’๐“ž ๐“ ๐“ค๐“” โ„ณ๐“” ๐“ฃ๐“”๐“๐“–๐“ž ๐“žโ„ฌโ„’๐“˜๐“–๐“๐““๐“ž ๐“ ๐“”๐“ง๐“Ÿ๐“คโ„’๐“ข๐“โ„›โ„’๐“ž ๐““๐“”โ„’ ๐“–โ„›๐“ค๐“Ÿ๐“ž*`); + const responseb = await conn.groupParticipantsUpdate(m.chat, [m.sender], 'remove'); + if (responseb[0].status === '404') return; + } + + if (m.sender.startsWith('265' || '265')) { + m.reply(`*[โ—] ๐“”๐“ ๐“”๐“ข๐“ฃ๐“” ๐“–โ„›๐“ค๐“Ÿ๐“ž ๐“๐“ž ๐“ข๐“” ๐“Ÿ๐“”โ„›โ„ณ๐“˜๐“ฃ๐“”๐“ ๐“๐“คโ„ณ๐“”โ„›๐“ž๐“ข โ„›๐“โ„›๐“ž๐“ข ๐“ž ๐“โ„›๐“โ„ฌ๐“”๐“ข, ๐“Ÿ๐“žโ„› โ„’๐“ž ๐“ ๐“ค๐“” โ„ณ๐“” ๐“ฃ๐“”๐“๐“–๐“ž ๐“žโ„ฌโ„’๐“˜๐“–๐“๐““๐“ž ๐“ ๐“”๐“ง๐“Ÿ๐“คโ„’๐“ข๐“โ„›โ„’๐“ž ๐““๐“”โ„’ ๐“–โ„›๐“ค๐“Ÿ๐“ž*`); + const responseb = await conn.groupParticipantsUpdate(m.chat, [m.sender], 'remove'); + if (responseb[0].status === '404') return; + } + + if (m.sender.startsWith('92' || '92')) { + m.reply(`*[โ—] ๐“”๐“ ๐“”๐“ข๐“ฃ๐“” ๐“–โ„›๐“ค๐“Ÿ๐“ž ๐“๐“ž ๐“ข๐“” ๐“Ÿ๐“”โ„›โ„ณ๐“˜๐“ฃ๐“”๐“ ๐“๐“คโ„ณ๐“”โ„›๐“ž๐“ข โ„›๐“โ„›๐“ž๐“ข ๐“ž ๐“โ„›๐“โ„ฌ๐“”๐“ข, ๐“Ÿ๐“žโ„› โ„’๐“ž ๐“ ๐“ค๐“” โ„ณ๐“” ๐“ฃ๐“”๐“๐“–๐“ž ๐“žโ„ฌโ„’๐“˜๐“–๐“๐““๐“ž ๐“ ๐“”๐“ง๐“Ÿ๐“คโ„’๐“ข๐“โ„›โ„’๐“ž ๐““๐“”โ„’ ๐“–โ„›๐“ค๐“Ÿ๐“ž*`); + const responseb = await conn.groupParticipantsUpdate(m.chat, [m.sender], 'remove'); + if (responseb[0].status === '404') return; + } + } +}; +export default handler; diff --git a/plugins/_antilink.js b/plugins/_antilink.js new file mode 100644 index 0000000..70adf36 --- /dev/null +++ b/plugins/_antilink.js @@ -0,0 +1,29 @@ +const linkRegex = /chat.whatsapp.com\/([0-9A-Za-z]{20,24})/i; +export async function before(m, {conn, isAdmin, isBotAdmin}) { + if (m.isBaileys && m.fromMe) { + return !0; + } + if (!m.isGroup) return !1; + const chat = global.db.data.chats[m.chat]; + const delet = m.key.participant; + const bang = m.key.id; + const bot = global.db.data.settings[this.user.jid] || {}; + const user = `@${m.sender.split`@`[0]}`; + const isGroupLink = linkRegex.exec(m.text); + const grupo = `https://chat.whatsapp.com`; + if (isAdmin && chat.antiLink && m.text.includes(grupo)) return m.reply('*โ„‹๐“”๐“จ!!! ๐“”โ„’ ๐“๐“๐“ฃ๐“˜โ„’๐“˜๐“๐“š ๐“”๐“ข๐“ฃ๐“ ๐“๐“’๐“ฃ๐“˜๐“ฅ๐“๐““๐“ž, ๐“Ÿ๐“”โ„›๐“ž ๐“’๐“žโ„ณ๐“ž ๐“”โ„›๐“”๐“ข ๐“๐““โ„ณ๐“˜๐“ ๐“ฃ๐“” ๐“ข๐“โ„’๐“ฅ๐“๐“ข, ๐“ข๐“โ„’๐“ฅ๐“๐““๐“ž/๐“!*'); + if (chat.antiLink && isGroupLink && !isAdmin) { + if (isBotAdmin) { + const linkThisGroup = `https://chat.whatsapp.com/${await this.groupInviteCode(m.chat)}`; + if (m.text.includes(linkThisGroup)) return !0; + } + await this.sendMessage(m.chat, {text: `*ใ€Œ ๐€๐๐“๐ˆ ๐‹๐ˆ๐๐Š๐’ ใ€*\n*๐“๐““๐“˜๐“ž๐“ข โ„ฌ๐“๐“ ๐“ค๐“”โ„›๐“ž๐Ÿ‘‹ ${user} โ„›๐“žโ„ณ๐“Ÿ๐“˜๐“ข๐“ฃ๐“” โ„’๐“๐“ข โ„›๐“”๐“–โ„’๐“๐“ข ๐““๐“”โ„’ ๐“–โ„›๐“ค๐“Ÿ๐“ž, ๐“๐“ž๐“ข ๐“ฅ๐“”โ„ณ๐“ž๐“ข ๐“”๐“ ๐“”โ„’ ๐“ž๐“ฃโ„›๐“ž โ„ณ๐“ค๐“๐““๐“ž...!!*`, mentions: [m.sender]}, {quoted: m}); + if (!isBotAdmin) return m.reply('*[โ—๐ˆ๐๐…๐Žโ—] ๐“”โ„’ โ„ฌ๐“ž๐“ฃ ๐“๐“ž ๐“”๐“ข ๐“๐““โ„ณ๐“˜๐“, ๐“๐“ž ๐“Ÿ๐“ค๐“”๐““๐“” ๐“”๐“ง๐“Ÿ๐“คโ„’๐“ข๐“โ„› ๐“–๐“”๐“๐“ฃ๐“”*'); + if (isBotAdmin && bot.restrict) { + await conn.sendMessage(m.chat, {delete: {remoteJid: m.chat, fromMe: false, id: bang, participant: delet}}); + const responseb = await conn.groupParticipantsUpdate(m.chat, [m.sender], 'remove'); + if (responseb[0].status === '404') return; + } else if (!bot.restrict) return m.reply('*[โ—๐ˆ๐๐…๐Žโ—] ๐“”โ„’ ๐“Ÿโ„›๐“ž๐“Ÿ๐“˜๐“”๐“ฃ๐“โ„›๐“˜๐“ž ๐““๐“”โ„’ โ„ฌ๐“ž๐“ฃ ๐“๐“ž ๐“ฃ๐“˜๐“”๐“๐“” ๐“๐“’๐“ฃ๐“˜๐“ฅ๐“๐““๐“ž โ„’๐“๐“ข โ„›๐“”๐“ข๐“ฃโ„›๐“˜๐“’๐“’๐“˜๐“ž๐“๐“”๐“ข (#๐šŽ๐š—๐šŠ๐š‹๐š•๐šŽ ๐š›๐šŽ๐šœ๐š๐š›๐š’๐šŒ๐š) ๐“”๐“ข๐“’โ„›๐“˜โ„ฌ๐“”โ„’๐“” ๐“Ÿ๐“โ„›๐“ ๐“ ๐“ค๐“” โ„’๐“ž ๐“๐“’๐“ฃ๐“˜๐“ฅ๐“”*'); + } + return !0; +} diff --git a/plugins/_antilink2.js b/plugins/_antilink2.js new file mode 100644 index 0000000..1e57447 --- /dev/null +++ b/plugins/_antilink2.js @@ -0,0 +1,32 @@ +// manden porno test +const linkRegex = /https:/i; +export async function before(m, {conn, isAdmin, isBotAdmin, text}) { + if (m.isBaileys && m.fromMe) { + return !0; + } + if (!m.isGroup) return !1; + const chat = global.db.data.chats[m.chat]; + const delet = m.key.participant; + const bang = m.key.id; + const bot = global.db.data.settings[this.user.jid] || {}; + const user = `@${m.sender.split`@`[0]}`; + const isGroupLink = linkRegex.exec(m.text); + if (chat.antiLink2 && isGroupLink && !isAdmin) { + if (isBotAdmin) { + const linkThisGroup = `https://chat.whatsapp.com/${await this.groupInviteCode(m.chat)}`; + const linkThisGroup2 = `https://www.youtube.com/`; + const linkThisGroup3 = `https://youtu.be/`; + if (m.text.includes(linkThisGroup)) return !0; + if (m.text.includes(linkThisGroup2)) return !0; + if (m.text.includes(linkThisGroup3)) return !0; + } + await this.sendMessage(m.chat, {text: `*ใ€Œ ๐€๐๐“๐ˆ ๐‹๐ˆ๐๐Š๐’ ใ€*\n*๐“๐““๐“˜๐“ž๐“ข โ„ฌ๐“๐“ ๐“ค๐“”โ„›๐“ž ๐Ÿ‘‹ ${user} โ„›๐“žโ„ณ๐“Ÿ๐“˜๐“ข๐“ฃ๐“” โ„’๐“๐“ข โ„›๐“”๐“–โ„’๐“๐“ข ๐““๐“”โ„’ ๐“–โ„›๐“ค๐“Ÿ๐“ž, ๐“๐“ž๐“ข ๐“ฅ๐“”โ„ณ๐“ž๐“ข ๐“”๐“ ๐“”โ„’ ๐“ž๐“ฃโ„›๐“ž โ„ณ๐“ค๐“๐““๐“ž...!!*`, mentions: [m.sender]}, {quoted: m}); + if (!isBotAdmin) return m.reply('*[โ—๐ˆ๐๐…๐Žโ—] ๐“”โ„’ โ„ฌ๐“ž๐“ฃ ๐“๐“ž ๐“”๐“ข ๐“๐““โ„ณ๐“˜๐“, ๐“๐“ž ๐“Ÿ๐“ค๐“”๐““๐“” ๐“”๐“ง๐“Ÿ๐“คโ„’๐“ข๐“โ„› ๐“–๐“”๐“๐“ฃ๐“”*'); + if (isBotAdmin && bot.restrict) { + await conn.sendMessage(m.chat, {delete: {remoteJid: m.chat, fromMe: false, id: bang, participant: delet}}); + const responseb = await conn.groupParticipantsUpdate(m.chat, [m.sender], 'remove'); + if (responseb[0].status === '404') return; + } else if (!bot.restrict) return m.reply('*[โ—๐ˆ๐๐…๐Žโ—] ๐“”โ„’ ๐“Ÿโ„›๐“ž๐“Ÿ๐“˜๐“”๐“ฃ๐“โ„›๐“˜๐“ž ๐““๐“”โ„’ โ„ฌ๐“ž๐“ฃ ๐“๐“ž ๐“ฃ๐“˜๐“”๐“๐“” ๐“๐“’๐“ฃ๐“˜๐“ฅ๐“๐““๐“ž โ„’๐“๐“ข โ„›๐“”๐“ข๐“ฃโ„›๐“˜๐“’๐“’๐“˜๐“ž๐“๐“”๐“ข (#๐šŽ๐š—๐šŠ๐š‹๐š•๐šŽ ๐š›๐šŽ๐šœ๐š๐š›๐š’๐šŒ๐š) ๐“”๐“ข๐“’โ„›๐“˜โ„ฌ๐“”โ„’๐“” ๐“Ÿ๐“โ„›๐“ ๐“ ๐“ค๐“” โ„’๐“ž ๐“๐“’๐“ฃ๐“˜๐“ฅ๐“”*'); + } + return !0; +} diff --git a/plugins/_antiprivado.js b/plugins/_antiprivado.js new file mode 100644 index 0000000..ad1613d --- /dev/null +++ b/plugins/_antiprivado.js @@ -0,0 +1,13 @@ +export async function before(m, {conn, isAdmin, isBotAdmin, isOwner, isROwner}) { + if (m.isBaileys && m.fromMe) return !0; + if (m.isGroup) return !1; + if (!m.message) return !0; + if (m.text.includes('PIEDRA') || m.text.includes('PAPEL') || m.text.includes('TIJERA') || m.text.includes('serbot') || m.text.includes('jadibot')) return !0; + const chat = global.db.data.chats[m.chat]; + const bot = global.db.data.settings[this.user.jid] || {}; + if (bot.antiPrivate && !isOwner && !isROwner) { + await m.reply(`*[โ—] โ„‹๐“ธ๐“ต๐“ช @${m.sender.split`@`[0]}, ๐–Š๐–˜๐–™๐–† ๐–•๐–—๐–”๐–๐–Ž๐–‡๐–Ž๐–‰๐–” ๐–๐–†๐–‡๐–‘๐–†๐–—๐–‘๐–Š ๐–†๐–‘ ๐–•๐–—๐–Ž๐–›๐–†๐–‰๐–” ๐–‰๐–Š๐–‘ ๐–‡๐–”๐–™, ๐–’๐–Š ๐–›๐–Š๐–” ๐–”๐–‡๐–‘๐–Ž๐–Œ๐–†๐–‰๐–” ๐–† ๐–‡๐–‘๐–”๐––๐–š๐–Š๐–†๐–—๐–‘๐–”.*`, false, {mentions: [m.sender]}); + await this.updateBlockStatus(m.chat, 'block'); + } + return !1; +} diff --git a/plugins/_antitoxic.js b/plugins/_antitoxic.js new file mode 100644 index 0000000..7a4aa89 --- /dev/null +++ b/plugins/_antitoxic.js @@ -0,0 +1,28 @@ +const toxicRegex = /puto|puta|rata|estupido|imbecil|rctmre|mrd|verga|vrga|maricon/i; + +export async function before(m, {isAdmin, isBotAdmin, isOwner}) { + if (m.isBaileys && m.fromMe) { + return !0; + } + if (!m.isGroup) { + return !1; + } + const user = global.db.data.users[m.sender]; + const chat = global.db.data.chats[m.chat]; + const bot = global.db.data.settings[mconn.conn.user.jid] || {}; + const isToxic = toxicRegex.exec(m.text); + + if (isToxic && chat.antiToxic && !isOwner && !isAdmin) { + user.warn += 1; + if (!(user.warn >= 5)) await m.reply('*[โ—] ' + `${user.warn == 1 ? `Hola @${m.sender.split`@`[0]}` : `@${m.sender.split`@`[0]}`}, decir la palabra "${isToxic}" estรก prohibido en este grupo. Advertencia: ${user.warn}/5.` + '*', false, {mentions: [m.sender]}); + } + + if (user.warn >= 5) { + user.warn = 0; + await m.reply(`*[โ—] Hola @${m.sender.split`@`[0]}, superaste las 5 advertencias por lo que serรกs eliminado de este grupo por tu comportamiento.*`, false, {mentions: [m.sender]}); + user.banned = true; + await mconn.conn.groupParticipantsUpdate(m.chat, [m.sender], 'remove'); + // await this.updateBlockStatus(m.sender, 'block') + } + return !1; +} diff --git a/plugins/_antitrabas.js b/plugins/_antitrabas.js new file mode 100644 index 0000000..85321f0 --- /dev/null +++ b/plugins/_antitrabas.js @@ -0,0 +1,33 @@ +// +// By @NeKosmic || https://github.com/NeKosmic/ +// + +import * as fs from 'fs'; + +export async function before(m, {conn, isAdmin, isBotAdmin, usedPrefix}) { + if (m.isBaileys && m.fromMe) { + return !0; + } + if (!m.isGroup) return !1; + const chat = global.db.data.chats[m.chat]; + const bot = global.db.data.settings[this.user.jid] || {}; + const delet = m.key.participant; + const bang = m.key.id; + const name = await conn.getName(m.sender); + const fakemek = {'key': {'participant': '0@s.whatsapp.net', 'remoteJid': '0@s.whatsapp.net'}, 'message': {'groupInviteMessage': {'groupJid': '51995386439-1616969743@g.us', 'inviteCode': 'm', 'groupName': 'P', 'caption': '๐šƒ๐š‘๐šŽ ๐™ผ๐šข๐šœ๐š๐š’๐šŒ - ๐™ฑ๐š˜๐š', 'jpegThumbnail': null}}}; + if (chat.antiTraba && m.text.length > 5000) { // Cantidad mรกxima de caracteres aceptados en un mensaje// + if (isAdmin) return conn.sendMessage(m.chat, {text: `El administrador @${m.sender.split('@')[0]} acaba de enviar un texto que contiene muchos caracteres -.-!`, mentions: [m.sender]}, {quoted: fakemek}); + conn.sendMessage(m.chat, `*[ ! ] Se detecto un mensaje que contiene muchos caracteres [ ! ]*\n`, `${isBotAdmin ? '' : 'No soy administrador, no puedo hacer nada :/'}`, m); + // await conn.sendButton(m.chat, `*[ ! ] Se detecto un mensaje que contiene muchos caracteres [ ! ]*\n`, `${isBotAdmin ? '' : 'No soy administrador, no puedo hacer nada :/'}`, author, ['[ DESACTIVAR ANTI TRABAS ]', usedPrefix+'apagar antitraba'], fakemek ) + if (isBotAdmin && bot.restrict) { + conn.sendMessage(m.chat, {delete: {remoteJid: m.chat, fromMe: false, id: bang, participant: delet}}); + setTimeout(() => { + conn.sendMessage(m.chat, {text: `Marcar el chat como leido โœ“\n${'\n'.repeat(400)}\n=> El nรบmero : wa.me/${m.sender.split('@')[0]}\n=> Alias : ${name}\n[ ! ] Acaba de enviar un texto que contiene muchos caracteres que puede ocasionar fallos en los dispositivos`, mentions: [m.sender]}, {quoted: fakemek}); + }, 0); + setTimeout(() => { + conn.groupParticipantsUpdate(m.chat, [m.sender], 'remove'); + }, 1000); + } else if (!bot.restrict) return m.reply('[ ! ] Para realizar acciones de eliminaciรณn, mi dueรฑo tiene que encender el modo restringido!'); + } + return !0; +} diff --git a/plugins/_antiviewonce.js b/plugins/_antiviewonce.js new file mode 100644 index 0000000..19583f0 --- /dev/null +++ b/plugins/_antiviewonce.js @@ -0,0 +1,22 @@ +const {downloadContentFromMessage} = (await import('@whiskeysockets/baileys')); + +export async function before(m, {isAdmin, isBotAdmin}) { + const chat = db.data.chats[m.chat]; + if (/^[.~#/\$,](read)?viewonce/.test(m.text)) return; + if (!chat?.antiviewonce || chat?.isBanned) return; + if (m.mtype == 'viewOnceMessageV2') { + const msg = m.message.viewOnceMessageV2.message; + const type = Object.keys(msg)[0]; + const media = await downloadContentFromMessage(msg[type], type == 'imageMessage' ? 'image' : 'video'); + let buffer = Buffer.from([]); + for await (const chunk of media) { + buffer = Buffer.concat([buffer, chunk]); + } + const cap = '*- En este grupo, no permitimos que ocultes nada.*' + if (/video/.test(type)) { + return mconn.conn.sendFile(m.chat, buffer, 'error.mp4', `${msg[type].caption ? msg[type].caption + '\n\n' + cap : cap}`, m); + } else if (/image/.test(type)) { + return mconn.conn.sendFile(m.chat, buffer, 'error.jpg', `${msg[type].caption ? msg[type].caption + '\n\n' + cap : cap}`, m); + } + } +} diff --git a/plugins/_autodel_chatgpt.js b/plugins/_autodel_chatgpt.js new file mode 100644 index 0000000..22ca4df --- /dev/null +++ b/plugins/_autodel_chatgpt.js @@ -0,0 +1,52 @@ +const INACTIVITY_TIMEOUT_MS = 30 * 60 * 1000; + +async function deleteInactiveUserData(m) { + const user = global.chatgpt.data.users[m.sender]; + if (!user) return; // Si no existe el usuario, no hace nada + + const lastUpdateTime = user.lastUpdate || 0; + const currentTime = new Date().getTime(); + + if (currentTime - lastUpdateTime > INACTIVITY_TIMEOUT_MS) { + delete global.chatgpt.data.users[m.sender]; + // console.log(`Datos del usuario ${m.sender} eliminados despuรฉs de ${INACTIVITY_TIMEOUT_MS / 1000 / 60} minutos de inactividad.`); + } +} + +export async function all(m) { + const user = global.chatgpt.data.users[m.sender]; + + if (user) { + user.lastUpdate = new Date().getTime(); + global.chatgpt.data.users[m.sender] = user; + } else { + return; // Si no existe el usuario, no hace nada + } + + setTimeout(() => deleteInactiveUserData(m), INACTIVITY_TIMEOUT_MS); +} + +/* const INACTIVITY_TIMEOUT_MS = 30 * 60 * 1000; + +async function deleteInactiveUserData(m) { + const user = global.chatgpt.data.users[m.sender]; + const lastUpdateTime = user?.lastUpdate || 0; + const currentTime = new Date().getTime(); + + if (currentTime - lastUpdateTime > INACTIVITY_TIMEOUT_MS) { + delete global.chatgpt.data.users[m.sender]; + //console.log(`Datos del usuario ${m.sender} eliminados despuรฉs de ${INACTIVITY_TIMEOUT_MS / 1000 / 60} minutos de inactividad.`); + } +} + +export async function all(m) { + let user = global.chatgpt.data.users[m.sender]; + + if (user) { + user.lastUpdate = new Date().getTime(); + global.chatgpt.data.users[m.sender] = user; + } + + setTimeout(() => deleteInactiveUserData(m), INACTIVITY_TIMEOUT_MS); + +}*/ diff --git a/plugins/_autosticker.js b/plugins/_autosticker.js new file mode 100644 index 0000000..0e777f0 --- /dev/null +++ b/plugins/_autosticker.js @@ -0,0 +1,38 @@ +import {sticker} from '../lib/sticker.js'; + +const handler = (m) => m; + +handler.all = async function(m) { + const chat = db.data.chats[m.chat]; + const user = db.data.users[m.sender]; + + if (chat.autosticker && m.isGroup) { + const q = m; + let stiker = false; + const mime = (q.msg || q).mimetype || q.mediaType || ''; + if (/webp/g.test(mime)) return; + if (/image/g.test(mime)) { + const img = await q.download?.(); + if (!img) return; + stiker = await sticker(img, false, packname, author); + } else if (/video/g.test(mime)) { + if (/video/g.test(mime)) if ((q.msg || q).seconds > 8) return await m.reply(`*[โ—๐ˆ๐๐…๐Žโ—] ๐™ด๐™ป ๐š…๐™ธ๐™ณ๐™ด๐™พ ๐™ฝ๐™พ ๐™ฟ๐š„๐™ด๐™ณ๐™ด ๐™ณ๐š„๐š๐™ฐ๐š ๐™ผ๐™ฐ๐š‚ ๐™ณ๐™ด 7 ๐š‚๐™ด๐™ถ๐š„๐™ฝ๐™ณ๐™พ๐š‚*\n\n๐™ฟ๐™ฐ๐š๐™ฐ ๐™ณ๐™ด๐š‚๐™ฐ๐™ฒ๐šƒ๐™ธ๐š…๐™ฐ๐š ๐™ด๐š‚๐šƒ๐™ฐ ๐™พ๐™ฟ๐™ฒ๐™ธ๐™พฬ๐™ฝ ๐™ด๐š‚๐™ฒ๐š๐™ธ๐™ฑ๐™ฐ (#๐š๐š’๐šœ๐šŠ๐š‹๐š•๐šŽ ๐šŠ๐šž๐š๐š˜๐šœ๐š๐š’๐šŒ๐š”๐šŽ๐š›)`); + // await this.sendButton(m.chat, '*[โ—๐ˆ๐๐…๐Žโ—] ๐™ด๐™ป ๐š…๐™ธ๐™ณ๐™ด๐™พ ๐™ฝ๐™พ ๐™ฟ๐š„๐™ด๐™ณ๐™ด ๐™ณ๐š„๐š๐™ฐ๐š ๐™ผ๐™ฐ๐š‚ ๐™ณ๐™ด 7 ๐š‚๐™ด๐™ถ๐š„๐™ฝ๐™ณ๐™พ๐š‚*', wm, [['๐™ณ๐™ด๐š‚๐™ฐ๐™ฒ๐šƒ๐™ธ๐š…๐™ฐ๐š ๐™ฐ๐š„๐šƒ๐™พ๐š‚๐šƒ๐™ธ๐™ฒ๐™บ๐™ด๐š', '/disable autosticker']], m) + const img = await q.download(); + if (!img) return; + stiker = await sticker(img, false, packname, author); + } else if (m.text.split(/\n| /i)[0]) { + if (isUrl(m.text)) stiker = await sticker(false, m.text.split(/\n| /i)[0], packname, author); + else return; + } + if (stiker) { + await mconn.conn.sendFile(m.chat, stiker, null, {asSticker: true}); + } + } + return !0; +}; +export default handler; + +const isUrl = (text) => { + return text.match(new RegExp(/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&/=]*)(jpe?g|gif|png|mp4)/, 'gi')); +}; diff --git a/plugins/_cmdWithMedia.js b/plugins/_cmdWithMedia.js new file mode 100644 index 0000000..ec9e160 --- /dev/null +++ b/plugins/_cmdWithMedia.js @@ -0,0 +1,29 @@ +const { + proto, + generateWAMessage, + areJidsSameUser, +} = (await import('@whiskeysockets/baileys')).default; + +export async function all(m, chatUpdate) { + if (m.isBaileys) return; + if (!m.message) return; + if (!m.msg.fileSha256) return; + if (!(Buffer.from(m.msg.fileSha256).toString('base64') in global.db.data.sticker)) return; + + const hash = global.db.data.sticker[Buffer.from(m.msg.fileSha256).toString('base64')]; + const {text, mentionedJid} = hash; + const messages = await generateWAMessage(m.chat, {text: text, mentions: mentionedJid}, { + userJid: this.user.id, + quoted: m.quoted && m.quoted.fakeObj, + }); + messages.key.fromMe = areJidsSameUser(m.sender, this.user.id); + messages.key.id = m.key.id; + messages.pushName = m.pushName; + if (m.isGroup) messages.participant = m.sender; + const msg = { + ...chatUpdate, + messages: [proto.WebMessageInfo.fromObject(messages)], + type: 'append', + }; + this.ev.emit('messages.upsert', msg); +} diff --git a/plugins/_detectEvents.js b/plugins/_detectEvents.js new file mode 100644 index 0000000..9fcb83b --- /dev/null +++ b/plugins/_detectEvents.js @@ -0,0 +1,99 @@ +// Creditos del codigo a @Gatito-kw // + +/* GitHub: https://github.com/Gatito-kw */ + +/* Bot: https://github.com/Gatito-kw/nekobot-md */ + +import {WAMessageStubType} from '@whiskeysockets/baileys'; +import fetch from 'node-fetch'; + +export async function before(m, {conn, participants}) { + if (!m.messageStubType || !m.isGroup) return !0; + const groupName = (await conn.groupMetadata(m.chat)).subject; + const groupAdmins = participants.filter((p) => p.admin); + const pp = await conn.profilePictureUrl(m.chat, 'image').catch((_) => null) || './src/avatar_contact.png'; + const img = await (await fetch(pp)).buffer(); + const chat = global.db.data.chats[m.chat]; + const mentionsString = [m.sender, m.messageStubParameters[0], ...groupAdmins.map((v) => v.id)]; + const mentionsContentM = [m.sender, m.messageStubParameters[0]]; + const fkontak2 = {'key': {'participants': '0@s.whatsapp.net', 'remoteJid': 'status@broadcast', 'fromMe': false, 'id': 'Halo'}, 'message': {'contactMessage': {'vcard': `BEGIN:VCARD\nVERSION:3.0\nN:Sy;Bot;;;\nFN:y\nitem1.TEL;waid=${m.sender.split('@')[0]}:${m.sender.split('@')[0]}\nitem1.X-ABLabel:Ponsel\nEND:VCARD`}}, 'participant': '0@s.whatsapp.net'}; + + if (chat.detect2 && m.messageStubType == 29) { + let txt1 = `*Recientemente se ha promovido un miembro a administrador.*\n\n`; + txt1 += `*โ—ฆ Grupo:* ${groupName}\n`; + txt1 += `*โ—ฆ Nuevo admin:* @${m.messageStubParameters[0].split`@`[0]}\n`; + txt1 += `*โ—ฆ Ejecutado por:* @${m.sender.split`@`[0]}`; + await conn.sendMessage(m.chat, {image: img, caption: txt1, mentions: mentionsString}, {quoted: fkontak2}); + } + + if (chat.detect2 && m.messageStubType == 30) { + let txt2 = `*Recientemente se ha degradado un administrador a miembro.*\n\n`; + txt2 += `*โ—ฆ Grupo:* ${groupName}\n`; + txt2 += `*โ—ฆ Se quitรณ a:* @${m.messageStubParameters[0].split`@`[0]}\n`; + txt2 += `*โ—ฆ Ejecutado por:* @${m.sender.split`@`[0]}`; + await conn.sendMessage(m.chat, {image: img, caption: txt2, mentions: mentionsString}, {quoted: fkontak2}); + } + + if (chat.detect2 && m.messageStubType == 27) { + let txt3 = `*Recientemente se ha incorporado al grupo un nuevo miembro.*\n\n`; + txt3 += `*โ—ฆ Grupo:* ${groupName}\n`; + if (!m.sender.endsWith('@g.us')) { + txt3 += `*โ—ฆ Se aรฑadiรณ a:* @${m.messageStubParameters[0].split`@`[0]}\n`; + txt3 += `*โ—ฆ Ejecutado por:* @${m.sender.split`@`[0]}`; + } else { + txt3 += `*โ—ฆ Se aรฑadiรณ:* @${m.messageStubParameters[0].split`@`[0]}\n`; + } + await conn.sendMessage(m.chat, {image: img, caption: txt3, mentions: mentionsContentM}, {quoted: fkontak2}); + } + + if (chat.detect2 && m.messageStubType == 28) { + let txt4 = `*Recientemente se ha eliminado un miembro del grupo.*\n\n`; + txt4 += `*โ—ฆ Grupo:* ${groupName}\n`; + if (!m.sender.endsWith('@g.us')) { + txt4 += `*โ—ฆ Se eliminรณ a:* @${m.messageStubParameters[0].split`@`[0]}\n`; + txt4 += `*โ—ฆ Ejecutado por:* @${m.sender.split`@`[0]}`; + } else { + txt4 += `*โ—ฆ Se eliminรณ a:* @${m.messageStubParameters[0].split`@`[0]}\n`; + } + await conn.sendMessage(m.chat, {image: {url: pp}, caption: txt4, mentions: mentionsContentM}, {quoted: fkontak2}); + } + + if (chat.detect2 && m.messageStubType == 32) { + let ax; + if (m.messageStubParameters[0] === m.sender) { + ax = 'salido'; + } else { + ax = 'eliminado'; + } + let txt5 = `*Recientemente se ha ${ax} un miembro del grupo.*\n\n`; + txt5 += `*โ—ฆ Grupo:* ${groupName}\n`; + if (ax === 'eliminado') { + txt5 += `*โ—ฆ Se eliminoรณ a:* @${m.messageStubParameters[0].split`@`[0]}\n`; + txt5 += `*โ—ฆ Ejecutado por:* @${m.sender.split`@`[0]}`; + } else { + txt5 += `*โ—ฆ Se saliรณ:* @${m.messageStubParameters[0].split`@`[0]}\n`; + } + await conn.sendMessage(m.chat, {image: {url: pp}, caption: txt5, mentions: mentionsContentM}, {quoted: fkontak2}); + } + + if (chat.detect2 && m.messageStubType == 26) { + let accion; + if (m.messageStubParameters[0].split`@`[0] === 'on') { + accion = 'cerrado'; + } else { + accion = 'abierto'; + } + let txt6 = `*Recientemente se han modificado los ajustes del grupo.*\n\n`; + txt6 += `*โ—ฆ Grupo:* ${groupName}\n`; + txt6 += `*โ—ฆ El grupo se ha:* ${'```' + accion + '```'}\n`; + txt6 += `*โ—ฆ Ejecutado por:* @${m.sender.split`@`[0]}`; + await conn.sendMessage(m.chat, {image: {url: pp}, caption: txt6, mentions: mentionsContentM}, {quoted: fkontak2}); + } + + if (chat.detect2 && m.messageStubType == 21) { + let txt7 = `*Recientemente se ha cambiado el nombre del grupo.*\n\n`; + txt7 += `*โ—ฆ Nuevo nombre:* ${'```' + groupName + '```'}\n`; + txt7 += `*โ—ฆ Ejecutado por:* @${m.sender.split`@`[0]}`; + await conn.sendMessage(m.chat, {image: {url: pp}, caption: txt7, mentions: mentionsContentM}, {quoted: fkontak2}); + } +} /* Cierre del comando */ diff --git a/plugins/_modoIA.js b/plugins/_modoIA.js new file mode 100644 index 0000000..cf960bc --- /dev/null +++ b/plugins/_modoIA.js @@ -0,0 +1,106 @@ +import fetch from 'node-fetch'; +import translate from '@vitalets/google-translate-api'; +const handler = (m) => m; + +handler.before = async (m) => { + let Prefijo = false; + const prefixRegex = global.prefix; + if (prefixRegex.test(m.text)) Prefijo = true; + const bot = global.db.data.settings[mconn.conn.user.jid] + if (bot.modoia && !m.isGroup && !Prefijo && !m.fromMe && m.text !== '') { + if (/^.*false|disnable|(turn)?off|0/i.test(m.text)) return; + let textodem = m.text; + const name = mconn.conn.getName(m.sender) + const namedem = `${name || 'Sin Definir'}` + const sytm = await fetch(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/chatgpt_indicciones.txt`).then(v => v.text()); + const sistema1 = sytm.replace('@name', namedem) + const sistema2 = 'Tu seras Shinonome - Bot - MD, un Bot de WhatsApp creado por YeJota'; + try { + async function getOpenAIChatCompletion(texto) { + const openaiAPIKey = global.openai_key; + let chgptdb = global.chatgpt.data.users[m.sender]; + chgptdb.push({ role: 'user', content: texto }); + const url = "https://api.openai.com/v1/chat/completions"; + const headers = { "Content-Type": "application/json", "Authorization": `Bearer ${openaiAPIKey}` }; + const data = { "model": "gpt-3.5-turbo", "messages": [{ "role": "system", "content": sistema1 }, ...chgptdb, ]}; + const response = await fetch(url, {method: "POST", headers: headers, body: JSON.stringify(data)}); + const result = await response.json(); + const finalResponse = result.choices[0].message.content; + return finalResponse; + }; + let respuesta = await getOpenAIChatCompletion(textodem); + m.reply(`${respuesta}`.trim()); + return; + } catch { + try { + const fgapi1 = await fetch(`https://api-fgmods.ddns.net/api/info/openai?text=${textodem}&symsg=${sistema2}&apikey=XlwAnX8d`); + const fgjson1 = await fgapi1.json(); + if (fgjson1.result == 'error' || fgjson1.result == '' || !fgjson1.result) return XD; + let parsedData1 = ''; + try { + parsedData1 = unescape(fgjson1.result); + } catch { + parsedData1 = fgjson1.result; + } + m.reply(`${parsedData1}`.trim()); + return; + } catch { + try { + const vihangayt1 = await fetch(`https://vihangayt.me/tools/chatgpt?q=${textodem}`); + const vihangaytjson1 = await vihangayt1.json(); + if (vihangaytjson1.data == 'error' || vihangaytjson1.data == '' || !vihangaytjson1.data) return XD; + let parsedData2 = ''; + try { + parsedData2 = unescape(vihangaytjson1.data); + } catch { + parsedData2 = vihangaytjson1.data; + } + m.reply(`${parsedData2}`.trim()); + return; + } catch { + try { + const vihangayt2 = await fetch(`https://vihangayt.me/tools/chatgpt2?q=${textodem}`); + const vihangaytjson2 = await vihangayt2.json(); + if (vihangaytjson2.data == 'error' || vihangaytjson2.data == '' || !vihangaytjson2.data) return XD; + let parsedData3 = ''; + try { + parsedData3 = unescape(vihangaytjson2.data); + } catch { + parsedData3 = vihangaytjson2.data; + } + m.reply(`${parsedData3}`.trim()); + return; + } catch { + try { + const vihangayt3 = await fetch(`https://vihangayt.me/tools/chatgpt3?q=${textodem}`); + const vihangaytjson3 = await vihangayt3.json(); + if (vihangaytjson3.data == 'error' || vihangaytjson3.data == '' || !vihangaytjson3.data) return XD; + let parsedData4 = ''; + try { + parsedData4 = unescape(vihangaytjson3.data); + } catch { + parsedData4 = vihangaytjson3.data; + } + m.reply(`${parsedData4}`.trim()); + return; + } catch { + const akuariapi2 = await fetch(`https://api.akuari.my.id/ai/gpt?chat=${textodem}`); + const akuariapijson2 = await akuariapi2.json(); + let parsedData5 = ''; + try { + parsedData5 = unescape(akuariapijson2.respon); + } catch { + parsedData5 = akuariapijson2.respon; + } + const akuariapiresult2 = await translate(`${parsedData5}`, {to: 'es', autoCorrect: true}); + m.reply(`${akuariapiresult2.text}`.trim()); + return; + } + } + } + } + } + } + return true; +}; +export default handler; diff --git a/plugins/_premium.js b/plugins/_premium.js new file mode 100644 index 0000000..db4a79a --- /dev/null +++ b/plugins/_premium.js @@ -0,0 +1,30 @@ +const handler = (m) => m; + +export async function all(m) { + for (const user of Object.values(global.db.data.users)) { + if (user.premiumTime != 0 && user.premium) { + if (new Date() * 1 >= user.premiumTime) { + user.premiumTime = 0; + user.premium = false; + const JID = Object.keys(global.db.data.users).find((key) => global.db.data.users[key] === user); + const usuarioJid = JID.split`@`[0]; + const textoo = `*[โ—] @${usuarioJid} ๐šƒ๐š„ ๐šƒ๐™ธ๐™ด๐™ผ๐™ฟ๐™พ ๐™ฒ๐™พ๐™ผ๐™พ ๐š„๐š‚๐š„๐™ฐ๐š๐™ธ๐™พ ๐™ฟ๐š๐™ด๐™ผ๐™ธ๐š„๐™ผ ๐™ท๐™ฐ ๐™ด๐š‡๐™ฟ๐™ธ๐š๐™ฐ๐™ณ๐™พ, ๐šˆ๐™ฐ ๐™ฝ๐™พ ๐™ด๐š๐™ด๐š‚ ๐š„๐™ฝ ๐š„๐š‚๐š„๐™ฐ๐š๐™ธ๐™พ ๐™ฟ๐š๐™ด๐™ผ๐™ธ๐š„๐™ผ*`; + await this.sendMessage(JID, {text: textoo, mentions: [JID]}, {quoted: ''}); + } + } + } +} + +/* let handler = m => m + +export async function all(m) { + let user = global.db.data.users[m.sender] + if (m.chat.endsWith('broadcast')) return + + if (user.premiumTime != 0 && user.premium && new Date() * 1 >= user.premiumTime) { + user.premiumTime = 0 + user.premium = false + + await m.reply(`*[โ—] @${m.sender.split`@`[0]} ๐šƒ๐š„ ๐šƒ๐™ธ๐™ด๐™ผ๐™ฟ๐™พ ๐™ฒ๐™พ๐™ผ๐™พ ๐š„๐š‚๐š„๐™ฐ๐š๐™ธ๐™พ ๐™ฟ๐š๐™ด๐™ผ๐™ธ๐š„๐™ผ ๐™ท๐™ฐ ๐™ด๐š‡๐™ฟ๐™ธ๐š๐™ฐ๐™ณ๐™พ, ๐šˆ๐™ฐ ๐™ฝ๐™พ ๐™ด๐š๐™ด๐š‚ ๐š„๐™ฝ ๐š„๐š‚๐š„๐™ฐ๐š๐™ธ๐™พ ๐™ฟ๐š๐™ด๐™ผ๐™ธ๐š„๐™ผ*`, m.sender, { mentions: [m.sender] }) + } +}*/ diff --git a/plugins/_role.js b/plugins/_role.js new file mode 100644 index 0000000..c750921 --- /dev/null +++ b/plugins/_role.js @@ -0,0 +1,55 @@ +let handler = m => m + +handler.before = function (m) { + let user = global.db.data.users[m.sender] + let role = (user.level <= 3) ? 'Guerrero V' + : ((user.level >= 3) && (user.level <= 6)) ? 'Guerrero IV' + : ((user.level >= 6) && (user.level <= 9)) ? 'Guerrero III' + : ((user.level >= 9) && (user.level <= 12)) ? 'Guerrero II' + : ((user.level >= 12) && (user.level <= 15)) ? 'Guerrero I' + : ((user.level >= 15) && (user.level <= 18)) ? 'ร‰lite V' + : ((user.level >= 18) && (user.level <= 21)) ? 'ร‰lite IV' + : ((user.level >= 21) && (user.level <= 24)) ? 'ร‰lite III' + : ((user.level >= 24) && (user.level <= 27)) ? 'ร‰lite II' + : ((user.level >= 27) && (user.level <= 30)) ? 'ร‰lite I' + : ((user.level >= 30) && (user.level <= 33)) ? 'Maestros V' + : ((user.level >= 33) && (user.level <= 36)) ? 'Maestros IV' + : ((user.level >= 36) && (user.level <= 39)) ? 'Maestros III' + : ((user.level >= 39) && (user.level <= 42)) ? 'Maestros II' + : ((user.level >= 42) && (user.level <= 45)) ? 'Maestros I' + : ((user.level >= 45) && (user.level <= 48)) ? 'Gran Maestro V' + : ((user.level >= 48) && (user.level <= 51)) ? 'Gran Maestro IV' + : ((user.level >= 51) && (user.level <= 54)) ? 'Gran Maestro III' + : ((user.level >= 54) && (user.level <= 57)) ? 'Gran Maestro II' + : ((user.level >= 57) && (user.level <= 60)) ? 'Gran Maestro I' + : ((user.level >= 60) && (user.level <= 63)) ? 'ร‰pico V' + : ((user.level >= 63) && (user.level <= 66)) ? 'ร‰pico IV' + : ((user.level >= 66) && (user.level <= 69)) ? 'ร‰pico III' + : ((user.level >= 69) && (user.level <= 71)) ? 'ร‰pico II' + : ((user.level >= 71) && (user.level <= 74)) ? 'ร‰pico I' + : ((user.level >= 74) && (user.level <= 77)) ? 'Leyenda V' + : ((user.level >= 77) && (user.level <= 80)) ? 'Leyenda IV' + : ((user.level >= 80) && (user.level <= 83)) ? 'Leyenda III' + : ((user.level >= 83) && (user.level <= 86)) ? 'Leyenda II' + : ((user.level >= 86) && (user.level <= 89)) ? 'Leyenda I' + : ((user.level >= 89) && (user.level <= 91)) ? 'Mรญtico V' + : ((user.level >= 91) && (user.level <= 94)) ? 'Mรญtico IV' + : ((user.level >= 94) && (user.level <= 97)) ? 'Mรญtico III' + : ((user.level >= 97) && (user.level <= 100)) ? 'Mรญtico II' + : ((user.level >= 100) && (user.level <= 105)) ? 'Mรญtico I' + : ((user.level >= 105) && (user.level <= 120)) ? 'Gloria Mรญtica' + : ((user.level >= 120) && (user.level <= 150)) ? 'Esmeralda V' + : ((user.level >= 150) && (user.level <= 160)) ? 'Esmeralda VI' + : ((user.level >= 160) && (user.level <= 170)) ? 'Esmeralda III' + : ((user.level >= 170) && (user.level <= 185)) ? 'Esmeralda II' + : ((user.level >= 185) && (user.level <= 200)) ? 'Esmeralda I' + : ((user.level >= 200) && (user.level <= 400)) ? 'Titan III' + : ((user.level >= 405) && (user.level <= 700)) ? 'Titan II' + : ((user.level >= 700) && (user.level <= 1000)) ? 'Titan I' + : 'Dragรณn rey estrella' + + user.role = role + return true +} + +export default handler diff --git a/plugins/_simsimi.js b/plugins/_simsimi.js new file mode 100644 index 0000000..280744a --- /dev/null +++ b/plugins/_simsimi.js @@ -0,0 +1,32 @@ +import fetch from 'node-fetch'; +const handler = (m) => m; + +handler.before = async (m) => { + const chat = global.db.data.chats[m.chat]; + if (chat.simi) { + if (/^.*false|disnable|(turn)?off|0/i.test(m.text)) return; + let textodem = m.text; + try { + const ressimi = await fetch(`https://api.simsimi.net/v2/?text=${encodeURIComponent(textodem)}&lc=es`); + const data = await ressimi.json(); + if (data.success == 'No s\u00e9 lo qu\u00e9 est\u00e1s diciendo. Por favor ense\u00f1ame.') return m.reply(`${lol}`); /* EL TEXTO "lol" NO ESTA DEFINIDO PARA DAR ERROR Y USAR LA OTRA API */ + await m.reply(data.success); + } catch { + /* SI DA ERROR USARA ESTA OTRA OPCION DE API DE IA QUE RECUERDA EL NOMBRE DE LA PERSONA */ + if (textodem.includes('Hola')) textodem = textodem.replace('Hola', 'Hello'); + if (textodem.includes('hola')) textodem = textodem.replace('hola', 'hello'); + if (textodem.includes('HOLA')) textodem = textodem.replace('HOLA', 'HELLO'); + const reis = await fetch('https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=en&dt=t&q=' + textodem); + const resu = await reis.json(); + const nama = m.pushName || '1'; + const api = await fetch('http://api.brainshop.ai/get?bid=153868&key=rcKonOgrUFmn5usX&uid=' + nama + '&msg=' + resu[0][0][0]); + const res = await api.json(); + const reis2 = await fetch('https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=es&dt=t&q=' + res.cnt); + const resu2 = await reis2.json(); + await m.reply(resu2[0][0][0]); + } + return !0; + } + return true; +}; +export default handler; diff --git a/plugins/_templateResponse.js b/plugins/_templateResponse.js new file mode 100644 index 0000000..f3d4ff7 --- /dev/null +++ b/plugins/_templateResponse.js @@ -0,0 +1,109 @@ +/** + * @type {import('@whiskeysockets/baileys')} + */ +const { + proto, + generateWAMessage, + areJidsSameUser, + decryptPollVote, +} = (await import('@whiskeysockets/baileys')).default; + +export async function all(m, chatUpdate) { + /* if (m.message.pollUpdateMessage) { + console.log(m.message.pollUpdateMessage) + console.log(m.message.pollUpdateMessage.pollCreationMessageKey) + let authcode = "eed1zxI49cxiovBTUFLIEWi1shD9HgIOghONuqPDGTk=" + let xds = decryptPollVote({ + encPayload: m.message.pollUpdateMessage.vote.encPayload, + encIv: m.message.pollUpdateMessage.vote.encIv, + }, { + pollCreatorJid: m.message.pollUpdateMessage.pollCreationMessageKey.participant, + pollMsgId: m.message.pollUpdateMessage.pollCreationMessageKey.id, + pollEncKey: authcode, //Uint8Array.from(authcode.split('').map(letter => letter.charCodeAt(0))), + voterJid: m.sender, + }) + console.log(xds) +}*/ + if (m.isBaileys) { + return; + } + if (!m.message) { + return; + } + if (!(m.message.buttonsResponseMessage || m.message.templateButtonReplyMessage || m.message.listResponseMessage)) { + return; + } + const id = m.message.buttonsResponseMessage?.selectedButtonId || m.message.templateButtonReplyMessage?.selectedId || m.message.listResponseMessage?.singleSelectReply?.selectedRowId; + const text = m.message.buttonsResponseMessage?.selectedDisplayText || m.message.templateButtonReplyMessage?.selectedDisplayText || m.message.listResponseMessage?.title; + let isIdMessage = false; let usedPrefix; + for (const name in global.plugins) { + const plugin = global.plugins[name]; + if (!plugin) { + continue; + } + if (plugin.disabled) { + continue; + } + if (!opts['restrict']) { + if (plugin.tags && plugin.tags.includes('admin')) { + continue; + } + } + if (typeof plugin !== 'function') { + continue; + } + if (!plugin.command) { + continue; + } + const str2Regex = (str) => str.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&'); + const _prefix = plugin.customPrefix ? plugin.customPrefix : this.prefix ? this.prefix : global.prefix; + const match = (_prefix instanceof RegExp ? // RegExp Mode? + [[_prefix.exec(id), _prefix]] : + Array.isArray(_prefix) ? // Array? + _prefix.map((p) => { + const re = p instanceof RegExp ? // RegExp in Array? + p : + new RegExp(str2Regex(p)); + return [re.exec(id), re]; + }) : + typeof _prefix === 'string' ? // String? + [[new RegExp(str2Regex(_prefix)).exec(id), new RegExp(str2Regex(_prefix))]] : + [[[], new RegExp]] + ).find((p) => p[1]); + if ((usedPrefix = (match[0] || '')[0])) { + const noPrefix = id.replace(usedPrefix, ''); + let [command] = noPrefix.trim().split` `.filter((v) => v); + command = (command || '').toLowerCase(); + const isId = plugin.command instanceof RegExp ? // RegExp Mode? + plugin.command.test(command) : + Array.isArray(plugin.command) ? // Array? + plugin.command.some((cmd) => cmd instanceof RegExp ? // RegExp in Array? + cmd.test(command) : + cmd === command, + ) : + typeof plugin.command === 'string' ? // String? + plugin.command === command : + false; + if (!isId) { + continue; + } + isIdMessage = true; + } + } + const messages = await generateWAMessage(m.chat, {text: isIdMessage ? id : text, mentions: m.mentionedJid}, { + userJid: this.user.id, + quoted: m.quoted && m.quoted.fakeObj, + }); + messages.key.fromMe = areJidsSameUser(m.sender, this.user.id); + messages.key.id = m.key.id; + messages.pushName = m.name; + if (m.isGroup) { + messages.key.participant = messages.participant = m.sender; + } + const msg = { + ...chatUpdate, + messages: [proto.WebMessageInfo.fromObject(messages)].map((v) => (v.conn = this, v)), + type: 'append', + }; + this.ev.emit('messages.upsert', msg); +} diff --git a/plugins/adult-comandos+18.js b/plugins/adult-comandos+18.js new file mode 100644 index 0000000..2a4eb3f --- /dev/null +++ b/plugins/adult-comandos+18.js @@ -0,0 +1,171 @@ +import axios from 'axios'; +import fetch from 'node-fetch'; +const handler = async (m, {command, conn}) => { + if (!db.data.chats[m.chat].modohorny && m.isGroup) throw '*[โ—๐ˆ๐๐…๐Žโ—] โ„’๐“ โ„ฌ๐“˜โ„ฌโ„’๐“˜๐“ ๐“๐“ž ๐“ข๐“” ๐“Ÿ๐“ค๐“”๐““๐“” โ„’๐“”๐“”โ„› ๐“”๐“ ๐“”๐“ข๐“ฃ๐“” ๐“–โ„›๐“ค๐“Ÿ๐“ž, ๐“ข๐“˜ ๐“”โ„›๐“”๐“ข ๐“๐““โ„ณ๐“˜๐“ ๐“จ ๐“ ๐“ค๐“˜๐“”โ„›๐“” ๐“๐“’๐“ฃ๐“˜๐“ฅ๐“โ„›โ„’๐“ž๐“ข ๐“ค๐“ข๐“” ๐“”โ„’ ๐“’๐“žโ„ณ๐“๐“๐““๐“ž #enable modohorny*'; + + if (command == 'nsfwloli') { + const res = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/nsfwloli.json`)).data; + const haha = await res[Math.floor(res.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: haha}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'nsfwfoot') { + const res = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/nsfwfoot.json`)).data; + const haha = await res[Math.floor(res.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: haha}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'nsfwass') { + const res = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/nsfwass.json`)).data; + const haha = await res[Math.floor(res.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: haha}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'nsfwbdsm') { + const res = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/nsfwbdsm.json`)).data; + const haha = await res[Math.floor(res.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: haha}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'nsfwcum') { + const res = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/nsfwcum.json`)).data; + const haha = await res[Math.floor(res.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: haha}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'nsfwero') { + const res = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/nsfwero.json`)).data; + const haha = await res[Math.floor(res.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: haha}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'nsfwfemdom') { + const res = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/nsfwfemdom.json`)).data; + const haha = await res[Math.floor(res.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: haha}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'nsfwglass') { + const res = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/nsfwglass.json`)).data; + const haha = await res[Math.floor(res.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: haha}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'hentai') { + const res = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/hentai.json`)).data; + const haha = await res[Math.floor(res.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: haha}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'nsfworgy') { + const res = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/nsfworgy.json`)).data; + const haha = await res[Math.floor(res.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: haha}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'tetas') { + const resError = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/tetas.json`)).data; + let res = await conn.getFile(`https://api-fgmods.ddns.net/api/nsfw/boobs?apikey=fg-dylux`).data; + if (res == '' || !res || res == null) res = await resError[Math.floor(resError.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: res}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'booty') { + const resError = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/booty.json`)).data; + let res = await conn.getFile(`https://api-fgmods.ddns.net/api/nsfw/ass?apikey=fg-dylux`).data; + if (res == '' || !res || res == null) res = await resError[Math.floor(resError.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: res}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'ecchi') { + const res = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/ecchi.json`)).data; + const url = await res[Math.floor(res.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: url}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'furro') { + const res = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/furro.json`)).data; + const url = await res[Math.floor(res.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: url}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'trapito') { + const res = await fetch(`https://api.waifu.pics/nsfw/trap`); + const json = await res.json(); + const url = json.url; + conn.sendMessage(m.chat, {image: {url: url}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'imagenlesbians') { + const resError = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/imagenlesbians.json`)).data; + let res = await conn.getFile(`https://api-fgmods.ddns.net/api/nsfw/lesbian?apikey=fg-dylux`).data; + if (res == '' || !res || res == null) res = await resError[Math.floor(resError.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: res}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'panties') { + const res = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/panties.json`)).data; + const url = await res[Math.floor(res.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: url}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'pene') { + const resError = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/pene.json`)).data; + let res = await conn.getFile(`https://api-fgmods.ddns.net/api/nsfw/penis?apikey=fg-dylux`).data; + if (res == '' || !res || res == null) res = await resError[Math.floor(resError.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: res}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'porno') { + const res = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/porno.json`)).data; + const url = await res[Math.floor(res.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: url}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'randomxxx') { + const rawjsonn = ['https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/tetas.json', 'https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/booty.json', 'https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/imagenlesbians.json', 'https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/panties.json', 'https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/porno.json']; + const rawjson = await rawjsonn[Math.floor(rawjsonn.length * Math.random())]; + const res = (await axios.get(rawjson)).data; + const url = await res[Math.floor(res.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: url}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'pechos') { + const res = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/pechos.json`)).data; + const url = await res[Math.floor(res.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: url}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'yaoi') { + const res = await fetch(`https://nekobot.xyz/api/image?type=yaoi`); + const json = await res.json(); + const url = json.message; + conn.sendMessage(m.chat, {image: {url: url}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'yaoi2') { + const res = await fetch(`https://purrbot.site/api/img/nsfw/yaoi/gif`); + const json = await res.json(); + const url = json.link; + conn.sendMessage(m.chat, {image: {url: url}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'yuri') { + const res = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/yuri.json`)).data; + const url = await res[Math.floor(res.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: url}, caption: `_${command}_`.trim()}, {quoted: m}); + } + + if (command == 'yuri2') { + const resError = (await axios.get(`https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/JSON/yuri.json`)).data; + const res = await fetch(`https://purrbot.site/api/img/nsfw/yuri/gif`); + const json = await res.json(); + let url = json.link; + if (url == '' || !url || url == null) url = await resError[Math.floor(resError.length * Math.random())]; + conn.sendMessage(m.chat, {image: {url: url}, caption: `_${command}_`.trim()}, {quoted: m}); + } +}; +handler.help = ['nsfwloli', 'nsfwfoot', 'nsfwass', 'nsfwbdsm', 'nsfwcum', 'nsfwero', 'nsfwfemdom', 'nsfwfoot', 'nsfwglass', 'nsfworgy', 'yuri', 'yuri2', 'yaoi', 'yaoi2', 'panties', 'tetas', 'booty', 'ecchi', 'furro', 'hentai', 'trapito', 'imagenlesbians', 'pene', 'porno', 'randomxxx', 'pechos']; +handler.command = ['nsfwloli', 'nsfwfoot', 'nsfwass', 'nsfwbdsm', 'nsfwcum', 'nsfwero', 'nsfwfemdom', 'nsfwfoot', 'nsfwglass', 'nsfworgy', 'yuri', 'yuri2', 'yaoi', 'yaoi2', 'panties', 'tetas', 'booty', 'ecchi', 'furro', 'hentai', 'trapito', 'imagenlesbians', 'pene', 'porno', 'randomxxx', 'pechos']; +handler.tags = ['nsfw']; +export default handler; diff --git a/plugins/adult-hentaipdf.js b/plugins/adult-hentaipdf.js new file mode 100644 index 0000000..9ab3d97 --- /dev/null +++ b/plugins/adult-hentaipdf.js @@ -0,0 +1,70 @@ +import fetch from 'node-fetch'; +import PDFDocument from 'pdfkit'; +import {extractImageThumb} from '@whiskeysockets/baileys'; +const handler = async (m, {conn, text, usedPrefix, command, args}) => { + if (!db.data.chats[m.chat].modohorny && m.isGroup) throw '*[โ—๐ˆ๐๐…๐Žโ—] โ„’๐“ โ„ฌ๐“˜โ„ฌโ„’๐“˜๐“ ๐“๐“ž ๐“ข๐“” ๐“Ÿ๐“ค๐“”๐““๐“” โ„’๐“”๐“”โ„› ๐“”๐“ ๐“”๐“ข๐“ฃ๐“” ๐“–โ„›๐“ค๐“Ÿ๐“ž, ๐“ข๐“˜ ๐“”โ„›๐“”๐“ข ๐“๐““โ„ณ๐“˜๐“ ๐“จ ๐“ ๐“ค๐“˜๐“”โ„›๐“” ๐“๐“’๐“ฃ๐“˜๐“ฅ๐“โ„›โ„’๐“ž๐“ข ๐“ค๐“ข๐“” ๐“”โ„’ ๐“’๐“žโ„ณ๐“๐“๐““๐“ž #enable modohorny*'; + if (!text) throw `*[โ—] ๐“ฒ๐“ท๐“ฐ๐“ป๐’†๐“ผ๐“ช ๐’†๐“ต ๐“ท๐“ธ๐“ถ๐“ซ๐“ป๐’† ๐“ญ๐’† ๐“ช๐“ต๐“ฐ๐“พ๐“ท๐“ช ๐“ฌ๐“ช๐“ฝ๐’†๐“ฐ๐“ธ๐“ป๐“ฒ๐“ช ๐“ญ๐’† ๐“ฑ๐’†๐“ท๐“ฝ๐“ช๐“ฒ, ๐’†๐“ณ๐’†๐“ถ๐“น๐“ต๐“ธ: ${usedPrefix + command} miku*`; + try { + m.reply(global.wait); + const res = await fetch(`https://api.lolhuman.xyz/api/nhentaisearch?apikey=${lolkeysapi}&query=${text}`); + const json = await res.json(); + const aa = json.result[0].id; + const data = await nhentaiScraper(aa); + const pages = []; + const thumb = `https://external-content.duckduckgo.com/iu/?u=https://t.nhentai.net/galleries/${data.media_id}/thumb.jpg`; + data.images.pages.map((v, i) => { + const ext = new URL(v.t).pathname.split('.')[1]; + pages.push(`https://external-content.duckduckgo.com/iu/?u=https://i7.nhentai.net/galleries/${data.media_id}/${i + 1}.${ext}`); + }); + const buffer = await (await fetch(thumb)).buffer(); + const jpegThumbnail = await extractImageThumb(buffer); + const imagepdf = await toPDF(pages); + await conn.sendMessage(m.chat, {document: imagepdf, jpegThumbnail, fileName: data.title.english + '.pdf', mimetype: 'application/pdf'}, {quoted: m}); + } catch { + throw `*[โ—] ๐“”โ„›โ„›๐“žโ„›, ๐“˜๐“๐“ฃ๐“”๐“๐“ฃ๐“” ๐“’๐“ž๐“ ๐“ž๐“ฃโ„›๐“ ๐“’๐“๐“ฃ๐“”๐“–๐“žโ„›๐“˜๐“*`; + } +}; +handler.command = /^(hentaipdf)$/i; +export default handler; +async function nhentaiScraper(id) { + const uri = id ? `https://cin.guru/v/${+id}/` : 'https://cin.guru/'; + const html = (await axios.get(uri)).data; + return JSON.parse(html.split('')[0]).props.pageProps.data; +} +function toPDF(images, opt = {}) { + return new Promise(async (resolve, reject) => { + if (!Array.isArray(images)) images = [images]; + const buffs = []; const doc = new PDFDocument({margin: 0, size: 'A4'}); + for (let x = 0; x < images.length; x++) { + if (/.webp|.gif/.test(images[x])) continue; + const data = (await axios.get(images[x], {responseType: 'arraybuffer', ...opt})).data; + doc.image(data, 0, 0, {fit: [595.28, 841.89], align: 'center', valign: 'center'}); + if (images.length != x + 1) doc.addPage(); + } + doc.on('data', (chunk) => buffs.push(chunk)); + doc.on('end', () => resolve(Buffer.concat(buffs))); + doc.on('error', (err) => reject(err)); + doc.end(); + }); +} + + +/* import fetch from 'node-fetch' +let handler = async (m, { conn, text, usedPrefix, command, args }) => { +if (!db.data.chats[m.chat].modohorny && m.isGroup) throw '*[โ—๐ˆ๐๐…๐Žโ—] ๐™ป๐™พ๐š‚ ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ๐š‚ +๐Ÿท๐Ÿพ ๐™ด๐š‚๐šƒ๐™ฐ๐™ฝ ๐™ณ๐™ด๐š‚๐™ฐ๐™ฒ๐šƒ๐™ธ๐š…๐™ฐ๐™ณ๐™พ๐š‚ ๐™ด๐™ฝ ๐™ด๐š‚๐šƒ๐™ด ๐™ถ๐š๐š„๐™ฟ๐™พ, ๐š‚๐™ธ ๐™ด๐š‚ ๐™ฐ๐™ณ๐™ผ๐™ธ๐™ฝ ๐šˆ ๐™ณ๐™ด๐š‚๐™ด๐™ฐ ๐™ฐ๐™ฒ๐šƒ๐™ธ๐š…๐™ฐ๐š๐™ป๐™พ๐š‚ ๐š„๐š‚๐™ด ๐™ด๐™ป ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ #enable modohorny*' +if (!text) throw `*[โ—] ๐™ธ๐™ฝ๐™ถ๐š๐™ด๐š‚๐™ฐ ๐™ด๐™ป ๐™ฝ๐™พ๐™ผ๐™ฑ๐š๐™ด ๐™ณ๐™ด ๐™ฐ๐™ป๐™ถ๐š„๐™ฝ๐™ฐ ๐™ฒ๐™ฐ๐šƒ๐™ด๐™ถ๐™พ๐š๐™ธ๐™ฐ ๐™ณ๐™ด ๐™ท๐™ด๐™ฝ๐šƒ๐™ฐ๐™ธ, ๐™ด๐™น๐™ด๐™ผ๐™ฟ๐™ป๐™พ: ${usedPrefix + command} miku*` +try { +m.reply(global.wait) +let res = await fetch(`https://api.lolhuman.xyz/api/nhentaisearch?apikey=${lolkeysapi}&query=${text}`) +let json = await res.json() +let aa = json.result[0].id +let aa2 = json.result[0].title_native +let res2 = await fetch(`https://api.lolhuman.xyz/api/nhentaipdf/${aa}?apikey=${lolkeysapi}`) +let json2 = await res2.json() +let aa3 = json2.result +await conn.sendMessage(m.chat, { document: { url: aa3 }, mimetype: 'application/pdf', fileName: `${aa2}.pdf` }, { quoted: m }) +} catch { +throw `*[โ—] ๐™ด๐š๐š๐™พ๐š, ๐š…๐š„๐™ด๐™ป๐š…๐™ฐ ๐™ฐ ๐™ธ๐™ฝ๐šƒ๐™ด๐™ฝ๐šƒ๐™ฐ๐š๐™ป๐™พ ๐šˆ/๐™พ ๐™ฟ๐š๐š„๐™ด๐™ฑ๐™ด ๐™ฒ๐™พ๐™ฝ ๐™พ๐šƒ๐š๐™ฐ ๐™ฒ๐™ฐ๐šƒ๐™ด๐™ถ๐™พ๐š๐™ธ๐™ฐ*` +}} +handler.command = /^(hentaipdf)$/i +export default handler*/ diff --git a/plugins/adult-hentaisearch.js b/plugins/adult-hentaisearch.js new file mode 100644 index 0000000..c7eeef1 --- /dev/null +++ b/plugins/adult-hentaisearch.js @@ -0,0 +1,45 @@ +import cheerio from 'cheerio'; +import axios from 'axios'; +const handler = async (m, {conn, text, __dirname, usedPrefix, command}) => { + if (!global.db.data.chats[m.chat].modohorny && m.isGroup) throw '*[โ—๐ˆ๐๐…๐Žโ—] โ„’๐“ โ„ฌ๐“˜โ„ฌโ„’๐“˜๐“ ๐“๐“ž ๐“ข๐“” ๐“Ÿ๐“ค๐“”๐““๐“” โ„’๐“”๐“”โ„› ๐“”๐“ ๐“”๐“ข๐“ฃ๐“” ๐“–โ„›๐“ค๐“Ÿ๐“ž, ๐“ข๐“˜ ๐“”โ„›๐“”๐“ข ๐“๐““โ„ณ๐“˜๐“ ๐“จ ๐“ ๐“ค๐“˜๐“”โ„›๐“” ๐“๐“’๐“ฃ๐“˜๐“ฅ๐“โ„›โ„’๐“ž๐“ข ๐“ค๐“ข๐“” ๐“”โ„’ ๐“’๐“žโ„ณ๐“๐“๐““๐“ž #enable modohorny*'; + if (!text) throw '*[โ—] ๐“”๐“ข๐“’โ„›๐“˜โ„ฌ๐“ ๐“”โ„’ ๐“๐“โ„ณ๐“” ๐““๐“” ๐“โ„’๐“–๐“ค๐“ โ„‹๐“”๐“๐“ฃ๐“๐“˜ ๐“ โ„ฌ๐“ค๐“ข๐“’๐“โ„›*'; + const searchResults = await searchHentai(text); + let teks = searchResults.result.map((v, i) => ` +${i+1}. *_${v.title}_* +โ†ณ ๐Ÿ“บ *_Vistas:_* ${v.views} +โ†ณ ๐ŸŽž๏ธ *_Link:_* ${v.url}`).join('\n\n'); + let randomThumbnail; + if (searchResults.result.length > 0) { + const randomIndex = Math.floor(Math.random() * searchResults.result.length); + randomThumbnail = searchResults.result[randomIndex].thumbnail; + } else { + randomThumbnail = 'https://pictures.hentai-foundry.com/e/Error-Dot/577798/Error-Dot-577798-Zero_Two.png'; + teks = '*[โ—] ๐“๐“ž ๐“”๐“๐“’๐“ž๐“๐“ฃโ„›๐“โ„ณ๐“ž๐“ข โ„›๐“”๐“ข๐“คโ„’๐“ฃ๐“๐““๐“ž๐“ข*'; + } + conn.sendFile(m.chat, randomThumbnail, 'error.jpg', teks, m); +}; +handler.command = /^(hentaisearch|searchhentai)$/i; +export default handler; +async function searchHentai(search) { + return new Promise((resolve, reject) => { + axios.get('https://hentai.tv/?s=' + search).then(async ({data}) => { + const $ = cheerio.load(data); + const result = {}; + const res = []; + result.coder = 'rem-comp'; + result.result = res; + result.warning = 'It is strictly forbidden to reupload this code, copyright ยฉ 2022 by rem-comp'; + $('div.flex > div.crsl-slde').each(function(a, b) { + const _thumbnail = $(b).find('img').attr('src'); + const _title = $(b).find('a').text().trim(); + const _views = $(b).find('p').text().trim(); + const _url = $(b).find('a').attr('href'); + const hasil = {thumbnail: _thumbnail, title: _title, views: _views, url: _url}; + res.push(hasil); + }); + resolve(result); + }).catch((err) => { + console.log(err); + }); + }); +} diff --git a/plugins/adult-pack_vid.js b/plugins/adult-pack_vid.js new file mode 100644 index 0000000..3226f8e --- /dev/null +++ b/plugins/adult-pack_vid.js @@ -0,0 +1,151 @@ +import fetch from 'node-fetch'; +const handler = async (m, {conn, command, usedPrefix}) => { + if (!db.data.chats[m.chat].modohorny && m.isGroup) throw '*[โ—๐ˆ๐๐…๐Žโ—] ๐™ป๐™พ๐š‚ ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ๐š‚ +๐Ÿท๐Ÿพ ๐™ด๐š‚๐šƒ๐™ฐ๐™ฝ ๐™ณ๐™ด๐š‚๐™ฐ๐™ฒ๐šƒ๐™ธ๐š…๐™ฐ๐™ณ๐™พ๐š‚ ๐™ด๐™ฝ ๐™ด๐š‚๐šƒ๐™ด ๐™ถ๐š๐š„๐™ฟ๐™พ, ๐š‚๐™ธ ๐™ด๐š‚ ๐™ฐ๐™ณ๐™ผ๐™ธ๐™ฝ ๐šˆ ๐™ณ๐™ด๐š‚๐™ด๐™ฐ ๐™ฐ๐™ฒ๐šƒ๐™ธ๐š…๐™ฐ๐š๐™ป๐™พ๐š‚ ๐š„๐š‚๐™ด ๐™ด๐™ป ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ #enable modohorny*'; + switch (command) { + case 'pack': + const url = await pack[Math.floor(Math.random() * pack.length)]; + conn.sendMessage(m.chat, {image: {url: url}, caption: `_๐Ÿฅต Pack ๐Ÿฅต_`}, {quoted: m}); + break; + case 'pack2': + const url2 = await packgirl[Math.floor(Math.random() * packgirl.length)]; + conn.sendMessage(m.chat, {image: {url: url2}, caption: `_๐Ÿฅต Pack ๐Ÿฅต_`}, {quoted: m}); + break; + case 'pack3': + const url3 = await packmen[Math.floor(Math.random() * packmen.length)]; + conn.sendMessage(m.chat, {image: {url: url3}, caption: `_๐Ÿฅต Pack 3 ๐Ÿฅต_`}, {quoted: m}); + break; + case 'videoxxx': case 'vรญdeoxxx': + const url4 = await videosxxxc[Math.floor(Math.random() * videosxxxc.length)]; + await conn.sendMessage(m.chat, {video: {url: url4}, caption: `*แด…ษชsา“ส€แดœแด›แด€ แด…แด‡สŸ แด ษชแด…แด‡แด ๐Ÿฅต*`}, {quoted: m}); + break; + case 'videoxxxlesbi': case 'videolesbixxx': case 'pornolesbivid': case 'pornolesbianavid': case 'pornolesbiv': case 'pornolesbianav': case 'pornolesv': + const url5 = await videosxxxc2[Math.floor(Math.random() * videosxxxc2.length)]; + await conn.sendMessage(m.chat, {video: {url: url5}, caption: `*แด…ษชsา“ส€แดœแด›แด€ แด…แด‡สŸ แด ษชแด…แด‡แด ๐Ÿฅต*`}, {quoted: m}); + break; + } +}; +handler.command = /^(pack|pack2|pack3|videoxxx|vรญdeoxxx|videoxxxlesbi|videolesbixxx|pornolesbivid|pornolesbianavid|pornolesbiv|pornolesbianav|pornolesv)$/i; +export default handler; + +global.pack = [ + 'https://telegra.ph/file/957fe4031132ef90b66ec.jpg', + 'https://telegra.ph/file/c4b85bd53030cb648382f.jpg', + 'https://telegra.ph/file/df56f8a76145df9c923ad.jpg', + 'https://telegra.ph/file/d5d1c2c710c4b5ee8bc6c.jpg', + 'https://telegra.ph/file/d0c0cd47e87535373ab68.jpg', + 'https://telegra.ph/file/651a5a9dc96c97c8ef8fc.jpg', + 'https://telegra.ph/file/f857ae461ceab18c38de2.jpg', + 'https://telegra.ph/file/5d2a2aeff5e6fbd229eff.jpg', + 'https://telegra.ph/file/b93573531f898ea875dd0.jpg', + 'https://telegra.ph/file/c798b3959f84d345b0f25.jpg', + 'https://telegra.ph/file/de820647f8cabce533557.jpg', + 'https://telegra.ph/file/e105097d5fadf3e522eb5.jpg', + 'https://telegra.ph/file/8592e352a9ee6c7244737.jpg', + 'https://telegra.ph/file/bb9c7d879b7dc1d86a2ce.jpg', + 'https://telegra.ph/file/83f108601e6105446ad1f.jpg', + 'https://telegra.ph/file/2a6bff14e53ed2533ad25.jpg', + 'https://telegra.ph/file/e37d74aeccc5bdfd6be3e.jpg', + 'https://telegra.ph/file/ca984650af06b951e961d.jpg', + 'https://telegra.ph/file/ebb3ac7f7498dd09f6afc.jpg', + 'https://telegra.ph/file/6192305a24ffb8fa30942.jpg', + 'https://telegra.ph/file/ee67c17d0043b98dc757e.jpg', + 'https://telegra.ph/file/6ae756b686cd2b5950721.jpg', + 'https://telegra.ph/file/b1e1da38d897d117c2aa9.jpg', + 'https://telegra.ph/file/6b759437dc8b863c2fa19.jpg', + 'https://telegra.ph/file/960d8c268aecb5eb117f0.jpg', + 'https://telegra.ph/file/d0dd518bdd147cb10b0b5.jpg', + 'https://telegra.ph/file/31f2d59b5cd68ec5acb21.jpg', + 'https://telegra.ph/file/14ab9bd02f24e0f1a1a03.jpg', + 'https://telegra.ph/file/e02bf6bc9227f7f8b7e2a.jpg', + 'https://telegra.ph/file/ab55fca1d6b602b1a69df.jpg', + 'https://telegra.ph/file/42105cac3666b37da3d1c.jpg', +]; +global.packgirl = [ + 'https://telegra.ph/file/c0da7289bee2d97048feb.jpg', + 'https://telegra.ph/file/b8564166f9cac4d843db3.jpg', + 'https://telegra.ph/file/fdefd621a17712be15e0e.jpg', + 'https://telegra.ph/file/6e1a6dcf1c91bf62d3945.jpg', + 'https://telegra.ph/file/0224c1ecf6b676dda3ac0.jpg', + 'https://telegra.ph/file/b71b8f04772f1b30355f1.jpg', + 'https://telegra.ph/file/6561840400444d2d27d0c.jpg', + 'https://telegra.ph/file/37e445df144e1dfcdb744.jpg', + 'https://telegra.ph/file/155b6ac6757bdd9cd05f9.jpg', + 'https://telegra.ph/file/2255a8a013540c2820a2b.jpg', + 'https://telegra.ph/file/450e901ac153765f095c5.jpg', + 'https://telegra.ph/file/f18e421a70810015be505.jpg', + 'https://telegra.ph/file/d3d190691ec399431434e.jpg', + 'https://telegra.ph/file/1fd2b897a1dbc3fdc2a70.jpg', + 'https://telegra.ph/file/607d54a909035bca7444f.jpg', + 'https://telegra.ph/file/818ba7c0ae82876b190b6.jpg', + 'https://telegra.ph/file/0f2bb426951b4a8fe1e5a.jpg', + 'https://telegra.ph/file/7e895b5b933226a07558a.jpg', + 'https://telegra.ph/file/f9d9f0da337512a1b1882.jpg', + 'https://telegra.ph/file/09ff5bfce02f1f78e3861.jpg', + 'https://telegra.ph/file/4ad840d401ab1f90444df.jpg', + 'https://telegra.ph/file/7b4bdcad3dde870355c94.jpg', + 'https://telegra.ph/file/f69a5beaca50fc52a4a71.jpg', + 'https://telegra.ph/file/411d7cdee24669e167adb.jpg', + 'https://telegra.ph/file/36a63288e27e88e2f8e10.jpg', + 'https://telegra.ph/file/1ac7657a5e7b354cd9991.jpg', + 'https://telegra.ph/file/14161eab0c1d919dc3218.jpg', + 'https://telegra.ph/file/810411b9128fe11dd639a.jpg', + 'https://telegra.ph/file/5fe7e98533754b007e7a1.jpg', +]; +global.packmen = [ + 'https://telegra.ph/file/bf303b19b9834f90e9617.jpg', + 'https://telegra.ph/file/36ef2b807251dfccd17c2.jpg', + 'https://telegra.ph/file/bcc34403d16de829ea5d2.jpg', + 'https://telegra.ph/file/5c6b7615662fb53a39e53.jpg', + 'https://telegra.ph/file/1a8183eff48671ea265c2.jpg', + 'https://telegra.ph/file/f9745dcd22f67cbc62e08.jpg', + 'https://telegra.ph/file/02219f503317b0596e101.jpg', + 'https://telegra.ph/file/470c8ec30400a73d03207.jpg', + 'https://telegra.ph/file/c94fa8ed20f2c0cf16786.jpg', + 'https://telegra.ph/file/1b02a1ca6a39e741faec7.jpg', + 'https://telegra.ph/file/eea58bf7043fd697cdb43.jpg', + 'https://telegra.ph/file/ee3db7facdfe73c8df05a.jpg', + 'https://telegra.ph/file/d45b4e4af4f2139507f8c.jpg', + 'https://telegra.ph/file/d176e7fc8720f98f6b182.jpg', + 'https://telegra.ph/file/ce1e072829d1fa5d99f5f.jpg', + 'https://telegra.ph/file/a947933701be6d579c958.jpg', + 'https://telegra.ph/file/9027e5a464ec88e8ab5c1.jpg', + 'https://telegra.ph/file/049a8c611a838ea2f6daa.jpg', + 'https://telegra.ph/file/37b35fbc7e2ee73482ee1.jpg', + 'https://telegra.ph/file/9bcfade24ae85cd417f06.jpg', + 'https://telegra.ph/file/ac0c711585f4300c54355.jpg', +]; +global.videosxxxc = [ + 'https://telegra.ph/file/4a270d9945ac46f42d95c.mp4', + 'https://telegra.ph/file/958c11e84d271e783ea3f.mp4', + 'https://telegra.ph/file/f753759342337c4012b3f.mp4', + 'https://telegra.ph/file/379cee56c908dd536dd33.mp4', + 'https://telegra.ph/file/411d8f59a5cefc2a1d227.mp4', + 'https://telegra.ph/file/ee2cf1b359d6eef50d7b7.mp4', + 'https://telegra.ph/file/1e316b25c787f94a0f8fd.mp4', + 'https://telegra.ph/file/c229d33edce798cde0ca4.mp4', + 'https://telegra.ph/file/b44223e72dd7e80e415f2.mp4', + 'https://telegra.ph/file/61486d45a8a3ea95a7c86.mp4', + 'https://telegra.ph/file/76ba0dc2a07f491756377.mp4', + 'https://telegra.ph/file/831bb88f562bef3f1a15d.mp4', + 'https://telegra.ph/file/ee2cf1b359d6eef50d7b7.mp4', + 'https://telegra.ph/file/598857924f3a29ffd37ae.mp4', + 'https://telegra.ph/file/528caef6ea950ec45aeef.mp4', + 'https://telegra.ph/file/4a270d9945ac46f42d95c.mp4', + 'https://telegra.ph/file/958c11e84d271e783ea3f.mp4', + 'https://telegra.ph/file/f753759342337c4012b3f.mp4', + 'https://telegra.ph/file/379cee56c908dd536dd33.mp4', + 'https://telegra.ph/file/411d8f59a5cefc2a1d227.mp4', + 'https://telegra.ph/file/76ba0dc2a07f491756377.mp4', + 'https://telegra.ph/file/831bb88f562bef3f1a15d.mp4', +]; + +global.videosxxxc2 = [ +"https://telegra.ph/file/2dfb1ad0cab22951e30d1.mp4", +"https://telegra.ph/file/c430651857023968d3a76.mp4", +"https://telegra.ph/file/1ba17f6230dd1ea2de48c.mp4", +"https://telegra.ph/file/e04b802f12aafee3d314e.mp4", +"https://telegra.ph/file/a58661697d519d3d0acbd.mp4", +"https://telegra.ph/file/9ed60b18e79fcfebcd76c.mp4", +"https://telegra.ph/file/d58096000ad5eaef0b05e.mp4", +"https://telegra.ph/file/60b4c8ebeadebb7e0da06.mp4" +]; diff --git a/plugins/adult-xnxxdl.js b/plugins/adult-xnxxdl.js new file mode 100644 index 0000000..8817f3f --- /dev/null +++ b/plugins/adult-xnxxdl.js @@ -0,0 +1,63 @@ +import fetch from 'node-fetch'; +import cheerio from 'cheerio'; +const handler = async (m, {conn, args, command, usedPrefix}) => { + if (!db.data.chats[m.chat].modohorny && m.isGroup) throw '*[โ—๐ˆ๐๐…๐Žโ—] ๐™ป๐™พ๐š‚ ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ๐š‚ +๐Ÿท๐Ÿพ ๐™ด๐š‚๐šƒ๐™ฐ๐™ฝ ๐™ณ๐™ด๐š‚๐™ฐ๐™ฒ๐šƒ๐™ธ๐š…๐™ฐ๐™ณ๐™พ๐š‚ ๐™ด๐™ฝ ๐™ด๐š‚๐šƒ๐™ด ๐™ถ๐š๐š„๐™ฟ๐™พ, ๐š‚๐™ธ ๐™ด๐š‚ ๐™ฐ๐™ณ๐™ผ๐™ธ๐™ฝ ๐šˆ ๐™ณ๐™ด๐š‚๐™ด๐™ฐ ๐™ฐ๐™ฒ๐šƒ๐™ธ๐š…๐™ฐ๐š๐™ป๐™พ๐š‚ ๐š„๐š‚๐™ด ๐™ด๐™ป ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ #enable modohorny*'; + if (!args[0]) throw `*[โ—๐ˆ๐๐…๐Žโ—] ๐™ธ๐™ฝ๐™ถ๐š๐™ด๐š‚๐™ด ๐š„๐™ฝ ๐™ด๐™ฝ๐™ป๐™ฐ๐™ฒ๐™ด ๐š…๐™ฐ๐™ป๐™ธ๐™ณ๐™พ ๐™ณ๐™ด ๐š‡๐™ฝ๐š‡๐š‡, ๐™ด๐™น๐™ด๐™ผ๐™ฟ๐™ป๐™พ: ${usedPrefix + command} https://www.xnxx.com/video-14lcwbe8/rubia_novia_follada_en_cuarto_de_bano*`; + try { + await conn.reply(m.chat, '[โ—] ๐ธ๐‘™ ๐‘ฃ๐‘–๐‘‘๐‘’๐‘œ ๐‘’๐‘ ๐‘ก๐‘Ž ๐‘ ๐‘–๐‘’๐‘›๐‘‘๐‘œ ๐‘๐‘Ÿ๐‘œ๐‘๐‘’๐‘ ๐‘Ž๐‘‘๐‘œ, ๐‘’๐‘ ๐‘๐‘’๐‘Ÿ๐‘’ ๐‘ข๐‘› ๐‘š๐‘œ๐‘š๐‘’๐‘›๐‘ก๐‘œ ๐‘’๐‘› ๐‘™๐‘œ ๐‘ž๐‘ข๐‘’ ๐‘’๐‘  ๐‘’๐‘›๐‘ฃ๐‘–๐‘Ž๐‘‘๐‘œ..\n\n๏นฃ แด‡สŸ แด›ษชแด‡แดแด˜แด แด…แด‡ แด‡ษดแด ษชแด แด…แด‡แด˜แด‡ษดแด…แด‡ แด…แด‡สŸ แด˜แด‡sแด ส แด…แดœส€แด€แด„ษชแดฬษด แด…แด‡สŸ แด ษชแด…แด‡แด', m); + let xnxxLink = ''; + if (args[0].includes('xnxx')) { + xnxxLink = args[0]; + } else { + const index = parseInt(args[0]) - 1; + if (index >= 0) { + if (Array.isArray(global.videoListXXX) && global.videoListXXX.length > 0) { + const matchingItem = global.videoListXXX.find((item) => item.from === m.sender); + if (matchingItem) { + if (index < matchingItem.urls.length) { + xnxxLink = matchingItem.urls[index]; + } else { + throw `*[โ—] ๐™ฝ๐™พ ๐š‚๐™ด ๐™ด๐™ฝ๐™ฒ๐™พ๐™ฝ๐šƒ๐š๐™พ ๐š„๐™ฝ ๐™ด๐™ฝ๐™ป๐™ฐ๐™ฒ๐™ด ๐™ฟ๐™ฐ๐š๐™ฐ ๐™ด๐š‚๐™ด ๐™ฝ๐š„๐™ผ๐™ด๐š๐™พ, ๐™ฟ๐™พ๐š ๐™ต๐™ฐ๐š…๐™พ๐š ๐™ธ๐™ฝ๐™ถ๐š๐™ด๐š‚๐™ด ๐š„๐™ฝ ๐™ฝ๐š„๐™ผ๐™ด๐š๐™พ ๐™ด๐™ฝ๐šƒ๐š๐™ด ๐™ด๐™ป 1 ๐šˆ ๐™ด๐™ป ${matchingItem.urls.length}*`; + } + } else { + throw `*[โ—] ๐™ฟ๐™ฐ๐š๐™ฐ ๐™ฟ๐™พ๐™ณ๐™ด๐š ๐š„๐š‚๐™ฐ๐š ๐™ด๐š‚๐šƒ๐™ด ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ ๐™ณ๐™ด ๐™ด๐š‚๐šƒ๐™ฐ ๐™ต๐™พ๐š๐™ผ๐™ฐ (${usedPrefix + command} ), ๐™ฟ๐™พ๐š ๐™ต๐™ฐ๐š…๐™พ๐š ๐š๐™ด๐™ฐ๐™ป๐™ธ๐š‰๐™ฐ ๐™ป๐™ฐ ๐™ฑ๐š„๐š‚๐š€๐š„๐™ด๐™ณ๐™ฐ ๐™ณ๐™ด ๐š…๐™ธ๐™ณ๐™ด๐™พ๐š‚ ๐™ฒ๐™พ๐™ฝ ๐™ด๐™ป ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ ${usedPrefix}xnxxsearch *`; + } + } else { + throw `*[โ—] ๐™ฟ๐™ฐ๐š๐™ฐ ๐™ฟ๐™พ๐™ณ๐™ด๐š ๐š„๐š‚๐™ฐ๐š ๐™ด๐š‚๐šƒ๐™ด ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ ๐™ณ๐™ด ๐™ด๐š‚๐šƒ๐™ฐ ๐™ต๐™พ๐š๐™ผ๐™ฐ (${usedPrefix + command} ), ๐™ฟ๐™พ๐š ๐™ต๐™ฐ๐š…๐™พ๐š ๐š๐™ด๐™ฐ๐™ป๐™ธ๐š‰๐™ฐ ๐™ป๐™ฐ ๐™ฑ๐š„๐š‚๐š€๐š„๐™ด๐™ณ๐™ฐ ๐™ณ๐™ด ๐š…๐™ธ๐™ณ๐™ด๐™พ๐š‚ ๐™ฒ๐™พ๐™ฝ ๐™ด๐™ป ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ ${usedPrefix}xnxxsearch *`; + } + } + } + const res = await xnxxdl(xnxxLink); + const json = await res.result.files; + conn.sendMessage(m.chat, {document: {url: json.high}, mimetype: 'video/mp4', fileName: res.result.title}, {quoted: m}); + } catch { + throw '*[โ—๐ˆ๐๐…๐Žโ—] ๐™ด๐š๐š๐™พ๐š, ๐™ฟ๐™พ๐š ๐™ต๐™ฐ๐š…๐™พ๐š ๐š…๐š„๐™ด๐™ป๐š…๐™ฐ ๐™ฐ ๐™ธ๐™ฝ๐šƒ๐™ด๐™ฝ๐šƒ๐™ฐ๐š๐™ป๐™พ*\n\n*- ๐™ฒ๐™พ๐š๐š๐™พ๐™ฑ๐™พ๐š๐™ด ๐š€๐š„๐™ด ๐™ด๐™ป ๐™ด๐™ฝ๐™ป๐™ฐ๐™ฒ๐™ด ๐š‚๐™ด๐™ฐ ๐š‚๐™ธ๐™ผ๐™ธ๐™ป๐™ฐ๐š ๐™ฐ:*\n*โ—‰ https://www.xnxx.com/video-14lcwbe8/rubia_novia_follada_en_cuarto_de_bano*'; + } +}; +handler.command = /^(xnxxdl)$/i; +export default handler; + +async function xnxxdl(URL) { + return new Promise((resolve, reject) => { + fetch(`${URL}`, {method: 'get'}).then((res) => res.text()).then((res) => { + const $ = cheerio.load(res, {xmlMode: false}); + const title = $('meta[property="og:title"]').attr('content'); + const duration = $('meta[property="og:duration"]').attr('content'); + const image = $('meta[property="og:image"]').attr('content'); + const videoType = $('meta[property="og:video:type"]').attr('content'); + const videoWidth = $('meta[property="og:video:width"]').attr('content'); + const videoHeight = $('meta[property="og:video:height"]').attr('content'); + const info = $('span.metadata').text(); + const videoScript = $('#video-player-bg > script:nth-child(6)').html(); + const files = { + low: (videoScript.match('html5player.setVideoUrlLow\\(\'(.*?)\'\\);') || [])[1], + high: videoScript.match('html5player.setVideoUrlHigh\\(\'(.*?)\'\\);' || [])[1], + HLS: videoScript.match('html5player.setVideoHLS\\(\'(.*?)\'\\);' || [])[1], + thumb: videoScript.match('html5player.setThumbUrl\\(\'(.*?)\'\\);' || [])[1], + thumb69: videoScript.match('html5player.setThumbUrl169\\(\'(.*?)\'\\);' || [])[1], + thumbSlide: videoScript.match('html5player.setThumbSlide\\(\'(.*?)\'\\);' || [])[1], + thumbSlideBig: videoScript.match('html5player.setThumbSlideBig\\(\'(.*?)\'\\);' || [])[1]}; + resolve({status: 200, result: {title, URL, duration, image, videoType, videoWidth, videoHeight, info, files}}); + }).catch((err) => reject({code: 503, status: false, result: err})); + }); +} diff --git a/plugins/adult-xnxxsearch.js b/plugins/adult-xnxxsearch.js new file mode 100644 index 0000000..a61c114 --- /dev/null +++ b/plugins/adult-xnxxsearch.js @@ -0,0 +1,68 @@ +import fetch from 'node-fetch'; +const handler = async (m, {text, usedPrefix, command}) => { +if (!db.data.chats[m.chat].modohorny && m.isGroup) throw `*[โ—] Los comandos +18 estรกn desactivados en este grupo, si es admin y desea activarlos use ${usedPrefix}enable modohorny*`; + if (!text) throw `*[โ—๐ˆ๐๐…๐Žโ—] ๐™ด๐™น๐™ด๐™ผ๐™ฟ๐™ป๐™พ ๐™ณ๐™ด ๐š„๐š‚๐™พ ๐™ณ๐™ด๐™ป ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ ${usedPrefix + command} Con mi prima*`; + try { + const vids_ = { + from: m.sender, + urls: [], + }; + if (!global.videoListXXX) { + global.videoListXXX = []; + } + if (global.videoListXXX[0]?.from == m.sender) { + global.videoListXXX.splice(0, global.videoListXXX.length); + } + const res = await xnxxsearch(text); + const json = res.result; + let cap = `*๐Ÿ” RESULTADOS DE LA BUSQUEDA:* ${text.toUpperCase()}\n\n`; + let count = 1; + for (const v of json) { + const linkXXX = v.link; + vids_.urls.push(linkXXX); + cap += `*[${count}]*\nโ€ข *๐ŸŽฌ Titulo:* ${v.title}\nโ€ข *๐Ÿ”— Link:* ${v.link}\nโ€ข *โ— Info:* ${v.info}`; + cap += '\n\n' + 'โ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ข' + '\n\n'; + count++; + } + m.reply(cap); + global.videoListXXX.push(vids_); + } catch { + throw e; + } +}; +handler.help = ['xnxxsearch'].map((v) => v + ' '); +handler.tags = ['downloader', 'premium']; +handler.command = /^xnxxsearch|xnxxs$/i; +export default handler; + +async function xnxxsearch(query) { + return new Promise((resolve, reject) => { + const baseurl = 'https://www.xnxx.com'; + fetch(`${baseurl}/search/${query}/${Math.floor(Math.random() * 3) + 1}`, {method: 'get'}).then((res) => res.text()).then((res) => { + const $ = cheerio.load(res, {xmlMode: false}); + const title = []; + const url = []; + const desc = []; + const results = []; + $('div.mozaique').each(function(a, b) { + $(b).find('div.thumb').each(function(c, d) { + url.push(baseurl + $(d).find('a').attr('href').replace('/THUMBNUM/', '/')); + }); + }); + $('div.mozaique').each(function(a, b) { + $(b).find('div.thumb-under').each(function(c, d) { + desc.push($(d).find('p.metadata').text()); + $(d).find('a').each(function(e, f) { + title.push($(f).attr('title')); + }); + }); + }); + for (let i = 0; i < title.length; i++) { + results.push({title: title[i], info: desc[i], link: url[i]}); + } + resolve({code: 200, status: true, result: results}); + }).catch((err) => reject({code: 503, status: false, result: err})); + }); +} + + diff --git a/plugins/adult-xvideosdl.js b/plugins/adult-xvideosdl.js new file mode 100644 index 0000000..44c7d5f --- /dev/null +++ b/plugins/adult-xvideosdl.js @@ -0,0 +1,71 @@ +import fetch from 'node-fetch'; +import axios from 'axios'; +import cheerio from 'cheerio'; +const handler = async (m, {conn, args, command, usedPrefix, text}) => { + if (!db.data.chats[m.chat].modohorny && m.isGroup) throw '*[โ—๐ˆ๐๐…๐Žโ—] ๐™ป๐™พ๐š‚ ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ๐š‚ +๐Ÿท๐Ÿพ ๐™ด๐š‚๐šƒ๐™ฐ๐™ฝ ๐™ณ๐™ด๐š‚๐™ฐ๐™ฒ๐šƒ๐™ธ๐š…๐™ฐ๐™ณ๐™พ๐š‚ ๐™ด๐™ฝ ๐™ด๐š‚๐šƒ๐™ด ๐™ถ๐š๐š„๐™ฟ๐™พ, ๐š‚๐™ธ ๐™ด๐š‚ ๐™ฐ๐™ณ๐™ผ๐™ธ๐™ฝ ๐šˆ ๐™ณ๐™ด๐š‚๐™ด๐™ฐ ๐™ฐ๐™ฒ๐šƒ๐™ธ๐š…๐™ฐ๐š๐™ป๐™พ๐š‚ ๐š„๐š‚๐™ด ๐™ด๐™ป ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ #enable modohorny*'; + if (!args[0]) throw `*[โ—๐ˆ๐๐…๐Žโ—] ๐™ธ๐™ฝ๐™ถ๐š๐™ด๐š‚๐™ด ๐š„๐™ฝ ๐™ด๐™ฝ๐™ป๐™ฐ๐™ฒ๐™ด ๐š…๐™ฐ๐™ป๐™ธ๐™ณ๐™พ ๐™ณ๐™ด ๐š‡๐š…๐™ธ๐™ณ๐™ด๐™พ๐š‚, ๐™ด๐™น๐™ด๐™ผ๐™ฟ๐™ป๐™พ: ${usedPrefix + command} https://www.xvideos.com/video70389849/pequena_zorra_follada_duro*`; + try { + conn.reply(m.chat, '[โ—] ๐ธ๐‘™ ๐‘ฃ๐‘–๐‘‘๐‘’๐‘œ ๐‘’๐‘ ๐‘ก๐‘Ž ๐‘ ๐‘–๐‘’๐‘›๐‘‘๐‘œ ๐‘๐‘Ÿ๐‘œ๐‘๐‘’๐‘ ๐‘Ž๐‘‘๐‘œ, ๐‘’๐‘ ๐‘๐‘’๐‘Ÿ๐‘’ ๐‘ข๐‘› ๐‘š๐‘œ๐‘š๐‘’๐‘›๐‘ก๐‘œ ๐‘’๐‘› ๐‘™๐‘œ ๐‘ž๐‘ข๐‘’ ๐‘’๐‘  ๐‘’๐‘›๐‘ฃ๐‘–๐‘Ž๐‘‘๐‘œ..\n\n๏นฃ แด‡สŸ แด›ษชแด‡แดแด˜แด แด…แด‡ แด‡ษดแด ษชแด แด…แด‡แด˜แด‡ษดแด…แด‡ แด…แด‡สŸ แด˜แด‡sแด ส แด…แดœส€แด€แด„ษชแดฬษด แด…แด‡สŸ แด ษชแด…แด‡แด', m); + const res = await xvideosdl(args[0]); + conn.sendMessage(m.chat, {document: {url: res.result.url}, mimetype: 'video/mp4', fileName: res.result.title}, {quoted: m}); + } catch (e) { + throw '*[โ—๐ˆ๐๐…๐Žโ—] ๐™ด๐š๐š๐™พ๐š, ๐™ฟ๐™พ๐š ๐™ต๐™ฐ๐š…๐™พ๐š ๐š…๐š„๐™ด๐™ป๐š…๐™ฐ ๐™ฐ ๐™ธ๐™ฝ๐šƒ๐™ด๐™ฝ๐šƒ๐™ฐ๐š๐™ป๐™พ*\n\n*- ๐™ฒ๐™พ๐š๐š๐™พ๐™ฑ๐™พ๐š๐™ด ๐š€๐š„๐™ด ๐™ด๐™ป ๐™ด๐™ฝ๐™ป๐™ฐ๐™ฒ๐™ด ๐š‚๐™ด๐™ฐ ๐š‚๐™ธ๐™ผ๐™ธ๐™ป๐™ฐ๐š ๐™ฐ:*\n*โ—‰ https://www.xvideos.com/video70389849/pequena_zorra_follada_duro*'; + } +}; +handler.command = /^(xvideosdl)$/i; +export default handler; + +async function xvideosdl(url) { + return new Promise((resolve, reject) => { + fetch(`${url}`, {method: 'get'}) + .then(res => res.text()) + .then(res => { + let $ = cheerio.load(res, {xmlMode: false}); + const title = $("meta[property='og:title']").attr("content") + const keyword = $("meta[name='keywords']").attr("content") + const views = $("div#video-tabs > div > div > div > div > strong.mobile-hide").text()+" views" + const vote = $("div.rate-infos > span.rating-total-txt").text() + const likes = $("span.rating-good-nbr").text() + const deslikes = $("span.rating-bad-nbr").text() + const thumb = $("meta[property='og:image']").attr("content") + const url = $("#html5video > #html5video_base > div > a").attr("href") + resolve({status: 200, result: {title, url, keyword, views, vote, likes, deslikes, thumb}}) + }) + }) +}; + +async function xvideosSearch(url) { + return new Promise(async (resolve) => { + await axios.request(`https://www.xvideos.com/?k=${url}&p=${Math.floor(Math.random() * 9) +1}`, {method: "get"}).then(async result => { + let $ = cheerio.load(result.data, {xmlMod3: false}); + let title = []; + let duration = []; + let quality = []; + let url = []; + let thumb = []; + let hasil = []; + + $("div.mozaique > div > div.thumb-under > p.title").each(function(a,b){ + title.push($(this).find("a").attr("title")); + duration.push($(this).find("span.duration").text()); + url.push("https://www.xvideos.com"+$(this).find("a").attr("href")); + }); + $("div.mozaique > div > div.thumb-under").each(function(a,b){ + quality.push($(this).find("span.video-hd-mark").text()); + }); + $("div.mozaique > div > div > div.thumb > a").each(function(a,b){ + thumb.push($(this).find("img").attr("data-src")); + }); + for(let i=0; i < title.length; i++){ + hasil.push({ + title: title[i], + duration: duration[i], + quality: quality[i], + thumb: thumb[i], + url: url[i] + }); + } + resolve(hasil); + }); + }); + }; diff --git a/plugins/afk-_afk.js b/plugins/afk-_afk.js new file mode 100644 index 0000000..4056014 --- /dev/null +++ b/plugins/afk-_afk.js @@ -0,0 +1,31 @@ +export function before(m) { + const user = global.db.data.users[m.sender]; + if (user.afk > -1) { + m.reply(` + *[โ—๐ˆ๐๐…๐Žโ—] ๐™ณ๐™ด๐™น๐™ฐ๐š‚๐šƒ๐™ด ๐™ณ๐™ด ๐™ด๐š‚๐šƒ๐™ฐ๐š ๐™ธ๐™ฝ๐™ฐ๐™ฒ๐šƒ๐™ธ๐š…๐™พ (๐™ฐ๐™ต๐™บ)${user.afkReason ? ' ๐™ณ๐™ด๐™ฟ๐š„๐™ด๐š‚ ๐™ณ๐™ด ๐™ด๐š‚๐šƒ๐™ฐ๐š ๐™ธ๐™ฝ๐™ฐ๐™ฒ๐šƒ๐™ธ๐š…๐™พ (๐™ฐ๐™ต๐™บ) ๐™ฟ๐™พ๐š ๐™ด๐™ป ๐™ผ๐™พ๐šƒ๐™ธ๐š…๐™พ: ' + user.afkReason : ''}* + + *โ€”โ—‰ ๐šƒ๐™ธ๐™ด๐™ผ๐™ฟ๐™พ ๐™ณ๐™ด ๐™ธ๐™ฝ๐™ฐ๐™ฒ๐šƒ๐™ธ๐š…๐™ธ๐™ณ๐™ฐ๐™ณ (๐™ฐ๐™ต๐™บ): ${(new Date - user.afk).toTimeString()}* + `.trim()); + user.afk = -1; + user.afkReason = ''; + } + const jids = [...new Set([...(m.mentionedJid || []), ...(m.quoted ? [m.quoted.sender] : [])])]; + for (const jid of jids) { + const user = global.db.data.users[jid]; + if (!user) { + continue; + } + const afkTime = user.afk; + if (!afkTime || afkTime < 0) { + continue; + } + const reason = user.afkReason || ''; + m.reply(`*[โ—] ๐™ฝ๐™พ ๐™ป๐™พ ๐™ด๐šƒ๐™ธ๐š€๐š„๐™ด๐šƒ๐™ด๐š‚ [โ—]* + +*โ€”โ—‰ ๐™ด๐™ป ๐š„๐š‚๐š„๐™ฐ๐š๐™ธ๐™พ ๐š€๐š„๐™ด ๐š„๐š‚๐šƒ๐™ด๐™ณ ๐™ด๐šƒ๐™ธ๐š€๐š„๐™ด๐šƒ๐™พ ๐™ด๐š‚๐šƒ๐™ฐ ๐™ธ๐™ฝ๐™ฐ๐™ฒ๐šƒ๐™ธ๐š…๐™พ (๐™ฐ๐™ต๐™บ)* +*โ€”โ—‰ ${reason ? '๐™ผ๐™พ๐šƒ๐™ธ๐š…๐™พ ๐™ณ๐™ด ๐™ธ๐™ฝ๐™ฐ๐™ฒ๐šƒ๐™ธ๐š…๐™ธ๐™ณ๐™ฐ๐™ณ (๐™ฐ๐™ต๐™บ): ' + reason : '๐™ผ๐™พ๐šƒ๐™ธ๐š…๐™พ ๐™ณ๐™ด ๐™ธ๐™ฝ๐™ฐ๐™ฒ๐šƒ๐™ธ๐š…๐™ธ๐™ณ๐™ฐ๐™ณ (๐™ฐ๐™ต๐™บ): _๐™ด๐™ป ๐š„๐š‚๐š„๐™ฐ๐š๐™ธ๐™พ ๐™ฝ๐™พ ๐™ด๐š‚๐™ฟ๐™ด๐™ฒ๐™ธ๐™ต๐™ธ๐™ฒ๐™พ ๐š„๐™ฝ ๐™ผ๐™พ๐šƒ๐™ธ๐š…๐™พ_'}* +*โ€”โ—‰ ๐šƒ๐™ธ๐™ด๐™ผ๐™ฟ๐™พ ๐šƒ๐š๐™ฐ๐™ฝ๐š‚๐™ฒ๐š„๐š๐š๐™ธ๐™ณ๐™พ ๐™ณ๐™ด ๐™ธ๐™ฝ๐™ฐ๐™ฒ๐šƒ๐™ธ๐š…๐™ธ๐™ณ๐™ฐ๐™ณ (๐™ฐ๐™ต๐™บ): ${(new Date - afkTime).toTimeString()}* + `.trim()); + } + return true; +} diff --git a/plugins/afk-afk.js b/plugins/afk-afk.js new file mode 100644 index 0000000..15c45fc --- /dev/null +++ b/plugins/afk-afk.js @@ -0,0 +1,11 @@ +const handler = async (m, {text}) => { + const user = global.db.data.users[m.sender]; + user.afk = + new Date; + user.afkReason = text; + m.reply(`*[โ—๐ˆ๐๐…๐Žโ—] ๐™ด๐™ป ๐š„๐š‚๐š„๐™ฐ๐š๐™ธ๐™พ ${conn.getName(m.sender)} ๐™ด๐š‚๐šƒ๐™ฐ๐š๐™ฐ ๐™ธ๐™ฝ๐™ฐ๐™ฒ๐šƒ๐™ธ๐š…๐™พ (๐™ฐ๐™ต๐™บ), ๐™ฟ๐™พ๐š ๐™ต๐™ฐ๐š…๐™พ๐š ๐™ฝ๐™พ ๐™ป๐™พ ๐™ด๐šƒ๐™ธ๐š€๐š„๐™ด๐šƒ๐™ด๐™ฝ*\n\n*โ€”โ—‰ ๐™ผ๐™พ๐šƒ๐™ธ๐š…๐™พ ๐™ณ๐™ด ๐™ป๐™ฐ ๐™ธ๐™ฝ๐™ฐ๐™ฒ๐šƒ๐™ธ๐š…๐™ธ๐™ณ๐™ฐ๐™ณ (๐™ฐ๐™ต๐™บ)${text ? ': ' + text : ''}* +`); +}; +handler.help = ['afk [alasan]']; +handler.tags = ['main']; +handler.command = /^afk$/i; +export default handler; diff --git a/plugins/anonymous_chat.js b/plugins/anonymous_chat.js new file mode 100644 index 0000000..a3e80c2 --- /dev/null +++ b/plugins/anonymous_chat.js @@ -0,0 +1,53 @@ +async function handler(m, {usedPrefix, command}) { + command = command.toLowerCase(); + this.anonymous = this.anonymous ? this.anonymous : {}; + switch (command) { + case 'next': + case 'leave': { + const room = Object.values(this.anonymous).find((room) => room.check(m.sender)); + if (!room) return this.sendMessage(other, {text: `*[โ—๐ˆ๐๐…๐Žโ—] ๐™ฝ๐™พ ๐™ด๐š‚๐šƒ๐™ฐ๐š‚ ๐™ด๐™ฝ ๐š„๐™ฝ ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ*\n\n*ยฟ๐š€๐š„๐™ธ๐™ด๐š๐™ด๐š‚ ๐™ธ๐™ฝ๐™ธ๐™ฒ๐™ธ๐™ฐ๐š ๐š„๐™ฝ๐™พ?*\n๐™ด๐š‚๐™ฒ๐š๐™ธ๐™ฑ๐™ด ${usedPrefix}start`}, {quoted: m}); + // this.sendButton(m.chat, '*[โ—๐ˆ๐๐…๐Žโ—] ๐™ฝ๐™พ ๐™ด๐š‚๐šƒ๐™ฐ๐š‚ ๐™ด๐™ฝ ๐š„๐™ฝ ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ*\n\n*ยฟ๐š€๐š„๐™ธ๐™ด๐š๐™ด๐š‚ ๐™ธ๐™ฝ๐™ธ๐™ฒ๐™ธ๐™ฐ๐š ๐š„๐™ฝ๐™พ?*\n_๐™ณ๐™ฐ ๐™ฒ๐™ป๐™ธ๐™ฒ๐™บ ๐™ด๐™ฝ ๐™ด๐™ป ๐š‚๐™ธ๐™ถ๐š„๐™ธ๐™ด๐™ฝ๐šƒ๐™ด ๐™ฑ๐™พ๐šƒ๐™พ๐™ฝ_', author, null, [['๐™ธ๐™ฝ๐™ธ๐™ฒ๐™ธ๐™ฐ๐š ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ', `.start`]], m) + m.reply('*[ โœ” ] ๐š‚๐™ฐ๐™ป๐™ธ๐™พ ๐™ฒ๐™พ๐™ฝ ๐™ด๐š‡๐™ธ๐šƒ๐™พ ๐™ณ๐™ด๐™ป ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ*'); + const other = room.other(m.sender); + if (other) await this.sendMessage(other, {text: `*[โ—๐ˆ๐๐…๐Žโ—] ๐™ด๐™ป ๐™พ๐šƒ๐š๐™พ ๐š„๐š‚๐š„๐™ฐ๐š๐™ธ๐™พ ๐™ฐ๐™ท ๐™ฐ๐™ฑ๐™ฐ๐™ฝ๐™ณ๐™พ๐™ฝ๐™ฐ๐™ณ๐™พ ๐™ด๐™ป ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ*\n\n*ยฟ๐š€๐š„๐™ธ๐™ด๐š๐™ด๐š‚ ๐™ธ๐š ๐™ฐ ๐™พ๐šƒ๐š๐™พ ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ?*\n๐™ด๐š‚๐™ฒ๐š๐™ธ๐™ฑ๐™ด ${usedPrefix}start`}, {quoted: m}); + // this.sendButton(other, '*[โ—๐ˆ๐๐…๐Žโ—] ๐™ด๐™ป ๐™พ๐šƒ๐š๐™พ ๐š„๐š‚๐š„๐™ฐ๐š๐™ธ๐™พ ๐™ฐ๐™ท ๐™ฐ๐™ฑ๐™ฐ๐™ฝ๐™ณ๐™พ๐™ฝ๐™ฐ๐™ณ๐™พ ๐™ด๐™ป ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ*\n\n*ยฟ๐š€๐š„๐™ธ๐™ด๐š๐™ด๐š‚ ๐™ธ๐š ๐™ฐ ๐™พ๐šƒ๐š๐™พ ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ?*\n_๐™ณ๐™ฐ ๐™ฒ๐™ป๐™ธ๐™ฒ๐™บ ๐™ด๐™ฝ ๐™ด๐™ป ๐š‚๐™ธ๐™ถ๐š„๐™ธ๐™ด๐™ฝ๐šƒ๐™ด ๐™ฑ๐™พ๐šƒ๐™พ๐™ฝ_', author, null, [['๐™ธ๐™ฝ๐™ธ๐™ฒ๐™ธ๐™ฐ๐š ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ', `.start`]], m) + delete this.anonymous[room.id]; + if (command === 'leave') break; + } + case 'start': { + if (Object.values(this.anonymous).find((room) => room.check(m.sender))) return this.sendMessage(m.chat, {text: `*[โ—๐ˆ๐๐…๐Žโ—] ๐šƒ๐™พ๐™ณ๐™ฐ๐š…๐™ธ๐™ฐ ๐™ด๐š‚๐šƒ๐™ฐ๐š‚ ๐™ด๐™ฝ ๐š„๐™ฝ ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ ๐™พ ๐™ด๐š‚๐™ฟ๐™ด๐š๐™ฐ๐™ฝ๐™ณ๐™พ ๐™ฐ ๐š€๐š„๐™ด ๐™พ๐šƒ๐š๐™พ ๐š„๐š‚๐š„๐™ฐ๐š๐™ธ๐™พ ๐š‚๐™ด ๐š„๐™ฝ๐™ฐ ๐™ฟ๐™ฐ๐š๐™ฐ ๐™ธ๐™ฝ๐™ธ๐™ฒ๐™ธ๐™ฐ๐š*\n\n*ยฟ๐š€๐š„๐™ธ๐™ด๐š๐™ด๐š‚ ๐š‚๐™ฐ๐™ป๐™ธ๐š ๐™ณ๐™ด๐™ป ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ?*\n๐™ด๐š‚๐™ฒ๐š๐™ธ๐™ฑ๐™ด ${usedPrefix}leave`}, {quoted: m}); + // this.sendButton(m.chat, '*[โ—๐ˆ๐๐…๐Žโ—] ๐šƒ๐™พ๐™ณ๐™ฐ๐š…๐™ธ๐™ฐ ๐™ด๐š‚๐šƒ๐™ฐ๐š‚ ๐™ด๐™ฝ ๐š„๐™ฝ ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ ๐™พ ๐™ด๐š‚๐™ฟ๐™ด๐š๐™ฐ๐™ฝ๐™ณ๐™พ ๐™ฐ ๐š€๐š„๐™ด ๐™พ๐šƒ๐š๐™พ ๐š„๐š‚๐š„๐™ฐ๐š๐™ธ๐™พ ๐š‚๐™ด ๐š„๐™ฝ๐™ฐ ๐™ฟ๐™ฐ๐š๐™ฐ ๐™ธ๐™ฝ๐™ธ๐™ฒ๐™ธ๐™ฐ๐š*\n\n*ยฟ๐š€๐š„๐™ธ๐™ด๐š๐™ด๐š‚ ๐š‚๐™ฐ๐™ป๐™ธ๐š ๐™ณ๐™ด๐™ป ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ?*\n_๐™ณ๐™ฐ ๐™ฒ๐™ป๐™ธ๐™ฒ๐™บ ๐™ด๐™ฝ ๐™ด๐™ป ๐š‚๐™ธ๐™ถ๐š„๐™ธ๐™ด๐™ฝ๐šƒ๐™ด ๐™ฑ๐™พ๐šƒ๐™พ๐™ฝ_', author, null, [['๐š‚๐™ฐ๐™ป๐™ธ๐š ๐™ณ๐™ด๐™ป ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ', `.leave`]], m) + const room = Object.values(this.anonymous).find((room) => room.state === 'WAITING' && !room.check(m.sender)); + if (room) { + await this.sendMessage(room.a, {text: `*[ โœ” ] ๐š„๐™ฝ๐™ฐ ๐™ฟ๐™ด๐š๐š‚๐™พ๐™ฝ๐™ฐ ๐š‚๐™ด ๐™ฐ๐™ท ๐š„๐™ฝ๐™ธ๐™ณ๐™พ ๐™ฐ๐™ป ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ, ๐™ฟ๐š„๐™ด๐™ณ๐™ด๐™ฝ ๐™ธ๐™ฝ๐™ธ๐™ฒ๐™ธ๐™ฐ๐š ๐™ฐ ๐™ฒ๐™ท๐™ฐ๐šƒ๐™ด๐™ฐ๐š*`}, {quoted: m}); + // this.sendButton(room.a, '*[ โœ” ] ๐š„๐™ฝ๐™ฐ ๐™ฟ๐™ด๐š๐š‚๐™พ๐™ฝ๐™ฐ ๐š‚๐™ด ๐™ฐ๐™ท ๐š„๐™ฝ๐™ธ๐™ณ๐™พ ๐™ฐ๐™ป ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ, ๐™ฟ๐š„๐™ด๐™ณ๐™ด๐™ฝ ๐™ธ๐™ฝ๐™ธ๐™ฒ๐™ธ๐™ฐ๐š ๐™ฐ ๐™ฒ๐™ท๐™ฐ๐šƒ๐™ด๐™ฐ๐š*', author, null, [['๐™ธ๐š ๐™ฐ ๐™พ๐šƒ๐š๐™พ ๐™ฒ๐™ท๐™ฐ๐šƒ', `.next`]], m) + room.b = m.sender; + room.state = 'CHATTING'; + await this.sendMessage(m.chat, {text: `*[ โœ” ] ๐š„๐™ฝ๐™ฐ ๐™ฟ๐™ด๐š๐š‚๐™พ๐™ฝ๐™ฐ ๐š‚๐™ด ๐™ฐ๐™ท ๐š„๐™ฝ๐™ธ๐™ณ๐™พ ๐™ฐ๐™ป ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ, ๐™ฟ๐š„๐™ด๐™ณ๐™ด๐™ฝ ๐™ธ๐™ฝ๐™ธ๐™ฒ๐™ธ๐™ฐ๐š ๐™ฐ ๐™ฒ๐™ท๐™ฐ๐šƒ๐™ด๐™ฐ๐š*\n\n๐™ธ๐š ๐™ฐ ๐™พ๐šƒ๐š๐™พ ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ด๐š‚๐™ฒ๐š๐™ธ๐™ฑ๐™ด ${usedPrefix}next`}, {quoted: m}); + // this.sendButton(m.chat, '*[ โœ” ] ๐š„๐™ฝ๐™ฐ ๐™ฟ๐™ด๐š๐š‚๐™พ๐™ฝ๐™ฐ ๐š‚๐™ด ๐™ฐ๐™ท ๐š„๐™ฝ๐™ธ๐™ณ๐™พ ๐™ฐ๐™ป ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ, ๐™ฟ๐š„๐™ด๐™ณ๐™ด๐™ฝ ๐™ธ๐™ฝ๐™ธ๐™ฒ๐™ธ๐™ฐ๐š ๐™ฐ ๐™ฒ๐™ท๐™ฐ๐šƒ๐™ด๐™ฐ๐š*', author, null, [['๐™ธ๐š ๐™ฐ ๐™พ๐šƒ๐š๐™พ ๐™ฒ๐™ท๐™ฐ๐šƒ', `.next`]], m) + } else { + const id = + new Date; + this.anonymous[id] = { + id, + a: m.sender, + b: '', + state: 'WAITING', + check: function(who = '') { + return [this.a, this.b].includes(who); + }, + other: function(who = '') { + return who === this.a ? this.b : who === this.b ? this.a : ''; + }, + }; + await this.sendMessage(m.chat, {text: `*[โ—๐ˆ๐๐…๐Žโ—] ๐™ด๐š‚๐™ฟ๐™ด๐š๐™ฐ๐™ฝ๐™ณ๐™พ ๐™ฐ ๐™พ๐šƒ๐š๐™พ ๐š„๐š‚๐š„๐™ฐ๐š๐™ธ๐™พ ๐™ฟ๐™ฐ๐š๐™ฐ ๐™ธ๐™ฝ๐™ธ๐™ฒ๐™ธ๐™ฐ๐š ๐™ด๐™ป ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ*\n\n*ยฟ๐š€๐š„๐™ธ๐™ด๐š๐™ด๐š‚ ๐š‚๐™ฐ๐™ป๐™ธ๐š ๐™ณ๐™ด๐™ป ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ?*\n๐™ด๐š‚๐™ฒ๐š๐™ธ๐™ฑ๐™ด ${usedPrefix}leave`}, {quoted: m}); + // this.sendButton(m.chat, '*[โ—๐ˆ๐๐…๐Žโ—] ๐™ด๐š‚๐™ฟ๐™ด๐š๐™ฐ๐™ฝ๐™ณ๐™พ ๐™ฐ ๐™พ๐šƒ๐š๐™พ ๐š„๐š‚๐š„๐™ฐ๐š๐™ธ๐™พ ๐™ฟ๐™ฐ๐š๐™ฐ ๐™ธ๐™ฝ๐™ธ๐™ฒ๐™ธ๐™ฐ๐š ๐™ด๐™ป ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ*\n\n*ยฟ๐š€๐š„๐™ธ๐™ด๐š๐™ด๐š‚ ๐š‚๐™ฐ๐™ป๐™ธ๐š ๐™ณ๐™ด๐™ป ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ?*\n_๐™ณ๐™ฐ ๐™ฒ๐™ป๐™ธ๐™ฒ๐™บ ๐™ด๐™ฝ ๐™ด๐™ป ๐š‚๐™ธ๐™ถ๐š„๐™ธ๐™ด๐™ฝ๐šƒ๐™ด ๐™ฑ๐™พ๐šƒ๐™พ๐™ฝ_', author, null, [['๐š‚๐™ฐ๐™ป๐™ธ๐š ๐™ณ๐™ด๐™ป ๐™ฒ๐™ท๐™ฐ๐šƒ ๐™ฐ๐™ฝ๐™พ๐™ฝ๐™ธ๐™ผ๐™พ', `.leave`]], m) + } + break; + } + } +} +handler.help = ['start', 'leave', 'next']; +handler.tags = ['anonymous']; +handler.command = ['start', 'leave', 'next']; +handler.private = true; +export default handler; diff --git a/plugins/anonymous_chat_.js.js b/plugins/anonymous_chat_.js.js new file mode 100644 index 0000000..cb6cc11 --- /dev/null +++ b/plugins/anonymous_chat_.js.js @@ -0,0 +1,23 @@ +export async function before(m, {match}) { + if (!m.chat.endsWith('@s.whatsapp.net')) { + return !0; + } + this.anonymous = this.anonymous ? this.anonymous : {}; + const room = Object.values(this.anonymous).find((room) => [room?.a, room?.b].includes(m.sender) && room?.state === 'CHATTING'); + if (room) { + if (/^(next|leave|start)/.test(m.text)) { + const other = [room?.a, room?.b].find((user) => user !== m.sender); + if (other) { + await m.copyNForward(other, true); + } else { + conn.sendMessage(m.chat, {text: `*[โ—] No estรกs en un chat, por favor espera a estar en uno.*`}, {quoted: m}); + } + } + } else { + if (!/^(next|leave|start)/.test(m.text)) { + return; + } + conn.sendMessage(m.chat, {text: `*[โ—] No estรกs en un chat, por favor espera a estar en uno.*`}, {quoted: m}); + } + return !0; +} diff --git a/plugins/audio-efectos.js b/plugins/audio-efectos.js new file mode 100644 index 0000000..971602a --- /dev/null +++ b/plugins/audio-efectos.js @@ -0,0 +1,47 @@ +import {unlinkSync, readFileSync} from 'fs'; +import {join} from 'path'; +import {exec} from 'child_process'; + +const handler = async (m, {conn, args, __dirname, usedPrefix, command}) => { + try { + const q = m.quoted ? m.quoted : m; + const mime = ((m.quoted ? m.quoted : m.msg).mimetype || ''); + let set; + if (/bass/.test(command)) set = '-af equalizer=f=94:width_type=o:width=2:g=30'; + if (/blown/.test(command)) set = '-af acrusher=.1:1:64:0:log'; + if (/deep/.test(command)) set = '-af atempo=4/4,asetrate=44500*2/3'; + if (/earrape/.test(command)) set = '-af volume=12'; + if (/fast/.test(command)) set = '-filter:a "atempo=1.63,asetrate=44100"'; + if (/fat/.test(command)) set = '-filter:a "atempo=1.6,asetrate=22100"'; + if (/nightcore/.test(command)) set = '-filter:a atempo=1.06,asetrate=44100*1.25'; + if (/reverse/.test(command)) set = '-filter_complex "areverse"'; + if (/robot/.test(command)) set = '-filter_complex "afftfilt=real=\'hypot(re,im)*sin(0)\':imag=\'hypot(re,im)*cos(0)\':win_size=512:overlap=0.75"'; + if (/slow/.test(command)) set = '-filter:a "atempo=0.7,asetrate=44100"'; + if (/smooth/.test(command)) set = '-filter:v "minterpolate=\'mi_mode=mci:mc_mode=aobmc:vsbmc=1:fps=120\'"'; + if (/tupai|squirrel|chipmunk/.test(command)) set = '-filter:a "atempo=0.5,asetrate=65100"'; + if (/audio/.test(mime)) { + const ran = getRandom('.mp3'); + const filename = join(__dirname, '../tmp/' + ran); + const media = await q.download(true); + exec(`ffmpeg -i ${media} ${set} ${filename}`, async (err, stderr, stdout) => { + await unlinkSync(media); + if (err) throw `_*Error!*_`; + const buff = await readFileSync(filename); + conn.sendFile(m.chat, buff, ran, null, m, true, { + type: 'audioMessage', + ptt: true, + }); + }); + } else throw `*[โ—๐ˆ๐๐…๐Žโ—] ๐š๐™ด๐š‚๐™ฟ๐™พ๐™ฝ๐™ณ๐™ฐ ๐™ฐ๐™ป ๐™ฐ๐š„๐™ณ๐™ธ๐™พ ๐™พ ๐™ฝ๐™พ๐šƒ๐™ฐ ๐™ณ๐™ด ๐š…๐™พ๐š‰ ๐™ด๐™ป ๐™ฒ๐š„๐™ฐ๐™ป ๐š‚๐™ด๐š๐™ฐ ๐™ผ๐™พ๐™ณ๐™ธ๐™ต๐™ธ๐™ฒ๐™ฐ๐™ณ๐™พ, ๐š„๐š‚๐™ฐ๐™ณ๐™พ ๐™ด๐™ป ๐™ฒ๐™พ๐™ฐ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ ${usedPrefix + command}*`; + } catch (e) { + throw e; + } +}; +handler.help = ['bass', 'blown', 'deep', 'earrape', 'fast', 'fat', 'nightcore', 'reverse', 'robot', 'slow', 'smooth', 'tupai'].map((v) => v + ' [vn]'); +handler.tags = ['audio']; +handler.command = /^(bass|blown|deep|earrape|fas?t|nightcore|reverse|robot|slow|smooth|tupai|squirrel|chipmunk)$/i; +export default handler; + +const getRandom = (ext) => { + return `${Math.floor(Math.random() * 10000)}${ext}`; +}; diff --git a/plugins/buscador-animeinfo.js b/plugins/buscador-animeinfo.js new file mode 100644 index 0000000..8c3ea17 --- /dev/null +++ b/plugins/buscador-animeinfo.js @@ -0,0 +1,34 @@ +import translate from '@vitalets/google-translate-api'; +import {Anime} from '@shineiichijo/marika'; +const client = new Anime(); +const handler = async (m, {conn, text, usedPrefix}) => { + if (!text) return m.reply(`*[โ—๐ˆ๐๐…๐Žโ—] INGRESE EL NOMBRE DE ALGUN ANIME A BUSCAR*`); + try { + const anime = await client.searchAnime(text); + const result = anime.data[0]; + const resultes = await translate(`${result.background}`, {to: 'es', autoCorrect: true}); + const resultes2 = await translate(`${result.synopsis}`, {to: 'es', autoCorrect: true}); + const AnimeInfo = ` +๐ŸŽ€ โ€ข *Tรญtulo:* ${result.title} +๐ŸŽ‹ โ€ข *Formato:* ${result.type} +๐Ÿ“ˆ โ€ข *Estado:* ${result.status.toUpperCase().replace(/\_/g, ' ')} +๐Ÿฅ โ€ข *Episodios totales:* ${result.episodes} +๐ŸŽˆ โ€ข *Duraciรณn: ${result.duration}* +โœจ โ€ข *Basado en:* ${result.source.toUpperCase()} +๐Ÿ’ซ โ€ข *Estrenado:* ${result.aired.from} +๐ŸŽ— โ€ข *Finalizado:* ${result.aired.to} +๐ŸŽ โ€ข *Popularidad:* ${result.popularity} +๐ŸŽ โ€ข *Favoritos:* ${result.favorites} +๐ŸŽ‡ โ€ข *Clasificaciรณn:* ${result.rating} +๐Ÿ… โ€ข *Rango:* ${result.rank} +โ™ฆ โ€ข *Trailer:* ${result.trailer.url} +๐ŸŒ โ€ข *URL:* ${result.url} +๐ŸŽ† โ€ข *Background:* ${resultes.text} +โ„ โ€ข *Ringkasan:* ${resultes2.text}`; + conn.sendFile(m.chat, result.images.jpg.image_url, 'error.jpg', AnimeInfo, m); + } catch { + throw `*[โ—] ERROR, INTENTELO DE NUEVO*`; + } +}; +handler.command = /^(anime|animeinfo)$/i; +export default handler; diff --git a/plugins/buscador-githubsearch.js b/plugins/buscador-githubsearch.js new file mode 100644 index 0000000..dd259a0 --- /dev/null +++ b/plugins/buscador-githubsearch.js @@ -0,0 +1,31 @@ +import fetch from 'node-fetch'; +const handler = async (m, {conn, text, usedPrefix, command}) => { + if (!text) throw `*[โ—] Ingresa un texto para buscar, ejemplo: ${usedPrefix + command} TheMystic-Bot-MD*`; + const res = await fetch(global.API('https://api.github.com', '/search/repositories', { + q: text, + })); + const json = await res.json(); + if (res.status !== 200) throw json; + //const imagen = await conn.getFile(json.items[0].owner.avatar_url).data + const str = json.items.map((repo, index) => { + return ` +*${1 + index}. ${repo.full_name}${repo.fork ? ' (fork)' : ''}* +๐Ÿ”— *Url:* ${repo.html_url} +๐Ÿ“… *Creado el:* ${formatDate(repo.created_at)} +๐Ÿ”„ *Actualizado el:* ${formatDate(repo.updated_at)} +๐Ÿ“ฅ *Clone:* $ git clone ${repo.clone_url} +๐Ÿ‘ ${repo.watchers} โ—‰ ๐Ÿด ${repo.forks} โ—‰ โญ ${repo.stargazers_count} โ—‰ โ“ +${repo.description ? `๐Ÿ“ *Descripciรณn:*\n${repo.description}` : ''} +`.trim()}).join('\n\nโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆ\n\n'); + conn.sendMessage(m.chat, {text: str.trim()}, {quoted: m}) +//conn.sendMessage(m.chat, {text: str.trim(), contextInfo: {forwardingScore: 9999999, isForwarded: true, mentionedJid: [m.sender], "externalAdReply": {"showAdAttribution": true, "containsAutoReply": true, "renderLargerThumbnail": true, "title": global.titulowm2, "containsAutoReply": true, "mediaType": 1, "thumbnail": imagen, "mediaUrl": `https://www.atom.bio/theshadowbrokers-team`, "sourceUrl": `https://www.atom.bio/theshadowbrokers-team`}}}, {quoted: m}); +}; +handler.help = ['githubs']; +handler.tags = ['buscadores']; +handler.command = /^(ghs|githubs|githubs|githubsearch|gits|gitsearch)$/i; +export default handler; + +function formatDate(n, locale = 'es') { + const d = new Date(n); + return d.toLocaleDateString(locale, {weekday: 'long', day: 'numeric', month: 'long', year: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric'}); +} diff --git a/plugins/buscador-google.js b/plugins/buscador-google.js new file mode 100644 index 0000000..92451ee --- /dev/null +++ b/plugins/buscador-google.js @@ -0,0 +1,60 @@ +import {googleIt} from '@bochilteam/scraper'; +import google from 'google-it'; +import axios from 'axios'; +let handler = async (m, { conn, command, args, usedPrefix }) => { + const fetch = (await import('node-fetch')).default; + const text = args.join` `; + if (!text) return conn.reply(m.chat, '*[โ—๐ˆ๐๐…๐Žโ—] ๐™ธ๐™ฝ๐™ถ๐š๐™ด๐š‚๐™ด ๐™ด๐™ป ๐šƒ๐™ด๐š‡๐šƒ๐™พ ๐™พ ๐šƒ๐™ด๐™ผ๐™ฐ ๐š€๐š„๐™ด ๐™ณ๐™ด๐š‚๐™ด๐™ด ๐™ฑ๐š„๐š‚๐™ฒ๐™ฐ๐š*', m); +const url = 'https://google.com/search?q=' + encodeURIComponent(text); +google({'query': text}).then(res => { +let teks = `*RESULTADOS DE : _${text}_*\n\n${url}\n\n` +for (let g of res) { +teks += `_*${g.title}*_\n_${g.link}_\n_${g.snippet}_\n\n` +} +const ss = `https://image.thum.io/get/fullpage/${url}` +conn.sendFile(m.chat, ss, 'error.png', teks, m) +//m.reply(teks) +}) +} +handler.help = ['google', 'googlef'].map((v) => v + ' '); +handler.tags = ['internet']; +handler.command = /^googlef?$/i; +export default handler; + +/*import {googleIt} from '@bochilteam/scraper'; +import axios from 'axios'; +const handler = async (m, {conn, command, args}) => { + const fetch = (await import('node-fetch')).default; + const text = args.join` `; + if (!text) return conn.reply(m.chat, '*[โ—๐ˆ๐๐…๐Žโ—] ๐™ธ๐™ฝ๐™ถ๐š๐™ด๐š‚๐™ด ๐™ด๐™ป ๐šƒ๐™ด๐š‡๐šƒ๐™พ ๐™พ ๐šƒ๐™ด๐™ผ๐™ฐ ๐š€๐š„๐™ด ๐™ณ๐™ด๐š‚๐™ด๐™ด ๐™ฑ๐š„๐š‚๐™ฒ๐™ฐ๐š*', m); + const url = 'https://google.com/search?q=' + encodeURIComponent(text); + const search = await googleIt(text); + const msg = search.articles.map(({title, url, description}) => { + return `*${title}*\n_${url}_\n_${description}_`; + }).join('\n\n'); + try { + const ss = `https://image.thum.io/get/fullpage/${url}`; + await conn.sendFile(m.chat, ss, 'error.png', url + '\n\n' + msg, m); + } catch { + m.reply(msg); + } +}; +handler.help = ['google', 'googlef'].map((v) => v + ' '); +handler.tags = ['internet']; +handler.command = /^googlef?$/i; +export default handler; + + let ss2 = await ssweb(url, 'desktop') +let dataa = ss2.result +async function ssweb(url, device = 'desktop'){ +return new Promise((resolve, reject) => { +const base = 'https://www.screenshotmachine.com' +const param = { url: url, device: device, cacheLimit: 0 } +axios({url: base + '/capture.php', method: 'POST', data: new URLSearchParams(Object.entries(param)), headers: { 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8' }}).then((data) => { +const cookies = data.headers['set-cookie'] +if (data.data.status == 'success') { +axios.get(base + '/' + data.data.link, { headers: { 'cookie': cookies.join('') }, responseType: 'arraybuffer' }).then(({ data }) => { +let result = { status: 200, author: '@BrunoSobrino', result: data } +resolve(result)}) +} else { +reject({ status: 404, author: 'Ryzn', message: data.data })}}).catch(reject)})}*/ diff --git a/plugins/buscador-lyrics.js b/plugins/buscador-lyrics.js new file mode 100644 index 0000000..7baaf96 --- /dev/null +++ b/plugins/buscador-lyrics.js @@ -0,0 +1,33 @@ +import {find_lyrics} from '@brandond/findthelyrics'; +import {getTracks} from '@green-code/music-track-data'; +import {googleImage} from '@bochilteam/scraper'; +const handler = async (m, {conn, text, usedPrefix, command}) => { + const teks = text ? text : m.quoted && m.quoted.text ? m.quoted.text : ''; + if (!teks) throw `*[โ—๐ˆ๐๐…๐Žโ—] ๐™ด๐™น๐™ด๐™ผ๐™ฟ๐™ป๐™พ ๐™ณ๐™ด ๐š„๐š‚๐™พ ๐™ฒ๐™พ๐š๐š๐™ด๐™ฒ๐šƒ๐™พ ๐™ณ๐™ด๐™ป ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ: ${usedPrefix + command} beret ojala*`; + try { + const result = await getTracks(teks); + const lyrics = await find_lyrics(`${result[0].artist} ${result[0].title}`); + const res = await fetch(global.API('https://some-random-api.com', '/lyrics', {title: result[0].artist + result[0].title})); + const json = await res.json(); + let img; + try { + img = result.album.artwork; + } catch { + try { + img = json.thumbnail.genius; + } catch { + const bochil = await googleImage(`${result[0].artist} ${result[0].title}`); + img = await bochil.getRandom(); + } + } + const textoLetra = `๐ŸŽค ๐šƒ๐™ธ๐šƒ๐š„๐™ป๐™พ: *${result[0].title || ''}*\n๐Ÿ‘ค ๐™ฐ๐š„๐šƒ๐™พ๐š: *${result[0].artist || ''}*\n\n๐Ÿ“ƒ๐ŸŽต ๐™ป๐™ด๐šƒ๐š๐™ฐ:\n${lyrics || ''}`; + await conn.sendMessage(m.chat, {image: {url: img}, caption: textoLetra}, {quoted: m}); + await conn.sendMessage(m.chat, {audio: {url: result[0].preview}, fileName: `${result[0].artist} ${result[0].title}.mp3`, mimetype: 'audio/mp4'}, {quoted: m}); + } catch { + throw `*[โ—๐ˆ๐๐…๐Žโ—] ๐™ด๐š๐š๐™พ๐š, ๐™ฟ๐™พ๐š ๐™ต๐™ฐ๐š…๐™พ๐š ๐š…๐š„๐™ด๐™ป๐š…๐™ฐ ๐™ฐ ๐™ธ๐™ฝ๐šƒ๐™ด๐™ฝ๐šƒ๐™ฐ๐š๐™ป๐™พ*`; + } +}; +handler.help = ['lirik', 'letra'].map((v) => v + ' '); +handler.tags = ['internet']; +handler.command = /^(lirik|lyrics|lyric|letra)$/i; +export default handler; diff --git a/plugins/buscador-peliculas.js b/plugins/buscador-peliculas.js new file mode 100644 index 0000000..b387508 --- /dev/null +++ b/plugins/buscador-peliculas.js @@ -0,0 +1,137 @@ +/* Creado/adaptado por Bruno Sobrino (https://github.com/BrunoSobrino) */ + +import fetch from 'node-fetch'; +import axios from 'axios'; +import {load} from 'cheerio'; +const handler = async (m, {text, usedPrefix, command, conn}) => { + if (!text) throw '*[โ—] ๐™ธ๐™ฝ๐™ถ๐š๐™ด๐š‚๐™ฐ ๐™ด๐™ป ๐™ฝ๐™พ๐™ผ๐™ฑ๐š๐™ด ๐™ณ๐™ด ๐™ฐ๐™ป๐™ถ๐š„๐™ฝ๐™ฐ ๐™ฟ๐™ด๐™ป๐™ธ๐™ฒ๐š„๐™ป๐™ฐ ๐™ฐ ๐™ฑ๐š„๐š‚๐™ฒ๐™ฐ๐š*'; + let aaaa; + let img; + try { + aaaa = await searchC(text); + img = 'https://cinefilosoficial.com/wp-content/uploads/2021/07/cuevana.jpg'; + } catch { + aaaa = await searchP(text); + img = 'https://elcomercio.pe/resizer/RJM30xnujgfmaODGytH1rRVOrAA=/400x0/smart/filters:format(jpeg):quality(75)/arc-anglerfish-arc2-prod-elcomercio.s3.amazonaws.com/public/BJ2L67XNRRGHTFPKPDOEQ2AH5Y.jpg'; + } + if (aaaa == '') throw '*[โ—] ๐™ฝ๐™พ ๐š‚๐™ด ๐™ด๐™ฝ๐™ฒ๐™พ๐™ฝ๐šƒ๐š๐™พ ๐™ฝ๐™ธ๐™ฝ๐™ถ๐š„๐™ฝ๐™ฐ ๐™ฟ๐™ด๐™ป๐™ธ๐™ฒ๐š„๐™ป๐™ฐ*'; + const res = await aaaa.map((v) => `*๐ŸŽฌ โ€ข Nombre:* ${v.title}\n*๐Ÿฟ โ€ข Url:* ${v.link}`).join`\n\nโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n\n`; + const ads = '*๐Ÿ’ซ โ€ข Bloqueador de anuncios recomendado:* Block This\n*โ›จ โ€ข Link:* https://block-this.com/block-this-latest.apk\n\nโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃ\n\n'; + conn.sendMessage(m.chat, {image: {url: img}, caption: ads + res}, {quoted: m}); +}; +handler.command = ['cuevana', 'pelisplus']; +export default handler; + +const safeLoad = async (url, options = {}) => { + try { + const {data: pageData} = await axios.get(url, options); + const $ = load(pageData); + return $; + } catch (err) { + if (err.response) { + throw new Error(err.response.statusText); + } + throw err; + } +}; + +async function searchC(query, numberPage = 1) { + const $ = await safeLoad(`https://cuevana3.mu/page/${numberPage}/`, { + params: {s: query}}); + const resultSearch = []; + $('.results-post > article').each((_, e) => { + const element = $(e); + const title = element.find('header > h2').text(); + const link = element.find('.lnk-blk').attr('href'); + resultSearch.push({title: title, link: link}); + }); + return resultSearch; +} + +async function searchP(query, numberPage = 1) { + const $ = await safeLoad(`https://pelisplushd.cx/search/`, { + params: {s: query, page: numberPage}}); + const resultSearch = []; + $('a[class^=\'Posters\']').each((_, e) => { + const element = $(e); + const title = element.find('.listing-content > p').text(); + const link = element.attr('href'); + resultSearch.push({title: title, link: link}); + }); + return resultSearch; +} + +/* creado adaptado por bruno sobrino*/ +/* arreglado por skid */ + +/* import fetch from 'node-fetch' +import axios from 'axios' +import { load } from 'cheerio' + +const handler = async (m, { text, usedPrefix, command, conn }) => { + if (!text) throw '*[โ—] Falta el nombre de la pelรญcula o serie*' + + let result = await searchContent(text) + if (command === 'pelisplus') result = await searchPelisPlus(text) + + if (result.length === 0) throw '*[โ—] No se encontrรณ ningรบn contenido relacionado*' + + let img = 'https://cinefilosoficial.com/wp-content/uploads/2021/07/cuevana.jpg' + if (command === 'pelisplus') img = 'https://elcomercio.pe/resizer/RJM30xnujgfmaODGytH1rRVOrAA=/400x0/smart/filters:format(jpeg):quality(75)/arc-anglerfish-arc2-prod-elcomercio.s3.amazonaws.com/public/BJ2L67XNRRGHTFPKPDOEQ2AH5Y.jpg' + + const res = result.map((v) => `*๐ŸŽฌ โ€ข Nombre:* ${v.title}\n*๐Ÿฟ โ€ข URL:* ${v.link}`).join(`\n\nโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n\n`) + + const ads = '*๐Ÿ’ซ โ€ข Bloqueador de anuncios recomendado:* Block This\n*โ›จ โ€ข Link:* https://block-this.com/block-this-latest.apk\n\nโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃโ‰ฃ\n\n' + + conn.sendMessage(m.chat, { image: { url: img }, caption: ads + res }, { quoted: m }) +} + +handler.command = ['cuevana', 'pelisplus'] + +export default handler + +const safeLoad = async (url, options = {}) => { + try { + const { data: pageData } = await axios.get(url, options) + const $ = load(pageData) + return $ + } catch (err) { + if (err.response) + throw new Error(err.response.statusText) + throw err + } +} + +async function searchContent(query, numberPage = 1) { + const $ = await safeLoad(`https://cuevana3.info/page/${numberPage}/`, { + params: { s: query } + }) + + const resultSearch = [] + + $(".results-post > article").each((_, e) => { + const element = $(e) + const title = element.find("header > h2").text() + const link = element.find(".lnk-blk").attr("href") + resultSearch.push({ title: title, link: link }) + }) + + return resultSearch +} + +async function searchPelisPlus(query, numberPage = 1) { + const $ = await safeLoad(`https://pelisplushd.cx/search/`, { + params: { s: query, page: numberPage } + }) + + const resultSearch = [] + + $("a[class^='Posters']").each((_, e) => { + const element = $(e) + const title = element.find(".listing-content > p").text() + const link = element.attr("href") + resultSearch.push({ title: title, link: link }) + }) + + return resultSearch +}*/ diff --git a/plugins/buscador-playstore.js b/plugins/buscador-playstore.js new file mode 100644 index 0000000..2387c78 --- /dev/null +++ b/plugins/buscador-playstore.js @@ -0,0 +1,31 @@ +import gplay from "google-play-scraper"; + +let handler = async (m, { conn, text }) => { + if (!text) throw "*[โ—] ๐™ธ๐™ฝ๐™ถ๐š๐™ด๐™ด๐š‚๐™ด ๐™ด๐™ป ๐™ฝ๐™พ๐™ผ๐™ฑ๐š๐™ด ๐™ณ๐™ด ๐™ป๐™ฐ ๐™ฐ๐™ฟ๐™บ ๐š€๐š„๐™ด ๐š€๐š„๐™ธ๐™ด๐š๐™ฐ ๐™ฑ๐š„๐š‚๐™ฒ๐™ฐ๐š*"; + let res = await gplay.search({ term: text }); + if (!res.length) throw `*[โ—] ๐™ธ๐™ฝ๐™ถ๐š๐™ด๐™ด๐š‚๐™ด ๐™ด๐™ป ๐™ฝ๐™พ๐™ผ๐™ฑ๐š๐™ด ๐™ณ๐™ด ๐™ป๐™ฐ ๐™ฐ๐™ฟ๐™บ ๐š€๐š„๐™ด ๐š€๐š„๐™ธ๐™ด๐š๐™ฐ ๐™ฑ๐š„๐š‚๐™ฒ๐™ฐ๐š*`; + let opt = { + contextInfo: { + externalAdReply: { + title: res[0].title, + body: res[0].summary, + thumbnail: (await conn.getFile(res[0].icon)).data, + sourceUrl: res[0].url, + }, + }, + }; + await console.log(res); + res = res.map( + (v) => + `*๐Ÿ” Resultado:* ${v.title} + *โœ๏ธ Desarrollador:* ${v.developer} + *๐Ÿ’ธ Precio:* ${v.priceText} + *๐Ÿ“ˆ Puntuacion:* ${v.scoreText} + *โ›“๏ธ Link:* ${v.url}` + ).join`\n\n`; + m.reply(res, null, opt); +}; +handler.help = ['playstore ']; +handler.tags = ['internet']; +handler.command = /^(playstore)$/i; +export default handler; diff --git a/plugins/buscador-stickersearch.js b/plugins/buscador-stickersearch.js new file mode 100644 index 0000000..9e254f0 --- /dev/null +++ b/plugins/buscador-stickersearch.js @@ -0,0 +1,20 @@ +/* By https://github.com/ALBERTO9883 */ +import fs from 'fs'; +import fetch from 'node-fetch'; +import {googleImage} from '@bochilteam/scraper'; +const handler = async (m, {text, usedPrefix, command, conn}) => { + try { + const res2 = await googleImage(text); + const sfoto = res2.getRandom(); + if (!text) throw `*[โ—] ๐™ธ๐™ฝ๐™ถ๐š๐™ด๐š‚๐™ด ๐™ด๐™ป ๐™ฝ๐™พ๐™ผ๐™ฑ๐š๐™ด ๐™ณ๐™ด๐™ป ๐™ฟ๐™ฐ๐š€๐š„๐™ด๐šƒ๐™ด ๐š€๐š„๐™ด ๐™ณ๐™ด๐š‚๐™ด๐™ด ๐™ฑ๐š„๐š‚๐™ฒ๐™ฐ๐š*`; + const json = await fetch(`https://api.akuari.my.id/search/sticker?query=${text}`); + const jsons = await json.json(); + const res = jsons.result.map((v, index) => `*๐Ÿชด โ€ข Resultado:* ${1 + index}\n*๐ŸŒต โ€ข Nombre:* ${v.title}\n*๐Ÿ‚ โ€ข Url:* ${v.url}`).join`\n\nโ”€โ”€โ”€\n\n`; + await conn.sendFile(m.chat, sfoto, 'error.jpg', res, m); + } catch { + await m.reply('*[โ—] ๐™ด๐š๐š๐™พ๐š, ๐™ฟ๐™พ๐š ๐™ต๐™ฐ๐š…๐™พ๐š ๐š…๐š„๐™ด๐™ป๐š…๐™ฐ ๐™ฐ ๐™ธ๐™ฝ๐šƒ๐™ด๐š๐™ฝ๐šƒ๐™ฐ๐š๐™ป๐™พ*'); + } +}; +handler.tags = ['sticker', 'search']; +handler.command = ['stickersearch', 'searchsticker', 'stickerssearch', 'searchstickers']; +export default handler; diff --git a/plugins/buscador-stickersearch2.js b/plugins/buscador-stickersearch2.js new file mode 100644 index 0000000..b531c82 --- /dev/null +++ b/plugins/buscador-stickersearch2.js @@ -0,0 +1,20 @@ +/* Created By https://github.com/ALBERTO9883 */ +import fs from 'fs'; +import fetch from 'node-fetch'; +import {googleImage} from '@bochilteam/scraper'; +const handler = async (m, {text, usedPrefix, command, conn}) => { + if (!text) throw `*[โ—] ๐™ธ๐™ฝ๐™ถ๐š๐™ด๐š‚๐™ด ๐™ด๐™ป ๐™ฝ๐™พ๐™ผ๐™ฑ๐š๐™ด ๐™ณ๐™ด๐™ป ๐™ฟ๐™ฐ๐š€๐š„๐™ด๐šƒ๐™ด ๐š€๐š„๐™ด ๐™ณ๐™ด๐š‚๐™ด๐™ด ๐™ฑ๐š„๐š‚๐™ฒ๐™ฐ๐š*`; + try { + const res2 = await googleImage(text); + const sfoto = res2.getRandom(); + const json = await fetch(`https://api.lolhuman.xyz/api/stickerwa?apikey=${lolkeysapi}&query=${text}`); + const jsons = await json.json(); + const {stickers} = jsons.result[0]; + const res = jsons.result.map((v, index) => `๐ŸŒ… โ€ข Resultado: ${1 + index}\n*๐Ÿฅ— โ€ข Nombre:* ${v.title}\n*๐Ÿข โ€ข Autor:* ${v.author}\n*๐Ÿ‚ โ€ข Url:* ${v.url}`).join`\n\nโ”€โ”€โ”€\n\n`; + await conn.sendFile(m.chat, sfoto, 'error.jpg', res, m); + } catch { + await m.reply('*[โ—] ๐™ด๐š๐š๐™พ๐š, ๐™ฟ๐™พ๐š ๐™ต๐™ฐ๐š…๐™พ๐š ๐š…๐š„๐™ด๐™ป๐š…๐™ฐ ๐™ฐ ๐™ธ๐™ฝ๐šƒ๐™ด๐š๐™ฝ๐šƒ๐™ฐ๐š๐™ป๐™พ*'); + } +}; +handler.command = ['stickersearch2', 'searchsticker2', 'stickerssearch2', 'searchstickers2']; +export default handler; diff --git a/plugins/buscador-wikipedia.js b/plugins/buscador-wikipedia.js new file mode 100644 index 0000000..0649271 --- /dev/null +++ b/plugins/buscador-wikipedia.js @@ -0,0 +1,42 @@ +import axios from 'axios'; +import fetch from 'node-fetch'; +import cheerio from 'cheerio'; +async function wikipedia(querry) { + try { + const link = await axios.get(`https://es.wikipedia.org/wiki/${querry}`); + const $ = cheerio.load(link.data); + const judul = $('#firstHeading').text().trim(); + const thumb = $('#mw-content-text').find('div.mw-parser-output > div:nth-child(1) > table > tbody > tr:nth-child(2) > td > a > img').attr('src') || `//i.ibb.co/nzqPBpC/http-error-404-not-found.png`; + const isi = []; + $('#mw-content-text > div.mw-parser-output').each(function(rayy, Ra) { + const penjelasan = $(Ra).find('p').text().trim(); + isi.push(penjelasan); + }); + for (const i of isi) { + const data = { + status: link.status, + result: { + judul: judul, + thumb: 'https:' + thumb, + isi: i}}; + return data; + } + } catch (err) { + const notFond = { + status: link.status, + Pesan: eror}; + return notFond; + } +} +const handler = async (m, {conn, text, usedPrefix, command}) => { + if (!text) throw `*[โ—๏ธ๐ˆ๐๐…๐Žโ—๏ธ] ๐™ด๐š‚๐šƒ๐™ฐ๐š‚ ๐š„๐š‚๐™ฐ๐™ฝ๐™ณ๐™พ ๐™ผ๐™ฐ๐™ป ๐™ด๐™ป ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ!!*\n*๐š„๐š‚๐™พ ๐™ฒ๐™พ๐š๐š๐™ด๐™ฒ๐šƒ๐™พ:*\n*${usedPrefix + command} ๐™ฟ๐šŠ๐š•๐šŠ๐š‹๐š›๐šŠ ๐šŒ๐š•๐šŠ๐šŸ๐šŽ ๐šŠ ๐š‹๐šž๐šœ๐šŒ๐šŠ๐š›*\n\n*๐™ด๐™น๐™ด๐™ผ๐™ฟ๐™ป๐™พ:*\n*${usedPrefix + command} Estrellas*`; + wikipedia(`${text}`).then((res) => { + m.reply(`*๐™ฐ๐š€๐š„๐™ธ ๐šƒ๐™ธ๐™ด๐™ฝ๐™ด๐š‚ ๐™ป๐™ฐ ๐™ธ๐™ฝ๐™ต๐™พ๐š๐™ผ๐™ฐ๐™ฒ๐™ธ๐™พ๐™ฝ ๐™ด๐™ฝ๐™ฒ๐™พ๐™ฝ๐šƒ๐š๐™ฐ๐™ณ๐™ฐ:*\n\n` + res.result.isi); + }).catch(() => { + m.reply('*[โ—๏ธ๐ˆ๐๐…๐Žโ—๏ธ] ๐™ฝ๐™พ ๐š‚๐™ด ๐™ด๐™ฝ๐™ฒ๐™พ๐™ฝ๐šƒ๐š๐™พ ๐™ฝ๐™ธ๐™ฝ๐™ถ๐š„๐™ฝ๐™ฐ ๐™ธ๐™ฝ๐™ต๐™พ๐š๐™ผ๐™ฐ๐™ฒ๐™ธ๐™พ๐™ฝ, ๐™ฟ๐š๐š„๐™ด๐™ฑ๐™ฐ ๐š€๐š„๐™ด ๐™ท๐™ฐ๐šˆ๐™ฐ๐š‚ ๐™ด๐š‚๐™ฒ๐š๐™ธ๐šƒ๐™พ ๐š„๐™ฝ๐™ฐ ๐š‚๐™พ๐™ป๐™ฐ ๐™ฟ๐™ฐ๐™ป๐™ฐ๐™ฑ๐š๐™ฐ ๐šˆ ๐™ป๐™พ ๐™ท๐™ฐ๐šˆ๐™ฐ๐š‚ ๐™ด๐š‚๐™ฒ๐š๐™ธ๐šƒ๐™พ ๐™ฒ๐™พ๐š๐š๐™ด๐™ฒ๐šƒ๐™ฐ๐™ผ๐™ด๐™ฝ๐šƒ๐™ด*'); + }); +}; +handler.help = ['wikipedia'].map((v) => v + ' '); +handler.tags = ['internet']; +handler.command = /^(wiki|wikipedia)$/i; +export default handler; diff --git a/plugins/buscador-yts.js b/plugins/buscador-yts.js new file mode 100644 index 0000000..11231ce --- /dev/null +++ b/plugins/buscador-yts.js @@ -0,0 +1,23 @@ +import yts from 'yt-search'; +import fs from 'fs'; + +const handler = async (m, {conn, text}) => { + if (!text) throw 'โš ๏ธ *_Que quieres que busque en YouTube?_*'; + const results = await yts(text); + const tes = results.all; + const teks = results.all.map((v) => { + switch (v.type) { + case 'video': return ` +ยฐ *_${v.title}_* +โ†ณ ๐Ÿซ *_Link :_* ${v.url} +โ†ณ ๐Ÿ•’ *_Duraciรณn :_* ${v.timestamp} +โ†ณ ๐Ÿ“ฅ *_Subido :_* ${v.ago} +โ†ณ ๐Ÿ‘ *_Vistas :_* ${v.views}`; + } + }).filter((v) => v).join('\n\nโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆโ—ฆ\n\n'); + conn.sendFile(m.chat, tes[0].thumbnail, 'yts.jpeg', teks, m); +}; +handler.help = ['ytsearch **']; +handler.tags = ['search']; +handler.command = ['ytsearch', 'yts']; +export default handler; diff --git a/plugins/cmd-add.js b/plugins/cmd-add.js new file mode 100644 index 0000000..3ad7f09 --- /dev/null +++ b/plugins/cmd-add.js @@ -0,0 +1,14 @@ +const handler = async (m, {conn, text, usedPrefix, command}) => { + global.db.data.sticker = global.db.data.sticker || {}; + if (!m.quoted) throw '*[โ—๐ˆ๐๐…๐Žโ—] ๐š๐™ด๐š‚๐™ฟ๐™พ๐™ฝ๐™ณ๐™ด ๐™ฐ๐™ป ๐š‚๐šƒ๐™ธ๐™ฒ๐™บ๐™ด๐š ๐™พ ๐™ธ๐™ผ๐™ฐ๐™ถ๐™ด๐™ฝ ๐™ฐ๐™ป ๐™ฒ๐š„๐™ฐ๐™ป ๐™ณ๐™ด๐š‚๐™ด๐™ฐ ๐™ฐ๐™ถ๐š๐™ด๐™ถ๐™ฐ๐š ๐š„๐™ฝ ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ ๐™พ ๐šƒ๐™ด๐š‡๐šƒ๐™พ*'; + if (!m.quoted.fileSha256) throw '*[โ—๐ˆ๐๐…๐Žโ—] ๐š‚๐™พ๐™ป๐™พ ๐™ฟ๐š„๐™ด๐™ณ๐™ด๐š‚ ๐™ฐ๐š‚๐™ธ๐™ถ๐™ฐ๐™ฝ๐™ฐ๐š ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ๐š‚ ๐™พ ๐šƒ๐™ด๐š‡๐šƒ๐™พ๐š‚ ๐™ฐ ๐š‚๐šƒ๐™ธ๐™ฒ๐™บ๐™ด๐š๐š‚ ๐™ด ๐™ธ๐™ผ๐™ฐ๐™ถ๐™ด๐™ฝ๐™ด๐š‚*'; + if (!text) throw `*[โ—๐ˆ๐๐…๐Žโ—] ๐™ด๐š๐š๐™พ๐š ๐™ณ๐™ด ๐š„๐š‚๐™พ, ๐šƒ๐™ด๐š‡๐šƒ๐™พ ๐™ต๐™ฐ๐™ป๐šƒ๐™ฐ๐™ฝ๐šƒ๐™ด*\n\n*๐š„๐š‚๐™พ ๐™ฒ๐™พ๐š๐š๐™ด๐™ฒ๐šƒ๐™พ ๐™ณ๐™ด๐™ป ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ:*\n*โ€”โ—‰ ${usedPrefix + command} *\n\n*๐™ด๐™น๐™ด๐™ผ๐™ฟ๐™ป๐™พ ๐™ณ๐™ด ๐š„๐š‚๐™พ ๐™ฒ๐™พ๐š๐š๐™ด๐™ฒ๐šƒ๐™พ ๐™ณ๐™ด๐™ป ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ:*\n*โ€”โ—‰ ${usedPrefix + command} <#menu> *`; + const sticker = global.db.data.sticker; + const hash = m.quoted.fileSha256.toString('base64'); + if (sticker[hash] && sticker[hash].locked) throw '*[โ—๐ˆ๐๐…๐Žโ—] ๐š‚๐™พ๐™ป๐™พ ๐™ด๐™ป ๐™พ๐š†๐™ฝ๐™ด๐š ๐™ฟ๐š„๐™ด๐™ณ๐™ด ๐š๐™ด๐™ฐ๐™ป๐™ธ๐š‰๐™ฐ๐š ๐™ป๐™ฐ ๐™ผ๐™พ๐™ณ๐™ธ๐™ต๐™ธ๐™ฒ๐™ฐ๐™ฒ๐™ธ๐™พ๐™ฝ*'; + sticker[hash] = {text, mentionedJid: m.mentionedJid, creator: m.sender, at: + new Date, locked: false}; + m.reply(`*[ โœ” ] ๐™ด๐™ป ๐šƒ๐™ด๐š‡๐šƒ๐™พ/๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ ๐™ฐ๐š‚๐™ธ๐™ถ๐™ฝ๐™ฐ๐™ณ๐™พ ๐™ฐ๐™ป ๐š‚๐šƒ๐™ธ๐™ฒ๐™บ๐™ด๐š/๐™ธ๐™ผ๐™ฐ๐™ถ๐™ด๐™ฝ ๐™ต๐š„๐™ด ๐™ฐ๐™ถ๐š๐™ด๐™ถ๐™ฐ๐™ณ๐™พ ๐™ฐ ๐™ป๐™ฐ ๐™ฑ๐™ฐ๐š‚๐™ด ๐™ณ๐™ด ๐™ณ๐™ฐ๐šƒ๐™พ๐š‚ ๐™ฒ๐™พ๐š๐š๐™ด๐™ฒ๐šƒ๐™ฐ๐™ผ๐™ด๐™ฝ๐šƒ๐™ด*`); +}; +handler.command = ['setcmd', 'addcmd', 'cmdadd', 'cmdset']; +handler.rowner = true; +export default handler; diff --git a/plugins/cmd-del.js b/plugins/cmd-del.js new file mode 100644 index 0000000..528a9ea --- /dev/null +++ b/plugins/cmd-del.js @@ -0,0 +1,12 @@ +const handler = async (m, {conn, usedPrefix, text, command}) => { + let hash = text; + if (m.quoted && m.quoted.fileSha256) hash = m.quoted.fileSha256.toString('hex'); + if (!hash) throw `*[โ—๐ˆ๐๐…๐Žโ—] ๐š‚๐™พ๐™ป๐™พ ๐š‚๐™ด ๐™ฟ๐š„๐™ด๐™ณ๐™ด๐™ฝ ๐™ฐ๐š‚๐™ธ๐™ถ๐™ฝ๐™ฐ๐š ๐šƒ๐™ด๐š‡๐šƒ๐™พ๐š‚ ๐™พ ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ๐š‚ ๐™ฐ๐š‚๐™ธ๐™ถ๐™ฝ๐™ฐ๐™ณ๐™พ๐š‚ ๐™ฐ ๐š‚๐šƒ๐™ธ๐™ฒ๐™บ๐™ด๐š๐š‚ ๐™พ ๐™ธ๐™ผ๐™ฐ๐™ถ๐™ด๐™ฝ๐™ด๐š‚, ๐™ฟ๐™ฐ๐š๐™ฐ ๐™พ๐™ฑ๐šƒ๐™ด๐™ฝ๐™ด๐š ๐™ด๐™ป ๐™ฒ๐™พ๐™ณ๐™ธ๐™ถ๐™พ ๐™ฐ๐š‚๐™ธ๐™ถ๐™ฝ๐™ฐ๐™ณ๐™พ ๐š„๐š‚๐™ด ๐™ด๐™ป ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ ${usedPrefix}listcmd*`; + const sticker = global.db.data.sticker; + if (sticker[hash] && sticker[hash].locked) throw '*[โ—๐ˆ๐๐…๐Žโ—] ๐š‚๐™พ๐™ป๐™พ ๐™ด๐™ป ๐™พ๐š†๐™ฝ๐™ด๐š ๐™ฟ๐š„๐™ด๐™ณ๐™ด ๐š๐™ด๐™ฐ๐™ป๐™ธ๐š‰๐™ฐ๐š ๐™ป๐™ฐ ๐™ด๐™ป๐™ธ๐™ผ๐™ธ๐™ฝ๐™ฐ๐™ฒ๐™ธ๐™พ๐™ฝ*'; + delete sticker[hash]; + m.reply(`*[ โœ” ] ๐™ด๐™ป ๐šƒ๐™ด๐š‡๐šƒ๐™พ/๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ ๐™ฐ๐š‚๐™ธ๐™ถ๐™ฝ๐™ฐ๐™ณ๐™พ ๐™ฐ๐™ป ๐š‚๐šƒ๐™ธ๐™ฒ๐™บ๐™ด๐š/๐™ธ๐™ผ๐™ฐ๐™ถ๐™ด๐™ฝ ๐™ต๐š„๐™ด ๐™ด๐™ป๐™ธ๐™ผ๐™ธ๐™ฝ๐™ฐ๐™ณ๐™พ ๐™ณ๐™ด ๐™ป๐™ฐ ๐™ฑ๐™ฐ๐š‚๐™ด ๐™ณ๐™ด ๐™ณ๐™ฐ๐šƒ๐™พ๐š‚ ๐™ฒ๐™พ๐š๐š๐™ด๐™ฒ๐šƒ๐™ฐ๐™ผ๐™ด๐™ฝ๐šƒ๐™ด*`); +}; +handler.command = ['delcmd']; +handler.rowner = true; +export default handler; diff --git a/plugins/cmd-list.js b/plugins/cmd-list.js new file mode 100644 index 0000000..815b336 --- /dev/null +++ b/plugins/cmd-list.js @@ -0,0 +1,10 @@ +const handler = async (m, {conn}) => { + conn.reply(m.chat, ` +*< ๐™ป๐™ธ๐š‚๐šƒ๐™ฐ ๐™ณ๐™ด ๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ๐š‚ / ๐šƒ๐™ด๐š‡๐šƒ๐™พ๐š‚ ๐™ฐ๐š‚๐™ธ๐™ถ๐™ฐ๐™ฝ๐™ณ๐™พ๐š‚ />* + +${Object.entries(global.db.data.sticker).map(([key, value], index) => `*${index + 1}.-*\n*๐™ฒ๐™พ๐™ณ๐™ธ๐™ถ๐™พ:* ${value.locked ? `*(๐š‹๐š•๐š˜๐šš๐šž๐šŽ๐šŠ๐š๐š˜)* ${key}` : key}\n*๐™ฒ๐™พ๐™ผ๐™ฐ๐™ฝ๐™ณ๐™พ/๐šƒ๐™ด๐š‡๐šƒ๐™พ* ${value.text}`).join('\n\n')} +`.trim(), null, {mentions: Object.values(global.db.data.sticker).map((x) => x.mentionedJid).reduce((a, b) => [...a, ...b], [])}); +}; +handler.command = ['listcmd', 'cmdlist']; +handler.rowner = true; +export default handler; diff --git a/plugins/config-enable.js b/plugins/config-enable.js new file mode 100644 index 0000000..d09232c --- /dev/null +++ b/plugins/config-enable.js @@ -0,0 +1,474 @@ +const handler = async (m, {conn, usedPrefix, command, args, isOwner, isAdmin, isROwner}) => { + const optionsFull = `*Opciรณn:* โœจ | WELCOME +*Comando:* ${usedPrefix + command} welcome +*Descripciรณn:* Activa o desactiva la bienvenida en el grupo. + +-------------------------------- + +*Opciรณn:* ๐ŸŒŽ | MODO PUBLICO +*Comando:* ${usedPrefix + command} public +*Descripciรณn:* El Bot se vuelve de uso publico y/o privado. +*Nota:* Este comando solo podrรก ser usado por owners del Bot. + +-------------------------------- + +*Opciรณn:* ๐Ÿฅต | MODO HORNY +*Comando:* ${usedPrefix + command} modohorny +*Descripciรณn:* Activa o desactiva los comandos +18 en el grupo. + +-------------------------------- + +*Opciรณn:* ๐Ÿ”— | ANTILINK +*Comando:* ${usedPrefix + command} antilink +*Descripciรณn:* Activa o desactiva el anti-enlaces de WhatsApp. +*Nota:* Se necesita tener activo el restrict. + +-------------------------------- + +*Opciรณn:* ๐Ÿ”— | ANTILINK 2 +*Comando:* ${usedPrefix + command} antilink2 +*Descripciรณn:* Activa o desactiva el anti-enlaces que inician en HTTPS. +*Nota:* Se necesita tener activo el restrict. + +-------------------------------- + +*Opciรณn:* ๐Ÿ”Ž | DETECT +*Comando:* ${usedPrefix + command} detect +*Descripciรณn:* Activa o desacriva las notificaciones de cambios en el grupo. + +-------------------------------- + +*Opciรณn:* ๐Ÿ”Ž | DETECT 2 +*Comando:* ${usedPrefix + command} detect2 +*Descripciรณn:* Detecta modificaciones en el grupo y mantiene una mejor gestion. + +-------------------------------- + +*Opciรณn:* โ— | RESTRICT +*Comando:* ${usedPrefix + command} restrict +*Descripciรณn:* Activa o desactiva las restricciones del Bot, como la de sacar o agregar personas a un grupo. +*Nota:* Este comando solo podrรก ser usado por owners del Bot. + +-------------------------------- + +*Opciรณn:* โ˜‘๏ธ | AUTOREAD +*Comando:* ${usedPrefix + command} autoread +*Descripciรณn:* Marca como leido los mensajes y los estados automรกticamente. +*Nota:* Este comando solo podrรก ser usado por owners del Bot. + +-------------------------------- + +*Opciรณn:* ๐Ÿ”Š | AUDIOS +*Comando:* ${usedPrefix + command} audios +*Descripciรณn:* Activa o desactiva los comandos de audios sin prefijos, en el grupo. + +-------------------------------- + +*Opciรณn:* ๐Ÿ‘พ | AUTOSTICKER +*Comando:* ${usedPrefix + command} autosticker +*Descripciรณn:* Todas las imagenes o videos enviados en el grupo se convierten en stickers. + +-------------------------------- + +*Opciรณn:* ๐Ÿ’ฌ | PCONLY +*Comando:* ${usedPrefix + command} pconly +*Descripciรณn:* El Bot solo responderรก a los comandos si es un chat privado. +*Nota:* Este comando solo podrรก ser usado por owners del Bot. + +-------------------------------- + +*Opciรณn:* ๐Ÿข | GCONLY +*Comando:* ${usedPrefix + command} gconly +*Descripciรณn:* El Bot solo respondera a los comandos si es un grupo. +*Nota:* Este comando solo podrรก ser usado por owners del Bot. + +-------------------------------- + +*Opciรณn:* โŒ | ANTIVIEWONCE +*Comando:* ${usedPrefix + command} antiviewonce +*Descripciรณn:* Las imagenes enviadas para ver solo una vez, son reenviadas normal por el Bot. + +-------------------------------- + +*Opciรณn:* ๐Ÿ“ต | ANTILLAMADAS +*Comando:* ${usedPrefix + command} anticall +*Descripciรณn:* El Bot bloquerรก a las personas que llamen al Bot. +*Nota:* Este comando solo podra ser usado por owners del Bot. + +-------------------------------- + +*Opciรณn:* ๐Ÿ’ฌ | ANTIPRIVADO +*Comando:* ${usedPrefix + command} antiprivado +*Descripciรณn:* El Bot bloquerรก a las personas que escriban al privado del Bot. +*Nota:* Este comando solo podrรก ser usado por owners del Bot. + +-------------------------------- + +*Opciรณn:* ๐Ÿคฌ | ANTITOXIC +*Comando:* ${usedPrefix + command} antitoxic +*Descripciรณn:* Detecta la malas palabras y advierte al participante del grupo, antes de ser eliminado. +*Nota:* Se necesita tener activo el restrict. + +-------------------------------- + +*Opciรณn:* ๐Ÿ•ธ๏ธ | ANTITRABAS +*Comando:* ${usedPrefix + command} antitraba +*Descripciรณn:* El Bot detecta textos largos que podrian ser virus y causar lag en el chat y elimina al usuario. +*Nota:* Se necesita tener activo el restrict. + +-------------------------------- + +*Opciรณn:* ๐Ÿ‘Ž | ANTIARABES +*Comando:* ${usedPrefix + command} antiarabes +*Descripciรณn:* Si un numero รกrabe se unรฉ al grupo, el Bot lo elimina automaticamente. +*Nota:* Se necesita tener activo el welcome y el restrict. + +-------------------------------- + +*Opciรณn:* ๐Ÿ‘Ž | ANTIARABES 2 +*Comando:* ${usedPrefix + command} antiarabes2 +*Descripciรณn:* Si un numero รกrabe escribe en el grupo, el Bot lo elimina automaticamente. +*Nota:* Se necesita tener activo el restrict. + +-------------------------------- + +*Opciรณn:* ๐Ÿค– | MODEJADIBOT +*Comando:* ${usedPrefix + command} modejadibot +*Descripciรณn:* Activa o desactiva el uso del comando para sub bots (${usedPrefix}serbot / ${usedPrefix}jadibot). +*Nota:* Este comando solo podrรก ser usado por owners del Bot. + +-------------------------------- + +*Opciรณn:* ๐Ÿ‘‘ | MODOADMIN +*Comando:* ${usedPrefix + command} modoadmin +*Descripciรณn:* El Bot solo responderรก a los admins del grupo. + +-------------------------------- + +*Opciรณn:* ๐Ÿ˜ƒ | SIMSIMI +*Comando:* ${usedPrefix + command} simsimi +*Descripciรณn:* El Bot empezarรก a responder a los mensajes usando la IA de SimSimi. + +-------------------------------- + +*Opciรณn:* โณ | ANTISPAM +*Comando:* ${usedPrefix + command} antispam +*Descripciรณn:* El Bot detecta cuando un usuario hace spam de comando y lo banea por 5 segundos y lo advierte. +*Nota:* Este comando solo podrรก ser usado por owners del Bot. + +-------------------------------- + +*Opciรณn:* ๐Ÿ›ก๏ธ | ANTIDELETE +*Comando:* ${usedPrefix + command} antidelete +*Descripciรณn:* El Bot detecta cuando un usuario elimina un mensaje y lo reenvรญa. + +-------------------------------- + +*Opciรณn:* ๐Ÿ”Š | AUDIOS_BOT +*Comando:* ${usedPrefix + command} audios_bot +*Descripciรณn:* Se desactivan los audios del Bot del menuaudios para todos los chats privados. +*Nota:* Este comando solo podrรก ser usado por owners del Bot. + +-------------------------------- + +*Opciรณn:* ๐Ÿค– | MODOIA +*Comando:* ${usedPrefix + command} modoia +*Descripciรณn:* Se activa el modo "Inteligencia Artificial" con GPT en todos los chats privados. +*Nota:* Este comando solo podrรก ser usado por owners del Bot.`.trim(); + + const isEnable = /true|enable|(turn)?on|1/i.test(command); + const chat = global.db.data.chats[m.chat]; + const user = global.db.data.users[m.sender]; + const bot = global.db.data.settings[conn.user.jid] || {}; + const type = (args[0] || '').toLowerCase(); + let isAll = false; const isUser = false; + switch (type) { + case 'welcome': + if (!m.isGroup) { + if (!isOwner) { + global.dfail('group', m, conn); + throw false; + } + } else if (!(isAdmin || isOwner || isROwner)) { + global.dfail('admin', m, conn); + throw false; + } + chat.welcome = isEnable; + break; + case 'detect': + if (!m.isGroup) { + if (!isOwner) { + global.dfail('group', m, conn); + throw false; + } + } else if (!isAdmin) { + global.dfail('admin', m, conn); + throw false; + } + chat.detect = isEnable; + break; + case 'detect2': + if (!m.isGroup) { + if (!isOwner) { + global.dfail('group', m, conn); + throw false; + } + } else if (!isAdmin) { + global.dfail('admin', m, conn); + throw false; + } + chat.detect2 = isEnable; + break; + case 'simsimi': + if (m.isGroup) { + if (!(isAdmin || isROwner || isOwner)) { + global.dfail('admin', m, conn); + throw false; + } + } + chat.simi = isEnable; + break; + case 'antiporno': + if (m.isGroup) { + if (!(isAdmin || isOwner)) { + global.dfail('admin', m, conn); + throw false; + } + } + chat.antiporno = isEnable; + break; + case 'delete': + if (m.isGroup) { + if (!(isAdmin || isOwner)) { + global.dfail('admin', m, conn); + throw false; + } + } + chat.delete = isEnable; + break; + case 'antidelete': + if (m.isGroup) { + if (!(isAdmin || isOwner)) { + global.dfail('admin', m, conn); + throw false; + } + } + chat.antidelete = isEnable; + break; + case 'public': + isAll = true; + if (!isROwner) { + global.dfail('rowner', m, conn); + throw false; + } + global.opts['self'] = !isEnable; + break; + case 'antilink': + if (m.isGroup) { + if (!(isAdmin || isOwner)) { + global.dfail('admin', m, conn); + throw false; + } + } + chat.antiLink = isEnable; + break; + case 'antilink2': + if (m.isGroup) { + if (!(isAdmin || isOwner)) { + global.dfail('admin', m, conn); + throw false; + } + } + chat.antiLink2 = isEnable; + break; + case 'antiviewonce': + if (m.isGroup) { + if (!(isAdmin || isOwner)) { + global.dfail('admin', m, conn); + throw false; + } + } + chat.antiviewonce = isEnable; + break; + case 'modohorny': + if (m.isGroup) { + if (!(isAdmin || isROwner || isOwner)) { + global.dfail('admin', m, conn); + throw false; + } + } + chat.modohorny = isEnable; + break; + case 'modoadmin': + if (m.isGroup) { + if (!(isAdmin || isROwner || isOwner)) { + global.dfail('admin', m, conn); + throw false; + } + } + chat.modoadmin = isEnable; + break; + case 'autosticker': + if (m.isGroup) { + if (!(isAdmin || isROwner || isOwner)) { + global.dfail('admin', m, conn); + throw false; + } + } + chat.autosticker = isEnable; + break; + case 'audios': + if (m.isGroup) { + if (!(isAdmin || isROwner || isOwner)) { + global.dfail('admin', m, conn); + throw false; + } + } + chat.audios = isEnable; + break; + case 'restrict': + isAll = true; + if (!(isROwner || isOwner)) { + global.dfail('owner', m, conn); + throw false; + } + bot.restrict = isEnable; + break; + case 'audios_bot': + isAll = true; + if (!(isROwner || isOwner)) { + global.dfail('owner', m, conn); + throw false; + } + bot.audios_bot = isEnable; + break; + case 'modoia': + isAll = true; + if (!(isROwner || isOwner)) { + global.dfail('owner', m, conn); + throw false; + } + bot.modoia = isEnable; + break; + case 'nyimak': + isAll = true; + if (!isROwner) { + global.dfail('rowner', m, conn); + throw false; + } + global.opts['nyimak'] = isEnable; + break; + case 'autoread': + isAll = true; + if (!(isROwner || isOwner)) { + global.dfail('rowner', m, conn); + throw false; + } + bot.autoread2 = isEnable; + //global.opts['autoread'] = isEnable; + break; + case 'pconly': + case 'privateonly': + isAll = true; + if (!isROwner) { + global.dfail('rowner', m, conn); + throw false; + } + global.opts['pconly'] = isEnable; + break; + case 'gconly': + case 'grouponly': + isAll = true; + if (!isROwner) { + global.dfail('rowner', m, conn); + throw false; + } + global.opts['gconly'] = isEnable; + break; + case 'swonly': + case 'statusonly': + isAll = true; + if (!isROwner) { + global.dfail('rowner', m, conn); + throw false; + } + global.opts['swonly'] = isEnable; + break; + case 'anticall': + isAll = true; + if (!(isROwner || isOwner)) { + global.dfail('owner', m, conn); + throw false; + } + bot.antiCall = isEnable; + break; + case 'antiprivado': + isAll = true; + if (!(isROwner || isOwner)) { + global.dfail('owner', m, conn); + throw false; + } + bot.antiPrivate = isEnable; + break; + case 'modejadibot': + isAll = true; + if (!isROwner) { + global.dfail('rowner', m, conn); + throw false; + } + bot.modejadibot = isEnable; + break; + case 'antispam': + isAll = true; + if (!(isROwner || isOwner)) { + global.dfail('owner', m, conn); + throw false; + } + bot.antispam = isEnable; + break; + case 'antitoxic': + if (m.isGroup) { + if (!(isAdmin || isROwner || isOwner)) { + global.dfail('admin', m, conn); + throw false; + } + } + chat.antiToxic = isEnable; + break; + case 'antitraba': + if (m.isGroup) { + if (!(isAdmin || isROwner || isOwner)) { + global.dfail('admin', m, conn); + throw false; + } + } + chat.antiTraba = isEnable; + break; + case 'antiarabes': + if (m.isGroup) { + if (!(isAdmin || isROwner || isOwner)) { + global.dfail('admin', m, conn); + throw false; + } + } + chat.antiArab = isEnable; + break; + case 'antiarabes2': + if (m.isGroup) { + if (!(isAdmin || isROwner || isOwner)) { + global.dfail('admin', m, conn); + throw false; + } + } + chat.antiArab2 = isEnable; + break; + default: + if (!/[01]/.test(command)) return await conn.sendMessage(m.chat, {text: optionsFull}, {quoted: m}); + throw false; + } + conn.sendMessage(m.chat, {text: `๐Ÿ—‚๏ธ ๐Ž๐๐‚๐ˆ๐Ž๐: ${type}\n๐ŸŽš๏ธ ๐„๐’๐“๐€๐ƒ๐Ž: ${isEnable ? 'ACTIVADO' : 'DESACTIVADO'}\n๐Ÿ“ฃ ๐๐€๐‘๐€: ${isAll ? 'ESTE BOT' : isUser ? '' : 'ESTE CHAT'}`}, {quoted: m}); +}; +handler.help = ['en', 'dis'].map((v) => v + 'able