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