├── lib
├── welkom.json
├── antilink.json
├── TextoDoBemvindo.json
├── fetcher.js
├── color.js
├── swm.js
├── funções.js
├── ytdl.js
└── sotoy.json
├── clover2.jpg
├── confing.json
├── README.md
├── start.sh
├── package.json
├── index.js
└── clover.js
/lib/welkom.json:
--------------------------------------------------------------------------------
1 | []
--------------------------------------------------------------------------------
/lib/antilink.json:
--------------------------------------------------------------------------------
1 | []
2 |
--------------------------------------------------------------------------------
/clover2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/trevo-community/Cat-Bot/HEAD/clover2.jpg
--------------------------------------------------------------------------------
/lib/TextoDoBemvindo.json:
--------------------------------------------------------------------------------
1 | {
2 | "texto": "BEM VINDO AO BAR KKKKKKKKK 🔥👑👈"
3 | }
--------------------------------------------------------------------------------
/confing.json:
--------------------------------------------------------------------------------
1 | {
2 | "prefix": "/",
3 | "nomeBot": "Bot MD",
4 | "nomeDono": "ADMNIN",
5 | "username_anikit": "SUPREMO",
6 | "key_anikit": "Adm",
7 | "owner": ["557598659560@s.whatsapp.net"]
8 | }
--------------------------------------------------------------------------------
/lib/fetcher.js:
--------------------------------------------------------------------------------
1 | const fetch = require('node-fetch')
2 |
3 | exports.fetchJson = fetchJson = (url, options) => new Promise(async (resolve, reject) => {
4 | fetch(url, options)
5 | .then(response => response.json())
6 | .then(json => {
7 | resolve(json)
8 | })
9 | .catch((err) => {
10 | reject(err)
11 | })
12 | })
--------------------------------------------------------------------------------
/lib/color.js:
--------------------------------------------------------------------------------
1 | const chalk = require('chalk')
2 |
3 | const color = (text, color) => {
4 | return !color ? chalk.green(text): chalk.keyword(color)(text)
5 | }
6 |
7 | const bgcolor = (text, bgcolor) => {
8 | return !bgcolor ? chalk.green(text): chalk.bgKeyword(bgcolor)(text)
9 | }
10 |
11 | const logs = (text, color) => {
12 | return !color ? chalk.red('[ SHIZUKU ] ') + chalk.green(text): chalk.yellow('[ SHIZUKU ] ') + chalk.keyword(color)(text)
13 | }
14 |
15 | module.exports = {
16 | color,
17 | bgcolor,
18 | logs
19 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | # Clover V6
10 | @clovermods yt
11 |
12 | # Como Instalar o Bot
13 | 1. COMANDO:
14 |
15 | ```
16 | termux-setup-storage && pkg upgrade -y && pkg update -y && pkg install nodejs -y && pkg install nodejs-lts -y && pkg install git -y && pkg install ffmpeg -y && pkg install yarn
17 | ```
18 |
19 | 2. COMANDO:
20 |
21 | ```
22 | cd /sdcard && git clone https://github.com/trevo-community/Cat-Bot && cd Cat-Bot && yarn install
23 | ```
24 |
25 | 3. COMANDO:
26 |
27 | ```
28 | sh start.sh
29 | ```
30 | ou
31 | ```
32 | node index.js
33 | ```
34 |
35 | • Depois só colocar seu numero
36 |
--------------------------------------------------------------------------------
/start.sh:
--------------------------------------------------------------------------------
1 | #!bin/bash
2 | NOCOLOR='\033[0m'
3 | RED='\033[0;31m'
4 | GREEN='\033[0;32m'
5 | ORANGE='\033[0;33m'
6 | BLUE='\033[0;34m'
7 | PURPLE='\033[0;35m'
8 | CYAN='\033[0;36m'
9 | LIGHTGRAY='\033[0;37m'
10 | DARKGRAY='\033[1;30m'
11 | PURPLE='\033[1;31m'
12 | LIGHTGREEN='\033[1;32m'
13 | YELLOW='\033[1;33m'
14 | LIGHTRED='\033[1;34m'
15 | LIGHTPURPLE='\033[1;35m'
16 | LIGHTCYAN='\033[1;36m'
17 | WHITE='\033[1;37m'
18 |
19 | while :
20 | do
21 | echo "${ORANGE}"
22 | cat << "EOF"
23 | ██░▀██████████████▀░███
24 | █▌▒▒░████████████░▒▒▐██
25 | █░▒▒▒░██████████░▒▒▒░██
26 | ▌░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▐█
27 | ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░█
28 | ███▀▀▀██▄▒▒▒▒▒▒▒▄██▀▀▀█
29 | █░░░▐█░▀█▒▒▒▒▒█▀░█▌░░░█
30 | ▌░░░▐▄▌░▐▌▒▒▒▐▌░▐▄▌░░▐█
31 | █░░░▐█▌░░▌▒▒▒▐░░▐█▌░░██
32 | ▒▀▄▄▄█▄▄▄▌░▄░▐▄▄▄█▄▄▀▒█
33 | ░░░░░░░░░░└┴┘░░░░░░░░░█
34 | ██▄▄░░░░░░░░░░░░░░▄▄███
35 | ████████▒▒▒▒▒▒█████████
36 | █▀░░███▒▒░░▒░░▒▀███████
37 | █▒░███▒▒╖░░╥░░╓▒▐██████
38 | █▒░▀▀▀░░║░░║░░║░░██████
39 | ██▄▄▄▄▀▀┴┴╚╧╧╝╧╧╝┴┴████
40 | ███████████████████████
41 | EOF
42 | echo
43 | echo "${YELLOW} CLOVER-MODS"
44 | echo "${LIGHTPURPLE}"
45 |
46 | node index.js
47 | sleep 1
48 |
49 | done
50 |
--------------------------------------------------------------------------------
/lib/swm.js:
--------------------------------------------------------------------------------
1 | const axios = require('axios')
2 |
3 | function convertSticker(base64, author, pack){
4 | return new Promise((resolve, reject) =>{
5 | axios('https://sticker-api-tpe3wet7da-uc.a.run.app/prepareWebp', {
6 | method: 'POST',
7 | headers: {
8 | Accept: 'application/json, text/plain, */*',
9 | 'Content-Type': 'application/json;charset=utf-8',
10 | 'User-Agent': 'axios/0.21.1',
11 | 'Content-Length': 151330
12 | },
13 | data: `{"image": "${base64}","stickerMetadata":{"author":"${author}","pack":"${pack}","keepScale":true,"removebg":"HQ"},"sessionInfo":{"WA_VERSION":"2.2106.5","PAGE_UA":"WhatsApp/2.2037.6 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36","WA_AUTOMATE_VERSION":"3.6.10 UPDATE AVAILABLE: 3.6.11","BROWSER_VERSION":"HeadlessChrome/88.0.4324.190","OS":"Windows Server 2016","START_TS":1614310326309,"NUM":"6247","LAUNCH_TIME_MS":7934,"PHONE_VERSION":"2.20.205.16"},"config":{"sessionId":"session","headless":true,"qrTimeout":20,"authTimeout":0,"cacheEnabled":false,"useChrome":true,"killProcessOnBrowserClose":true,"throwErrorOnTosBlock":false,"chromiumArgs":["--no-sandbox","--disable-setuid-sandbox","--aggressive-cache-discard","--disable-cache","--disable-application-cache","--disable-offline-load-stale-cache","--disk-cache-size=0"],"executablePath":"C:\\\\Program Files (x86)\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe","skipBrokenMethodsCheck":true,"stickerServerEndpoint":true}}`
14 | }).then(({data}) =>{
15 | resolve(data.webpBase64)
16 | }).catch(reject)
17 |
18 | })
19 | }
20 |
21 | exports.convertSticker = convertSticker
22 |
--------------------------------------------------------------------------------
/lib/funções.js:
--------------------------------------------------------------------------------
1 | const cfonts = require('cfonts')
2 | const chalk = require('chalk')
3 | const axios = require('axios')
4 | const fetch = require('node-fetch')
5 | const mimetype = require('mime-types')
6 | const fs = require('fs')
7 |
8 | const getBuffer = (url, options) => new Promise(async (resolve, reject) => {
9 | options ? options : {}
10 | await axios({method: "get", url, headers: {'DNT': 1, 'Upgrade-Insecure-Request': 1}, ...options, responseType: 'arraybuffer'}).then((res) => {
11 | resolve(res.data)
12 | }).catch(reject)
13 | })
14 |
15 | const getGroupAdmins = (participants) => {
16 | admins = []
17 | for (let i of participants) {
18 | if(i.admin == 'admin') admins.push(i.id)
19 | if(i.admin == 'superadmin') admins.push(i.id)
20 | }
21 | return admins
22 | }
23 |
24 | var corzinhas = ["red","green","yellow","blue","magenta","cyan","white","gray","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"]
25 | const cor1 = corzinhas[Math.floor(Math.random() * (corzinhas.length))]
26 | const cor2 = corzinhas[Math.floor(Math.random() * (corzinhas.length))]
27 | const cor3 = corzinhas[Math.floor(Math.random() * (corzinhas.length))]
28 | const cor4 = corzinhas[Math.floor(Math.random() * (corzinhas.length))]
29 | const cor5 = corzinhas[Math.floor(Math.random() * (corzinhas.length))]
30 |
31 | const banner = cfonts.render((''), {
32 | font: 'tiny',
33 | align: 'center',
34 | colors: [`${cor1}`,`${cor2}`,`${cor3}`,`${cor4}`,`${cor5}`],
35 | background: 'transparent',
36 | letterSpacing: 1,
37 | lineHeight: 1,
38 | space: true,
39 | maxLength: '0',
40 | gradrient: [`${cor4}`,`${cor2}`],
41 | independentGradient: false,
42 | transitionGradient: false,
43 | env: 'node'
44 | });
45 |
46 | const getExtension = async (type) => {
47 | return await mimetype.extension(type)
48 | }
49 |
50 | const getRandom = (ext) => {
51 | return `${Math.floor(Math.random() * 10000)}${ext}`;
52 | };
53 |
54 | module.exports = { banner, getGroupAdmins, getBuffer, getExtension, getRandom }
55 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "clover-v5",
3 | "version": "6.0.0",
4 | "main": "index.js",
5 | "scripts": {
6 | "start": "node index.js",
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "@clovermods",
11 | "license": "MIT",
12 | "dependencies": {
13 | "@adiwajshing/keyed-db": "^0.2.4",
14 | "@hapi/boom": "^9.1.4",
15 | "@whiskeysockets/baileys": "^6.4.1",
16 | "async": "^3.2.3",
17 | "awesome-phonenumber": "^2.69.0",
18 | "axios": "^0.21.1",
19 | "cfonts": "^2.10.0",
20 | "chalk": "^4.1.2",
21 | "cheerio": "^1.0.0-rc.10",
22 | "child_process": "^1.0.2",
23 | "cli-color": "^2.0.3",
24 | "cookie": "^0.4.1",
25 | "cors": "^2.8.3",
26 | "crypto": "^1.0.1",
27 | "emoji-api": "^2.0.1",
28 | "emoji-regex": "^10.0.0",
29 | "emoji-unicode": "^2.0.1",
30 | "encodeurl": "^1.0.2",
31 | "escape-string-regexp": "^1.0.5",
32 | "express": "^4.17.1",
33 | "fake-useragent": "^1.0.1",
34 | "file-type": "^16.5.3",
35 | "fluent-ffmpeg": "^2.1.2",
36 | "fs-extra": "^10.0.0",
37 | "g-i-s": "^2.1.6",
38 | "google-it": "^1.6.2",
39 | "got": "^12.0.1",
40 | "hxz-api": "^1.0.1",
41 | "image-to-base64": "^2.2.0",
42 | "imagemagick": "^0.1.3",
43 | "imgbb-uploader": "^1.3.5",
44 | "isarray": "^2.0.5",
45 | "jpeg-js": "^0.4.3",
46 | "jsdom": "^19.0.0",
47 | "linkifyjs": "^3.0.5",
48 | "mime": "^3.0.0",
49 | "moment-timezone": "^0.5.34",
50 | "ms": "^2.1.3",
51 | "multistream": "^4.1.0",
52 | "node-cache": "^5.1.2",
53 | "node-fetch": "^2.6.7",
54 | "parse-ms": "^3.0.0",
55 | "path": "^0.12.7",
56 | "pino": "^7.8.0",
57 | "process-nextick-args": "^2.0.1",
58 | "protobufs": "^0.1.0",
59 | "qrcode-terminal": "^0.12.0",
60 | "readline": "^1.3.0",
61 | "remove.bg": "^1.3.0",
62 | "request": "^2.88.2",
63 | "ssl-express-www": "^3.0.7",
64 | "trevo-api": "github:trevo-community/trevo-api",
65 | "yt-search": "^2.9.0",
66 | "ytdl-core": "^4.10.1",
67 | "yts": "^2.0.0"
68 | },
69 | "directories": {
70 | "lib": "lib"
71 | },
72 | "description": "me segue kkkkkk"
73 | }
74 |
--------------------------------------------------------------------------------
/lib/ytdl.js:
--------------------------------------------------------------------------------
1 | const fetch = require('node-fetch')
2 | const { JSDOM } = require('jsdom')
3 | const path = require('path')
4 | const util = require('util')
5 | const moment = require('moment-timezone')
6 | //const time = moment().format('DD/MM HH:mm:ss')
7 | //const { color, bgcolor } = require('./color')
8 | const { Readable, Writable } = require('stream')
9 |
10 | const ytIdRegex = /(?:http(?:s|):\/\/|)(?:(?:www\.|)youtube(?:\-nocookie|)\.com\/(?:watch\?.*(?:|\&)v=|embed\/|v\/)|youtu\.be\/)([-_0-9A-Za-z]{11})/
11 |
12 | function INFOLOG(info) {
13 | return
14 | }
15 |
16 | function post(url, formdata) {
17 | INFOLOG(Object.keys(formdata).map(key => `${key}=${encodeURIComponent(formdata[key])}`).join('&'))
18 | return fetch(url, {
19 | method: 'POST',
20 | headers: {
21 | accept: "*/*",
22 | 'accept-language': "en-US,en;q=0.9",
23 | 'content-type': "application/x-www-form-urlencoded; charset=UTF-8"
24 | },
25 | body: Object.keys(formdata).map(key => `${key}=${encodeURIComponent(formdata[key])}`).join('&')
26 | })
27 | }
28 |
29 |
30 | function ytv(url) {
31 | return new Promise((resolve, reject) => {
32 | if (ytIdRegex.test(url)) {
33 | let ytId = ytIdRegex.exec(url)
34 | url = 'https://youtu.be/' + ytId[1]
35 | post('https://www.y2mate.com/mates/en60/analyze/ajax', {
36 | url,
37 | q_auto: 0,
38 | ajax: 1
39 | })
40 | .then(res => res.json())
41 | .then(res => {
42 | INFOLOG('Scraping...')
43 | document = (new JSDOM(res.result)).window.document
44 | yaha = document.querySelectorAll('td')
45 | id = /var k__id = "(.*?)"/.exec(document.body.innerHTML) || ['', '']
46 | thumb = document.querySelector('img').src
47 | title = document.querySelector('b').innerHTML
48 |
49 | post('https://www.y2mate.com/mates/en60/convert', {
50 | type: 'youtube',
51 | _id: id[1],
52 | v_id: ytId[1],
53 | ajax: '1',
54 | token: '',
55 | ftype: 'mp4',
56 | fquality: 720
57 | })
58 | .then(res => res.json())
59 | .then(res => {
60 | resolve({
61 | dl_link: / {
73 | if (ytIdRegex.test(url)) {
74 | let ytId = ytIdRegex.exec(url)
75 | url = 'https://youtu.be/' + ytId[1]
76 | post('https://www.y2mate.com/mates/en60/analyze/ajax', {
77 | url,
78 | q_auto: 0,
79 | ajax: 1
80 | })
81 | .then(res => res.json())
82 | .then(res => {
83 | let document = (new JSDOM(res.result)).window.document
84 | let type = document.querySelectorAll('td')
85 | let id = /var k__id = "(.*?)"/.exec(document.body.innerHTML) || ['', '']
86 | let thumb = document.querySelector('img').src
87 | let title = document.querySelector('b').innerHTML
88 |
89 | post('https://www.y2mate.com/mates/en60/convert', {
90 | type: 'youtube',
91 | _id: id[1],
92 | v_id: ytId[1],
93 | ajax: '1',
94 | token: '',
95 | ftype: 'mp3',
96 | fquality: 128
97 | })
98 | .then(res => res.json())
99 | .then(res => {
100 | resolve({
101 | dl_link: / new Promise((resolve) => rl.question(text, resolve));
47 | // BANER DO TERMINAL
48 | const cfonts = require('cfonts')
49 | const banner = cfonts.render(('Cat|bot'),
50 | {
51 | font: "block",
52 | align: "center",
53 | gradient: ["red", "blue"]
54 | })
55 |
56 | // CONEXÃO
57 |
58 | const client = makeWASocket({
59 | version,
60 | logger: P({ level: "silent" }),
61 | usePairingCode,
62 | mobile: false,
63 | browser: ["FireFox (linux)"],
64 | auth: state,
65 | msgRetryCounterCache,
66 | defaultQueryTimeoutMs: undefined,
67 | patchMessageBeforeSending: (message) => {
68 | const requiresPatch = !!(message.buttonsMessage || message.listMessage);
69 | if (requiresPatch) {
70 | message = {
71 | viewOnceMessage: {
72 | message: {
73 | messageContextInfo: {
74 | deviceListMetadataVersion: 2,
75 | deviceListMetadata: {},
76 | }, ...message
77 | }
78 | }
79 | }
80 | }
81 | return message;
82 | }
83 | });
84 |
85 | console.log(banner.string)
86 | console.log('[ Clover 6.0 online ]')
87 |
88 | if (!client.authState.creds.registered) {
89 | const phoneNumber = await question(`\nDigite seu número do WhatsApp:\nEx: ${clc.bold("557598659559")}\n `);
90 | const code = await client.requestPairingCode(phoneNumber);
91 | console.log(`Seu código de conexão é: \n\n ${clc.bold(code)}\n~>`);
92 | console.log(`Abra seu WhatsApp, vá em ${clc.bold("Aparelhos Conectados > Conectar um novo Aparelho > Conectar usando Número.")}`)
93 | }
94 |
95 | store.bind(client.ev)
96 |
97 | client.ev.on("creds.update", saveCreds)
98 | store.bind(client.ev)
99 | client.ev.on("chats.set", () => {
100 | console.log("Tem conversas", store.chats.all())
101 | })
102 | client.ev.on("contacts.set", () => {
103 | console.log("Tem contatos", Object.values(store.contacts))
104 | })
105 | // CONEXÃO ATUALIZAÇÃO
106 | client.ev.on("connection.update", (update) => {
107 | const { connection, lastDisconnect } = update
108 | if (connection === "close") {
109 | const shouldReconnect = (lastDisconnect.error)?.output?.statusCode !== DisconnectReason.loggedOut
110 | console.log("Conexão fechada devido a", lastDisconnect.error, "Tentando reconectar...", shouldReconnect);
111 | if (shouldReconnect) {
112 | clover_mods()
113 | }
114 |
115 | } else if (connection === "open") {
116 | console.log(chalk.keyword("red")("Conectado com sucesso!"));
117 | }
118 | })
119 |
120 | const welkom = JSON.parse(fs.readFileSync('./lib/welkom.json'));
121 | const bemvindotexto = JSON.parse(fs.readFileSync('./lib/TextoDoBemvindo.json'));
122 | const trevo = bemvindotexto.texto
123 | // PARTICIPANTES DE GRUPO ATUALIZAÇÃO
124 | client.ev.on('group-participants.update', async (anu) => {
125 | //console.log(anu)
126 | if (welkom.includes(anu.id)) {
127 | try {
128 | let metadata = await client.groupMetadata(anu.id)
129 | let participants = anu.participants
130 | for (let num of participants) {
131 | try {
132 | ppimg = await client.profilePictureUrl(anu.participants[0])
133 | } catch {
134 | ppimg = 'https://telegra.ph/file/41598dec8462fb039c130.jpg'
135 | }
136 | memb = metadata.participants.length
137 | if (anu.action == 'add') {
138 | num = anu.participants[0]
139 | client.sendMessage(anu.id, {
140 | image: { url: `${ppimg}` }, caption: `${trevo}`, headerType: 4
141 | })
142 | } else if (anu.action == 'remove') {
143 | client.sendMessage(anu.id, { image: { url: `${ppimg}` }, caption: `OLA POVO DO GRUPO:\n*${metadata.subject}*\n\nO Membro: @${num.split('@')[0]}\n\nSaiu do Grp ou foi Banido.` })
144 | }
145 | }
146 | } catch (err) {
147 | console.log(err)
148 | }
149 | }
150 | })
151 |
152 | // MENSAGEM ATUALIZAÇÃO
153 | client.ev.on('messages.upsert', connection => {
154 | //console.log(connection)
155 | const info = connection.messages[0];
156 | //if (info.key.fromMe) return;
157 | if (connection.type != 'notify') return;
158 | if (info.key.remoteJid === 'status@broadcast') return;
159 | require('./clover.js')(client, info, settings, color)
160 | });
161 |
162 | client.ev.on('creds.update', saveCreds)
163 | }
164 |
165 | // start no bot...
166 | clover_mods(), (err) => console.log("vix boy, deu erro", color(String(err), 'red'));
167 |
--------------------------------------------------------------------------------
/lib/sotoy.json:
--------------------------------------------------------------------------------
1 | ["🥑 : 🥑 : 🥑","🍉 : 🍉 : 🍉","🍓 : 🍓 : 🍓","🍎 : 🍎 : 🍎","🍍 : 🍍 : 🍍","🥝 : 🥝 : 🥝","🍑 : 🍑 : 🍑","🥥 : 🥥 : 🥥","🍇 : 🍇 : 🍇","🍊 : 🍊 : 🍊","🔔 : 🔔 : 🔔","🍒 : 🍒 : 🍒","🍌 : 🍌 : 🍌","🍐 : 🍐 : 🍐","🍋 : 🍋 : 🍋","🍊 : 🍒 : 🍐","🥝 : 🍉 : 🥑","🍌 : 🍒 : 🔔","🍐 : 🔔 : 🥝","🍉 : 🍋 : 🍒","🍋 : 🥑 : 🍌","🔔 : 🥥 : 🍇","🍓 : 🍐 : 🍇","🍊 : 🍍 : 🍉","🍒 : 🔔 : 🍊","🍇 : 🥑 : 🍐","🍊 : 🍋 : 🔔","🔔 : 🍒 : 🍐","🍉 : 🍓 : 🥑","🍊 : 🍋 : 🔔","🍐 : 🍒 : 🍋","🍍 : 🍐 : 🥝","🥑 : 🍓 : 🍉","🍑 : 🔔 : 🥑","🍌 : 🍒 : 🔔","🍉 : 🍍 : 🥥","🍊 : 🍋 : 🍒","🍋 : 🍍 : 🍌","🥥 : 🍎 : 🍉","🔔 : 🍑 : 🍓","🍉 : 🥑 : 🍐","🍒 : 🔔 : 🍊","🍇 : 🍍 : 🍐","🍓 : 🥑 : 🍍","🔔 : 🍒 : 🍐","🥥 : 🍒 : 🍊","🍊 : 🍋 : 🔔","🍐 : 🍉 : 🍋","🍐 : 🍑 : 🍐","🥑 : 🍒 : 🍓","🔔 : 🍎 : 🍇","🍌 : 🍒 : 🔔","🍐 : 🥥 : 🍍","🍊 : 🍋 : 🍒","🍓 : 🍉 : 🍌","🍍 : 🔔 : 🍇","🔔 : 🍐 : 🍎","🍊 : 🍒 : 🍐","🍉 : 🔔 : 🥑","🍇 : 🥥 : 🍎","🍊 : 🍋 : 🔔","🔔 : 🍓 : 🍐","🔔 : 🍒 : 🍊","🥑 : 🍉 : 🔔","🍐 : 🍒 : 🍋","🍑 : 🍎 : 🍐","🍊 : 🍍 : 🍒","🔔 : 🔔 : 🥑","🍌 : 🍒 : 🍉","🍐 : 🍓 : 🍎","🍊 : 🍋 : 🍒","🍋 : 🥑 : 🍌","🔔 : 🍎 : 🍇","🍉 : 🍐 : 🥥","🔔 : 🍑 : 🥑","🍒 : 🔔 : 🍊","🍇 : 🍓 : 🍐","🍊 : 🍋 : 🔔","🥑 : 🍍 : 🍐","🔔 : 🍒 : 🍉","🍊 : 🥑 : 🔔","🍎 : 🍒 : 🍎","🍐 : 🍉 : 🍐","🍊 : 🥑 : 🍓","🍋 : 🔔 : 🍇","🍌 : 🍒 : 🍉","🍐 : 🔔 : 🥑","🍓 : 🍋 : 🍒","🍋 : 🥑 : 🍌","🔔 : 🍎 : 🥥","🍉 : 🍐 : 🍇","🍊 : 🍒 : 🍐","🥑 : 🍓 : 🍉","🍇 : 🍒 : 🍍","🍊 : 🥑 : 🍑","🍑 : 🍎 : 🍐","🔔 : 🍒 : 🍊","🍉 : 🥝 : 🍎","🍐 : 🍉 : 🍋","🍐 : 🥑 : 🍐","🍊 : 🍒 : 🍓","🍑 : 🔔 : 🍉","🍌 : 🥑 : 🥝","🍐 : 🍉 : 🔔","🍊 : 🍓 : 🍒","🍋 : 🍋 : 🍉","🥑 : 🍎 : 🍇","🔔 : 🍑 : 🥑","🍊 : 🥥 : 🍐","🍍 : 🍓 : 🍊","🍉 : 🍒 : 🍐","🍊 : 🍋 : 🍉","🔔 : 🍎 : 🍐","🍓 : 🥑 : 🍊","🍊 : 🍋 : 🔔","🍐 : 🍒 : 🍑","🥝 : 🍉 : 🍐","🍓 : 🍍 : 🍒","🔔 : 🔔 : 🍇","🍌 : 🍒 : 🍉","🍐 : 🍉 : 🍓","🍊 : 🍐 : 🍒","🍊 : 🍒 : 🍐","🥝 : 🍉 : 🥑","🥑 : 🍒 : 🍐","🍊 : 🍋 : 🔔","🔔 : 🍍 : 🍐","🍓 : 🍉 : 🍊","🍊 : 🍋 : 🍓","🍐 : 🍒 : 🍋","🥑 : 🍐 : 🥥","🍊 : 🍒 : 🍍","🍎 : 🔔 : 🍇","🍌 : 🍒 : 🍓","🍓 : 🔔 : 🍎","🍊 : 🍉 : 🍍","🍋 : 🍋 : 🍌","🍎 : 🔔 : 🍉","🔔 : 🍐 : 🍇","🍊 : 🍒 : 🍐","🍍 : 🔔 : 🥑","🍇 : 🥝 : 🍎","🍊 : 🍉 : 🔔","🔔 : 🍓 : 🍐","🔔 : 🍒 : 🍊","🥑 : 🍋 : 🔔","🍐 : 🍒 : 🍋","🍉 : 🍐 : 🍉","🍊 : 🥥 : 🥑","🔔 : 🍍 : 🍇","🍌 : 🍎 : 🔔","🍐 : 🔔 : 🍎","🍊 : 🥥 : 🍒","🍉 : 🍋 : 🍌","🍑 : 🔔 : 🍇","🔔 : 🍐 : 🍉","🍊 : 🥝 : 🍐","🍍 : 🔔 : 🍊","🍇 : 🍒 : 🍐","🍊 : 🍋 : 🔔","🍉 : 🍒 : 🍐","🔔 : 🥝 : 🍊","🍊 : 🍋 : 🔔","🍐 : 🍍 : 🍋","🥝 : 🍐 : 🍉","🍊 : 🍑 : 🍍","🔔 : 🔔 : 🍓","🍌 : 🍒 : 🔔","🍐 : 🔔 : 🥝","🍉 : 🍋 : 🍒","🍋 : 🥑 : 🍌","🔔 : 🥥 : 🍇","🍓 : 🍐 : 🍇","🍊 : 🍍 : 🍉","🍒 : 🔔 : 🍊","🍇 : 🥑 : 🍐","🍊 : 🍋 : 🔔","🔔 : 🍒 : 🍐","🍉 : 🍊 : 🥑","🍊 : 🍋 : 🔔","🍐 : 🍒 : 🍋","🍍 : 🍐 : 🥝","🥑 : 🍓 : 🍉","🍑 : 🔔 : 🥑","🍌 : 🍒 : 🔔","🍉 : 🍍 : 🥥","🍊 : 🍋 : 🍒","🍋 : 🍍 : 🍌","🥥 : 🍎 : 🍉","🔔 : 🍑 : 🍓","🍉 : 🥑 : 🍐","🍒 : 🔔 : 🍊","🍇 : 🍍 : 🍐","🍓 : 🥑 : 🍍","🔔 : 🍒 : 🍐","🥥 : 🍒 : 🍊","🍊 : 🍋 : 🔔","🍐 : 🍉 : 🍋","🍐 : 🍑 : 🍐","🥑 : 🍒 : 🍓","🔔 : 🍎 : 🍇","🍌 : 🍒 : 🔔","🍐 : 🥥 : 🍍","🍊 : 🍋 : 🍒","🍓 : 🍉 : 🍌","🍍 : 🔔 : 🍇","🔔 : 🍐 : 🍎","🍊 : 🍒 : 🍐","🍉 : 🔔 : 🥑","🍇 : 🥥 : 🍎","🍊 : 🍋 : 🔔","🔔 : 🍓 : 🍐","🔔 : 🍒 : 🍊","🥑 : 🍉 : 🔔","🍐 : 🍒 : 🍋","🍑 : 🍎 : 🍐","🍊 : 🍍 : 🍒","🔔 : 🔔 : 🥑","🍌 : 🍒 : 🍉","🍐 : 🍓 : 🍎","🍊 : 🍋 : 🍒","🍋 : 🥑 : 🍌","🔔 : 🍎 : 🍇","🍉 : 🍐 : 🥥","🔔 : 🍑 : 🥑","🍒 : 🔔 : 🍊","🍇 : 🍓 : 🍐","🍊 : 🍋 : 🔔","🥑 : 🍍 : 🍐","🔔 : 🍒 : 🍉","🍊 : 🥑 : 🔔","🍎 : 🍒 : 🍎","🍐 : 🍉 : 🍐","🍊 : 🥑 : 🍓","🍋 : 🔔 : 🍇","🍌 : 🍒 : 🍉","🍐 : 🔔 : 🥑","🍓 : 🍋 : 🍒","🍋 : 🍇 : 🍌","🔔 : 🍎 : 🥥","🍉 : 🍐 : 🍇","🍊 : 🍒 : 🍐","🥑 : 🍓 : 🍉","🍇 : 🍒 : 🍍","🍊 : 🥑 : 🍑","🍑 : 🍎 : 🍐","🔔 : 🍒 : 🍊","🍉 : 🥝 : 🍎","🍐 : 🍉 : 🍋","🍐 : 🥑 : 🍐","🍊 : 🍒 : 🍓","🍑 : 🔔 : 🍉","🍌 : 🥑 : 🥝","🍐 : 🍉 : 🔔","🍊 : 🍓 : 🍒","🍋 : 🍋 : 🍉","🥑 : 🍎 : 🍇","🔔 : 🍑 : 🥑","🍊 : 🥥 : 🍐","🍍 : 🍓 : 🍊","🍉 : 🍒 : 🍐","🍊 : 🍋 : 🍉","🔔 : 🍎 : 🍐","🍓 : 🥑 : 🍊","🍊 : 🍋 : 🔔","🍐 : 🍒 : 🍑","🥝 : 🍉 : 🍐","🍓 : 🍍 : 🍒","🔔 : 🔔 : 🍇","🍌 : 🍒 : 🍉","🍐 : 🍉 : 🍓","🍊 : 🍐 : 🍒","🍊 : 🍒 : 🍐","🥝 : 🍉 : 🥑","🥑 : 🍒 : 🍐","🍊 : 🍋 : 🔔","🔔 : 🍍 : 🍐","🍓 : 🍉 : 🍊","🍊 : 🍋 : 🍓","🍐 : 🍒 : 🍋","🥑 : 🍐 : 🥥","🍊 : 🍒 : 🍍","🍎 : 🔔 : 🍇","🍌 : 🍒 : 🍓","🍓 : 🔔 : 🍎","🍊 : 🍉 : 🍍","🍋 : 🍋 : 🍌","🍎 : 🔔 : 🍉","🔔 : 🍐 : 🍇","🍊 : 🍒 : 🍐","🍍 : 🔔 : 🥑","🍇 : 🥝 : 🍎","🍊 : 🍉 : 🔔","🔔 : 🍓 : 🍐","🔔 : 🍒 : 🍊","🥑 : 🍋 : 🔔","🍐 : 🍒 : 🍋","🍉 : 🍐 : 🍉","🍊 : 🥥 : 🥑","🔔 : 🍍 : 🍇","🍌 : 🍎 : 🔔","🍐 : 🔔 : 🍎","🍊 : 🥥 : 🍒","🍉 : 🍋 : 🍌","🍑 : 🔔 : 🍇","🔔 : 🍐 : 🍉","🍊 : 🥝 : 🍐","🍍 : 🔔 : 🍊","🍇 : 🍒 : 🍐","🍊 : 🍋 : 🔔","🍉 : 🍒 : 🍐","🔔 : 🥝 : 🍊","🍊 : 🍋 : 🔔","🍐 : 🍍 : 🍋","🥝 : 🍐 : 🍉","🍊 : 🍑 : 🍍","🔔 : 🔔 : 🍓","🍌 : 🍒 : 🔔","🍐 : 🔔 : 🥝","🍉 : 🍋 : 🍒","🍋 : 🥑 : 🍌","🔔 : 🥥 : 🍇","🍓 : 🍐 : 🍇","🍊 : 🍍 : 🍉","🍒 : 🔔 : 🍊","🍇 : 🥑 : 🍐","🍊 : 🍋 : 🔔","🔔 : 🍒 : 🍐","🍉 : 🍓 : 🥑","🍊 : 🍋 : 🔔","🍐 : 🍒 : 🍋","🍍 : 🍐 : 🥝","🥑 : 🍓 : 🍉","🍑 : 🔔 : 🥑","🍌 : 🍒 : 🔔","🍉 : 🍍 : 🥥","🍊 : 🍋 : 🍒","🍋 : 🍍 : 🍌","🥥 : 🍎 : 🍉","🔔 : 🍑 : 🍓","🍉 : 🥑 : 🍐","🍒 : 🔔 : 🍊","🍇 : 🍍 : 🍐","🍓 : 🥑 : 🍍","🔔 : 🍒 : 🍐","🥥 : 🍒 : 🍊","🍊 : 🍋 : 🔔","🍐 : 🍉 : 🍋","🍐 : 🍑 : 🍐","🥑 : 🍒 : 🍓","🔔 : 🍎 : 🍇","🍌 : 🍒 : 🔔","🍐 : 🥥 : 🍍","🍊 : 🍋 : 🍒","🍓 : 🍉 : 🍌","🍍 : 🔔 : 🍇","🔔 : 🍐 : 🍎","🍊 : 🍒 : 🍐","🍉 : 🔔 : 🥑","🍇 : 🥥 : 🍎","🍊 : 🍋 : 🔔","🔔 : 🍓 : 🍐","🔔 : 🍒 : 🍊","🥑 : 🍉 : 🔔","🍐 : 🍒 : 🍋","🍑 : 🍎 : 🍐","🍊 : 🍍 : 🍒","🔔 : 🔔 : 🥑","🍌 : 🍒 : 🍉","🍐 : 🍓 : 🍎","🍊 : 🍋 : 🍒","🍋 : 🥑 : 🍌","🔔 : 🍎 : 🍇","🍉 : 🍐 : 🥥","🔔 : 🍑 : 🥑","🍒 : 🔔 : 🍊","🍇 : 🍓 : 🍐","🍊 : 🍋 : 🔔","🥑 : 🍍 : 🍐","🔔 : 🍒 : 🍉","🍊 : 🥑 : 🔔","🍎 : 🍒 : 🍎","🍐 : 🍉 : 🍐","🍊 : 🥑 : 🍓","🍋 : 🔔 : 🍇","🍌 : 🍒 : 🍉","🍐 : 🔔 : 🥑","🍓 : 🍋 : 🍒","🍋 : 🥑 : 🍌","🔔 : 🍎 : 🥥","🍉 : 🍐 : 🍇","🍊 : 🍒 : 🍐","🥑 : 🍓 : 🍉","🍇 : 🍒 : 🍍","🍊 : 🥑 : 🍑","🍑 : 🍎 : 🍐","🔔 : 🍒 : 🍊","🍉 : 🥝 : 🍎","🍐 : 🍉 : 🍋","🍐 : 🥑 : 🍐","🍊 : 🍒 : 🍓","🍑 : 🔔 : 🍉","🍌 : 🥑 : 🥝","🍐 : 🍉 : 🔔","🍊 : 🍓 : 🍒","🍋 : 🍋 : 🍉","🥑 : 🍎 : 🍇","🔔 : 🍑 : 🥑","🍊 : 🥥 : 🍐","🍍 : 🍓 : 🍊","🍉 : 🍒 : 🍐","🍊 : 🍋 : 🍉","🔔 : 🍎 : 🍐","🍓 : 🥑 : 🍊","🍊 : 🍋 : 🔔","🍐 : 🍒 : 🍑","🥝 : 🍉 : 🍐","🍓 : 🍍 : 🍒","🔔 : 🔔 : 🍇","🍌 : 🍒 : 🍉","🍐 : 🍉 : 🍓","🍊 : 🍐 : 🍒","🍊 : 🍒 : 🍐","🥝 : 🍉 : 🥑","🥑 : 🍒 : 🍐","🍊 : 🍋 : 🔔","🔔 : 🍍 : 🍐","🍓 : 🍉 : 🍊","🍊 : 🍋 : 🍓","🍐 : 🍒 : 🍋","🥑 : 🍐 : 🥥","🍊 : 🍒 : 🍍","🍎 : 🔔 : 🍇","🍌 : 🍇 : 🍓","🍓 : 🔔 : 🍎","🍊 : 🍉 : 🍍","🍋 : 🍋 : 🍌","🍎 : 🔔 : 🍉","🔔 : 🍐 : 🍇","🍊 : 🍒 : 🍐","🍍 : 🔔 : 🥑","🍇 : 🥝 : 🍎","🍊 : 🍉 : 🔔","🔔 : 🍓 : 🍐","🔔 : 🍒 : 🍊","🥑 : 🍋 : 🔔","🍐 : 🍒 : 🍋","🍉 : 🍐 : 🍉","🍊 : 🥥 : 🥑","🔔 : 🍍 : 🍇","🍌 : 🍎 : 🔔","🍐 : 🔔 : 🍎","🍊 : 🥥 : 🍒","🍉 : 🍋 : 🍌","🍑 : 🔔 : 🍇","🔔 : 🍐 : 🍉","🍊 : 🥝 : 🍐","🍍 : 🔔 : 🍊","🍇 : 🍒 : 🍐","🍊 : 🍋 : 🔔","🍉 : 🍒 : 🍐","🔔 : 🥝 : 🍊","🍊 : 🍋 : 🔔","🍐 : 🍍 : 🍋","🥝 : 🍐 : 🍉","🍊 : 🍑 : 🍍","🔔 : 🔔 : 🍓","🍌 : 🍒 : 🔔","🍐 : 🔔 : 🥝","🍉 : 🍋 : 🍒","🍋 : 🥑 : 🍌","🔔 : 🥥 : 🍇","🍓 : 🍐 : 🍇","🍊 : 🍍 : 🍉","🍒 : 🔔 : 🍊","🍇 : 🥑 : 🍐","🍊 : 🍋 : 🔔","🔔 : 🍒 : 🍐","🍉 : 🍓 : 🥑","🍊 : 🍋 : 🔔","🍐 : 🍒 : 🍋","🍍 : 🍐 : 🥝","🥑 : 🍓 : 🍉","🍑 : 🔔 : 🥑","🍌 : 🍒 : 🔔","🍉 : 🍍 : 🥥","🍊 : 🍋 : 🍒","🍋 : 🍍 : 🍌","🥥 : 🍎 : 🍉","🔔 : 🍑 : 🍓","🍉 : 🥑 : 🍐","🍒 : 🔔 : 🍊","🍇 : 🍍 : 🍐","🍓 : 🥑 : 🍍","🔔 : 🍒 : 🍐","🥥 : 🍒 : 🍊","🍊 : 🍋 : 🔔","🍐 : 🍉 : 🍋","🍐 : 🍑 : 🍐","🥑 : 🍒 : 🍓","🔔 : 🍎 : 🍇","🍌 : 🍒 : 🔔","🍐 : 🥥 : 🍍","🍊 : 🍋 : 🍒","🍓 : 🍉 : 🍌","🍍 : 🔔 : 🍇","🔔 : 🍐 : 🍎","🍊 : 🍒 : 🍐","🍉 : 🔔 : 🥑","🍇 : 🥥 : 🍎","🍊 : 🍋 : 🔔","🔔 : 🍓 : 🍐","🔔 : 🍒 : 🍊","🥑 : 🥑 : 🥑","🍉 : 🍉 : 🍉","🍓 : 🍓 : 🍓","🍎 : 🍎 : 🍎","🍍 : 🍍 : 🍍","🥝 : 🥝 : 🥝","🍑 : 🍑 : 🍑","🥥 : 🥥 : 🥥","🍇 : 🍇 : 🍇","🍊 : 🍊 : 🍊","🔔 : 🔔 : 🔔","🍒 : 🍒 : 🍒","🍌 : 🍌 : 🍌","🍐 : 🍐 : 🍐","🍋 : 🍋 : 🍋","🥑 : 🍉 : 🔔","🍐 : 🍒 : 🍋","🍑 : 🍎 : 🍐","🍊 : 🍍 : 🍒","🔔 : 🔔 : 🥑","🍌 : 🍒 : 🍉","🍐 : 🍓 : 🍎","🍊 : 🍋 : 🍒","🍋 : 🥑 : 🍌","🔔 : 🍎 : 🍇","🍉 : 🍐 : 🥥","🔔 : 🍑 : 🥑","🍒 : 🔔 : 🍊","🍇 : 🍓 : 🍐","🍊 : 🍋 : 🔔","🥑 : 🍍 : 🍐","🔔 : 🍒 : 🍉","🍊 : 🥑 : 🔔","🍎 : 🍒 : 🍎","🍐 : 🍉 : 🍐","🍊 : 🥑 : 🍓","🍋 : 🔔 : 🍇","🍌 : 🍒 : 🍉","🍐 : 🔔 : 🥑","🍓 : 🍋 : 🍒","🍋 : 🥑 : 🍌","🔔 : 🍎 : 🥥","🍉 : 🍐 : 🍇","🍊 : 🍒 : 🍐","🥑 : 🍓 : 🍉","🍇 : 🍒 : 🍍","🍊 : 🥑 : 🍑","🍑 : 🍎 : 🍐","🔔 : 🍒 : 🍊","🍉 : 🥝 : 🍎","🍐 : 🍉 : 🍋","🍐 : 🥑 : 🍐","🍊 : 🍒 : 🍓","🍑 : 🔔 : 🍉","🍌 : 🥑 : 🥝","🍐 : 🍉 : 🔔","🍊 : 🍓 : 🍒","🍋 : 🍋 : 🍉","🥑 : 🍎 : 🍇","🔔 : 🍑 : 🥑","🍊 : 🥥 : 🍐","🍍 : 🍓 : 🍊","🍉 : 🍒 : 🍐","🍊 : 🍋 : 🍉","🔔 : 🍎 : 🍐","🍓 : 🥑 : 🍊","🍊 : 🍋 : 🔔","🍐 : 🍒 : 🍑","🥝 : 🍉 : 🍐","🍓 : 🍍 : 🍒","🔔 : 🔔 : 🍇","🍌 : 🍒 : 🍉","🍐 : 🍉 : 🍓","🍊 : 🍐 : 🍒","🥑 : 🥑 : 🥑","🍉 : 🍉 : 🍉","🍓 : 🍓 : 🍓","🍎 : 🍎 : 🍎","🍍 : 🍍 : 🍍","🥝 : 🥝 : 🥝","🍑 : 🍑 : 🍑","🥥 : 🥥 : 🥥","🍇 : 🍇 : 🍇","🍊 : 🍊 : 🍊","🔔 : 🔔 : 🔔","🍒 : 🍒 : 🍒","🍌 : 🍌 : 🍌","🍐 : 🍐 : 🍐","🍋 : 🍋 : 🍋"]
--------------------------------------------------------------------------------
/clover.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs')
2 | const P = require('pino')
3 | const { Boom } = require('@hapi/boom')
4 | const fetch = require('node-fetch')
5 | const chalk = require('chalk')
6 | const { color } = require('./lib/color')
7 | const moment = require('moment-timezone')
8 | const hora = moment.tz('America/Sao_Paulo').format('HH:mm:ss')
9 | const data = moment.tz('America/Sao_Paulo').format('DD/MM/YY')
10 | const yts = require('yt-search');
11 | const speed = require('performance-now')
12 | const { banner, getGroupAdmins, getBuffer, getRandom, getExtension } = require('./lib/funções')
13 | const { fetchJson } = require('./lib/fetcher')
14 | const sotoy = JSON.parse(fs.readFileSync('./lib/sotoy.json'))
15 | const configurações = JSON.parse(fs.readFileSync('./confing.json'))
16 | const textobv = JSON.parse(fs.readFileSync('./lib/TextoDoBemvindo.json'))
17 | const { convertSticker } = require("./lib/swm.js");
18 | const ffmpeg = require('fluent-ffmpeg')
19 | const { exec, spawn, execSync } = require("child_process")
20 | const axios = require("axios")
21 | const linkfy = require('linkifyjs');
22 | const anikit = require('trevo-api');
23 | // Definições
24 | const prefixo = configurações.prefix
25 | const prefix = configurações.prefix
26 | const nomeBot = configurações.nomeBot
27 | const NomeDoBot = nomeBot
28 | const nomeDono = configurações.nomeDono
29 | const numeroDono = configurações.owner
30 | const username = configurações.username_anikit
31 | const key = configurações.key_anikit
32 | const log = ["clover2.jpg"]
33 | const im = log[Math.floor(Math.random() * log.length)];
34 | const imagens = fs.readFileSync(`./${im}`)
35 | const logo = imagens
36 | let girastamp = speed()
37 | let latensi = speed() - girastamp
38 |
39 | const { default: makeWASocket, downloadContentFromMessage, useMultiFileAuthState, makeInMemoryStore, DisconnectReason, WAGroupMetadata, relayWAMessage, MediaPathMap, mentionedJid, processTime, MediaType, Browser, MessageType, Presence, Mimetype, Browsers, delay, fetchLatestBaileysVersion, MessageRetryMap, extractGroupMetadata, generateWAMessageFromContent, proto } = require('@whiskeysockets/baileys');
40 | const { response } = require('express')
41 |
42 |
43 | module.exports = client = async (client, info, settings, color) => {
44 |
45 | try {
46 | const altpdf = Object.keys(info.message)
47 | const type = altpdf[0] == 'senderKeyDistributionMessage' ? altpdf[1] == 'messageContextInfo' ? altpdf[2] : altpdf[1] : altpdf[0]
48 | global.prefixo
49 | const content = JSON.stringify(info.message)
50 | const from = info.key.remoteJid
51 | selectedButton = (type == 'buttonsResponseMessage') ? info.message.buttonsResponseMessage.selectedButtonId : ''
52 | var body = (type === 'conversation') ?
53 | info.message.conversation : (type == 'imageMessage') ?
54 | info.message.imageMessage.caption : (type == 'videoMessage') ?
55 | info.message.videoMessage.caption : (type == 'extendedTextMessage') ?
56 | info.message.extendedTextMessage.text : (type == 'buttonsResponseMessage') ?
57 | info.message.buttonsResponseMessage.selectedButtonId : (type == 'listResponseMessage') ?
58 | info.message.listResponseMessage.singleSelectReply.selectedRowId : (type == 'templateButtonReplyMessage') ?
59 | info.message.templateButtonReplyMessage.selectedId : ''
60 | const args = body.trim().split(/ +/).slice(1)
61 | const isCmd = body.startsWith(prefixo)
62 | const comando = isCmd ? body.slice(1).trim().split(/ +/).shift().toLocaleLowerCase() : null
63 | const argsButton = selectedButton.trim().split(/ +/)
64 | bady = (type === 'conversation') ? info.message.conversation : (type == 'imageMessage') ? info.message.imageMessage.caption : (type == 'videoMessage') ? info.message.videoMessage.caption : (type == 'extendedTextMessage') ? info.message.extendedTextMessage.text : (info.message.listResponseMessage && info.message.listResponseMessage.singleSelectReply.selectedRowId) ? info.message.listResponseMessage.singleSelectReply.selectedRowId : ''
65 | budy = (type === 'conversation') ? info.message.conversation : (type === 'extendedTextMessage') ? info.message.extendedTextMessage.text : ''
66 | button = (type == 'buttonsResponseMessage') ? info.message.buttonsResponseMessage.selectedDisplayText : ''
67 | button = (type == 'buttonsResponseMessage') ? info.message.buttonsResponseMessage.selectedButtonId : ''
68 | listMessage = (type == 'listResponseMessage') ? info.message.listResponseMessage.title : ''
69 | var pes = (type === 'conversation' && info.message.conversation) ? info.message.conversation : (type == 'imageMessage') && info.message.imageMessage.caption ? info.message.imageMessage.caption : (type == 'videoMessage') && info.message.videoMessage.caption ? info.message.videoMessage.caption : (type == 'extendedTextMessage') && info.message.extendedTextMessage.text ? info.message.extendedTextMessage.text : ''
70 | bidy = budy.toLowerCase()
71 |
72 |
73 | const getFileBuffer = async (mediakey, MediaType) => {
74 | const stream = await downloadContentFromMessage(mediakey, MediaType)
75 |
76 | let buffer = Buffer.from([])
77 | for await (const chunk of stream) {
78 | buffer = Buffer.concat([buffer, chunk])
79 | }
80 | return buffer
81 | }
82 |
83 | const antilink = JSON.parse(fs.readFileSync('./lib/antilink.json'))
84 | const messagesC = pes.slice(0).trim().split(/ +/).shift().toLowerCase()
85 | const arg = body.substring(body.indexOf(' ') + 1)
86 | const argss = body.split(/ +/g)
87 | const testat = body
88 | const ants = body
89 | const isGroup = info.key.remoteJid.endsWith('@g.us')
90 | const tescuk = ['0@s.whatsapp.net']
91 | const q = args.join(' ')
92 | const sender = isGroup ? info.key.participant : info.key.remoteJid
93 | const pushname = info.pushName ? info.pushName : ''
94 | const groupMetadata = isGroup ? await client.groupMetadata(from) : ''
95 | const groupName = isGroup ? groupMetadata.subject : ''
96 | const groupDesc = isGroup ? groupMetadata.desc : ''
97 | const groupMembers = isGroup ? groupMetadata.participants : ''
98 | const groupAdmins = isGroup ? getGroupAdmins(groupMembers) : ''
99 | const text = args.join(' ')
100 | var isAntilink = isGroup ? antilink.includes(from) : false
101 |
102 | // Selos de verificado
103 | const ContatVR = { key: { participant: '0@s.whatsapp.net' }, message: { contactMessage: { displayName: `${pushname}` } } }
104 | const LiveVR = { key: { participant: '0@s.whatsapp.net' }, message: { liveLocationMessage: { displayName: `${pushname}` } } }
105 | const ImagenVR = { key: { participant: '0@s.whatsapp.net' }, message: { imageMessage: { displayName: `${pushname}` } } }
106 | const VideoVR = { key: { participant: '0@s.whatsapp.net' }, message: { videoMessage: { displayName: `${pushname}` } } }
107 | const DocVR = { key: { participant: '0@s.whatsapp.net' }, message: { documentMessage: { displayName: `${pushname}` } } }
108 |
109 |
110 | // Consts dono/adm etc...
111 | const quoted = info.quoted ? info.quoted : info
112 | const mime = (quoted.info || quoted).mimetype || ""
113 | const numeroBot = client.user.id.split(':')[0] + '@s.whatsapp.net'
114 | const isBot = info.key.fromMe ? true : false
115 | const isBotGroupAdmins = groupAdmins.includes(numeroBot) || false
116 | const isGroupAdmins = groupAdmins.includes(sender) || false
117 | const argis = bidy.trim().split(/ +/)
118 | const isOwner = sender.includes(numeroDono)
119 | const enviar = (texto) => {
120 | client.sendMessage(from, { text: texto }, { quoted: info })
121 | }
122 | const reply = (texto) => {
123 | client.sendMessage(from, { text: texto }, { quoted: info })
124 | }
125 | const participants = isGroup ? await groupMetadata.participants : ''
126 |
127 |
128 |
129 | const welkom = JSON.parse(fs.readFileSync('./lib/welkom.json'));
130 | const isWelkom = isGroup ? welkom.includes(from) : false
131 |
132 |
133 |
134 | // Consts isQuoted
135 | const isImage = type == 'imageMessage'
136 | const isVideo = type == 'videoMessage'
137 | const isAudio = type == 'audioMessage'
138 | const isSticker = type == 'stickerMessage'
139 | const isContact = type == 'contactMessage'
140 | const isLocation = type == 'locationMessage'
141 | const isProduct = type == 'productMessage'
142 | const isMedia = (type === 'imageMessage' || type === 'videoMessage' || type === 'audioMessage')
143 | typeMessage = body.substr(0, 50).replace(/\n/g, '')
144 | if (isImage) typeMessage = 'Image'
145 | else if (isVideo) typeMessage = 'Video'
146 | else if (isAudio) typeMessage = 'Audio'
147 | else if (isSticker) typeMessage = 'Sticker'
148 | else if (isContact) typeMessage = 'Contact'
149 | else if (isLocation) typeMessage = 'Location'
150 | else if (isProduct) typeMessage = 'Product'
151 | const isQuotedMsg = type === 'extendedTextMessage' && content.includes('textMessage')
152 | const isQuotedImage = type === 'extendedTextMessage' && content.includes('imageMessage')
153 | const isQuotedVideo = type === 'extendedTextMessage' && content.includes('videoMessage')
154 | const isQuotedDocument = type === 'extendedTextMessage' && content.includes('documentMessage')
155 | const isQuotedAudio = type === 'extendedTextMessage' && content.includes('audioMessage')
156 | const isQuotedSticker = type === 'extendedTextMessage' && content.includes('stickerMessage')
157 | const isQuotedContact = type === 'extendedTextMessage' && content.includes('contactMessage')
158 | const isQuotedLocation = type === 'extendedTextMessage' && content.includes('locationMessage')
159 | const isQuotedProduct = type === 'extendedTextMessage' && content.includes('productMessage')
160 |
161 | var msg = {
162 | espere: "agrade um momento...."
163 | }
164 | resposta = {
165 | espere: "[⚙️️]Aguarde...enviando ",
166 | aguarde: "[⚙️️]Aguarde...enviando ",
167 | dono: "[⚙️️]Esse comando so pode ser usado pelo meu dono!!! ",
168 | grupo: "[⚙️️]Esse comando só pode ser usado em grupo ",
169 | premium: "[⚙️️]comando so pra usuários premium",
170 | privado: "[⚙️️]Esse comando só pode ser usado no privado ",
171 | adm: "[⚙️️]Esse comando só pode ser usado por administradores de grupo",
172 | botadm: "[⚙️️]Este comando só pode ser usado quando o bot se torna administrador ",
173 | registro: `[⚙️️] Você não se registrou utilize ${prefix}rg para se registrar `,
174 | norg: "[⚙️️] Você ja está registrado ",
175 | erro: "[⚙️️] Error, tente novamente mais tarde ",
176 | menu: "aaaaa"
177 | }
178 |
179 |
180 | const isUrl = (url) => {
181 | if (linkfy.find(url)[0]) return true
182 | return false
183 | }
184 | if (isUrl(body) && isAntilink && isGroup && isBotGroupAdmins) {
185 | if (!isAntilink) return
186 | if (!isUrl(body)) return
187 | if (body.includes("http")) {
188 | if (!budy.includes("http")) return
189 | if (isBot) return
190 | linkgpp = await client.groupInviteCode(from)
191 | if (budy.match(`${linkgpp}`)) return reply('*Link do nosso grupo, não irei remover.. *')
192 | if (isGroupAdmins) return reply("*Link detectado, porém usuário é admin*")
193 | if (!JSON.stringify(groupMembers).includes(sender)) return
194 | client.sendMessage(from, { delete: { remoteJid: from, fromMe: false, id: info.key.id, participant: [sender] } })
195 | client.groupParticipantsUpdate(from, [sender], 'remove')
196 | }
197 | }
198 |
199 | const mentions = (teks, memberr, id) => {
200 | (id == null || id == undefined || id == false) ? client.sendMessage(from, { text: teks.trim(), mentions: memberr }) : client.sendMessage(from, { text: teks.trim(), mentions: memberr })
201 | }
202 |
203 | if (!isGroup && isCmd) console.log(`${color('╭━━━━━━━━━━━━━━━━━━━━━━━━━╮', 'cyan')}\n${color('┃', 'cyan')} ${color('Número:', 'yellow')} ${color(sender.split('@')[0], 'purple')}\n${color('┃', 'cyan')} ${color('Nome:', 'yellow')} ${color(pushname, 'purple')}\n${color('┃', 'cyan')} ${color('Comando:', 'yellow')} ${color(comando)}\n${color('┃', 'cyan')} ${color('Palavras:', 'yellow')} ${color(budy.length, 'magenta')}\n${color('╰━━━━━━━━━━━━━━━━━━━━━━━━━╯', 'cyan')}`)
204 | if (!isGroup && !isCmd) console.log(`${color('╭━━━━━━━━━━━━━━━━━━━━━━━━━╮', 'cyan')}\n${color('┃', 'cyan')} ${color('Número:', 'yellow')} ${color(sender.split('@')[0], 'magenta')}\n${color('┃', 'cyan')} ${color('Nome:', 'yellow')} ${color(pushname, 'purple')}\n${color('┃', 'cyan')} ${color('Comando:', 'yellow')} ${color('Não', 'red')}\n${color('┃', 'cyan')} ${color('Palavras:', 'yellow')} ${color(budy.length, 'magenta')}\n${color('╰━━━━━━━━━━━━━━━━━━━━━━━━━╯', 'cyan')}`)
205 | if (isGroup && isGroup) console.log(`${color('╭━━━━━━━━━━━━━━━━━━━━━━━━━╮', 'cyan')}\n${color('┃', 'cyan')} ${color('Número:', 'yellow')} ${color(sender.split('@')[0], 'magenta')}\n${color('┃', 'cyan')} ${color('Nome:', 'yellow')} ${color(pushname, 'purple')}\n${color('┃', 'cyan')} ${color('Comando:', 'yellow')} ${color(comando)}\n${color('┃', 'cyan')} ${color('Palavras:', 'yellow')} ${color(budy.length, 'magenta')}\n${color('┃', 'cyan')} ${color('Grupo:', 'yellow')} ${color(groupName, 'magenta')}\n${color('╰━━━━━━━━━━━━━━━━━━━━━━━━━╯', 'cyan')}`)
206 | if (!isGroup && isGroup) console.log(`${color('╭━━━━━━━━━━━━━━━━━━━━━━━━━╮', 'cyan')}\n${color('┃', 'cyan')} ${color('Número:', 'yellow')} ${color(sender.split('@')[0], 'magenta')}\n${color('┃', 'cyan')} ${color('Nome:', 'yellow')} ${color(pushname, 'purple')}\n${color('┃', 'cyan')} ${color('Horário:', 'yellow')} ${color(time, 'magenta')}\n${color('┃', 'cyan')} ${color('Comando:', 'yellow')} ${color('Não', 'red')}\n${color('┃', 'cyan')} ${color('Palavras:', 'yellow')} ${color(budy.length, 'magenta')}\n${color('┃', 'cyan')} ${color('Grupo:', 'yellow')} ${color(groupName, 'magenta')}\n${color('╰━━━━━━━━━━━━━━━━━━━━━━━━━╯', 'cyan')}`)
207 |
208 |
209 | var command = comando
210 | switch (comando) {
211 | // COMANDOS COM PREFIXO COMEÇAM A PARTIR DAQUI!!! \\
212 |
213 | case "comandos":
214 | case "help":
215 | case "start":
216 | case 'menu': {
217 | client.sendMessage(from, {
218 | image: fs.readFileSync('./clover2.jpg'), caption: `
219 | ╭━━━━━━━━━━━━━━━━━━━━━━━━━╮
220 | ┃~> MENU ADM
221 | ┃━━━━━━━━━━━━━━━━━━━━━━━━━╯
222 | ┃ ${prefix}ban
223 | ┃ ${prefix}reviver
224 | ┃ ${prefix}bemvindo 1/0
225 | ┃ ${prefix}marcar
226 | ┃ ${prefix}hidetag
227 | ┃ ${prefix}tagall
228 | ┃ ${prefix}grupo a
229 | ┃ ${prefix}grupo f
230 | ┃ ${prefix}nomegp
231 | ┃ ${prefix}descgp
232 | ┃ ${prefix}fotogp
233 | ┃ ${prefix}resetarlink
234 | ┃ ${prefix}gplink
235 | ┃ ${prefix}promover
236 | ┃ ${prefix}rebaixar
237 | ┃ ${prefix}antilink 1/0
238 | ┃ ${prefix}
239 | ┃ ${prefix}
240 | ╰━━━━━━━━━━━━━━━━━━━━━━━━━╯
241 | ╭━━━━━━━━━━━━━━━━━━━━━━━━━╮
242 | ┃~> MENU BRINCADEIRA
243 | ┃━━━━━━━━━━━━━━━━━━━━━━━━━╯
244 | ┃ ${prefix}feio
245 | ┃ ${prefix}gay
246 | ┃ ${prefix}gostoso
247 | ┃ ${prefix}lindo
248 | ┃ ${prefix}punheteiro
249 | ┃ ${prefix}cassino
250 | ┃ ${prefix}ppt
251 | ╭━━━━━━━━━━━━━━━━━━━━━━━━━╮
252 | ┃~> MENU ANIME
253 | ┃━━━━━━━━━━━━━━━━━━━━━━━━━╯
254 | ┃ ${prefix}eps-recentes
255 | ┃━━━━━━━━━━━━━━━━━━━━━━━━
256 | ┃ ${prefix}cosplay
257 | ┃ ${prefix}waifu
258 | ┃ ${prefix}waifu2
259 | ┃ ${prefix}shota
260 | ┃ ${prefix}loli
261 | ┃ ${prefix}yotsuba
262 | ┃ ${prefix}shinomiya
263 | ┃ ${prefix}yumeko
264 | ┃ ${prefix}tejina
265 | ┃ ${prefix}chiho
266 | ┃ ${prefix}shizuka
267 | ┃ ${prefix}boruto
268 | ┃ ${prefix}kagori
269 | ┃ ${prefix}kaga
270 | ┃ ${prefix}kotori
271 | ┃ ${prefix}mikasa
272 | ┃ ${prefix}akiyama
273 | ┃ ${prefix}hinata
274 | ┃ ${prefix}minato
275 | ┃ ${prefix}naruto
276 | ┃ ${prefix}nezuko
277 | ┃ ${prefix}yuki
278 | ┃ ${prefix}hestia
279 | ┃ ${prefix}emilia
280 | ┃ ${prefix}itachi
281 | ┃ ${prefix}elaina
282 | ┃ ${prefix}madara
283 | ┃ ${prefix}sasuke
284 | ┃ ${prefix}deidara
285 | ┃ ${prefix}sakura
286 | ┃ ${prefix}tsunade
287 | ┃━ HENTAI
288 | ┃ ${prefix}ahegao
289 | ┃ ${prefix}ass
290 | ┃ ${prefix}bdsm
291 | ┃ ${prefix}blowjob
292 | ┃ ${prefix}cuckold
293 | ┃ ${prefix}cum
294 | ┃ ${prefix}ero
295 | ┃ ${prefix}kasedaiki
296 | ┃ ${prefix}femdom
297 | ┃ ${prefix}foot
298 | ┃ ${prefix}gangbang
299 | ┃ ${prefix}glasses
300 | ┃ ${prefix}hentai2
301 | ┃ ${prefix}jahy
302 | ┃ ${prefix}manga
303 | ┃ ${prefix}masturbation
304 | ┃ ${prefix}neko
305 | ┃ ${prefix}orgy
306 | ┃ ${prefix}panties
307 | ┃ ${prefix}pussy
308 | ┃ ${prefix}neko2
309 | ┃ ${prefix}neko
310 | ┃ ${prefix}tentacles
311 | ┃ ${prefix}thighs
312 | ┃ ${prefix}yuri
313 | ┃ ${prefix}zettai
314 | ╰━━━━━━━━━━━━━━━━━━━━━━━━━╯
315 | os comandos nao estao todos listados aqui entao vc nao pode achar alguns nesse menu...
316 | `})
317 | } break
318 |
319 |
320 | case 'play-vídeo':
321 | case 'play-video': {
322 | if (!args.join(' ' < 1)) return reply("Coloque o nume do video junto ou o link mas tem que ser do youtube...")
323 | const pedido = args.join('');
324 | reply("enviando...")
325 | anikit.playMP4(`${q}`, username, key).then((response) => {
326 | //console.log(response);
327 | client.sendMessage(from, {
328 | image: { url: `${response.thumb}` }, caption: `
329 | Titulo: ${response.title}
330 | Canal: ${response.channel}
331 | Views: ${response.views}
332 | `});
333 |
334 | client.sendMessage(from, { video: { url: `${response.url}` } });
335 | })
336 | } break
337 |
338 | case 'play-áudio':
339 | case 'play-audio': {
340 | if (!args.join(' ' < 1)) return reply("Coloque o nume do video junto ou o link mas tem que ser do youtube...")
341 | const pedido = args.join('');
342 | reply("enviando...")
343 | anikit.playMP3(`${q}`, username, key).then((response) => {
344 | //console.log(response);
345 | client.sendMessage(from, {
346 | image: { url: `${response.thumb}` }, caption: `
347 | Titulo: ${response.title}
348 | Canal: ${response.channel}
349 | Views: ${response.views}
350 | `});
351 |
352 | client.sendMessage(from, { audio: { url: `${response.url}` }, mimetype: 'audio/mpeg' });
353 | })
354 | } break
355 |
356 | /*
357 | client.sendMessage(from, {
358 | image: { url: `${response.thumb}` }, caption: `
359 | Titulo: ${response.title}
360 | Canal: ${response.channel}
361 | Views: ${response.views}
362 | `});
363 |
364 | client.sendMessage(from, { video: { url:`${response.url}` } });
365 | */
366 |
367 | case 'novamensagem':
368 | if (!isOwner) return reply(resposta.dono);
369 | const novaMensagem = `${q}`;
370 | textobv.texto = novaMensagem
371 | fs.writeFileSync('./lib/TextoDoBemvindo.json', JSON.stringify(textobv, null, '\t'))
372 | reply('A mensagem de boas-vindas foi alterada com sucesso.');
373 | break;
374 |
375 |
376 |
377 | case 'welcome':
378 | case 'bemvindo':
379 | if (!isGroup) return reply(`SÓ EM GRUPO`)
380 | if (!isGroupAdmins) return reply(`PRECISA SER ADMININASTROR`)
381 | if (!isBotGroupAdmins) return reply(`BOT PREPRECISA SER ADMININASTROR`)
382 | if (Number(args[0]) === 1) {
383 | if (isWelkom) return reply('Ja esta ativo')
384 | welkom.push(from)
385 | fs.writeFileSync('./lib/welkom.json', JSON.stringify(welkom))
386 | reply(' Ativou com sucesso o recurso de bem vindo neste grupo 📝')
387 | } else if (Number(args[0]) === 0) {
388 | if (!isWelkom) return reply('Ja esta Desativado')
389 | pesquisar = from
390 | processo = welkom.indexOf(pesquisar)
391 | while (processo >= 0) {
392 | welkom.splice(processo, 1)
393 | processo = welkom.indexOf(pesquisar)
394 | }
395 | fs.writeFileSync('./lib/welkom.json', JSON.stringify(welkom))
396 | reply('‼️ Desativou com sucesso o recurso de bemvindo neste grupo✔️')
397 | } else {
398 | reply("1 para ativar, 0 para desativar")
399 | }
400 | break
401 |
402 |
403 |
404 | case 'gerarlink':
405 | case 'imgpralink':
406 | case "telegra.ph":
407 | try {
408 | if (isQuotedImage) {
409 | boij = isQuotedImage || isQuotedVideo ? JSON.parse(JSON.stringify(info).replace("quotedM", "m")).message.extendedTextMessage.contextInfo.message.imageMessage : info
410 | const fetch = require('node-fetch');
411 | const FormData = require('form-data');
412 | const fs = require('fs');
413 | async function uploadImageToTelegraph(imageBuffer) {
414 | const form = new FormData();
415 | form.append('file', imageBuffer, { filename: 'image.jpg' });
416 |
417 | const response = await fetch('https://telegra.ph/upload', {
418 | method: 'POST',
419 | body: form,
420 | });
421 | const data = await response.json();
422 | if (data && data[0] && data[0].src) {
423 | return 'https://telegra.ph' + data[0].src;
424 | } else {
425 | throw new Error('Failed to retrieve the image URL from the response.');
426 | }
427 | }
428 | const owgi = await getFileBuffer(boij, "image");
429 | const imageUrl = await uploadImageToTelegraph(owgi);
430 | reply(imageUrl);
431 | } else {
432 | reply('marque a ft')
433 | }
434 | } catch (e) {
435 | console.log(e)
436 | reply('error...')
437 | }
438 | break
439 |
440 | case 'tagall':
441 | case 'marcar': {
442 | if (!isGroup) return reply(resposta.group)
443 | if (!isGroupAdmins) return reply(resposta.adm)
444 | let metadata = await client.groupMetadata(from)
445 | let teks = `
446 | \n ${metadata.participants.length ? metadata.participants.length : "undefined"} participantes do grupo
447 | \n ${args.join(" ") ? args.join(" ") : 'kosong'}*\n\n`
448 | for (let mem of participants) {
449 | teks += `┃❖ @${mem.id.split('@')[0]}\n`
450 | }
451 | client.sendMessage(from, { text: teks, mentions: participants.map(a => a.id) }, { quoted: info })
452 | }
453 | break
454 |
455 | case 'videourl':
456 | case 'videopralink':
457 | try {
458 | if (isQuotedVideo) {
459 | boij = isQuotedVideo ? info.message.extendedTextMessage.contextInfo.quotedMessage.videoMessage
460 | : info.message.videoMessage;
461 | const fetch = require('node-fetch');
462 | const FormData = require('form-data');
463 | const fs = require('fs');
464 | async function uploadVideoToTelegraph(videoBuffer) {
465 | const form = new FormData();
466 | form.append('file', videoBuffer, { filename: 'media' });
467 |
468 | const response = await fetch('https://telegra.ph/upload', {
469 | method: 'POST',
470 | body: form,
471 | });
472 | const data = await response.json();
473 | if (data && data[0] && data[0].src) {
474 | return 'https://telegra.ph' + data[0].src;
475 | } else {
476 | throw new Error('Failed to retrieve the image URL from the response.');
477 | }
478 | }
479 | const owgi = await getFileBuffer(boij, "video");
480 | const imageUrl = await uploadVideoToTelegraph(owgi);
481 | reply(imageUrl);
482 | } else {
483 | reply('marque o video')
484 | }
485 | } catch (e) {
486 | console.log(e)
487 | reply('error...')
488 | }
489 | break
490 |
491 |
492 |
493 | case 'totag':
494 | case 'cita':
495 | case 'hidetag':
496 | if (!isGroup) return reply('Este comando só deve ser utilizado em Grupo.')
497 | if (!isGroupAdmins) return reply('Você precisa ser ADM pra utilizar este comando')
498 | if (q.includes(`${prefix}`)) return reply("Não pode utilizar comandos nesse comando")
499 | if (q.includes("=>") || q.includes(">")) return
500 | membros = (groupId, membros1) => {
501 | array = []
502 | for (let i = 0; i < membros1.length; i++) {
503 | array.push(membros1[i].id)
504 | }
505 | return array
506 | }
507 | var yd = membros(from, groupMembers)
508 | if ((isMedia && !info.message.videoMessage || isQuotedSticker) && args.length == 0) {
509 | media = isQuotedSticker ? info.message.extendedTextMessage.contextInfo.quotedMessage.stickerMessage : info.message.stickerMessage
510 | rane = getRandom('.' + await getExtension(media.mimetype))
511 | img = await getFileBuffer(media, 'sticker')
512 | fs.writeFileSync(rane, img)
513 | fig = fs.readFileSync(rane)
514 | var options = {
515 | sticker: fig,
516 | mentions: yd
517 | }
518 | client.sendMessage(from, options)
519 | } else if ((isMedia && !info.message.videoMessage || isQuotedImage) && args.length == 0) {
520 | media = isQuotedImage ? info.message.extendedTextMessage.contextInfo.quotedMessage.imageMessage : info.message.imageMessage
521 | rane = getRandom('.' + await getExtension(media.mimetype))
522 | img = await getFileBuffer(media, 'image')
523 | fs.writeFileSync(rane, img)
524 | buff = fs.readFileSync(rane)
525 | client.sendMessage(from, { image: buff, mentions: yd }, { quoted: info })
526 | } else if ((isMedia && !info.message.videoMessage || isQuotedVideo) && args.length == 0) {
527 | media = isQuotedVideo ? info.message.extendedTextMessage.contextInfo.quotedMessage.videoMessage : info.message.videoMessage
528 | rane = getRandom('.' + await getExtension(media.mimetype))
529 | vid = await getFileBuffer(media, 'video')
530 | fs.writeFileSync(rane, vid)
531 | buff = fs.readFileSync(rane)
532 | client.sendMessage(from, { video: buff, mimetype: 'video/mp4', mentions: yd }, { quoted: info })
533 | } else if ((isMedia && !info.message.videoMessage || isQuotedAudio) && args.length == 0) {
534 | media = isQuotedAudio ? info.message.extendedTextMessage.contextInfo.quotedMessage.audioMessage : info.message.audioMessage
535 | rane = getRandom('.' + await getExtension(media.mimetype))
536 | aud = await getFileBuffer(media, 'audio')
537 | fs.writeFileSync(rane, aud)
538 | buff = fs.readFileSync(rane)
539 | client.sendMessage(from, { audio: buff, mimetype: 'audio/mp4', ptt: true, mentions: yd }, { quoted: info })
540 | } else if ((isMedia && !info.message.videoMessage || isQuotedDocument) && args.length == 0) {
541 | media = isQuotedDocument ? info.message.extendedTextMessage.contextInfo.quotedMessage.documentMessage : info.message.documentMessage
542 | rane = getRandom('.' + await getExtension(media.mimetype))
543 | doc = await getFileBuffer(media, 'document')
544 | fs.writeFileSync(rane, doc)
545 | buff = fs.readFileSync(rane)
546 | client.sendMessage(from, { document: buff, mimetype: 'text/plain', mentions: yd }, { quoted: info })
547 | } else if (budy) {
548 | if (q.length < 1) return reply('Citar oq?')
549 | client.sendMessage(from, { text: body.slice(command.length + 2), mentions: yd })
550 | } else {
551 | reply(`Responder imagem/documento/gif/adesivo/áudio/vídeo com legenda ${prefix + command}`)
552 | }
553 | break
554 |
555 |
556 |
557 | case 'reviver':
558 | case 'add':
559 | if (!isGroup) return reply('🌸COMANDO SO PARA GRUPO🌸')
560 | if (!isOwner) return reply(resposta.dono)
561 | if (!isGroupAdmins) return reply('😂COMANDO SO PARA ADM😂')
562 | if (!isBotGroupAdmins) return reply("🌸BOT PRECISA SER ADM🌸")
563 | if (info.message.extendedTextMessage === undefined || info.message.extendedTextMessage === null) return reply('🌸MARQUE A MENSAGEM DO USUÁRIO PRA MIM ADICIONA🌸')
564 | response2 = await client.groupParticipantsUpdate(from, [menc_prt], "add")
565 | reply('🌸USUÁRIO ADICIONADO COM SUCESSO 🌸')
566 | break
567 |
568 | case 'sairgp':
569 | if (isGroup && !isOwner && !info.key.fromMe) return reply("🌸COMANDO SO PARA DONO🌸")
570 | try {
571 | client.groupLeave(from)
572 | } catch (erro) {
573 | reply(String(erro))
574 | }
575 | break
576 |
577 |
578 |
579 | case 'abrirgp':
580 | case 'fechagp':
581 | case 'grupo':
582 | if (!isGroup) return reply(`SÓ EM GRUPO`)
583 | if (!isGroupAdmins) return reply(`PRECISA SER ADMININASTROR`)
584 | if (!isBotGroupAdmins) return reply(`BOT PREPRECISA SER ADMININASTROR`)
585 | if (args[0] === 'a') {
586 | reply(`*GRUPO ABERTO COM SUCESSO*`)
587 | await client.groupSettingUpdate(from, 'not_announcement')
588 | } else if (args[0] === 'f') {
589 | reply(`*GRUPO FECHADO COM SUCESSO*`)
590 | await client.groupSettingUpdate(from, 'announcement')
591 | }
592 | break
593 |
594 |
595 |
596 | case 'novolink':
597 | case 'redefinir':
598 | if (!isGroupAdmins) return reply(resposta.adm)
599 | if (!isGroup) return reply(resposta.grupo)
600 | if (!isBotGroupAdmins) return reply(resposta.botadm)
601 | try {
602 | await client.groupRevokeInvite(from)
603 | reply('🌸LINK DO GRUPO REDEFINIDO🌸')
604 | } catch (e) {
605 | console.log(e)
606 | reply(`ERRO`)
607 | }
608 | break
609 |
610 |
611 |
612 | case 'setfotogp':
613 | case 'fotogp':
614 | addFilter(from)
615 | if (!isGroup) return reply('🌸ESTE COMANDO SO PODE SER UTILIZANDO EM GRUPO🌸')
616 | if (!isGroupAdmins) return reply('🌸COMANDO SO PARA ADM🌸')
617 | if (!isBotGroupAdmins) return reply('🌸O BOT PRECISA SER ADM🌸')
618 | if (!isQuotedImage) return reply(`Use: ${prefix + command} Marque uma foto`)
619 | ftgp = isQuotedImage ? info.message.extendedTextMessage.contextInfo.quotedMessage.imageMessage : info.message.imageMessage
620 | rane = getRandom('.' + await getExtension(ftgp.mimetype))
621 | buffimg = await getFileBuffer(ftgp, 'image')
622 | fs.writeFileSync(rane, buffimg)
623 | medipp = rane
624 | await client.updateProfilePicture(from, { url: medipp })
625 | reply(`🌸FOTO DO GRUPO ALTERADA COM SUCESSO🌸`)
626 | break
627 |
628 |
629 |
630 | case 'nomegp':
631 | {
632 | if (!isGroup) return reply(resposta.grupo)
633 | if (!isGroupAdmins) return reply(resposta.adm)
634 | if (!isBotGroupAdmins) return reply(resposta.botadm)
635 | blat = args.join(" ")
636 | client.groupUpdateSubject(from, `${blat}`)
637 | client.sendMessage(from, { text: '🌸NOME DO GRUPO ALTERADO COM SUCESSO 🌸' }, { quoted: info }).catch((err) => {
638 | reply(`erro`);
639 | })
640 | }
641 | break
642 |
643 |
644 |
645 | case 'descgp':
646 | case 'descriçãogp':
647 | if (!isGroup) return reply(resposta.grupo)
648 | if (!isGroupAdmins) return reply(resposta.adm)
649 | if (!isBotGroupAdmins) return reply(resposta.botadm)
650 | blabla = args.join(" ")
651 | client.groupUpdateDescription(from, `${blabla}`)
652 | client.sendMessage(from, { text: 'Sucesso, alterou a descrição do grupo' }, { quoted: info })
653 | break
654 |
655 |
656 | case 'setfotogp':
657 | case 'fotogp':
658 | addFilter(from)
659 | if (!isGroup) return reply('Só pode ser utilizado em Grupo')
660 | if (!isGroupAdmins) return reply('Você precisa ser ADM')
661 | if (!isBotGroupAdmins) return reply('O bot Precisa ser ADM')
662 | if (!isQuotedImage) return reply(`Use: ${prefix + command} `)
663 | ftgp = isQuotedImage ? info.message.extendedTextMessage.contextInfo.quotedMessage.imageMessage : info.message.imageMessage
664 | rane = getRandom('.' + await getExtension(ftgp.mimetype))
665 | buffimg = await getFileBuffer(ftgp, 'image')
666 | fs.writeFileSync(rane, buffimg)
667 | medipp = rane
668 | await client.updateProfilePicture(from, { url: medipp })
669 | reply(`Foto do grupo alterada com sucesso`)
670 | break
671 |
672 |
673 | case 'fotobot':
674 | if (!isOwner) return reply(resposta.dono)
675 | if (!isQuotedImage) return reply(`Envie fotos com legendas ${prefix}fotobot ou tags de imagem que já foram enviadas`)
676 | buff = await getFileBuffer(info.message.extendedTextMessage.contextInfo.quotedMessage.imageMessage, 'image')
677 | await client.updateProfilePicture(botNumber, buff)
678 | reply('Obrigado pelo novo perfil vlw')
679 | break
680 |
681 |
682 | case 's':
683 | case 'stickergif':
684 | case 'sgif':
685 | case 'f':
686 | case 'figu':
687 | case 'st':
688 | case 'stk':
689 | {
690 | (async function () {
691 | var legenda = q ? q?.split("/")[0] : ` `
692 | var autor = q ? q?.split("/")[1] : q?.split("/")[0] ? '' : ` `
693 | if (isMedia && !info.message.videoMessage || isQuotedImage) {
694 | var encmedia = isQuotedImage ? info.message.extendedTextMessage.contextInfo.quotedMessage.imageMessage : info.message.imageMessage
695 | rane = getRandom('.' + await getExtension(encmedia.mimetype))
696 | buffimg = await getFileBuffer(encmedia, 'image')
697 | fs.writeFileSync(rane, buffimg)
698 | rano = getRandom('.webp')
699 | exec(`ffmpeg -i ${rane} -vcodec libwebp -filter:v fps=fps=15 -lossless 1 -loop 0 -preset default -an -vsync 0 -s 800:800 ${rano}`, (err) => {
700 | fs.unlinkSync(rane)
701 | // "android-app-store-link": "https://play.google.com/store/search?q=%2B55%2094%209147-2796%20%F0%9F%94%A5%F0%9F%94%A5%F0%9F%94%A5%F0%9F%94%A5%F0%9F%94%A5&c=apps",
702 | var json = {
703 | "sticker-pack-name": nomeDono,
704 | "sticker-pack-publisher": nomeBot
705 | }
706 | var exifAttr = Buffer.from([0x49, 0x49, 0x2A, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x41, 0x57, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00])
707 | var jsonBuff = Buffer.from(JSON.stringify(json), "utf-8")
708 | var exif = Buffer.concat([exifAttr, jsonBuff])
709 | exif.writeUIntLE(jsonBuff.length, 14, 4)
710 | let nomemeta = Math.floor(Math.random() * (99999 - 11111 + 1) + 11111) + ".temp.exif"
711 | fs.writeFileSync(`./${nomemeta}`, exif)
712 | exec(`webpmux -set exif ${nomemeta} ${rano} -o ${rano}`, () => {
713 | client.sendMessage(from, { sticker: fs.readFileSync(rano) }, { quoted: info })
714 | fs.unlinkSync(nomemeta)
715 | fs.unlinkSync(rano)
716 | })
717 | })
718 | } else if (isMedia && info.message.videoMessage.seconds < 11 || isQuotedVideo && info.message.extendedTextMessage.contextInfo.quotedMessage.videoMessage.seconds < 35) {
719 | var encmedia = isQuotedVideo ? info.message.extendedTextMessage.contextInfo.quotedMessage.videoMessage : info.message.videoMessage
720 | rane = getRandom('.' + await getExtension(encmedia.mimetype))
721 | buffimg = await getFileBuffer(encmedia, 'video')
722 | fs.writeFileSync(rane, buffimg)
723 | rano = getRandom('.webp')
724 | await ffmpeg(`./${rane}`)
725 | .inputFormat(rane.split('.')[1])
726 | exec(`ffmpeg -i ${rane} -vcodec libwebp -filter:v fps=fps=15 -lossless 1 -loop 0 -preset default -an -vsync 0 -s 200:200 ${rano}`, (err) => {
727 | fs.unlinkSync(rane)
728 | let json = {
729 | "sticker-pack-name": legenda,
730 | "sticker-pack-publisher": autor
731 | }
732 | let exifAttr = Buffer.from([0x49, 0x49, 0x2A, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x41, 0x57, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00])
733 | let jsonBuff = Buffer.from(JSON.stringify(json), "utf-8")
734 | let exif = Buffer.concat([exifAttr, jsonBuff])
735 | exif.writeUIntLE(jsonBuff.length, 14, 4)
736 | let nomemeta = "temp.exif"
737 | fs.writeFileSync(`./${nomemeta}`, exif)
738 | exec(`webpmux -set exif ${nomemeta} ${rano} -o ${rano}`, () => {
739 | client.sendMessage(from, { sticker: fs.readFileSync(rano) }, { quoted: info })
740 | fs.unlinkSync(nomemeta)
741 | fs.unlinkSync(rano)
742 | })
743 | })
744 | } else {
745 | reply(`Você precisa enviar ou marcar uma imagem ou vídeo com no máximo 10 segundos`)
746 | }
747 | })().catch(e => {
748 | console.log(e)
749 | reply("Hmm deu erro")
750 | try {
751 | if (fs.existsSync("temp.exif")) fs.unlinkSync("temp.exif");
752 | if (fs.existsSync(rano)) fs.unlinkSync(rano);
753 | if (fs.existsSync(media)) fs.unlinkSync(media);
754 | } catch { }
755 | })
756 | }
757 | break
758 |
759 |
760 | case 'rename':
761 | case 'roubar':
762 | if (!isQuotedSticker) return reply('Marque uma figurinha...')
763 | encmediats = await getFileBuffer(info.message.extendedTextMessage.contextInfo.quotedMessage.stickerMessage, 'sticker')
764 | var kls = q
765 | var pack = kls.split("/")[0];
766 | var author2 = kls.split("/")[1];
767 | if (!q) return reply('*E o autor e o nome do pacote?*')
768 | if (!pack) return reply(`*por favor escreve o formato certo: ${prefix + command} sad/bla*`)
769 | if (!author2) return reply(`*por favor escreve o formato certo: ${prefix + command} sad/dms*`)
770 | bas64 = `data:image/jpeg;base64,${encmediats.toString('base64')}`
771 | var mantap = await convertSticker(bas64, `${author2}`, `${pack}`)
772 | var sti = new Buffer.from(mantap, 'base64');
773 | client.sendMessage(from, { sticker: sti, contextInfo: { externalAdReply: { title: `${pack}|${author2}`, body: "", previewType: "PHOTO", thumbnail: sti } } }, { quoted: info })
774 | .catch((err) => {
775 | reply(`❎ Error, tenta mais tarde`);
776 | })
777 | break
778 |
779 | case 'bc': case 'bcgroup': case 'transmitir': case 'transmissão': {
780 | if (!isOwner) return reply(resposta.dono)
781 | if (!q) return reply(`Texto onde?\n\nExemplo : ${prefix + command} BOM DIA `)
782 | let getGroups = await client.groupFetchAllParticipating()
783 | let groups = Object.entries(getGroups).slice(0).map(entry => entry[1])
784 | let anu = groups.map(v => v.id)
785 | for (let i of anu) {
786 | await delay(150)
787 | let txt = `「 TRANSMISSÃO DO BOT 」\n\n ${q}`
788 | client.sendMessage(i, { text: txt })
789 | }
790 | reply(`Enviando com sucesso `)
791 | }
792 | break
793 |
794 |
795 |
796 |
797 |
798 |
799 |
800 | case 'cassino':
801 | // CincoFolhas
802 | //CASSINO
803 | const soto = [
804 | '🍊 : 🍒 : 🍐',
805 | '🍒 : 🔔 : 🍊',
806 | '🍇 : 🍇 : 🍇',
807 | '🍊 : 🍋 : 🔔',
808 | '🔔 : 🍒 : 🍐',
809 | '🔔 : 🍒 : 🍊',
810 | '🍊 : 🍋 : ??',
811 | '🍐 : 🍒 : 🍋',
812 | '🍐 : 🍐 : 🍐',
813 | '🍊 : 🍒 : 🍒',
814 | '🔔 : 🔔 : 🍇',
815 | '🍌 : 🍒 : 🔔',
816 | '🍐 : 🔔 : 🔔',
817 | '🍊 : 🍋 : 🍒',
818 | '🍋 : 🍋 : 🍌',
819 | '🔔 : 🔔 : 🍇',
820 | '🔔 : 🍐 : 🍇',
821 | '🔔 : 🔔 : 🔔',
822 | '🍒 : 🍒 : 🍒',
823 | '🍌 : 🍌 : 🍌'
824 | ]
825 | monty = Math.floor(Math.random() * 415) + 80
826 | const mining = Math.ceil(Math.random() * 200) + 1
827 | const somtoy2 = sotoy[Math.floor(Math.random() * sotoy.length)]
828 | if ((somtoy2 == '🥑 : 🥑 : 🥑') || (somtoy2 == '🍉 : 🍉 : 🍉') || (somtoy2 == '🍓 : 🍓 : 🍓') || (somtoy2 == '🍎 : 🍎 : 🍎') || (somtoy2 == '🍍 : 🍍 : 🍍') || (somtoy2 == '🥝 : 🥝 : 🥝') || (somtoy2 == '🍑 : 🍑 : 🍑') || (somtoy2 == '🥥 : 🥥 : 🥥') || (somtoy2 == '🍋 : 🍋 : 🍋') || (somtoy2 == '🍐 : ?? : 🍐') || (somtoy2 == '🍌 : 🍌 : 🍌') || (somtoy2 == '🍒 : 🍒 : 🍒') || (somtoy2 == '🔔 : 🔔 : 🔔') || (somtoy2 == '🍊 : 🍊 : 🍊') || (somtoy2 == '🍇 : 🍇 : 🍇')) {
829 | var Vitória = `Você ganhou Botcoin: ${monty} 🔮`
830 | addKoinUser(sender, monty)
831 | } else {
832 | var Vitória = `Você perdeu...`
833 | }
834 |
835 | const cassino = `
836 | ©clover
837 | ╔═════💦︎═════╗
838 | ┣► ${somtoy2}◄┛
839 | ╚═════💦︎═════╝
840 |
841 | *${Vitória}*`
842 | enviar(cassino)
843 | if (Vitória == "Você ganhou!!!") {
844 |
845 | }
846 | //await client(sender)
847 | break
848 |
849 | case "ping":
850 | // CincoFolhas
851 | enviar(`💦 Velocidade de resposta ${latensi.toFixed(4)} segundos `)
852 | break
853 |
854 | case "ppt":
855 | // CincoFolhas
856 | if (!isGroup) return enviar(resposta.grupo)
857 | if (args.length < 1) return enviar('exemplo: /ppt pedra')
858 | ppt = ["pedra", "papel", "tesoura"]
859 | ppy = ppt[Math.floor(Math.random() * ppt.length)]
860 | ppg = Math.floor(Math.random() * 50)
861 | pptb = ppy
862 | pph = `Você ganhou ${ppg} em money`
863 | if ((pptb == "pedra" && args == "papel") ||
864 | (pptb == "papel" && args == "tesoura") ||
865 | (pptb == "tesoura" && args == "pedra")) {
866 | var vit = "vitoria"
867 | } else if ((pptb == "pedra" && args == "tesoura") ||
868 | (pptb == "papel" && args == "pedra") ||
869 | (pptb == "tesoura" && args == "papel")) {
870 | var vit = "derrota"
871 | } else if ((pptb == "pedra" && args == "pedra") ||
872 | (pptb == "papel" && args == "papel") ||
873 | (pptb == "tesoura" && args == "tesoura")) {
874 | var vit = "empate"
875 | } else if (vit = "undefined") {
876 | return enviar(linguagem.tterro())
877 | }
878 | if (vit == "vitoria") {
879 | var tes = `Você ganhou ${ppg} em money`
880 | }
881 | if (vit == "derrota") {
882 | var tes = "A vitória é do bot"
883 | }
884 | if (vit == "empate") {
885 | var tes = "O jogo terminou em empate"
886 | }
887 | enviar(`Bot jogou: ${pptb}\nO jogador jogou: ${args}\n\n${tes}`)
888 | if (tes == "Vitória do jogador") {
889 | //enviar(pph)
890 | }
891 | break
892 |
893 | case 'gay':// Sem Fotos
894 | // CincoFolhas
895 | const aleta = `${Math.floor(Math.random() * 105)}`
896 | enviar('Aguarde, confiscando sua porcentagem...')
897 | await delay(5000)
898 | enviar(`${pushname} Sua Porcentagem De Gay é De : ${aleta}%`)
899 | break
900 | case 'feio': // Sem Fotos
901 | // CincoFolhas
902 | const aletb = `${Math.floor(Math.random() * 105)}`
903 | enviar('Aguarde, confiscando sua porcentagem...')
904 | await delay(5000)
905 | enviar(`${pushname} Sua Porcentagem De Feio é De : ${aletb}%`)
906 | break
907 | break
908 | case 'lindo':
909 | // CincoFolhas
910 | const aletc = `${Math.floor(Math.random() * 105)}`
911 | enviar('Aguarde, confiscando sua porcentagem...')
912 | await delay(5000)
913 | enviar(`${pushname} Sua Porcentagem De Lindo(a) é De : ${aletc}%`)
914 | break
915 | case 'gostoso':
916 | // CincoFolhas
917 | const aletd = `${Math.floor(Math.random() * 105)}`
918 | enviar('Aguarde, confiscando sua porcentagem...')
919 | await delay(5000)
920 | enviar(`${pushname} Sua Porcentagem De Gostoso(a) é De : ${aletd}%`)
921 | break
922 |
923 | case 'gado':
924 | // CincoFolhas
925 | const alete = `${Math.floor(Math.random() * 105)}`
926 | enviar('Aguarde, confiscando sua porcentagem...')
927 | await delay(5000)
928 | enviar(`${pushname} Sua Porcentagem De Gado(a) é De : ${alete}%`)
929 | break
930 | case 'punheteiro':
931 | // CincoFolhas
932 | const aletl = `${Math.floor(Math.random() * 105)}`
933 | enviar('Aguarde, confiscando sua porcentagem...')
934 | await delay(5000)
935 | enviar(`${pushname} Sua Porcentagem De punheteiro(a) é De : ${aletl}%`)
936 | break
937 |
938 | case "gplink":
939 | if (!isGroup) return enviar(resposta.grupo)
940 | if (!isGroupAdmins) return enviar(resposta.adm)
941 | if (!isBotGroupAdmins) return enviar(resposta.botadm)
942 | const link = await client.groupInviteCode(from)
943 | enviar(`💦 Link do grupo : https://chat.whatsapp.com/${link} `)
944 | break
945 |
946 | case "resetarlink":
947 | if (!isGroup) return enviar(resposta.grupo)
948 | if (!isGroupAdmins) return enviar(resposta.adm)
949 | if (!isBotGroupAdmins) return enviar(resposta.botadm)
950 | try {
951 | await client.groupRevokeInvite(from)
952 | enviar("💦 Link de convite resetado com sucesso ✓ ")
953 | } catch (e) {
954 | console.log(e)
955 | enviar(resposta.erro)
956 | }
957 | break
958 | case "rebaixar":
959 | // CincoFolhas
960 | if (!isGroup) return enviar(resposta.grupo)
961 | if (!isGroupAdmins) return enviar(resposta.adm)
962 | if (!isBotGroupAdmins) return enviar(resposta.botadm)
963 | if (q < 1) return enviar("💦 Digite o número, animal ")
964 | if (!isBotGroupAdmins) return enviar(resposta.botadm)
965 | try {
966 | client.groupParticipantsUpdate(from, [`${q}@s.whatsapp.net`], "demote")
967 | enviar(`💦 ${q} Foi rebaixado a membro comum com sucesso `)
968 | } catch (e) {
969 | console.log(e)
970 | enviar(resposta.erro)
971 | }
972 | break
973 |
974 | case "promover":
975 | // CincoFolhas
976 | if (!isGroup) return enviar(resposta.grupo)
977 | if (!isGroupAdmins) return enviar(resposta.adm)
978 | if (!isBotGroupAdmins) return enviar(resposta.botadm)
979 | if (q < 1) return enviar("💦 Cade o número, mongolóide ")
980 | if (!isBotGroupAdmins) return enviar(resposta.botadm)
981 | try {
982 | client.groupParticipantsUpdate(from, [`${q}@s.whatsapp.net`], "promote")
983 | enviar(`💦 ${q} Foi promovido a adm com sucesso `)
984 | kak = fs.readFileSync("./audios/promover.mp3")
985 | client.sendMessage(from, { audio: kak, mimetype: "audio/mp4", ptt: true }, { quoted: info })
986 | } catch (e) {
987 | console.log(e)
988 | enviar(resposta.erro)
989 | }
990 | break
991 | l
992 | case "ban":
993 | // CincoFolhas
994 | if (!isGroup) return enviar(resposta.grupo)
995 | if (!isGroupAdmins) return enviar(resposta.adm)
996 | if (q < 1) return enviar("💦 Cade o número, mongolóide ")
997 | if (!isBotGroupAdmins) return enviar(resposta.botadm)
998 | if (info.message.extendedTextMessage != undefined || info.message.extendedTextMessage != null) {
999 | kicka = info.message.extendedTextMessage.contextInfo.participant
1000 | cod = fs.readFileSync("./arquivos/audios/ban.mp3")
1001 | client.sendMessage(from, { audio: cod, mimetype: "audio/mp4", ptt: true }, { quoted: info })
1002 | client.groupParticipantsUpdate(from, [`${q}@s.whatsapp.net`], "remove")
1003 | } else {
1004 | enviar("࿐ Marque a mensagem da pessoa")
1005 | }
1006 | break
1007 |
1008 | case "grupo":
1009 | // CincoFolhas
1010 | if (!isGroup) return enviar(resposta.grupo)
1011 | if (!isGroupAdmins) return enviar(resposta.adm)
1012 | if (!isBotGroupAdmins) return enviar(resposta.botadm)
1013 | try {
1014 | if (q == "a") {
1015 | await client.groupSettingUpdate(from, "not_announcement")
1016 | enviar("Grupo aberto com sucesso")
1017 | }
1018 | if (q == "f") {
1019 | await client.groupSettingUpdate(from, "announcement")
1020 | enviar("Grupo fechado com sucesso ")
1021 | }
1022 | } catch (e) {
1023 | console.log(e)
1024 | enviar(resposta.erro)
1025 | }
1026 | break
1027 |
1028 | case "infogp":
1029 | // CincoFolhas
1030 | if (!isGroup) return enviar(resposta.grupo)
1031 | if (!isBotGroupAdmins) return enviar(resposta.botadm)
1032 | enviar(`
1033 | Nome : ${groupName}
1034 | Descrição : ${groupDesc}
1035 | Id : ${from}
1036 | Data : ${data}
1037 | Horário : ${hora}
1038 | `)
1039 | break
1040 |
1041 | case 'listadm':
1042 | if (!isGroup) return enviar(resposta.grupo)
1043 | teks = `List admin of group *${groupMetadata.subject}*\nTotal : ${groupAdmins.length}\n\n`
1044 | no = 0
1045 | for (let admon of groupAdmins) {
1046 | no += 1
1047 | teks += `[${no.toString()}] @${admon.split('@')[0]}\n`
1048 | }
1049 | mentions(teks, groupAdmins, true)
1050 | break
1051 |
1052 | case 'antilink':
1053 | if (!isGroupAdmins) return enviar(resposta.adm)
1054 | if (!isBotGroupAdmins) return enviar(resposta.botadm)
1055 | if (args.length < 1) return enviar('digite 1 para ativar ou 0 para desativar ')
1056 | if (Number(args[0]) === 1) {
1057 | if (isAntilink) return enviar('o anti-link está ativo')
1058 | antilink.push(from)
1059 | fs.writeFileSync('./lib/antilink.json', JSON.stringify(antilink))
1060 | enviar('O anti-link foi ativo no grupo ✔️')
1061 | } else if (Number(args[0]) === 0) {
1062 | antilink.splice(from, 1)
1063 | fs.writeFileSync('./lib/antilink.json', JSON.stringify(antilink))
1064 | enviar('O anti-link foi desativado com sucesso neste grupo✔️')
1065 | } else {
1066 | enviar('1 para ativar, 0 para desativar ')
1067 | }
1068 | break
1069 |
1070 |
1071 | case 'report':
1072 | case 'bug':
1073 | if (!q) return enviar('Ex: bug no menu..')
1074 | enviar(`Obrigada pela colaboração, o bug foi reportado ao meu criador...
1075 | <♨️>bugs falsos nao serão respondidos`)
1076 | let templateMesssage = {
1077 | image: {
1078 | url: './clover2.jpg',
1079 | quoted: info
1080 | },
1081 | caption: `♨️𝗨𝗺 𝗕𝘂𝗴♨️\nDo Número: @${sender.split('@')[0]},\nReportou:\n${q}`,
1082 | footer: 'clover_md'
1083 | }
1084 | client.sendMessage(`${numeroDono}@s.whatsapp.net`, templateMesssage)
1085 | break
1086 |
1087 | case 'novocmd':
1088 | if (!q) return enviar('Ex: novocmd coloca antilink')
1089 | enviar(`Obrigada pela colaboração, a sua idea foi reportada ao meu criador 😊`)
1090 | const qp = args.join(" ")
1091 | let templateMessage = {
1092 | image: {
1093 | url: './clover2.jpg',
1094 | quoted: info
1095 | },
1096 | caption: `♨️IDEIA DE CMD♨️\nDo Número: @${sender.split('@')[0]},\nA Ideia É:\n ${q}`,
1097 | footer: 'clover_md'
1098 | }
1099 | client.sendMessage(`${numeroDono}@s.whatsapp.net`, templateMessage)
1100 | break
1101 |
1102 |
1103 | case "cosplay":
1104 | case "waifu":
1105 | case "waifu2":
1106 | case "shota":
1107 | case "loli":
1108 | case "yotsuba":
1109 | case "shinomiya":
1110 | case "yumeko":
1111 | case "tejina":
1112 | case "chiho":
1113 | case "shizuka":
1114 | case "boruto":
1115 | case "kagori":
1116 | case "kaga":
1117 | case "kotori":
1118 | case "mikasa":
1119 | case "akiyama":
1120 | case "hinata":
1121 | case "minato":
1122 | case "naruto":
1123 | case "nezuko":
1124 | case "yuki":
1125 | case "hestia":
1126 | case "emilia":
1127 | case "itachi":
1128 | case "elaina":
1129 | case "madara":
1130 | case "sasuke":
1131 | case "deidara":
1132 | case "sakura":
1133 | case "tsunade":
1134 | try {
1135 | client.sendMessage(from, { react: { text: '🕚', key: info.key } })
1136 | anikit.getAnimeInfo(`${command}`, username, key).then((response) => {
1137 | let buttonMessage4 = {
1138 | image: { url: `${response.url}` },
1139 | caption: `🏕 Olá ${pushname}, aqui está sua imagem 🎲`,
1140 | footer: '',
1141 | //buttons: buttons,
1142 | headerType: 4
1143 | }
1144 | client.sendMessage(from, buttonMessage4, { quoted: info })
1145 | })
1146 | } catch (e) {
1147 | console.log(e)
1148 | reply("nao achei a foto, tente novamente mais tarde")
1149 | }
1150 | break
1151 |
1152 | case 'ahegao':
1153 | case 'ass':
1154 | case 'bdsm':
1155 | case 'blowjob':
1156 | case 'cuckold':
1157 | case 'cum':
1158 | case 'ero':
1159 | case 'kasedaiki':
1160 | case 'femdom':
1161 | case 'foot':
1162 | case 'gangbang':
1163 | case 'glasses':
1164 | case 'hentai2':
1165 | case 'jahy':
1166 | case 'manga':
1167 | case 'masturbation':
1168 | case 'neko':
1169 | case 'orgy':
1170 | case 'panties':
1171 | case 'pussy':
1172 | case 'neko2':
1173 | case "neko":
1174 | case 'tentacles':
1175 | case 'thighs':
1176 | case 'yuri':
1177 | case 'zettai':
1178 | try {
1179 | client.sendMessage(from, { react: { text: '🕚', key: info.key } })
1180 | anikit.getNSFWInfo(`${command}`, username, key).then((response) => {
1181 | let buttonMessage4 = {
1182 | image: { url: `${response.url}` },
1183 | caption: `🏕 Olá ${pushname}, aqui está sua imagem 🎲`,
1184 | footer: '',
1185 | //buttons: buttons,
1186 | headerType: 4
1187 | }
1188 | client.sendMessage(sender, buttonMessage4, { quoted: info })
1189 | })
1190 | } catch (e) {
1191 | console.log(e)
1192 | reply("nao achei a foto, tente novamente mais tarde")
1193 | }
1194 | break
1195 |
1196 | case "eps-recentes": {
1197 | anikit.getRecentEpisodes(username, key).then((response) => {
1198 | let resultInstance = ""; // Inicialize resultInstance como uma string vazia
1199 |
1200 | for (let i = 0; i < response.length; i++) {
1201 | // Concatene os resultados de cada episódio a resultInstance
1202 | resultInstance += `-------------------------------------
1203 | Anime: ${response[i].title}
1204 | Ep: ${response[i].episodeNum}
1205 | `;
1206 | }
1207 |
1208 | reply("ANIMES LANÇAMENTOS\n\n" + resultInstance + "\n\n-------------------------------------");
1209 | });
1210 | } break;
1211 |
1212 |
1213 |
1214 |
1215 |
1216 |
1217 | default:
1218 | if (isCmd && command) {
1219 | const buttonMessage = {
1220 | text: `comando nem existe kkkkkkk...`,
1221 | // footer: '𝙻𝚎𝚒𝚊 𝚘 𝚖𝚎𝚗𝚞 𝚌𝚘𝚖 𝚊𝚝𝚎𝚗𝚌̧𝚊̃𝚘!',
1222 | headerType: 1
1223 | }
1224 | client.sendMessage(from, buttonMessage)
1225 | }
1226 |
1227 | }
1228 | // Fim do switch \\
1229 |
1230 |
1231 | } catch (erro) {
1232 | console.log(erro)
1233 | }
1234 | }
1235 |
1236 | let file = require.resolve(__filename);
1237 | fs.watchFile(file, () => {
1238 | fs.unwatchFile(file);
1239 | console.log(`Update file: ${__filename}`);
1240 | delete require.cache[file];
1241 | require(file);
1242 | });
--------------------------------------------------------------------------------