Skip to content

Commit

Permalink
eliminacion del mconn
Browse files Browse the repository at this point in the history
  • Loading branch information
skidy89 committed Oct 13, 2024
1 parent aad678f commit 14b3e07
Show file tree
Hide file tree
Showing 20 changed files with 145 additions and 226 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ package-lock.json
src/glx/db/database.json
datasecret
database.json
qr_database.json

# Logs
logs
Expand Down
72 changes: 33 additions & 39 deletions handler.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import chalk from 'chalk';
import mddd5 from 'md5';
import ws from 'ws';
import { randomBytes } from 'crypto';
let mconn;
/**
* Generates a unique tag for a message
* @param {string} [tag] - The tag to use, if not provided a random one will be generated
Expand All @@ -35,6 +34,9 @@ const delay = (ms) => isNumber(ms) && new Promise((resolve) => setTimeout(functi
* @param {import("baileys").BaileysEventMap<unknown>['messages.upsert']} groupsUpdate
*/
export async function handler(chatUpdate) {
if (!this.authState?.creds.me) {
this.ev.flush()
}
this.msgqueque = this.msgqueque || [];
this.uptime = this.uptime || Date.now();
if (!chatUpdate) {
Expand All @@ -57,8 +59,6 @@ export async function handler(chatUpdate) {
return;
}
global.fkontak = { "key": { "participant":"0@s.whatsapp.net", "remoteJid": "status@broadcast", "fromMe": false, "id": generateMessageTag() }, "message": { "contactMessage": { "vcard": `BEGIN:VCARD\nVERSION:3.0\nN:Sy;Bot;;;\nFN:y\nitem1.TEL;waid=${m.sender.split('@')[0]}:${m.sender.split('@')[0]}\nitem1.X-ABLabel:Ponsel\nEND:VCARD` }} }
global.mconn = m
mconn = m
m.exp = 0;
m.money = false;
m.limit = false;
Expand Down Expand Up @@ -679,7 +679,7 @@ export async function handler(chatUpdate) {
console.error(e);
}

const idioma = global.db.data.users[m.sender]?.language || global.defaultLenguaje; // is null? np the operator ?? fix that (i hope)
const idioma = global.db.data.users[m.sender]?.language || global.defaultLenguaje;
const _translate = JSON.parse(fs.readFileSync(`./src/languages/${idioma}.json`))
const tradutor = _translate.handler.handler

Expand All @@ -701,7 +701,7 @@ export async function handler(chatUpdate) {
if (typeof m.text !== 'string') {
m.text = '';
}
const isROwner = [conn.decodeJid(global.conn.user.id), ...global.owner.map(([number]) => number)].map((v) => v.replace(/[^0-9]/g, '') + '@s.whatsapp.net').includes(m.sender);
const isROwner = [global.conn.user.id.decodeJid(), ...global.owner.map(([number]) => number)].map((v) => v.replace(/[^0-9]/g, '') + '@s.whatsapp.net').includes(m.sender);
const isOwner = isROwner || m.fromMe;
const isMods = isOwner || global.mods.map((v) => v.replace(/[^0-9]/g, '') + '@s.whatsapp.net').includes(m.sender);
const isPrems = isROwner || isOwner || isMods || global.db.data.users[m.sender].premiumTime > 0; // || global.db.data.users[m.sender].premium = 'true'
Expand All @@ -716,7 +716,7 @@ export async function handler(chatUpdate) {
}, time);
}

if (m.isBaileys || isBaileysFail && m?.sender === mconn?.conn?.user?.jid) {
if (m.isBaileys || isBaileysFail && m?.sender === global.conn?.user?.jid) {
return;
}
m.exp += Math.ceil(Math.random() * 10);
Expand Down Expand Up @@ -837,7 +837,7 @@ export async function handler(chatUpdate) {
if (m.chat in global.db.data.chats || m.sender in global.db.data.users) {
const chat = global.db.data.chats[m.chat];
const user = global.db.data.users[m.sender];
const botSpam = global.db.data.settings[mconn.conn.user.jid];
const botSpam = global.db.data.settings[global.conn.user.jid];

if (!['owner-unbanchat.js', 'info-creator.js'].includes(name) && chat && chat?.isBanned && !isROwner) return; // Except this
if (name != 'owner-unbanchat.js' && name != 'owner-exec.js' && name != 'owner-exec2.js' && chat?.isBanned && !isROwner) return; // Except this
Expand Down Expand Up @@ -934,11 +934,11 @@ ${tradutor.texto1[1]} ${messageNumber}/3
m.exp += xp;
}
if (!isPrems && plugin.limit && global.db.data.users[m.sender].limit < plugin.limit * 1) {
mconn.conn.reply(m.chat, `${tradutor.texto2} _${usedPrefix}buyall_`, m);
global.conn.reply(m.chat, `${tradutor.texto2} _${usedPrefix}buyall_`, m);
continue;
}
if (plugin.level > _user.level) {
mconn.conn.reply(m.chat, `${tradutor.texto3[0]} ${plugin.level} ${tradutor.texto3[1]} ${_user.level}, ${tradutor.texto3[2]} ${usedPrefix}lvl ${tradutor.texto3[3]}`, m);
global.conn.reply(m.chat, `${tradutor.texto3[0]} ${plugin.level} ${tradutor.texto3[1]} ${_user.level}, ${tradutor.texto3[2]} ${usedPrefix}lvl ${tradutor.texto3[3]}`, m);
continue;
}
const extra = {
Expand Down Expand Up @@ -1068,9 +1068,9 @@ ${tradutor.texto1[1]} ${messageNumber}/3
} catch (e) {
console.log(m, m.quoted, e);
}
const settingsREAD = global.db.data.settings[mconn.conn.user.jid] || {};
if (opts['autoread']) await mconn.conn.readMessages([m.key]);
if (settingsREAD.autoread2) await mconn.conn.readMessages([m.key]);
const settingsREAD = global.db.data.settings[this.user.jid] || {};
if (opts['autoread']) await this.readMessages([m.key]);
if (settingsREAD.autoread2) await this.readMessages([m.key]);
}
}

Expand All @@ -1082,55 +1082,49 @@ export async function participantsUpdate({ id, participants, action }) {
const idioma = global?.db?.data?.chats[id]?.language || global.defaultLenguaje;
const _translate = JSON.parse(fs.readFileSync(`./src/languages/${idioma}.json`))
const tradutor = _translate.handler.participantsUpdate

const m = mconn
if (opts['self']) return;
if (global.db.data == null) await loadDatabase();
const chat = global.db.data.chats[id] || {};
const botTt = global.db.data.settings[mconn?.conn?.user?.jid] || {};
const botTt = global.db.data.settings[this?.user?.jid] || {};
let text = '';
switch (action) {
case 'add':
case 'remove':
if (chat.welcome && !chat?.isBanned) {
const groupMetadata = await m?.conn?.groupMetadata(id) || (conn?.chats[id] || {}).metadata;
const groupMetadata = await this?.groupMetadata(id) || (conn?.chats[id] || this?.chats[id] || {}).metadata;
for (const user of participants) {
let pp = 'https://raw.githubusercontent.com/BrunoSobrino/TheMystic-Bot-MD/master/src/avatar_contact.png';
try {
pp = await m?.conn?.profilePictureUrl(user, 'image');
pp = await this?.profilePictureUrl(user, 'image');
} catch (e) {
} finally {
const apii = await mconn?.conn?.getFile(pp);
const antiArab = JSON.parse(fs.readFileSync('./src/antiArab.json'));
const apii = await this?.getFile(pp);
const antiArab = ["212", "265", "92"]
const userPrefix = antiArab.some((prefix) => user.startsWith(prefix));
const botTt2 = groupMetadata?.participants?.find((u) => m?.conn?.decodeJid(u.id) == m?.conn?.user?.jid) || {};
const botTt2 = groupMetadata?.participants?.find((u) => u.id.decodeJid()== this?.user?.jid) || {};
const isBotAdminNn = botTt2?.admin === 'admin' || false;
text = (action === 'add' ? (chat.sWelcome || tradutor.texto1 || conn.welcome || 'Welcome, @user!').replace('@subject', await m?.conn?.getName(id)).replace('@desc', groupMetadata?.desc?.toString() || '*𝚂𝙸𝙽 𝙳𝙴𝚂𝙲𝚁𝙸𝙿𝙲𝙸𝙾𝙽*').replace('@user', '@' + user.split('@')[0]) :
text = (action === 'add' ? (chat.sWelcome || tradutor.texto1 || conn.welcome || 'Welcome, @user!').replace('@subject', await this?.getName(id)).replace('@desc', groupMetadata?.desc?.toString() || '*𝚂𝙸𝙽 𝙳𝙴𝚂𝙲𝚁𝙸𝙿𝙲𝙸𝙾𝙽*').replace('@user', '@' + user.split('@')[0]) :
(chat.sBye || tradutor.texto2 || conn.bye || 'Bye, @user!')).replace('@user', '@' + user.split('@')[0]);
if (userPrefix && chat.antiArab && botTt.restrict && isBotAdminNn && action === 'add') {
const responseb = await m.conn.groupParticipantsUpdate(id, [user], 'remove');
const responseb = await this.groupParticipantsUpdate(id, [user], 'remove');
if (responseb[0].status === '404') return;
await m?.conn?.sendMessage(id, { text: `*[❗] @${user.split('@')[0]} ᴇɴ ᴇsᴛᴇ ɢʀᴜᴘᴏ ɴᴏ sᴇ ᴘᴇʀᴍɪᴛᴇɴ ɴᴜᴍᴇʀᴏs ᴀʀᴀʙᴇs ᴏ ʀᴀʀᴏs, ᴘᴏʀ ʟᴏ ϙᴜᴇ sᴇ ᴛᴇ sᴀᴄᴀʀᴀ ᴅᴇʟ ɢʀᴜᴘᴏ*`, mentions: [user] }, { quoted: global.fkontak });
await this?.sendMessage(id, { text: `*[❗] @${user.split('@')[0]} ᴇɴ ᴇsᴛᴇ ɢʀᴜᴘᴏ ɴᴏ sᴇ ᴘᴇʀᴍɪᴛᴇɴ ɴᴜᴍᴇʀᴏs ᴀʀᴀʙᴇs ᴏ ʀᴀʀᴏs, ᴘᴏʀ ʟᴏ ϙᴜᴇ sᴇ ᴛᴇ sᴀᴄᴀʀᴀ ᴅᴇʟ ɢʀᴜᴘᴏ*`, mentions: [user] }, { quoted: global.fkontak });
return;
}
await m?.conn?.sendFile(id, apii.data, 'pp.jpg', text, null, false, { mentions: [user] });
await this?.sendFile(id, apii.data, 'pp.jpg', text, null, false, { mentions: [user] });
}
}
}
break;
case 'promote':
case 'daradmin':
case 'darpoder':
text = (chat.sPromote || tradutor.texto3 || conn?.spromote || '@user ```is now Admin```');
text = (chat.sPromote || tradutor.texto3 || this?.spromote || conn?.spromote ||'@user ```is now Admin```');
case 'demote':
case 'quitarpoder':
case 'quitaradmin':
if (!text) {
text = (chat?.sDemote || tradutor.texto4 || conn?.sdemote || '@user ```is no longer Admin```');
text = (chat?.sDemote || tradutor.texto4 || this?.sdemote || conn?.sdemote || '@user ```is no longer Admin```');
}
text = text.replace('@user', '@' + participants[0].split('@')[0]);
if (chat.detect && !chat?.isBanned) {
mconn?.conn?.sendMessage(id, { text, mentions: mconn?.conn?.parseMention(text) });
this.sendMessage(id, { text, mentions: this.parseMention(text) });
}
break;
}
Expand Down Expand Up @@ -1161,22 +1155,22 @@ export async function groupsUpdate(groupsUpdate) {
if (groupUpdate?.icon) text = (chats?.sIcon || tradutor.texto7 || conn?.sIcon || '```Icon has been changed to```').replace('@icon', groupUpdate.icon);
if (groupUpdate?.revoke) text = (chats?.sRevoke || tradutor.texto8 || conn?.sRevoke || '```Group link has been changed to```\n@revoke').replace('@revoke', groupUpdate.revoke);
if (!text) continue;
await mconn?.conn?.sendMessage(id, { text, mentions: mconn?.conn?.parseMention(text) });
await this.sendMessage(id, { text, mentions: this.parseMention(text) });
}
}

export async function callUpdate(callUpdate) {
const isAnticall = global?.db?.data?.settings[mconn?.conn?.user?.jid].antiCall;
const isAnticall = global?.db?.data?.settings[this.user?.jid].antiCall;
if (!isAnticall) return;
for (const nk of callUpdate) {
if (nk.isGroup == false) {
if (nk.status == 'offer') {
const callmsg = await mconn?.conn?.reply(nk.from, `Hola *@${nk.from.split('@')[0]}*, las ${nk.isVideo ? 'videollamadas' : 'llamadas'} no están permitidas, serás bloqueado.\n-\nSi accidentalmente llamaste póngase en contacto con mi creador para que te desbloquee!`, false, { mentions: [nk.from] });
const callmsg = await this.reply(nk.from, `Hola *@${nk.from.split('@')[0]}*, las ${nk.isVideo ? 'videollamadas' : 'llamadas'} no están permitidas, serás bloqueado.\n-\nSi accidentalmente llamaste póngase en contacto con mi creador para que te desbloquee!`, false, { mentions: [nk.from] });
// let data = global.owner.filter(([id, isCreator]) => id && isCreator)
// await this.sendContact(nk.from, data.map(([id, name]) => [id, name]), false, { quoted: callmsg })
const vcard = `BEGIN:VCARD\nVERSION:3.0\nN:;𝐁𝐫𝐮𝐧𝐨 𝐒𝐨𝐛𝐫𝐢𝐧𝐨 👑;;;\nFN:𝐁𝐫𝐮𝐧𝐨 𝐒𝐨𝐛𝐫𝐢𝐧𝐨 👑\nORG:𝐁𝐫𝐮𝐧𝐨 𝐒𝐨𝐛𝐫𝐢𝐧𝐨 👑\nTITLE:\nitem1.TEL;waid=5219992095479:+521 999 209 5479\nitem1.X-ABLabel:𝐁𝐫𝐮𝐧𝐨 𝐒𝐨𝐛𝐫𝐢𝐧𝐨 👑\nX-WA-BIZ-DESCRIPTION:[❗] ᴄᴏɴᴛᴀᴄᴛᴀ ᴀ ᴇsᴛᴇ ɴᴜᴍ ᴘᴀʀᴀ ᴄᴏsᴀs ɪᴍᴘᴏʀᴛᴀɴᴛᴇs.\nX-WA-BIZ-NAME:𝐁𝐫𝐮𝐧𝐨 𝐒𝐨𝐛𝐫𝐢𝐧𝐨 👑\nEND:VCARD`;
await mconn.conn.sendMessage(nk.from, { contacts: { displayName: '𝐁𝐫𝐮𝐧𝐨 𝐒𝐨𝐛𝐫𝐢𝐧𝐨 👑', contacts: [{ vcard }] } }, { quoted: callmsg });
await mconn.conn.updateBlockStatus(nk.from, 'block');
await this.sendMessage(nk.from, { contacts: { displayName: '𝐁𝐫𝐮𝐧𝐨 𝐒𝐨𝐛𝐫𝐢𝐧𝐨 👑', contacts: [{ vcard }] } }, { quoted: callmsg });
await this.updateBlockStatus(nk.from, 'block');
}
}
}
Expand All @@ -1196,7 +1190,7 @@ export async function deleteUpdate(message) {
try {
const { fromMe, id, participant } = message
if (fromMe) return
let msg = mconn.conn.serializeM(mconn.conn.loadMessage(id))
let msg = this.serializeM(this.loadMessage(id))
let chat = global.db.data.chats[msg?.chat] || {}
if (!chat?.antidelete) return
if (!msg) return
Expand All @@ -1207,8 +1201,8 @@ ${tradutor.texto1[2]} ${time}
${tradutor.texto1[3]} ${date}\n
${tradutor.texto1[4]}
${tradutor.texto1[5]}`.trim();
await mconn.conn.sendMessage(msg.chat, { text: antideleteMessage, mentions: [participant] }, { quoted: msg })
mconn.conn.copyNForward(msg.chat, msg).catch(e => console.log(e, msg))
await this.sendMessage(msg.chat, { text: antideleteMessage, mentions: [participant] }, { quoted: msg })
this.copyNForward(msg.chat, msg).catch(e => console.log(e, msg))
} catch (e) {
console.error(e)
}
Expand Down
84 changes: 12 additions & 72 deletions main.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import lodash from 'lodash';
import chalk from 'chalk';
import syntaxerror from 'syntax-error';
import {format} from 'util';
import pino from 'pino';
import Pino from 'pino';
import {Boom} from '@hapi/boom';
import {makeWASocket, protoType, serialize} from './src/libraries/simple.js';
Expand All @@ -22,12 +21,13 @@ import store from './src/libraries/store.js';
const {DisconnectReason, useMultiFileAuthState, fetchLatestBaileysVersion, makeCacheableSignalKeyStore, jidNormalizedUser, PHONENUMBER_MCC} = await import("baileys");
import readline from 'readline';
import NodeCache from 'node-cache';
import { isJidBroadcast, isJidNewsletter } from 'baileys';
const {chain} = lodash;
const PORT = process.env.PORT || process.env.SERVER_PORT || 3000;
let stopped = 'close';
protoType();
serialize();
const msgRetryCounterMap = new Map();
const socket = new Map();
const msgRetryCounterCache = new NodeCache({ stdTTL: 0, checkperiod: 0 });
const userDevicesCache = new NodeCache({ stdTTL: 0, checkperiod: 0 });

Expand Down Expand Up @@ -130,7 +130,6 @@ console.info = () => {} // https://github.com/skidy89/baileys actualmente no mue
const connectionOptions = {
logger: Pino({ level: 'silent' }),
printQRInTerminal: opcion === '1' || methodCodeQR,
mobile: MethodMobile,
browser: opcion === '1' ? ['TheMystic-Bot-MD', 'Safari', '2.0.0'] : methodCodeQR ? ['TheMystic-Bot-MD', 'Safari', '2.0.0'] : ['Ubuntu', 'Chrome', '20.0.04'],
auth: {
creds: state.creds,
Expand All @@ -150,16 +149,19 @@ const connectionOptions = {
messages++;
return message;
},
shouldIgnoreJid: (jid) => isJidBroadcast(jid) || isJidNewsletter(jid) /** global.conn.user.jid */,
msgRetryCounterCache: msgRetryCounterCache,
userDevicesCache: userDevicesCache,
//msgRetryCounterMap,
defaultQueryTimeoutMs: undefined,
cachedGroupMetadata: (jid) => global.conn.chats[jid] ?? {},
version,
//userDeviceCache: msgRetryCounterCache <=== quien fue el pendejo?????
};
let i = makeWASocket(connectionOptions)
await socket.set('socket', i);
i = null

global.conn = makeWASocket(connectionOptions);
global.conn = socket.get('socket');

if (!fs.existsSync(`./${authFile}/creds.json`)) {
if (opcion === '2' || methodCode) {
Expand Down Expand Up @@ -266,57 +268,7 @@ fs.watch(dirToWatchccc, (eventType, filename) => {
}
});

function purgeSession() {
let prekey = []
let directorio = readdirSync("./MysticSession")
let filesFolderPreKeys = directorio.filter(file => {
return file.startsWith('pre-key-') /*|| file.startsWith('session-') || file.startsWith('sender-') || file.startsWith('app-') */
})
prekey = [...prekey, ...filesFolderPreKeys]
filesFolderPreKeys.forEach(files => {
unlinkSync(`./MysticSession/${files}`)
})
}

function purgeSessionSB() {
try {
let listaDirectorios = readdirSync('./jadibts/');
let SBprekey = []
listaDirectorios.forEach(directorio => {
if (statSync(`./jadibts/${directorio}`).isDirectory()) {
let DSBPreKeys = readdirSync(`./jadibts/${directorio}`).filter(fileInDir => {
return fileInDir.startsWith('pre-key-') /*|| fileInDir.startsWith('app-') || fileInDir.startsWith('session-')*/
})
SBprekey = [...SBprekey, ...DSBPreKeys]
DSBPreKeys.forEach(fileInDir => {
unlinkSync(`./jadibts/${directorio}/${fileInDir}`)
})
}
})
if (SBprekey.length === 0) return; //console.log(chalk.cyanBright(`=> No hay archivos por eliminar.`))
} catch (err) {
console.log(chalk.bold.red(`[ ℹ️ ] Algo salio mal durante la eliminación, archivos no eliminados`))
}}

function purgeOldFiles() {
const directories = ['./MysticSession/', './jadibts/']
const oneHourAgo = Date.now() - (60 * 60 * 1000)
directories.forEach(dir => {
readdirSync(dir, (err, files) => {
if (err) throw err
files.forEach(file => {
const filePath = path.join(dir, file)
stat(filePath, (err, stats) => {
if (err) throw err;
if (stats.isFile() && stats.mtimeMs < oneHourAgo && file !== 'creds.json') {
unlinkSync(filePath, err => {
if (err) throw err
console.log(chalk.bold.green(`Archivo ${file} borrado con éxito`))
})
} else {
console.log(chalk.bold.red(`Archivo ${file} no borrado` + err))
} }) }) }) })
}

async function connectionUpdate(update) {

Expand Down Expand Up @@ -386,12 +338,15 @@ global.reloadHandler = async function(restatConn) {
console.error(e);
}
if (restatConn) {
const oldChats = global.conn.chats;
try {
global.conn.ws.close();
} catch { }
conn.ev.removeAllListeners();
global.conn = makeWASocket(connectionOptions, {chats: oldChats});
let i = makeWASocket(connectionOptions);
await socket.delete('socket');
await socket.set('socket', i);
i = null;
global.conn = socket.get('socket');
store?.bind(conn);
isInit = true;
}
Expand Down Expand Up @@ -424,14 +379,6 @@ global.reloadHandler = async function(restatConn) {
conn.connectionUpdate = connectionUpdate.bind(global.conn);
conn.credsUpdate = saveCreds.bind(global.conn, true);

const currentDateTime = new Date();
const messageDateTime = new Date(conn.ev);
if (currentDateTime >= messageDateTime) {
const chats = Object.entries(conn.chats).filter(([jid, chat]) => !jid.endsWith('@g.us') && chat.isChats).map((v) => v[0]);
} else {
const chats = Object.entries(conn.chats).filter(([jid, chat]) => !jid.endsWith('@g.us') && chat.isChats).map((v) => v[0]);
}

conn.ev.on('messages.upsert', conn.handler);
conn.ev.on('group-participants.update', conn.participantsUpdate);
conn.ev.on('groups.update', conn.groupsUpdate);
Expand Down Expand Up @@ -519,13 +466,6 @@ setInterval(async () => {
if (stopped === 'close' || !conn || !conn?.user) return;
await clearTmp();
}, 180000);
/*
setInterval(async () => {
if (stopped === 'close' || !conn || !conn?.user) return; //intervals at the same thime tho
await purgeSessionSB();
await purgeOldFiles();
await purgeSession();
}, 1000 * 60 * 60);*/

setInterval(async () => {
if (stopped === 'close' || !conn || !conn?.user) return;
Expand Down
Loading

0 comments on commit 14b3e07

Please sign in to comment.