· 5 years ago · Nov 15, 2020, 09:16 AM
1const { decryptMedia } = require('@open-wa/wa-decrypt')
2const { RemoveBgResult, removeBackgroundFromImageBase64, removeBackgroundFromImageFile } = require('remove.bg')
3const fs = require('fs-extra')
4const axios = require('axios')
5const nrc = require('node-run-cmd')
6const moment = require('moment-timezone')
7const get = require('got')
8const { exec, spawn } = require('child_process')
9const wel = JSON.parse(fs.readFileSync('./lib/welcome.json'))
10const nsfwgrp = JSON.parse(fs.readFileSync('./lib/nsfw.json'))
11const akaneko = require('akaneko')
12const fetch = require('node-fetch')
13const bent = require('bent')
14var request = require('request')
15const si = require('systeminformation');
16const downloader = require('./lib/downloader.js')
17const QrMaker = require('./lib/QrMaker.js')
18const md5 = require('md5')
19const shajs = require('simple-js-sha2-256')
20const ytdl = require('youtube-dl')
21
22const errorurl = 'https://steamuserimages-a.akamaihd.net/ugc/954087817129084207/5B7E46EE484181A676C02DFCAD48ECB1C74BC423/?imw=512&&ima=fit&impolicy=Letterbox&imcolor=%23000000&letterbox=false'
23const errorurl2 = 'https://steamuserimages-a.akamaihd.net/ugc/954087817129084207/5B7E46EE484181A676C02DFCAD48ECB1C74BC423/?imw=512&&ima=fit&impolicy=Letterbox&imcolor=%23000000&letterbox=false'
24
25const color = require('./lib/color')
26const { doing } = require('./lib/translate.js')
27const { translate } = require('./lib')
28
29const msgFilter = require('./lib/msgFilter')
30const { liriklagu, quotemaker, wall, costom } = require('./lib/functions')
31const { help, info, } = require('./lib/help')
32const ban = JSON.parse(fs.readFileSync('./lib/banned.json'))
33
34const feature = require('./lib/poll');
35
36const yt = require('./lib/yt')
37const sendSticker = require('./lib/sendSticker')
38
39// API KEY
40const api_itech = 'nLnj3A-c9o74T-Z1BL83-yx6qJN-fCnfDg'
41const apiKey2 = 'zFuV88pxcIiCWuYlwg57'
42
43function sleep(ms) {
44 return new Promise(resolve => setTimeout(resolve, ms));
45}
46
47module.exports = msgHandler = async (client, message) => {
48 try {
49 const { type, id, from, t, sender, isGroupMsg, chat, chatId, caption, isMedia, mimetype, quotedMsg, mentionedJidList, author, quotedMsgObj } = message
50 let { body } = message
51 const { name } = chat
52 let { pushname, verifiedName } = sender
53 const prefix = '!'
54 body = (type === 'chat' && body.startsWith(prefix)) ? body : ((type === 'image' && caption || type === 'video' && caption) && caption.startsWith(prefix)) ? caption : ''
55 const command = body.slice(prefix.length).trim().split(/ +/).shift().toLowerCase()
56 const args = body.slice(prefix.length).trim().split(/ +/).slice(1)
57 const isCmd = body.startsWith(prefix)
58
59 const time = moment(t * 1000).format('DD/MM HH:mm:ss')
60
61 if (isCmd && msgFilter.isFiltered(from) && !isGroupMsg) return console.log(color('[SPAM!]', 'red'), color(time, 'yellow'), color(`${command} [${args.length}]`), 'from', color(pushname))
62 if (isCmd && msgFilter.isFiltered(from) && isGroupMsg) return console.log(color('[SPAM!]', 'red'), color(time, 'yellow'), color(`${command} [${args.length}]`), 'from', color(pushname), 'in', color(name))
63 if (!isCmd && !isGroupMsg) return console.log('[RECV]', color(time, 'yellow'), 'Message from', color(pushname))
64 if (!isCmd && isGroupMsg) return console.log('[RECV]', color(time, 'yellow'), 'Message from', color(pushname), 'in', color(name))
65 if (isCmd && !isGroupMsg) console.log(color('[EXEC]'), color(time, 'yellow'), color(`${command} [${args.length}]`), 'from', color(pushname))
66
67 if (isCmd && isGroupMsg) console.log(color('[EXEC]'), color(time, 'yellow'), color(`${command} [${args.length}]`), 'from', color(pushname), 'in', color(name))
68 const botNumber = await client.getHostNumber()
69 const groupId = isGroupMsg ? chat.groupMetadata.id : ''
70 const groupAdmins = isGroupMsg ? await client.getGroupAdmins(groupId) : ''
71 const isGroupAdmins = isGroupMsg ? groupAdmins.includes(sender.id) : false
72 const isBotGroupAdmins = isGroupMsg ? groupAdmins.includes(botNumber + '@c.us') : false
73 const isBanned = ban.includes(chatId)
74 const botadmins = ['6289515746253@c.us', '6281563825390@c.us'] //add the number of people that you want to the be bot admins
75 const isbotadmin = botadmins.includes(sender.id)
76 const memberPremium = ['6285772398315@c.us', '6285892795057@c.us', '6282123165559@c.us', '62895385107395@c.us', '6285716194181@c.us', '62895701062608@c.us', '6289515746253@c.us', '6281211887577@c.us','6282120026728@c.us', '6285892795057@c.us', '6281563825390@c.us']
77 const isMemberPremium = memberPremium.includes(sender.id)
78 const isnsfw = nsfwgrp.includes(chat.id)
79 const isQuotedImage = quotedMsg && quotedMsg.type === 'image'
80 global.pollfile = 'poll_Config_'+chat.id+'.json'
81 global.voterslistfile = 'poll_voters_Config_'+chat.id+'.json'
82
83
84 msgFilter.addFilter(from)
85
86 const uaOverride = 'WhatsApp/2.2029.4 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'
87 const isUrl = new RegExp(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&/=]*)/gi)
88 if (!isBanned) {
89 switch (command) {
90 case 'sticker':
91 case 'stiker':
92 if (isMedia) {
93 if (type == 'video') {
94 if (message.duration < 15) {
95 sendSticker.sendAnimatedSticker(message)
96 } else {
97 await client.reply(from, 'Maaf, format video belum didukung untuk dijadikan stiker!', id)
98 }
99 } else if (type == 'image') {
100 const mediaData = await decryptMedia(message)
101 const imageBase64 = `data:${mimetype};base64,${mediaData.toString('base64')}`
102 const baseImg = imageBase64.replace('video/mp4','image/gif')
103 await client.sendImageAsSticker(from, baseImg)
104 }
105 } else if (quotedMsg && quotedMsg.type == 'image') {
106 const mediaData = await decryptMedia(quotedMsg)
107 const imageBase64 = `data:${quotedMsg.mimetype};base64,${mediaData.toString('base64')}`
108 await client.sendImageAsSticker(from, imageBase64)
109 } else if (quotedMsg && quotedMsg.type == 'video') {
110 if (message.duration < 15) {
111 sendSticker.sendAnimatedSticker(message)
112 } else {
113 await client.reply(from, 'File yang diberikan terlalu besar untuk diproses!', id)
114 }
115 } else {
116 client.reply(from, 'Silahkan reply image dengan !stiker. Atau kirimkan foto dgn caption !stiker', message.id)
117 }
118 break
119 break
120 case 'donate':
121 case 'donasi':
122 client.sendLinkWithAutoPreview(from, 'https://saweria.co/donate/bangnopal', '\nDonasi dari kalian akan digunakan kembali untuk menyewa server tiap bulannya :)')
123 break
124 case 'ytdl':
125 const ytdl_url = body.slice(6)
126 if (args.length == 0) return client.reply(from, 'Untuk menggunakan fitur ini, ketikan !ytdl <link video ytb>. Contoh: !ytdl https://youtu.be/ThiCMd5kGbE', message.id)
127 await client.reply(from, '_Permintaan anda sedang diproses. Ditunggu aja gan ?_', message.id)
128 ytdl.getInfo(ytdl_url, function(err, info) {
129 if (err) throw err
130 client.sendFileFromUrl(from, info.url, 'YTDownloader.mp4', `*[+]-- YOUTUBE DOWNLOADER --[+]*\n\n*Judul:* ${info.title}\n*Deksriction:* ${info.description}`, message.id)
131 })
132 break
133 case 's':
134 const kata_talk = body.slice(3)
135 if (args.length == 0) return client.reply(from, 'Untuk menggunakan fitur chat simi-simi, ketikan !s <kata>. Contoh: !s Halo simi, apa kabar?', message.id)
136 const simi = await axios.get(`https://st4rz.herokuapp.com/api/simsimi?kata=${kata_talk}`)
137 client.reply(from, simi.data.result, message.id)
138 break
139 case 'fml':
140 const fml = await axios.get(`https://api.i-tech.id/tools/fml?key=${api_itech}`)
141 client.reply(from, fml.data.result, message.id)
142 break
143 case 'fakta':
144 const fakta = await axios.get(`https://api.i-tech.id/tools/fakta?key=${api_itech}`)
145 client.reply(from, fakta.data.result, message.id)
146 break
147 case 'sha256':
148 const str_query_sha256 = body.slice(8)
149 if (args.length == 0) return client.reply(from, 'Ketikan !sha256 <query>. Contoh: !sha256 naufal', message.id)
150 const sha256 = await shajs(str_query_sha256)
151 client.reply(from, `*[+]-- TURU SHA256 ENCODER --[+]*\n\nString: *${str_query_sha256}*\nMD5 Encode:\n*${sha256}*`)
152 break
153 case 'md5':
154 const str_query = body.slice(5)
155 if (args.length == 0) return client.reply(from, 'Ketik !md5 <string>. Contoh: !md5 admin', message.id)
156 const md5_x = await md5(str_query)
157 client.reply(from, `*[+]-- TURU MD5 ENCODER --[+]*\n\nString: *${str_query}*\nMD5 Encode:\n*${md5_x}*`)
158 break
159 case 'brainly':
160 const query_brainly = body.slice(9)
161 if (args.length == 0) return client.reply(from, 'Ketik !brainly <pertanyaan>. Contoh: !brainly presiden pertama indonesia', message.id)
162 await client.reply(from, 'Permintaan anda sedang diproses. Ditunggu aja gan ?', message.id)
163 const search_brainly = await brainly(query_brainly)
164 if (search_brainly.success == true) {
165 client.reply(from, `*[+]-- TURU BRAINLY SCRAPER --[+]*\n\n\n*Pertanyaan:* ${query_brainly}}\n\n*Result 1:* ${search_brainly.data[0].pertanyaan}\n\n*Jawaban 1:* ${search_brainly.data[0].jawaban[0].text}`, message.id)
166 } else if (search_brainly.success == false) {
167 return client.reply(from, 'Maaf, tidak ada yang mau menjawab pertanyaan anda! AWOKAWOKAOWK :V', message.id)
168 }
169 break
170 case 'tiny':
171 const long_link = body.slice(6)
172 if (args.length == 0) return client.reply(from, 'Ketik !tiny <url>. Contoh: !tiny https://naufalhoster.xyz', message.id)
173 const tinyshort = await axios.get(`https://tinyurl.com/api-create.php?url=${long_link}`)
174 if (tinyshort.data == Error) return client.reply(from, 'Maaf, link yang kamu berikan tidak valid!', message.id)
175 client.reply(from, `*[+]-- TURU URL SHORTENER --[+]*\n\nNih gan url pendeknya -> ${tinyshort.data} ?`, message.id)
176 break
177 case 'bitly':
178 const link_panjang = body.slice(7)
179 if (args.length == 0) return client.reply(from, 'Ketik !short <link yang mau di short>. Contoh: !bitly https://naufalhoster.xyz', message.id)
180 const shorten = await axios.get(`https://api.i-tech.id/tools/shorturl?key=${api_itech}&link=${link_panjang}`)
181 if (shorten.data.code == "404") return client.reply(from, 'Maaf, link yang anda berikan tidak valid!', message.id)
182 client.reply(from, `*[+]-- TURU URL SHORTENER --[+]*\n\nNih gan url pendeknya -> ${shorten.data.result} ?`, message.id)
183 break
184 case 'quotemaker':
185 arg = body.trim().split('|')
186 if (arg.length >= 3) {
187 client.reply(from, 'Processing...', message.id)
188 const quotes = arg[1]
189 const author = arg[2]
190 const theme = arg[3]
191 try {
192 const resolt = await quotemaker(quotes, author, theme)
193 client.sendFile(from, resolt, 'quotesmaker.jpg','...')
194 } catch {
195 client.reply(from, 'Maaf, file tidak dapat diproses. Terjadi kegagalan dalam sistem!', message.id)
196 }
197 } else {
198 client.reply(from, 'Cara pakai: \n!quotemaker | quote | author', message.id)
199 }
200 break
201 case 'translate':
202 arg = body.trim().split(' ')
203 if (arg.length != 2) return client.reply(from, 'Wrong Format!', id)
204 if (!quotedMsg) return client.reply(from, 'Wrong Format!', id)
205 const quoteText = quotedMsg.type == 'chat' ? quotedMsg.body : quotedMsg.type == 'image' ? quotedMsg.caption : ''
206 translate(quoteText, arg[1])
207 .then((result) => client.sendText(from, result))
208 .catch(() => client.sendText(from, 'An error occured!'))
209 break
210 case 'rloli':
211 await client.reply(from, '_Permintaan anda sedang diproses. Ditunggu aja gan ?_')
212 const rloli = await axios.get('https://st4rz.herokuapp.com/api/randomloli')
213 client.sendFileFromUrl(from, rloli.data.result, 'RandomLoli.jpg', 'Nih gan Loli nya ?')
214 break
215 case 'tts':
216 var withOption = quotedMsg ? quotedMsgObj.body : args.splice(1).join(' ')
217 var tts = require('node-gtts')(args[0])
218 tts.save(process.cwd() + '/media/tts.ogg', withOption, async () => {
219 client.sendPtt(from, './media/tts.ogg', null)
220 })
221 break
222 case 'jadwaltv':
223 const channel = body.slice(11)
224 if (args.length == 0) return client.reply(from, 'Ketik !jadwaltv <channel>. Contoh: !jadwaltv RCTI', message.id)
225 const jadwalchannel = await axios.get(`https://api.haipbis.xyz/jadwaltv/${channel}`)
226 client.reply(from, jadwalchannel.data, message.id)
227 break
228 case 'waifu':
229 const waifu = await axios.get('https://st4rz.herokuapp.com/api/waifu')
230 client.sendFileFromUrl(from, waifu.data.image, 'Waifu.jpg', `Name : ${waifu.data.name}\nDescription : ${waifu.data.desc}\n\nSource : ${waifu.data.source}`, id)
231 break
232 case 'qr':
233 const str_qr = body.slice(5)
234 if (args.length == 0) return client.reply(from, 'Ketik !qr <query>/<url>. Contoh: !qr nopal ganteng', message.id)
235 QrMaker(str_qr)
236 .then(data => {
237 client.sendImage(from, data, 'qr.jpg', 'Nih gan QR Code nya ?', message.id)
238 })
239 .catch(err => {
240 console.log(err)
241 })
242 break
243 case 'cuaca':
244 const kota = body.slice(7)
245 if (args.length == 0) return client.reply(from, 'Ketik !cuaca <kota>. Contoh: !cuaca Tangerang')
246 const cuaca_url = await axios.get(`https://api.i-tech.id/tools/cuaca?key=${api_itech}&kota=${kota}`)
247 client.reply(from, `Kota: ${cuaca_url.data.tempat}\nCuaca: ${cuaca_url.data.cuaca}\nSuhu: ${cuaca_url.data.suhu}\nKelembapan: ${cuaca_url.data.kelembapan}\nKecepatan Angin: ${cuaca_url.data.angin}\nDeskripsi: ${cuaca_url.data.deskripsi}`, message.id)
248 break
249 case 'nfilm':
250 await client.reply(from, '_Permintaan anda sedang diproses. Ditunggu aja gan ?_', message.id)
251 const next_film = await axios.get('https://api.haipbis.xyz/cinema21/comingsoon')
252 const film = next_film.data
253 client.sendFileFromUrl(from, film[0].poster, 'Poster.jpg', `*Judul:* ${film[0].title}\n*Distributor:* ${film[0].distributor}\n*Genre:* ${film[0].genre}\n*Dimensi:* ${film[0].dimensi}\n*Rating:* ${film[0].rating}\n*Sinopsis:* ${film[0].sinopsis}\n\n*Producer:* ${film[0].producer}\n*Direktur:* ${film[0].director}\n*Penulis:* ${film[0].writer}\n*Cast:* ${film[0].casts}`, message.id)
254 client.sendFileFromUrl(from, film[1].poster, 'Poster.jpg', `*Judul:* ${film[1].title}\n*Distributor:* ${film[1].distributor}\n*Genre:* ${film[1].genre}\n*Dimensi:* ${film[1].dimensi}\n*Rating:* ${film[1].rating}\n*Sinopsis:* ${film[1].sinopsis}\n\n*Producer:* ${film[1].producer}\n*Direktur:* ${film[1].director}\n*Penulis:* ${film[1].writer}\n*Cast:* ${film[1].casts}`, message.id)
255 break
256 case 'randomhentai':
257 const randomhentai = await axios.get('https://api.computerfreaker.cf/v1/hentai')
258 client.sendFileFromUrl(from, randomhentai.data.url, 'RandomHentai.jpg', '', message.id)
259 break
260 case 'nsfw':
261 if (!isMemberPremium) return client.reply(from, 'Maaf gan, fitur ini khusus Member Premium! Upgrade ke Member Premium seharga 5k sekarang juga!', message.id)
262 const nsfw_image = await axios.get('https://api.computerfreaker.cf/v1/nsfwneko')
263 client.sendFileFromUrl(from, nsfw_image.data.url, 'Nsfw.jpg', '', message.id)
264 break
265 case 'tulis':
266 if (!isMemberPremium) return client.reply(from, 'Maaf, fitur ini hanya tersedia utk member premium! Dikarenakan biaya API yang semakin mahal ?', message.id)
267 const txt_tulisan = body.slice(7)
268 if (args.length == 0) return client.reply(from, 'Ketik !tulis <text>. Contoh: !tulis Nopal Ganteng', message.id)
269 await client.reply(from, 'Permintaan anda sedang diproses. Ditunggu aja gan ?', message.id)
270 const tulis = await axios.get(`http://salism3.pythonanywhere.com/write?text=${txt_tulisan}`)
271 client.sendFileFromUrl(from, tulis.data.images[0], 'Tulisan.jpg', 'Nih gan tulisannya ?', message.id)
272 break
273 case 'lirik':
274 const liriklagu = body.slice(7)
275 if (args.length == 0) return client.reply(from, 'Ketik !lirik <judul lagu>. Contoh: !lirik Celengan Rindu', message.id)
276 const lirik = await axios.get(`https://api.i-tech.id/tools/lirik?key=${api_itech}&query=${liriklagu}`)
277 client.reply(from, lirik.data.result, message.id)
278 break
279 case 'chord':
280 const judul = body.slice(7)
281 if (args.length == 0) return client.reply(from, 'Ketik !chord <judul lagu>. Contoh !chord Celengan Rindu', message.id)
282 const chord = await axios.get(`https://api.i-tech.id/tools/chord?key=${api_itech}&query=${judul}`)
283 client.reply(from, chord.data.result, message.id)
284 break
285 case 'jodohin':
286 if (!isMemberPremium) return client.reply(from, 'Maaf, fitur ini hanya tersedia bagi member premium! Dikarenakan harga API yang mahal ?', message.id)
287 const jodohin = body.slice(9)
288 if (args.length == 0) return client(from, 'Ketik !jodohin <nama 1> <nama 2>. Contoh !jodohin aku kamu')
289 arg = body.trim().split(' ')
290 const nama1 = arg[1]
291 const nama2 = arg[2]
292 const cekjodoh = await axios.get(`https://api.i-tech.id/tools/cekjodoh?key=${api_itech}&query=${nama1}-${nama2}`)
293 client.reply(from, cekjodoh.data.result, message.id)
294 break
295 case 'igstalk':
296 if(!isMemberPremium) return client.reply(from, 'Maaf gan, fitur ini khusus bagi Member Premium! Upgrade ke member premium seharga 5k sekarang juga!', message.id)
297 const username_ig = body.slice(9)
298 if (args.length == 0) return client.reply(from, 'Ketik !igstalk <username ig>. Contoh !igstalk naufal_al.fattah', message.id)
299 const ig_stalk = await axios.get(`https://st4rz.herokuapp.com/api/stalk?username=${username_ig}`)
300 await client.reply(from, '_Permintaan anda sedang diproses. Ditunggu aja gan ?_', message.id)
301 if (ig_stalk.data.status == 200) {
302 client.sendFileFromUrl(from, ig_stalk.data.Profile_pic, 'IGProfile.jpg', `*[+]-- INSTAGRAM STALKER --[+]*\n\n*Username:* ${username_ig}\n*FullName:* ${ig_stalk.data.Name}\n*Followers:* ${ig_stalk.data.Jumlah_Followers}\n*Following:* ${ig_stalk.data.Jumlah_Following}\n*Total Post:* ${ig_stalk.data.Jumlah_Post}\n*Bio:* ${ig_stalk.data.Biodata}`)
303 } else if (ig_stalk.data.status == false) {
304 client.sendFile(from, './media/images/ig_404.jpg', '404.jpg', 'Maaf, username yang kamu cari tidak dapat ditemukan!', message.id)
305 }
306 break
307 case 'igdl':
308 if (args.length == 0) return client.reply(from, 'Ketik !igdl <link post ig>', message.id)
309 const link_ig = body.slice(6)
310 const ig_valid = link_ig.match(/(https:\/\/www.instagram.com)/gi)
311 if (!ig_valid) return client.sendImage(from, './media/images/404.jpg', '404.jpeg', 'Maaf link yang kamu berikan tidak valid !', message.id)
312 await client.reply(from, 'Permintaan anda sedang diproses. Ditunggu aja gan ?', message.id)
313 const get_post_ig = await axios.get(`https://api.i-tech.id/dl/igdl?key=${api_itech}&link=${link_ig}`)
314 if (get_post_ig.data.code == "404") await client.sendImage(from, './media/images/404.jpg', '404.jpg', 'Maaf, link yang kamu berikan tidak dapat ditemukan [404]', message.id)
315 if (get_post_ig.data.result[0].type == "image") {
316 await client.sendFileFromUrl(from, get_post_ig.data.result[0].url, 'IGdownloader.jpg', 'Nih gan fotonya ?', message.id)
317 } else if (get_post_ig.data.result[0].type == "video") {
318 await client.sendFileFromUrl(from, get_post_ig.data.result[0].url, 'IGDownloader.mp4', 'Nih gan videonya ?', message.id)
319 }
320 break
321 case 'jadwaltvnow':
322 const jadwaltv = await axios.get('https://api.haipbis.xyz/jadwaltvnow')
323 client.reply(from, jadwaltv.data.jadwalTV, message.id)
324 break
325 case 'wiki':
326 const wiki_query = body.slice(6)
327 if (args.length == 0) return client.reply(from, 'Ketik !wiki <query>. Contoh: !wiki whatsapp', message.id)
328 const wiki = await axios.get(`https://st4rz.herokuapp.com/api/wiki?q=${wiki_query}`)
329 if (wiki.data.status == 200) {
330 client.reply(from, wiki.data.result, message.id1)
331 } else {
332 return client.reply(from, 'Maaf, query yang anda cari tidak dapat ditemukan di WikiPedia!', message.id)
333 }
334 break
335 case 'ssweb':
336 const link_ss = body.slice(7)
337 if (args.length == 0) return client.reply(from, 'Ketik !ssweb <link>. Contoh !ssweb google.com', message.id)
338 await client.reply(from, 'Permintaan anda sedang diproses. Ditunggu aja gan ?', message.id)
339 const ssweb = await axios.get(`https://screenshotapi.net/api/v1/screenshot?token=IKIVN67SKQPRW7NDBOHKUC0MBQETJ8HH&url=${link_ss}&fresh=true`)
340 client.sendFileFromUrl(from, ssweb.data.screenshot, 'ScreenshotWebsite.jpg', 'Nih gan screenshotnya', message.id)
341 break
342 case 'artinama':
343 const nama_lengkap = body.slice(10)
344 if (args.length == 0) return client.reply(from, 'Ketik !artinama <nama lengkap>. Contoh: !artinama Muhammad Naufal Al Fattah', message.id)
345 const arti = await axios.get(`https://api.i-tech.id/tools/arti?key=${api_itech}&nama=${nama_lengkap}`)
346 client.reply(from, `Nama: *${nama_lengkap}*\n\nArti Nama: ${arti.data.arti}`, message.id)
347 break
348 case 'fbmp4':
349 if(!isMemberPremium) return client.reply(from, 'Maaf gan, fitur ini khusus bagi Member Premium! Upgrade ke member premium seharga 5k sekarang juga!', message.id)
350 const link_fb = body.slice(7)
351 const fb_valid = link_fb.match(/(https:\/\/www.facebook.com)/gi)
352 if (args.length == 0) return client.reply(from, 'Ketik !fbmp4 <link>. Contoh !fbmp4 https://www.facebook.com/EpochTimesTrending/videos/310155606660409, kemudian tunggu sekitar 30 detik (paling lama)', message.id)
353 if (!fb_valid) return client.reply(from, 'Maaf, link yang kamu berikan tidak valid!', message.id)
354 await client.reply(from, 'Permintaan anda sedang diproses. Ditunggu aja gan ?', message.id)
355 const fbmp4 = await axios.get(`https://api.i-tech.id/dl/fb?key=${api_itech}&link=${link_fb}`)
356 if (fbmp4.data.code == "404") return client.sendFile(from, './media/images/404.jpg', '404.jpg', 'Maaf, url yang kamu berikan tidak dapat ditemukan! Code: [404]', message.id)
357 client.sendFileFromUrl(from, fbmp4.data.link, 'FacebookDownloader.mp4', `${fbmp4.data.title}`, message.id)
358 break
359 case 'ytmp4':
360 if (args.length == 0) return client.reply(from, 'Ketik !ytmp4 <link yt>. Contoh: !ytmp4 https://www.youtube.com/watch?v=rz-NuNWxHck', message.id)
361 const link_yt = body.slice(7)
362 await client.reply(from, 'Permintaan anda sedang diproses. Ditunggu aja gan ?', message.id)
363 const ytmp4 = await axios.get(`https://api.i-tech.id/dl/yt?key=${api_itech}&link=${link_yt}`)
364 if (ytmp4.data.code == "200") {
365 client.sendFileFromUrl(from, ytmp4.data.url_video, 'YtDownloader.mp4', `*Judul:* ${ytmp4.data.title}\n\n*Durasi:* ${ytmp4.data.duration}`, message.id)
366 } else if (ytmp4.data.code = "404") {
367 client.sendFile(from, './media/images/404.jpg', '404.jpg', 'Maaf url yang kamu berikan tidak dapat ditemukan!', message.id)
368 }
369 break
370 case 'js':
371 const zona_kota = body.slice(4)
372 if (args.length == 0) return client.reply(from, 'Ketik !js <kota>. Contoh: !js Tangerang', message.id)
373 const js = await axios.get(`https://api.i-tech.id/tools/sholat?key=${api_itech}&kota=${zona_kota}`)
374 client.reply(from, `Kota: ${js.data.kota}\n\nTerbit: ${js.data.terbit}\nImsak: ${js.data.imsak}\nSubuh: ${js.data.subuh}\nDhuha: ${js.data.dhuha}\nDzuhur: ${js.data.dzuhur}\nAshar: ${js.data.ashar}\nMaghrib: ${js.data.maghrib}\nIsya: ${js.data.isya}\n\nCatatan: ${js.data.note}`, message.id)
375 break
376 case 'botstatus':
377 case 'botstat':
378 case 'botstats':
379 const loadedMsg = await client.getAmountOfLoadedMessages()
380 const chatIds = await client.getAllChatIds()
381 const groups = await client.getAllGroups()
382 const battery = await client.getBatteryLevel()
383 const plugged = await client.getIsPlugged()
384 const info_cpu = await si.cpu()
385 const info_os = await si.osInfo()
386 const info_uptime = await si.time()
387 const info_currentLoad = await si.currentLoad()
388 const info_currentLoad2 = info_currentLoad.currentload
389 const info_currentCpu = info_currentLoad2.toFixed(2)
390 const info_disk = await si.mem()
391 const disk_fixed = info_disk.used * 0.000000001
392 const disk_control = disk_fixed.toFixed(2)
393 client.reply(from, `*[+]-- STATUS TURU BOT --[+}*\n\n- *Total Chats:* ${loadedMsg} pesan\n- *Total Groups:* ${groups.length}\n- *Personal Chats:* ${chatIds.length - groups.length}\n- *Total Chats:* ${chatIds.length}\n- *Battery:* ${battery}%\n- *Status Mengisi Daya:* ${plugged}\n\n*[+]-- SISTEM INFORMATION --[+]*\n\n*Uptime:* ${info_uptime.uptime} Seconds\n*Load System:* ${info_currentCpu}%\n*Ram Usage:* ${disk_control} GB\n*Max Network Speed:* 10 Gbps\n*OS System:* ${info_os.distro}\n*Processor:* ${info_cpu.manufacturer} ${info_cpu.brand}\n*Total Core:* ${info_cpu.cores} core\n*Max CPU Speed:* ${info_cpu.speedmax} GHz`, message.id)
394 break
395 case 'tulis2':
396 const text_tulis = body.slice(8)
397 if (args.length == 0) return client.reply(from, 'Untuk menggunakan fitur ini, ketikan !tulis2 <text>. Contoh: !tulis2 nopal ganteng')
398 await client.reply(from, '_Permintaan anda sedang diproses. Ditunggu aja gan ?_', message.id)
399 const nulis2 = await axios.get(`https://mhankbarbar.herokuapp.com/nulis?text=${text_tulis}&apiKey=${apiKey2}`)
400 client.sendFileFromUrl(from, nulis2.data.result, 'Tulisan2.jpg', 'Nih gan tulisannya ?', message.id)
401 break
402 case 'twtstalk':
403 const username_twt = body.slice(10)
404 if (args.length == 0) return client.reply(from, 'Untuk menggunakan fitur ini, ketikan !twtstalk <username twitter>. Contoh: !twtstalk cnnindonesia', message.id)
405 await client.reply(from, '_Permintaan anda sedang diproses. Ditunggu aja gan ?_', message.id)
406 const twt_stalker = await axios.get(`https://mhankbarbar.herokuapp.com/api/twstalk?username=${username_twt}&apiKey=${apiKey2}`)
407 if (twt_stalker.data.status == 200) {
408 client.sendFileFromUrl(from, twt_stalker.data.profile_pic, 'TwitterStalker.jpg', `*[+]-- TWITTER STALKER --[+]*\n\n*Name:* ${twt_stalker.data.full_name}\n*Username:* @${twt_stalker.data.name}\n*User ID:* ${twt_stalker.data.id}\n*Followers:* ${twt_stalker.data.followers_count}\n*Total Status:* ${twt_stalker.data.status_count}`, message.id)
409 } else if (twt_stalker.data.status == false) {
410 client.sendFile(from, './media/images/twt_404.png', '404.png', 'Maaf, username yang kamu cari tidak dapat ditemukan!', message.id)
411 }
412 break
413 case 'ptl1':
414 var items = ["ullzang girl", "cewe cantik", "russian girl", "asian girl", "hijab cantik", "korean girl"];
415 var cewe = items[Math.floor(Math.random() * items.length)];
416 var url_ptl1 = "https://api.fdci.se/rep.php?gambar=" + cewe;
417 axios.get(url_ptl1).then((result) => {
418 var b_ptl1 = JSON.parse(JSON.stringify(result.data));
419 var cewek = b_ptl1[Math.floor(Math.random() * b_ptl1.length)];
420 client.sendFileFromUrl(from, cewek, 'ptl1.jpg', '', message.id)
421 })
422 break
423 case 'randomhentai2':
424 if (!isMemberPremium) return client.reply(from, 'Maaf sob, fitur ini hanya tersedia untuk member premium :)')
425 const api_hentai = await axios.get(`https://api.i-tech.id/anim/hentai?key=${api_itech}`)
426 await client.sendFileFromUrl(from, api_hentai.data.result, 'randomhentai2.jpg', '', message.id)
427 break
428 case 'randomanime':
429 const api_anime = await axios.get(`https://api.i-tech.id/anim/anime?key=${api_itech}`)
430 await client.sendFileFromUrl(from, api_anime.data.result, 'randomanime.jpg', '', message.id)
431 break
432 case 'pantun':
433 const pantun_pakboy = await axios.get(`https://api.i-tech.id/tools/pantun?key=${api_itech}`)
434 client.reply(from, pantun_pakboy.data.result, message.id)
435 break
436 case 'quotes':
437 const quotes_url = await axios.get('https://api.terhambar.com/qts/')
438 client.reply(from, quotes_url.data.quotes, message.id)
439 break
440 case 'husbando':
441 const diti = fs.readFileSync('./lib/husbu.json')
442 const ditiJsin = JSON.parse(diti)
443 const rindIndix = Math.floor(Math.random() * ditiJsin.length)
444 const rindKiy = ditiJsin[rindIndix]
445 client.sendFileFromUrl(from, rindKiy.image, 'Husbando.jpg', rindKiy.teks, id)
446 break
447 case 'ttp':
448 const ttp_text = body.slice(5)
449 if (args.length == 0) return client.reply(from, 'Untuk menggunakan fitur ini, silahkan ketikan !ttp <text>. Contoh: !ttp Turu Bot')
450 const ttp_maker = await axios.get(`https://st4rz.herokuapp.com/api/ttp?kata=${ttp_text}`)
451 client.sendImageAsSticker(from, ttp_maker.data.result)
452 break
453 case 'infogempa':
454 await client.reply(from, '_Mengambil data terbaru. Mohon menunggu.....?_', message.id)
455 const infogempa = await axios.get('https://st4rz.herokuapp.com/api/infogempa')
456 const gempa = infogempa.data
457 client.sendFileFromUrl(from, gempa.map, 'Gempa.jpg', `*[+]-- INFO GEMPA --[+]*\n\n*Waktu:* ${gempa.waktu}\n*Lokasi:* ${gempa.lokasi}\n*Koordinat:* ${gempa.koordinat}\n*Magnitudo:* ${gempa.magnitude}\n*Kedalaman:* ${gempa.kedalaman}\n*Potensi:* ${gempa.potensi}`)
458 break
459 case 'list':
460 const kal = new Date()
461 const arrhari = ["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"]
462 const arrbulan = ["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"]
463 const hari = kal.getDay()
464 const tanggal = kal.getDate()
465 const bulan = kal.getMonth()
466 const tahun = kal.getFullYear()
467 const data_siswa = fs.readFileSync('./lib/absensi.txt')
468 client.reply(from, `*[+]-- DATA ABSENSI SISWA --[+]*\nTanggal: ${arrhari[hari]} ${tanggal}, ${arrbulan[bulan]} ${tahun}\n${data_siswa}`, message.id)
469 break
470 case 'absen':
471 const nama_siswa = body.slice(7)
472 if (args.length == 0) return client.reply(from, 'Mohon masukan nama siswa!', message.id)
473 fs.appendFile('./lib/absensi.txt', `\n${nama_siswa}`)
474 client.reply(from, 'Sukses, kamu berhasil absen hari ini ?', message.id)
475 break
476 case 'resetlist':
477 fs.writeFileSync('./lib/absensi.txt', '')
478 await client.reply(from, 'Sukses, list absensi siswa berhasil direset ?', message.id)
479 break
480 case 'broadcast':
481 if (!isMemberPremium) return client.reply(from, 'Maaf gan, fitur ini khusus bagi Member Premium! Upgrade ke member premium seharga 5k sekarang juga!', message.id)
482 let msg = body.slice(11)
483 const chatz = await client.getAllChatIds()
484 for (let ids of chatz) {
485 var cvk = await client.getChatById(ids)
486 if (!cvk.isReadOnly) client.sendText(ids, `*[+]-- BROADCAST --[+]*\n${msg}`)
487 }
488 client.reply(from, 'Broadcast Success!', message.id)
489 break
490 case 'adzan':
491 if (args.length == 0) return client.reply(from, 'Mohon masukan nama sholat. contoh: Subuh', message.id)
492 const js_sholat = body.slice(7)
493 if (!isbotadmin) return client.reply(from, '403!', message.id)
494 const chats = await client.getAllChatIds()
495 for (let chataz of chats) {
496 var cvg = await client.getChatById(chataz)
497 if (!cvg.isReadOnly) {
498 if (js_sholat == 'Subuh') {
499 client.sendImage(chataz, './media/images/adzan.jpg', 'adzan.jpg', `Saatnya Adzan *${js_sholat}* untuk wilayah Jakarta dan sekitarnya`)
500 client.sendPtt(chataz, './media/AdzanSubuh.mp3')
501 console.log('ADZAN SUSKSES [SUBUH]')
502 } else {
503 client.sendImage(chataz, './media/images/adzan.jpg', 'adzan.jpg', `Saatnya Adzan *${js_sholat}* untuk wilayah Jakarta dan sekitarnya`, message.id)
504 client.sendPtt(chataz, './media/Adzan.mp3')
505 console.log(`ADZAN SUKSES [${js_sholat}]`)
506 }
507 }
508 }
509 client.reply(from, 'Adzan sukses!', message.id)
510 break
511 case 'user':
512 const username = body.slice(6)
513 const result = await axios.get(`https://api.jikan.moe/v3/user/${username}`)
514 const jikan = result.data
515
516var Data = `?️ Username: ${jikan.username}
517
518?️ User ID: ${jikan.user_id}
519
520❤️ Gender: ${jikan.gender}
521
522?️ Location: ${jikan.location}
523
524?️ Joined: ${jikan.joined}
525
526⭐️ Anime Stats ⭐️
527
528Days Watched: ${jikan.anime_stats.days_watched}
529
530Mean Score: ${jikan.anime_stats.mean_score}
531
532Currently Watching: ${jikan.anime_stats.watching}
533
534Completed: ${jikan.anime_stats.completed}
535
536On Hold: ${jikan.anime_stats.on_hold}
537
538Dropped: ${jikan.anime_stats.dropped}
539
540Plan to Watch: ${jikan.anime_stats.plan_to_watch}
541
542?️ Manga Stats ?️
543
544Days Read: ${jikan.manga_stats.days_read}
545
546Mean Score: ${jikan.manga_stats.mean_score}
547
548Currently Reading: ${jikan.manga_stats.reading}
549
550Completed: ${jikan.manga_stats.completed}
551
552On Hold: ${jikan.manga_stats.on_hold}
553
554Dropped: ${jikan.manga_stats.dropped}
555
556Plan to Read: ${jikan.manga_stats.plan_to_read}`
557 await client.sendFileFromUrl(from, `${jikan.image_url}`,`user.png`, Data)
558 break
559 case 'ban':
560 if(!isbotadmin) return client.reply(from, 'Hanya admin dan owner bot yang dapat menggunakan fitur in!', message.id)
561 for (let i = 0; i < mentionedJidList.length; i++) {
562 ban.push(mentionedJidList[i])
563 fs.writeFileSync('./lib/banned.json', JSON.stringify(ban))
564 client.reply(from, 'Target berhasil dibanned!', message.id)
565 }
566 break
567 case 'covid':
568 arg = body.trim().split(' ')
569 console.log(...arg[1])
570 var slicedArgs = Array.prototype.slice.call(arg, 1);
571 console.log(slicedArgs)
572 const country = await slicedArgs.join(' ')
573 console.log(country)
574 const response2 = await axios.get('https://coronavirus-19-api.herokuapp.com/countries/' + country + '/')
575 const { cases, todayCases, deaths, todayDeaths, active } = response2.data
576 await client.sendText(from, '?️Covid Info -' + country + ' ?️\n\n✨️Total Kasus: ' + `${cases}` + '\n?️Kasus Hari Ini: ' + `${todayCases}` + '\n☣️Total Meninggal: ' + `${deaths}` + '\n☢️Meninggal Hari Ini: ' + `${todayDeaths}` + '\n⛩️Kasus Aktif: ' + `${active}` + '.')
577 break
578 case 'getall':
579 if (!isMemberPremium) return client.reply(from, 'Maaf gan, fitur ini khusus Member Premium! Upgrade ke Member Premium seharga 5k sekarang juga!', message.id)
580 const groupMem = await client.getGroupMembers(groupId)
581 let hehe = `${body.slice(6)} - ${pushname} \n`
582 for (let i = 0; i < groupMem.length; i++) {
583 hehe += '✨️'
584 hehe += ` @${groupMem[i].id.replace(/@c.us/g, '')}\n`
585 }
586 hehe += '----------------------'
587 await client.sendTextWithMentions(from, hehe)
588 break
589 case 'act':
590 arg = body.trim().split(' ')
591 if (!isbotadmins) return client.reply(from, 'Maaf, hanya admin bot yang dapat menggunakan fitur ini!', id)
592 if (arg[1] == 'welcome') {
593 wel.push(chat.id)
594 fs.writeFileSync('./lib/welcome.json', JSON.stringify(wel))
595 client.reply(from, `Welcome sekarang diaktifkan di grup *${name}*`, message.id)
596 } else if (arg[1] == 'nsfw') {
597 nsfwgrp.push(chat.id)
598 fs.writeFileSync('./lib/nsfw.json', JSON.stringify(nsfwgrp))
599 client.reply(from, `NSFW sekarang diaktifkan di grup *${name}*`, message.id)
600 }
601 break
602 case 'deact':
603 arg = body.trim().split(' ')
604 if (!isbotadmin) return client.reply(from, 'Maaf, hanya admin grup yang dapat menggunakan fitur tersebut!', id)
605 if (arg[1] == 'welcome') {
606 let inx = ban.indexOf(from)
607 wel.splice(inx, 1)
608 fs.writeFileSync('./lib/welcome.json', JSON.stringify(wel))
609 client.reply(from, `Welcome sudah dinonaktifkan di grup *${name}*`, message.id)
610 } else if (arg[1] == 'nsfw') {
611 let inx = ban.indexOf(from)
612 nsfwgrp.splice(inx, 1)
613 fs.writeFileSync('./lib/nsfw.json', JSON.stringify(nsfwgrp))
614 client.reply(from, `NSFW sudah dinonaktifkan di grup *${name}*`, message.id)
615 }
616 break
617 case 'kickall':
618 const isGroupOwner = sender.id === chat.groupMetadata.owner
619 if(!isGroupOwner) return client.reply(from, 'Maaf, hanya owner grup yang dapat menggunakan fitur ini!', message.id)
620 if (!isGroupMsg) return client.reply(from, 'Maaf, fitur tersebut hanya dapat digunakan di dalam grup!', message.id)
621 if(!isBotGroupAdmins) return client.reply(from, 'Bot harus dijadikan admin untuk menggunakan ditur ini!', message.id)
622 const allMem = await client.getGroupMembers(from)
623 console.log(isGroupAdmins)
624 for (let i = 0; i < allMem.length; i++) {
625 if (groupAdmins.includes(allMem[i].id)) return
626 await client.removeParticipant(groupId, allMem[i].id)
627 }
628 client.reply(from, 'Done!', message.id)
629 break
630 case 'clearall':
631 if (!isbotadmin) return client.reply(from, 'Owner bot only', message.id)
632 const allChatz = await client.getAllChats()
633 for (let dchat of allChatz) {
634 await client.deleteChat(dchat.id)
635 }
636 client.reply(from, 'Done', message.id)
637 break
638 case 'unban':
639 if(!isbotadmin) return client.reply(from, 'Hanya admin dan owner bot yang dapat menggunakan fitur ini!', message.id)
640 let inx = ban.indexOf(mentionedJidList[0])
641 ban.splice(inx, 1)
642 fs.writeFileSync('./lib/banned.json', JSON.stringify(ban))
643 client.reply(from, 'Target berhasil diuunbanned!', message.id)
644 break
645 case 'kick':
646 if(!isGroupMsg) return client.reply(from, '...', message.id)
647 if(!isGroupAdmins) return client.reply(from, 'Maaf, hanya admin grup yang dapat menggunakan fitur ini!', message.id)
648 if(!isBotGroupAdmins) return client.reply(from, 'Bot harus dijadikan admin untuk menggunakan fitur ini!', message.id)
649 if(mentionedJidList.length === 0) return client.reply(from, 'Wrong format', message.id)
650 await client.sendText(from, `Request Accepted! issued:\n${mentionedJidList.join('\n')}`)
651 for (let i = 0; i < mentionedJidList.length; i++) {
652 if (groupAdmins.includes(mentionedJidList[i])) return await client.reply(from, '....', message.id)
653 await client.removeParticipant(groupId, mentionedJidList[i])
654 }
655 break
656 case 'add':
657 const no_calon = body.slice(5)
658 if (!isGroupMsg) return client.reply(from, 'Maaf sob, fitur ini hanya dapat digunakan di dalam grup!', message.id)
659 if (!isBotGroupAdmins) return client.reply(from,'Maaf sob, bot perlu dijadikan admin grup untuk menjalankan fitu in!', message.id)
660 if (!isGroupAdmins) return client.reply(from, 'Maaf sob, hanya admin grup yang dapat menggunakan fitur ini!', message.id)
661 if (args.length == 0) return client.reply(from, 'Format nomor harus 62xxxx!', message.id)
662 await client.reply(from, 'Sukses gan, user tersebut berhasil dimasukan kedalam grup!', message.id)
663 client.addParticipant(groupId, `${no_calon}@c.us`)
664 break
665 case 'delete':
666 if (!quotedMsg) return client.reply(from, 'Wrong Format!', id)
667 if (!quotedMsgObj.fromMe) return client.reply(from, 'Wrong Format!', id)
668 client.deleteMessage(quotedMsgObj.chatId, quotedMsgObj.id, false)
669 break
670 case 'leave':
671 if(!isGroupMsg) return client.reply(from, '...', message.id)
672 if(!isGroupAdmins) return client.reply(from, 'Maaf, hanya admin grup yang dapat menggunakan fitur ini!', message.id)
673 await client.sendText(from,'Sayonara').then(() => client.leaveGroup(groupId))
674 break
675 case 'promote':
676 if(!isGroupMsg) return client.reply(from, '.', message.id)
677 if(!isGroupAdmins) return client.reply(from, 'Maaf, hanya admin grup yang dapat menggunakan fitur ini!', message.id)
678 if(!isBotGroupAdmins) return client.reply(from, 'Bot harus dijadikan admin untuk menggunakan fitur ini sob!', message.id)
679 if (mentionedJidList.length === 0) return await client.reply(from, 'Wrong format!', message.id)
680 if (mentionedJidList.length >= 2) return await client.reply(from, 'One user at a time', message.id)
681 if (groupAdmins.includes(mentionedJidList[0])) return await client.reply(from, 'User ini memang sudah menjadi admin', message.id)
682 await client.promoteParticipant(groupId, mentionedJidList[0])
683 await client.sendTextWithMentions(from, `@${mentionedJidList[0].replace('@c.us', '')} sekarang admin`)
684 break
685 case 'demote':
686 if(!isGroupAdmins) return client.reply(from, 'Maaf, hanya admin grup yang dapat menggunakan fitur ini!', message.id)
687 if(!isBotGroupAdmins) return client.reply(from, 'Bot harus dijadikan admin untuk menggunakan fitur ini sob!', message.id)
688 if (mentionedJidList.length === 0) return client.reply(from, 'Wrong Format', message.id)
689 if (mentionedJidList.length >= 2) return await client.reply(from, 'One user at a time', message.id)
690 if (!groupAdmins.includes(mentionedJidList[0])) return await client.reply(from, 'User ini memang bukan admin', message.id)
691 await client.demoteParticipant(groupId, mentionedJidList[0])
692 await client.sendTextWithMentions(from, `Maaf, @${mentionedJidList[0].replace('@c.us', '')} anda sekarang bukan admin lagi AWOAKAOWKAWOK :V`)
693 break
694 case 'botjoin':
695 if (args.length == 0) return client.reply(from, 'Wrong Format', message.id)
696 const link_invite = body.slice(6)
697 const minMem = 5
698 const isLink = link_invite.match(/(https:\/\/chat.whatsapp.com)/gi)
699 const check = await client.inviteInfo(link_invite)
700 if (!isLink) return client.reply(from, 'mana linknya anjirr?', message.id)
701 if (check.size < minMem) return client.reply(from, 'Minimal member grup adalah 5 orang!', message.id)
702 await client.joinGroupViaLink(link_invite).then( async () => {
703 await client.reply(from, '*Sukses gan* ✨️', message.id)
704 }).catch(error => {
705 client.reply(from, 'An error occured ?️', message.id)
706 })
707 break
708 case 'groupinfo' :
709 if (!isGroupMsg) return client.reply(from, '.', message.id)
710 var totalMem = chat.groupMetadata.participants.length
711 var desc = chat.groupMetadata.desc
712 var groupname = name
713 var welgrp = wel.includes(chat.id)
714 var ngrp = nsfwgrp.includes(chat.id)
715 var grouppic = await client.getProfilePicFromServer(chat.id)
716 if (grouppic == undefined) {
717 var pfp = errorurl
718 } else {
719 var pfp = grouppic
720 }
721 await client.sendFileFromUrl(from, pfp, 'group.png', `
722*[+]-- GROUP INFO --[+]*
723
724*Nama Grup: ${groupname}*
725
726*Total Anggota: ${totalMem} Users*
727
728*Deskripsi Grup*
729
730${desc}`)
731 break
732 case 'sauce':
733 if (isMedia) {
734 const mediaData = await decryptMedia(message)
735 const imageBase64 = `data:${mimetype};base64,${mediaData.toString('base64')}`
736 try {
737 const raw = await fetch("https://trace.moe/api/search", {
738 method: "POST",
739 body: JSON.stringify({ image: imageBase64 }),
740 headers: { "Content-Type": "application/json" }
741 })
742 const parsedResult = await raw.json()
743 const { anime, episode, title_english } = parsedResult.docs[0]
744 const content = `*Anime Found!* \n⛩️ *Japanese Title:* ${anime} \n✨️ *English Title:* ${title_english} \n?️ *Source Episode:* ${episode} `
745 await client.sendImage(from, imageBase64, 'sauce.png', content, id)
746 console.log("Sent!")
747 } catch (err) {
748 await client.sendFileFromUrl(from, errorurl, 'error.png', '?️ An Error Occured', id)
749 }
750 } else if (quotedMsg && quotedMsg.type == 'image') {
751 const mediaData = await decryptMedia(quotedMsg)
752 const imageBase64 = `data:${quotedMsg.mimetype};base64,${mediaData.toString('base64')}`
753 try {
754 const raw = await fetch("https://trace.moe/api/search", {
755 method: "POST",
756 body: JSON.stringify({ image: imageBase64 }),
757 headers: { "Content-Type": "application/json" }
758 })
759 const parsedResult = await raw.json()
760 const { anime, episode, title_english } = parsedResult.docs[0]
761 const content = `*Anime Found!* \n⛩️ *Japanese Title:* ${anime} \n✨️ *English Title: ${title_english} \n?️ *Source Episode:* ${episode} `
762 await client.sendImage(from, imageBase64, 'sauce.png', content, id)
763 console.log("Sent!")
764 } catch (err) {
765 throw new Error(err.message)
766 await client.sendFileFromUrl(from, errorurl, 'error.png', '?️ An Error Occured', id)
767 }
768 }
769 break
770 case 'sr':
771 arg = body.trim().split(' ')
772 const sr = arg[1]
773 try {
774 const response1 = await axios.get('https://meme-api.herokuapp.com/gimme/' + sr + '/');
775 const {
776 postLink,
777 title,
778 subreddit,
779 url,
780 nsfw,
781 spoiler
782 } = response1.data
783
784
785
786 if (nsfw == true) {
787 if ((isGroupMsg) && (isnsfw)) {
788 await client.sendFileFromUrl(from, `${url}`, 'Reddit.jpg', `${title}` + '\n\nPostlink:' + `${postLink}`)
789 } else if ((isGroupMsg) && (!isnsfw)) {
790 await client.reply(from, `NSFW belum diaktifkan di grup *${name}*`, id)
791 }
792 } else {
793 await client.sendFileFromUrl(from, `${url}`, 'Reddit.jpg', `${title}` + '\n\nPostlink:' + `${postLink}`)
794 }
795 } catch(err) {
796 await client.reply(from, 'There is no such subreddit, Baka!', id)
797 }
798 break
799 case 'cgc':
800 arg = body.trim().split(' ')
801 const gcname = arg[1]
802 client.createGroup(gcname, mentionedJidList)
803 client.sendText(from, 'Group Created ✨️')
804 break
805 case 'anime':
806 const keyword = message.body.replace('#anime', '')
807 try {
808 const data = await fetch(
809 `https://api.jikan.moe/v3/search/anime?q=${keyword}`
810 )
811 const parsed = await data.json()
812 if (!parsed) {
813 await client.sendFile(from, './lib/media/images/404.jpeg', '404.jpeg', 'Maaf, anime yang kamu cari tidak dapat ditemukan', message.id)
814 return null
815 }
816 const { title, synopsis, episodes, url, rated, score, image_url } = parsed.results[0]
817 const content = `*Anime Found!*
818✨️ *Title:* ${title}
819
820?️ *Episodes:* ${episodes}
821
822?️ *Rating:* ${rated}
823
824❤️ *Score:* ${score}
825
826?️ *Synopsis:* ${synopsis}
827
828?️ *URL*: ${url}`
829
830 const image = await bent("buffer")(image_url)
831 const base64 = `data:image/jpg;base64,${image.toString("base64")}`
832 client.sendImage(from, base64, title, content)
833 } catch (err) {
834 console.error(err.message)
835 await client.sendFile(from, './lib/media/images/404.jpeg', '404.jpeg', 'Maaf, anime yang kamu cari tidak dapat ditemukan', message.id)
836 }
837 break
838 case 'animeneko':
839 client.sendFileFromUrl(from, akaneko.neko(), 'neko.jpg', 'Neko *Nyaa*~')
840 break
841 case 'doggo':
842 const list = ["https://cdn.shibe.online/shibes/247d0ac978c9de9d9b66d72dbdc65f2dac64781d.jpg","https://cdn.shibe.online/shibes/1cf322acb7d74308995b04ea5eae7b520e0eae76.jpg","https://cdn.shibe.online/shibes/1ce955c3e49ae437dab68c09cf45297d68773adf.jpg","https://cdn.shibe.online/shibes/ec02bee661a797518d37098ab9ad0c02da0b05c3.jpg","https://cdn.shibe.online/shibes/1e6102253b51fbc116b887e3d3cde7b5c5083542.jpg","https://cdn.shibe.online/shibes/f0c07a7205d95577861eee382b4c8899ac620351.jpg","https://cdn.shibe.online/shibes/3eaf3b7427e2d375f09fc883f94fa8a6d4178a0a.jpg","https://cdn.shibe.online/shibes/c8b9fcfde23aee8d179c4c6f34d34fa41dfaffbf.jpg","https://cdn.shibe.online/shibes/55f298bc16017ed0aeae952031f0972b31c959cb.jpg","https://cdn.shibe.online/shibes/2d5dfe2b0170d5de6c8bc8a24b8ad72449fbf6f6.jpg","https://cdn.shibe.online/shibes/e9437de45e7cddd7d6c13299255e06f0f1d40918.jpg","https://cdn.shibe.online/shibes/6c32141a0d5d089971d99e51fd74207ff10751e7.jpg","https://cdn.shibe.online/shibes/028056c9f23ff40bc749a95cc7da7a4bb734e908.jpg","https://cdn.shibe.online/shibes/4fb0c8b74dbc7653e75ec1da597f0e7ac95fe788.jpg","https://cdn.shibe.online/shibes/125563d2ab4e520aaf27214483e765db9147dcb3.jpg","https://cdn.shibe.online/shibes/ea5258fad62cebe1fedcd8ec95776d6a9447698c.jpg","https://cdn.shibe.online/shibes/5ef2c83c2917e2f944910cb4a9a9b441d135f875.jpg","https://cdn.shibe.online/shibes/6d124364f02944300ae4f927b181733390edf64e.jpg","https://cdn.shibe.online/shibes/92213f0c406787acd4be252edb5e27c7e4f7a430.jpg","https://cdn.shibe.online/shibes/40fda0fd3d329be0d92dd7e436faa80db13c5017.jpg","https://cdn.shibe.online/shibes/e5c085fc427528fee7d4c3935ff4cd79af834a82.jpg","https://cdn.shibe.online/shibes/f83fa32c0da893163321b5cccab024172ddbade1.jpg","https://cdn.shibe.online/shibes/4aa2459b7f411919bf8df1991fa114e47b802957.jpg","https://cdn.shibe.online/shibes/2ef54e174f13e6aa21bb8be3c7aec2fdac6a442f.jpg","https://cdn.shibe.online/shibes/fa97547e670f23440608f333f8ec382a75ba5d94.jpg","https://cdn.shibe.online/shibes/fb1b7150ed8eb4ffa3b0e61ba47546dd6ee7d0dc.jpg","https://cdn.shibe.online/shibes/abf9fb41d914140a75d8bf8e05e4049e0a966c68.jpg","https://cdn.shibe.online/shibes/f63e3abe54c71cc0d0c567ebe8bce198589ae145.jpg","https://cdn.shibe.online/shibes/4c27b7b2395a5d051b00691cc4195ef286abf9e1.jpg","https://cdn.shibe.online/shibes/00df02e302eac0676bb03f41f4adf2b32418bac8.jpg","https://cdn.shibe.online/shibes/4deaac9baec39e8a93889a84257338ebb89eca50.jpg","https://cdn.shibe.online/shibes/199f8513d34901b0b20a33758e6ee2d768634ebb.jpg","https://cdn.shibe.online/shibes/f3efbf7a77e5797a72997869e8e2eaa9efcdceb5.jpg","https://cdn.shibe.online/shibes/39a20ccc9cdc17ea27f08643b019734453016e68.jpg","https://cdn.shibe.online/shibes/e67dea458b62cf3daa4b1e2b53a25405760af478.jpg","https://cdn.shibe.online/shibes/0a892f6554c18c8bcdab4ef7adec1387c76c6812.jpg","https://cdn.shibe.online/shibes/1b479987674c9b503f32e96e3a6aeca350a07ade.jpg","https://cdn.shibe.online/shibes/0c80fc00d82e09d593669d7cce9e273024ba7db9.jpg","https://cdn.shibe.online/shibes/bbc066183e87457b3143f71121fc9eebc40bf054.jpg","https://cdn.shibe.online/shibes/0932bf77f115057c7308ef70c3de1de7f8e7c646.jpg","https://cdn.shibe.online/shibes/9c87e6bb0f3dc938ce4c453eee176f24636440e0.jpg","https://cdn.shibe.online/shibes/0af1bcb0b13edf5e9b773e34e54dfceec8fa5849.jpg","https://cdn.shibe.online/shibes/32cf3f6eac4673d2e00f7360753c3f48ed53c650.jpg","https://cdn.shibe.online/shibes/af94d8eeb0f06a0fa06f090f404e3bbe86967949.jpg","https://cdn.shibe.online/shibes/4b55e826553b173c04c6f17aca8b0d2042d309fb.jpg","https://cdn.shibe.online/shibes/a0e53593393b6c724956f9abe0abb112f7506b7b.jpg","https://cdn.shibe.online/shibes/7eba25846f69b01ec04de1cae9fed4b45c203e87.jpg","https://cdn.shibe.online/shibes/fec6620d74bcb17b210e2cedca72547a332030d0.jpg","https://cdn.shibe.online/shibes/26cf6be03456a2609963d8fcf52cc3746fcb222c.jpg","https://cdn.shibe.online/shibes/c41b5da03ad74b08b7919afc6caf2dd345b3e591.jpg","https://cdn.shibe.online/shibes/7a9997f817ccdabac11d1f51fac563242658d654.jpg","https://cdn.shibe.online/shibes/7221241bad7da783c3c4d84cfedbeb21b9e4deea.jpg","https://cdn.shibe.online/shibes/283829584e6425421059c57d001c91b9dc86f33b.jpg","https://cdn.shibe.online/shibes/5145c9d3c3603c9e626585cce8cffdfcac081b31.jpg","https://cdn.shibe.online/shibes/b359c891e39994af83cf45738b28e499cb8ffe74.jpg","https://cdn.shibe.online/shibes/0b77f74a5d9afaa4b5094b28a6f3ee60efcb3874.jpg","https://cdn.shibe.online/shibes/adccfdf7d4d3332186c62ed8eb254a49b889c6f9.jpg","https://cdn.shibe.online/shibes/3aac69180f777512d5dabd33b09f531b7a845331.jpg","https://cdn.shibe.online/shibes/1d25e4f592db83039585fa480676687861498db8.jpg","https://cdn.shibe.online/shibes/d8349a2436420cf5a89a0010e91bf8dfbdd9d1cc.jpg","https://cdn.shibe.online/shibes/eb465ef1906dccd215e7a243b146c19e1af66c67.jpg","https://cdn.shibe.online/shibes/3d14e3c32863195869e7a8ba22229f457780008b.jpg","https://cdn.shibe.online/shibes/79cedc1a08302056f9819f39dcdf8eb4209551a3.jpg","https://cdn.shibe.online/shibes/4440aa827f88c04baa9c946f72fc688a34173581.jpg","https://cdn.shibe.online/shibes/94ea4a2d4b9cb852e9c1ff599f6a4acfa41a0c55.jpg","https://cdn.shibe.online/shibes/f4478196e441aef0ada61bbebe96ac9a573b2e5d.jpg","https://cdn.shibe.online/shibes/96d4db7c073526a35c626fc7518800586fd4ce67.jpg","https://cdn.shibe.online/shibes/196f3ed10ee98557328c7b5db98ac4a539224927.jpg","https://cdn.shibe.online/shibes/d12b07349029ca015d555849bcbd564d8b69fdbf.jpg","https://cdn.shibe.online/shibes/80fba84353000476400a9849da045611a590c79f.jpg","https://cdn.shibe.online/shibes/94cb90933e179375608c5c58b3d8658ef136ad3c.jpg","https://cdn.shibe.online/shibes/8447e67b5d622ef0593485316b0c87940a0ef435.jpg","https://cdn.shibe.online/shibes/c39a1d83ad44d2427fc8090298c1062d1d849f7e.jpg","https://cdn.shibe.online/shibes/6f38b9b5b8dbf187f6e3313d6e7583ec3b942472.jpg","https://cdn.shibe.online/shibes/81a2cbb9a91c6b1d55dcc702cd3f9cfd9a111cae.jpg","https://cdn.shibe.online/shibes/f1f6ed56c814bd939645138b8e195ff392dfd799.jpg","https://cdn.shibe.online/shibes/204a4c43cfad1cdc1b76cccb4b9a6dcb4a5246d8.jpg","https://cdn.shibe.online/shibes/9f34919b6154a88afc7d001c9d5f79b2e465806f.jpg","https://cdn.shibe.online/shibes/6f556a64a4885186331747c432c4ef4820620d14.jpg","https://cdn.shibe.online/shibes/bbd18ae7aaf976f745bc3dff46b49641313c26a9.jpg","https://cdn.shibe.online/shibes/6a2b286a28183267fca2200d7c677eba73b1217d.jpg","https://cdn.shibe.online/shibes/06767701966ed64fa7eff2d8d9e018e9f10487ee.jpg","https://cdn.shibe.online/shibes/7aafa4880b15b8f75d916b31485458b4a8d96815.jpg","https://cdn.shibe.online/shibes/b501169755bcf5c1eca874ab116a2802b6e51a2e.jpg","https://cdn.shibe.online/shibes/a8989bad101f35cf94213f17968c33c3031c16fc.jpg","https://cdn.shibe.online/shibes/f5d78feb3baa0835056f15ff9ced8e3c32bb07e8.jpg","https://cdn.shibe.online/shibes/75db0c76e86fbcf81d3946104c619a7950e62783.jpg","https://cdn.shibe.online/shibes/8ac387d1b252595bbd0723a1995f17405386b794.jpg","https://cdn.shibe.online/shibes/4379491ef4662faa178f791cc592b52653fb24b3.jpg","https://cdn.shibe.online/shibes/4caeee5f80add8c3db9990663a356e4eec12fc0a.jpg","https://cdn.shibe.online/shibes/99ef30ea8bb6064129da36e5673649e957cc76c0.jpg","https://cdn.shibe.online/shibes/aeac6a5b0a07a00fba0ba953af27734d2361fc10.jpg","https://cdn.shibe.online/shibes/9a217cfa377cc50dd8465d251731be05559b2142.jpg","https://cdn.shibe.online/shibes/65f6047d8e1d247af353532db018b08a928fd62a.jpg","https://cdn.shibe.online/shibes/fcead395cbf330b02978f9463ac125074ac87ab4.jpg","https://cdn.shibe.online/shibes/79451dc808a3a73f99c339f485c2bde833380af0.jpg","https://cdn.shibe.online/shibes/bedf90869797983017f764165a5d97a630b7054b.jpg","https://cdn.shibe.online/shibes/dd20e5801badd797513729a3645c502ae4629247.jpg","https://cdn.shibe.online/shibes/88361ee50b544cb1623cb259bcf07b9850183e65.jpg","https://cdn.shibe.online/shibes/0ebcfd98e8aa61c048968cb37f66a2b5d9d54d4b.jpg"]
843 let kya = list[Math.floor(Math.random() * list.length)]
844 client.sendFileFromUrl(from, kya, 'Dog.jpeg', 'Doggo ✨️', id)
845 break
846 case 'neko':
847 q2 = Math.floor(Math.random() * 900) + 300;
848 q3 = Math.floor(Math.random() * 900) + 300;
849 client.sendFileFromUrl(from, 'http://placekitten.com/'+q3+'/'+q2, 'neko.png','Neko ?️', id)
850 break
851 case 'roll':
852 const dice = Math.floor(Math.random() * 6) + 1
853 await client.sendStickerfromUrl(from, 'https://www.random.org/dice/dice' + dice + '.png')
854 break
855 case 'flip':
856 const side = Math.floor(Math.random() * 2) + 1
857 if (side == 1) {
858 client.sendStickerfromUrl(from, 'https://i.ibb.co/LJjkVK5/heads.png')
859 } else {
860 client.sendStickerfromUrl(from, 'https://i.ibb.co/wNnZ4QD/tails.png')
861 }
862 break
863 case 'ship':
864 arg = body.trim().split(' ')
865 const per = Math.floor(Math.random() * 100)
866
867if (per < 25) {
868var sentence = `${per}% Worse than average ♦️`
869} else if (per < 50) {
870var sentence = `${per}% I don't know how i feel about it ❇️`
871} else if (per < 75) {
872var sentence = `${per}% Good, I guess... ⭐️`
873} else if (per < 90) {
874var sentence = `${per}% Sugoii! Go for it!?️`
875} else {
876var sentence = `${per}% Incredible! You two will be an amazing couple ?️`
877}
878
879var shiptext = `❣️ *Matchmaking...*
880
881---------------------------------
882 *${arg[1]} x ${arg[2]}*
883---------------------------------
884
885${sentence}`
886 await client.sendTextWithMentions(from, shiptext)
887 break
888 case 'pokemon':
889 q7 = Math.floor(Math.random() * 890) + 1;
890 client.sendFileFromUrl(from, 'https://assets.pokemon.com/assets/cms2/img/pokedex/full/'+q7+'.png','Pokemon.png','.', id)
891 break
892 case 'rpaper' :
893 const walnime = ['https://cdn.nekos.life/wallpaper/QwGLg4oFkfY.png','https://cdn.nekos.life/wallpaper/bUzSjcYxZxQ.jpg','https://cdn.nekos.life/wallpaper/j49zxzaUcjQ.jpg','https://cdn.nekos.life/wallpaper/YLTH5KuvGX8.png','https://cdn.nekos.life/wallpaper/Xi6Edg133m8.jpg','https://cdn.nekos.life/wallpaper/qvahUaFIgUY.png','https://cdn.nekos.life/wallpaper/leC8q3u8BSk.jpg','https://cdn.nekos.life/wallpaper/tSUw8s04Zy0.jpg','https://cdn.nekos.life/wallpaper/sqsj3sS6EJE.png','https://cdn.nekos.life/wallpaper/HmjdX_s4PU4.png','https://cdn.nekos.life/wallpaper/Oe2lKgLqEXY.jpg','https://cdn.nekos.life/wallpaper/GTwbUYI-xTc.jpg','https://cdn.nekos.life/wallpaper/nn_nA8wTeP0.png','https://cdn.nekos.life/wallpaper/Q63o6v-UUa8.png','https://cdn.nekos.life/wallpaper/ZXLFm05K16Q.jpg','https://cdn.nekos.life/wallpaper/cwl_1tuUPuQ.png','https://cdn.nekos.life/wallpaper/wWhtfdbfAgM.jpg','https://cdn.nekos.life/wallpaper/3pj0Xy84cPg.jpg','https://cdn.nekos.life/wallpaper/sBoo8_j3fkI.jpg','https://cdn.nekos.life/wallpaper/gCUl_TVizsY.png','https://cdn.nekos.life/wallpaper/LmTi1k9REW8.jpg','https://cdn.nekos.life/wallpaper/sbq_4WW2PUM.jpg','https://cdn.nekos.life/wallpaper/QOSUXEbzDQA.png','https://cdn.nekos.life/wallpaper/khaqGIHsiqk.jpg','https://cdn.nekos.life/wallpaper/iFtEXugqQgA.png','https://cdn.nekos.life/wallpaper/deFKIDdRe1I.jpg','https://cdn.nekos.life/wallpaper/OHZVtvDm0gk.jpg','https://cdn.nekos.life/wallpaper/YZYa00Hp2mk.jpg','https://cdn.nekos.life/wallpaper/R8nPIKQKo9g.png','https://cdn.nekos.life/wallpaper/_brn3qpRBEE.jpg','https://cdn.nekos.life/wallpaper/ADTEQdaHhFI.png','https://cdn.nekos.life/wallpaper/MGvWl6om-Fw.jpg','https://cdn.nekos.life/wallpaper/YGmpjZW3AoQ.jpg','https://cdn.nekos.life/wallpaper/hNCgoY-mQPI.jpg','https://cdn.nekos.life/wallpaper/3db40hylKs8.png','https://cdn.nekos.life/wallpaper/iQ2FSo5nCF8.jpg','https://cdn.nekos.life/wallpaper/meaSEfeq9QM.png','https://cdn.nekos.life/wallpaper/CmEmn79xnZU.jpg','https://cdn.nekos.life/wallpaper/MAL18nB-yBI.jpg','https://cdn.nekos.life/wallpaper/FUuBi2xODuI.jpg','https://cdn.nekos.life/wallpaper/ez-vNNuk6Ck.jpg','https://cdn.nekos.life/wallpaper/K4-z0Bc0Vpc.jpg','https://cdn.nekos.life/wallpaper/Y4JMbswrNg8.jpg','https://cdn.nekos.life/wallpaper/ffbPXIxt4-0.png','https://cdn.nekos.life/wallpaper/x63h_W8KFL8.jpg','https://cdn.nekos.life/wallpaper/lktzjDRhWyg.jpg','https://cdn.nekos.life/wallpaper/j7oQtvRZBOI.jpg','https://cdn.nekos.life/wallpaper/MQQEAD7TUpQ.png','https://cdn.nekos.life/wallpaper/lEG1-Eeva6Y.png','https://cdn.nekos.life/wallpaper/Loh5wf0O5Aw.png','https://cdn.nekos.life/wallpaper/yO6ioREenLA.png','https://cdn.nekos.life/wallpaper/4vKWTVgMNDc.jpg','https://cdn.nekos.life/wallpaper/Yk22OErU8eg.png','https://cdn.nekos.life/wallpaper/Y5uf1hsnufE.png','https://cdn.nekos.life/wallpaper/xAmBpMUd2Zw.jpg','https://cdn.nekos.life/wallpaper/f_RWFoWciRE.jpg','https://cdn.nekos.life/wallpaper/Y9qjP2Y__PA.jpg','https://cdn.nekos.life/wallpaper/eqEzgohpPwc.jpg','https://cdn.nekos.life/wallpaper/s1MBos_ZGWo.jpg','https://cdn.nekos.life/wallpaper/PtW0or_Pa9c.png','https://cdn.nekos.life/wallpaper/32EAswpy3M8.png','https://cdn.nekos.life/wallpaper/Z6eJZf5xhcE.png','https://cdn.nekos.life/wallpaper/xdiSF731IFY.jpg','https://cdn.nekos.life/wallpaper/Y9r9trNYadY.png','https://cdn.nekos.life/wallpaper/8bH8CXn-sOg.jpg','https://cdn.nekos.life/wallpaper/a02DmIFzRBE.png','https://cdn.nekos.life/wallpaper/MnrbXcPa7Oo.png','https://cdn.nekos.life/wallpaper/s1Tc9xnugDk.jpg','https://cdn.nekos.life/wallpaper/zRqEx2gnfmg.jpg','https://cdn.nekos.life/wallpaper/PtW0or_Pa9c.png','https://cdn.nekos.life/wallpaper/0ECCRW9soHM.jpg','https://cdn.nekos.life/wallpaper/kAw8QHl_wbM.jpg','https://cdn.nekos.life/wallpaper/ZXcaFmpOlLk.jpg','https://cdn.nekos.life/wallpaper/WVEdi9Ng8UE.png','https://cdn.nekos.life/wallpaper/IRu29rNgcYU.png','https://cdn.nekos.life/wallpaper/LgIJ_1AL3rM.jpg','https://cdn.nekos.life/wallpaper/DVD5_fLJEZA.jpg','https://cdn.nekos.life/wallpaper/siqOQ7k8qqk.jpg','https://cdn.nekos.life/wallpaper/CXNX_15eGEQ.png','https://cdn.nekos.life/wallpaper/s62tGjOTHnk.jpg','https://cdn.nekos.life/wallpaper/tmQ5ce6EfJE.png','https://cdn.nekos.life/wallpaper/Zju7qlBMcQ4.jpg','https://cdn.nekos.life/wallpaper/CPOc_bMAh2Q.png','https://cdn.nekos.life/wallpaper/Ew57S1KtqsY.jpg','https://cdn.nekos.life/wallpaper/hVpFbYJmZZc.jpg','https://cdn.nekos.life/wallpaper/sb9_J28pftY.jpg','https://cdn.nekos.life/wallpaper/JDoIi_IOB04.jpg','https://cdn.nekos.life/wallpaper/rG76AaUZXzk.jpg','https://cdn.nekos.life/wallpaper/9ru2luBo360.png','https://cdn.nekos.life/wallpaper/ghCgiWFxGwY.png','https://cdn.nekos.life/wallpaper/OSR-i-Rh7ZY.png','https://cdn.nekos.life/wallpaper/65VgtPyweCc.jpg','https://cdn.nekos.life/wallpaper/3vn-0FkNSbM.jpg','https://cdn.nekos.life/wallpaper/u02Y0-AJPL0.jpg','https://cdn.nekos.life/wallpaper/_-Z-0fGflRc.jpg','https://cdn.nekos.life/wallpaper/3VjNKqEPp58.jpg','https://cdn.nekos.life/wallpaper/NoG4lKnk6Sc.jpg','https://cdn.nekos.life/wallpaper/xiTxgRMA_IA.jpg','https://cdn.nekos.life/wallpaper/yq1ZswdOGpg.png','https://cdn.nekos.life/wallpaper/4SUxw4M3UMA.png','https://cdn.nekos.life/wallpaper/cUPnQOHNLg0.jpg','https://cdn.nekos.life/wallpaper/zczjuLWRisA.jpg','https://cdn.nekos.life/wallpaper/TcxvU_diaC0.png','https://cdn.nekos.life/wallpaper/7qqWhEF_uoY.jpg','https://cdn.nekos.life/wallpaper/J4t_7DvoUZw.jpg','https://cdn.nekos.life/wallpaper/xQ1Pg5D6J4U.jpg','https://cdn.nekos.life/wallpaper/aIMK5Ir4xho.jpg','https://cdn.nekos.life/wallpaper/6gneEXrNAWU.jpg','https://cdn.nekos.life/wallpaper/PSvNdoISWF8.jpg','https://cdn.nekos.life/wallpaper/SjgF2-iOmV8.jpg','https://cdn.nekos.life/wallpaper/vU54ikOVY98.jpg','https://cdn.nekos.life/wallpaper/QjnfRwkRU-Q.jpg','https://cdn.nekos.life/wallpaper/uSKqzz6ZdXc.png','https://cdn.nekos.life/wallpaper/AMrcxZOnVBE.jpg','https://cdn.nekos.life/wallpaper/N1l8SCMxamE.jpg','https://cdn.nekos.life/wallpaper/n2cBaTo-J50.png','https://cdn.nekos.life/wallpaper/ZXcaFmpOlLk.jpg','https://cdn.nekos.life/wallpaper/7bwxy3elI7o.png','https://cdn.nekos.life/wallpaper/7VW4HwF6LcM.jpg','https://cdn.nekos.life/wallpaper/YtrPAWul1Ug.png','https://cdn.nekos.life/wallpaper/1p4_Mmq95Ro.jpg','https://cdn.nekos.life/wallpaper/EY5qz5iebJw.png','https://cdn.nekos.life/wallpaper/aVDS6iEAIfw.jpg','https://cdn.nekos.life/wallpaper/veg_xpHQfjE.jpg','https://cdn.nekos.life/wallpaper/meaSEfeq9QM.png','https://cdn.nekos.life/wallpaper/Xa_GtsKsy-s.png','https://cdn.nekos.life/wallpaper/6Bx8R6D75eM.png','https://cdn.nekos.life/wallpaper/zXOGXH_b8VY.png','https://cdn.nekos.life/wallpaper/VQcviMxoQ00.png','https://cdn.nekos.life/wallpaper/CJnRl-PKWe8.png','https://cdn.nekos.life/wallpaper/zEWYfFL_Ero.png','https://cdn.nekos.life/wallpaper/_C9Uc5MPaz4.png','https://cdn.nekos.life/wallpaper/zskxNqNXyG0.jpg','https://cdn.nekos.life/wallpaper/g7w14PjzzcQ.jpg','https://cdn.nekos.life/wallpaper/KavYXR_GRB4.jpg','https://cdn.nekos.life/wallpaper/Z_r9WItzJBc.jpg','https://cdn.nekos.life/wallpaper/Qps-0JD6834.jpg','https://cdn.nekos.life/wallpaper/Ri3CiJIJ6M8.png','https://cdn.nekos.life/wallpaper/ArGYIpJwehY.jpg','https://cdn.nekos.life/wallpaper/uqYKeYM5h8w.jpg','https://cdn.nekos.life/wallpaper/h9cahfuKsRg.jpg','https://cdn.nekos.life/wallpaper/iNPWKO8d2a4.jpg','https://cdn.nekos.life/wallpaper/j2KoFVhsNig.jpg','https://cdn.nekos.life/wallpaper/z5Nc-aS6QJ4.jpg','https://cdn.nekos.life/wallpaper/VUFoK8l1qs0.png','https://cdn.nekos.life/wallpaper/rQ8eYh5mXN8.png','https://cdn.nekos.life/wallpaper/D3NxNISDavQ.png','https://cdn.nekos.life/wallpaper/Z_CiozIenrU.jpg','https://cdn.nekos.life/wallpaper/np8rpfZflWE.jpg','https://cdn.nekos.life/wallpaper/ED-fgS09gik.jpg','https://cdn.nekos.life/wallpaper/AB0Cwfs1X2w.jpg','https://cdn.nekos.life/wallpaper/DZBcYfHouiI.jpg','https://cdn.nekos.life/wallpaper/lC7pB-GRAcQ.png','https://cdn.nekos.life/wallpaper/zrI-sBSt2zE.png','https://cdn.nekos.life/wallpaper/_RJhylwaCLk.jpg','https://cdn.nekos.life/wallpaper/6km5m_GGIuw.png','https://cdn.nekos.life/wallpaper/3db40hylKs8.png','https://cdn.nekos.life/wallpaper/oggceF06ONQ.jpg','https://cdn.nekos.life/wallpaper/ELdH2W5pQGo.jpg','https://cdn.nekos.life/wallpaper/Zun_n5pTMRE.png','https://cdn.nekos.life/wallpaper/VqhFKG5U15c.png','https://cdn.nekos.life/wallpaper/NsMoiW8JZ60.jpg','https://cdn.nekos.life/wallpaper/XE4iXbw__Us.png','https://cdn.nekos.life/wallpaper/a9yXhS2zbhU.jpg','https://cdn.nekos.life/wallpaper/jjnd31_3Ic8.jpg','https://cdn.nekos.life/wallpaper/Nxanxa-xO3s.png','https://cdn.nekos.life/wallpaper/dBHlPcbuDc4.jpg','https://cdn.nekos.life/wallpaper/6wUZIavGVQU.jpg','https://cdn.nekos.life/wallpaper/_-Z-0fGflRc.jpg','https://cdn.nekos.life/wallpaper/H9OUpIrF4gU.jpg','https://cdn.nekos.life/wallpaper/xlRdH3fBMz4.jpg','https://cdn.nekos.life/wallpaper/7IzUIeaae9o.jpg','https://cdn.nekos.life/wallpaper/FZCVL6PyWq0.jpg','https://cdn.nekos.life/wallpaper/5dG-HH6d0yw.png','https://cdn.nekos.life/wallpaper/ddxyA37HiwE.png','https://cdn.nekos.life/wallpaper/I0oj_jdCD4k.jpg','https://cdn.nekos.life/wallpaper/ABchTV97_Ts.png','https://cdn.nekos.life/wallpaper/58C37kkq39Y.png','https://cdn.nekos.life/wallpaper/HMS5mK7WSGA.jpg','https://cdn.nekos.life/wallpaper/1O3Yul9ojS8.jpg','https://cdn.nekos.life/wallpaper/hdZI1XsYWYY.jpg','https://cdn.nekos.life/wallpaper/h8pAJJnBXZo.png','https://cdn.nekos.life/wallpaper/apO9K9JIUp8.jpg','https://cdn.nekos.life/wallpaper/p8f8IY_2mwg.jpg','https://cdn.nekos.life/wallpaper/HY1WIB2r_cE.jpg','https://cdn.nekos.life/wallpaper/u02Y0-AJPL0.jpg','https://cdn.nekos.life/wallpaper/jzN74LcnwE8.png','https://cdn.nekos.life/wallpaper/IeAXo5nJhjw.jpg','https://cdn.nekos.life/wallpaper/7lgPyU5fuLY.jpg','https://cdn.nekos.life/wallpaper/f8SkRWzXVxk.png','https://cdn.nekos.life/wallpaper/ZmDTpGGeMR8.jpg','https://cdn.nekos.life/wallpaper/AMrcxZOnVBE.jpg','https://cdn.nekos.life/wallpaper/ZhP-f8Icmjs.jpg','https://cdn.nekos.life/wallpaper/7FyUHX3fE2o.jpg','https://cdn.nekos.life/wallpaper/CZoSLK-5ng8.png','https://cdn.nekos.life/wallpaper/pSNDyxP8l3c.png','https://cdn.nekos.life/wallpaper/AhYGHF6Fpck.jpg','https://cdn.nekos.life/wallpaper/ic6xRRptRes.jpg','https://cdn.nekos.life/wallpaper/89MQq6KaggI.png','https://cdn.nekos.life/wallpaper/y1DlFeHHTEE.png']
894 let walnimek = walnime[Math.floor(Math.random() * walnime.length)]
895 client.sendFileFromUrl(from, walnimek, 'Nimek.jpg', '', message.id)
896 break
897 case 'meme':
898 const response = await axios.get('https://meme-api.herokuapp.com/gimme/wholesomeanimemes');
899 const { postlink, title, subreddit, url, nsfw, spoiler } = response.data
900 await client.sendFileFromUrl(from, `${url}`, 'meme.jpg', `${title}`)
901 break
902 case 'menu':
903 case 'tools':
904 case 'help':
905 client.reply(from, help.replace(undefined, pushname), message.id)
906 break
907 case 'info':
908 client.sendLinkWithAutoPreview(from, 'https://github.com/BangNopal', info)
909 break
910 case 'profile':
911 var role = 'None'
912 if (isGroupMsg) {
913 if (!quotedMsg) {
914 var block = ban.includes(author)
915 var pic = await client.getProfilePicFromServer(author)
916 var namae = pushname
917 var sts = await client.getStatus(author)
918 var adm = isGroupAdmins
919 const { status } = sts
920 if (pic == undefined) {
921 var pfp = errorurl
922 } else {
923 var pfp = pic
924 }
925 await client.sendFileFromUrl(from, pfp, 'pfp.jpg', `?️ *Username: ${namae}*\n\n?️ *User Info: ${status}*\n\n*?️ Ban: ${block}*\n\n✨️ *Role: ${role}*\n\n ?️ *Admin: ${adm}*`)
926 } else if (quotedMsg) {
927 var qmid = quotedMsgObj.sender.id
928 var block = ban.includes(qmid)
929 var pic = await client.getProfilePicFromServer(qmid)
930 var namae = quotedMsgObj.sender.formattedName
931 var sts = await client.getStatus(qmid)
932 var admgrp = await client.getGroupAdmins(from)
933 var adm = admgrp.includes(qmid)
934 const { status } = sts
935 if (pic == undefined) {
936 var pfp = errorurl
937 } else {
938 var pfp = pic
939 }
940 await client.sendFileFromUrl(from, pfp, 'pfo.jpg', `?️ *Username: ${namae}*\n\n?️ *User Info: ${status}*\n\n*?️ Ban: ${block}*\n\n✨️ *Role: ${role}*\n\n ?️ *Admin: ${adm}*`)
941 }
942 }
943 break
944 case 'snk':
945 client.reply(from, snk, message.id)
946 default:
947 await client.reply(from, `Command yang kamu minta tidak dapat ditemukan! Silahkan ketikan !menu atau !help untuk melihat daftar menu :)`, id)
948 console.log(color('[UNLISTED]', 'red'), color(time, 'yellow'), 'Unregistered Command from', color(pushname))
949 break
950 }
951 }
952 } catch (err) {
953 console.log(color('[ERROR]', 'red'), err)
954 }
955}
956