_autodetec.js 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. let WAMessageStubType = (await import(global.baileys)).default
  2. import { readdirSync, unlinkSync, existsSync, promises as fs, rmSync } from 'fs';
  3. import path from 'path';
  4. export async function before(m, { conn, participants, groupMetadata}) {
  5. if (!m.messageStubType || !m.isGroup) return
  6. let pp = await conn.profilePictureUrl(m.messageStubParameters[0], 'image').catch(_ => 'https://telegra.ph/file/2a1d71ab744b55b28f1ae.jpg')
  7. let img = await (await fetch(`${pp}`)).buffer()
  8. let usuario = `@${m.sender.split`@`[0]}`
  9. let fkontak = { "key": { "participants":"[email protected]", "remoteJid": "status@broadcast", "fromMe": false, "id": "Halo" }, "message": { "contactMessage": { "vcard": `BEGIN:VCARD\nVERSION:3.0\nN:Sy;Bot;;;\nFN:y\nitem1.TEL;waid=${m.sender.split('@')[0]}:${m.sender.split('@')[0]}\nitem1.X-ABLabel:Ponsel\nEND:VCARD` }}, "participant": "[email protected]" }
  10. let chat = global.db.data.chats[m.chat]
  11. let users = participants.map(u => conn.decodeJid(u.id))
  12. const groupAdmins = participants.filter(p => p.admin)
  13. const listAdmin = groupAdmins.map((v, i) => `*» ${i + 1}. @${v.id.split('@')[0]}*`).join('\n')
  14. /*if (chat.detect && m.messageStubType == 2) {
  15. const chatId = m.isGroup ? m.chat : m.sender;
  16. const uniqid = chatId.split('@')[0];
  17. const sessionPath = './BotSession/';
  18. const files = await fs.readdir(sessionPath);
  19. let filesDeleted = 0;
  20. for (const file of files) {
  21. if (file.includes(uniqid)) {
  22. await fs.unlink(path.join(sessionPath, file));
  23. filesDeleted++;
  24. console.log(`⚠️ Eliminacion session (PreKey) que provocan el undefined el chat`)}}
  25. } else*/ if (chat.detect && m.messageStubType == 21) {
  26. await this.sendMessage(m.chat, { text: `${usuario} \`𝙃𝘼𝙎 𝘾𝘼𝙈𝘽𝙄𝘼𝘿𝙊 𝙀𝙇 𝙉𝙊𝙈𝘽𝙍𝙀́ 𝘿𝙀𝙇 𝙂𝙍𝙐𝙋𝙊 𝘼:\`\n\n> *${m.messageStubParameters[0]}*`, mentions: [m.sender], mentions: [...groupAdmins.map(v => v.id)] }, { quoted: fkontak, ephemeralExpiration: 24*60*100, disappearingMessagesInChat: 24*60*100})
  27. } else if (chat.detect && m.messageStubType == 22) {
  28. await this.sendMessage(m.chat, { text: `${usuario} \`𝙃𝘼𝙎 𝘾𝘼𝙈𝘽𝙄𝘼𝘿𝙊 𝙇𝘼𝙎 𝙁𝙊𝙏𝙊 𝘿𝙀𝙇 𝙂𝙍𝙐𝙋𝙊\``, mentions: [m.sender] }, { quoted: fkontak, ephemeralExpiration: 24*60*100, disappearingMessagesInChat: 24*60*100})
  29. } else if (chat.detect && m.messageStubType == 24) {
  30. await this.sendMessage(m.chat, { text: `${usuario} 𝙉𝙐𝙀𝙑𝘼 𝘿𝙀𝙎𝘾𝙍𝙄𝙋𝘾𝙄𝙊𝙉 𝘿𝙀𝙇 𝙂𝙍𝙐𝙋𝙊 𝙀𝙎:\n\n${m.messageStubParameters[0]}`, mentions: [m.sender] }, { quoted: fkontak, ephemeralExpiration: 24*60*100, disappearingMessagesInChat: 24*60*100})
  31. } else if (chat.detect && m.messageStubType == 25) {
  32. await this.sendMessage(m.chat, { text: `🔒 𝘼𝙃𝙊𝙍𝘼 *${m.messageStubParameters[0] == 'on' ? '𝙎𝙊𝙇𝙊 𝘼𝘿𝙈𝙄𝙉𝙎' : '𝙏𝙊𝘿𝙊𝙎'}* 𝙋𝙐𝙀𝘿𝙀 𝙀𝘿𝙄𝙏𝘼𝙍 𝙇𝘼 𝙄𝙉𝙁𝙊𝙍𝙈𝘼𝘾𝙄𝙊𝙉 𝘿𝙀𝙇 𝙂𝙍𝙐𝙋𝙊`, mentions: [m.sender] }, { quoted: fkontak, ephemeralExpiration: 24*60*100, disappearingMessagesInChat: 24*60*100})
  33. } else if (chat.detect && m.messageStubType == 26) {
  34. await this.sendMessage(m.chat, { text: `𝙀𝙇 𝙂𝙍𝙐𝙋𝙊 *${m.messageStubParameters[0] == 'on' ? '𝙀𝙎𝙏𝘼 𝘾𝙀𝙍𝙍𝘼𝘿𝙊 🔒' : '𝙀𝙎𝙏𝘼 𝘼𝘽𝙄𝙀𝙍𝙏𝙊 🔓'}*\n ${m.messageStubParameters[0] == 'on' ? '𝙎𝙊𝙇𝙊 𝙇𝙊𝙎 𝘼𝘿𝙈𝙄𝙉𝙎 𝙋𝙐𝙀𝘿𝙀𝙉 𝙀𝙎𝘾𝙍𝙄𝘽𝙄𝙍' : '𝙔𝘼 𝙋𝙐𝙀𝘿𝙀𝙉 𝙀𝙎𝘾𝙍𝙄𝘽𝙄𝙍 𝙏𝙊𝘿𝙊𝙎'} 𝙀𝙉 𝙀𝙎𝙏𝙀 𝙂𝙍𝙐𝙋𝙊`, mentions: [m.sender] }, { quoted: fkontak, ephemeralExpiration: 24*60*100, disappearingMessagesInChat: 24*60*100})
  35. } else if (chat.welcome && m.messageStubType == 27 && this.user.jid != global.conn.user.jid) {
  36. let subject = groupMetadata.subject
  37. let descs = groupMetadata.desc || "*ᴜɴ ɢʀᴜᴘᴏ ɢᴇɴɪᴀ😸*\n *sɪɴ ʀᴇɢʟᴀ 😉*";
  38. let userName = `${m.messageStubParameters[0].split`@`[0]}`;
  39. let defaultWelcome = `┏━━━━━━━━━━━━\n┃──〘 *WELCOME* 〙──\n┃━━━━━━━━━━━━\n┃ *Hola @${userName} 👋 Bienvenido a*\n┃ *_${subject} ✨_*\n┃ *_🥳 Disfruta de tu_*\n┃ *_estadía en el grupo 🥳_*\n┃\n┗━━━━━━━━━━━`;
  40. let textWel = chat.sWelcome ? chat.sWelcome
  41. .replace(/@user/g, `@${userName}`)
  42. .replace(/@group/g, subject)
  43. .replace(/@desc/g, descs)
  44. : defaultWelcome;
  45. await this.sendMessage(m.chat, { text: textWel,
  46. contextInfo:{
  47. forwardingScore: 9999999,
  48. isForwarded: true,
  49. mentionedJid:[m.sender, m.messageStubParameters[0]],
  50. externalAdReply: {
  51. showAdAttribution: true,
  52. renderLargerThumbnail: true,
  53. thumbnailUrl: pp,
  54. title: "BIENVENID@ 😄",
  55. body: [wm, ' ' + wm + '😊', '🌟'].getRandom(),
  56. containsAutoReply: true,
  57. mediaType: 1,
  58. sourceUrl: [nna, nna2, yt].getRandom()}}}, { quoted: fkontak })
  59. } else if (chat.welcome && (m.messageStubType == 28 || m.messageStubType == 32) && this.user.jid != global.conn.user.jid ) {
  60. let subject = groupMetadata.subject;
  61. let userName = `${m.messageStubParameters[0].split`@`[0]}`;
  62. let defaultBye = `┏━━━━━━━━━━━━\n┃──〘 *ADIOS* 〙───\n┃━━━━━━━━━━━━\n┃ *_☠ Se fue @${userName}_* \n┃ *_Que dios lo bendiga️_* \n┃ *_Y lo atropelle un tren 😇_*\n┗━━━━━━━━━━`;
  63. let textBye = chat.sBye ? chat.sBye
  64. .replace(/@user/g, `@${userName}`)
  65. .replace(/@group/g, subject)
  66. : defaultBye;
  67. await this.sendMessage(m.chat, { text: textBye,
  68. contextInfo:{
  69. forwardingScore: 9999999,
  70. isForwarded: true,
  71. mentionedJid:[m.sender, m.messageStubParameters[0]],
  72. externalAdReply: {
  73. showAdAttribution: true,
  74. renderLargerThumbnail: true,
  75. thumbnailUrl: pp,
  76. title: "BYE 👋",
  77. body: [wm, ' ' + wm + '😊', '🌟'].getRandom(),
  78. containsAutoReply: true,
  79. mediaType: 1,
  80. sourceUrl: [nna, nna2, nnaa, yt, md].getRandom()}}}, { quoted: fkontak })
  81. } else if (chat.detect && m.messageStubType == 29) {
  82. let subject = groupMetadata.subject;
  83. let defaultPromote = `@${m.messageStubParameters[0].split`@`[0]} 𝘼𝙃𝙊𝙍𝘼 𝙀𝙎 𝘼𝘿𝙈𝙄𝙉 𝙀𝙉 𝙀𝙎𝙏𝙀 𝙂𝙍𝙐𝙋𝙊\n\n😼🫵𝘼𝘾𝘾𝙄𝙊𝙉 𝙍𝙀𝘼𝙇𝙄𝙕𝘼𝘿𝘼 𝙋𝙊𝙍: ${usuario}`
  84. let textAdm = chat.sPromote ? chat.sPromote
  85. .replace(/@user/g, `@${m.messageStubParameters[0].split`@`[0]}`)
  86. .replace(/@autor/g, `${usuario}`)
  87. .replace(/@group/g, subject)
  88. : defaultPromote;
  89. await this.sendMessage(m.chat, { text: textAdm, mentions: [m.sender, m.messageStubParameters[0], ...groupAdmins.map(v => v.id)] }, { quoted: fkontak, ephemeralExpiration: 24*60*100, disappearingMessagesInChat: 24*60*100})
  90. } else if (chat.detect && m.messageStubType == 30) {
  91. let subject = groupMetadata.subject;
  92. let defaultDemote = `@${m.messageStubParameters[0].split`@`[0]} 𝘿𝙀𝙅𝘼 𝘿𝙀 𝙎𝙀𝙍 𝘼𝘿𝙈𝙄𝙉 𝙀𝙉 𝙀𝙎𝙏𝙀 𝙂𝙍𝙐𝙋𝙊\n\n😼🫵𝘼𝘾𝘾𝙄𝙊𝙉 𝙍𝙀𝘼𝙇𝙄𝙕𝘼𝘿𝘼 𝙋𝙊𝙍: ${usuario}`
  93. let textAdmin = chat.sDemote ? chat.sDemote
  94. .replace(/@user/g, `@${m.messageStubParameters[0].split`@`[0]}`)
  95. .replace(/@autor/g, `${usuario}`)
  96. .replace(/@group/g, subject)
  97. : defaultDemote;
  98. await this.sendMessage(m.chat, { text: textAdmin, mentions: [m.sender, m.messageStubParameters[0], ...groupAdmins.map(v => v.id)] }, { quoted: fkontak, ephemeralExpiration: 24*60*100, disappearingMessagesInChat: 24*60*100})
  99. } else if (chat.detect && m.messageStubType === 172 && m.messageStubParameters.length > 0) {
  100. const rawUser = m.messageStubParameters[0];
  101. const users = rawUser.split('@')[0];
  102. const prefijosProhibidos = ['+91', '+92', '+222', '+93', '+265', '+61', '+62', '+966', '+229', '+40', '+49', '+20', '+963', '+967', '+234', '+210', '+212'];
  103. const usersConPrefijo = users.startsWith('+') ? users : `+${users}`;
  104. if (chat.antifake) {
  105. const esProhibido = prefijosProhibidos.some(prefijo => {
  106. const coincide = usersConPrefijo.startsWith(prefijo);
  107. return coincide;
  108. });
  109. if (esProhibido) {
  110. try {
  111. await conn.groupRequestParticipantsUpdate(m.chat, [rawUser], 'reject');
  112. console.log(`Solicitud de ${usersConPrefijo} rechazada por prefijo prohibido.`);
  113. } catch (error) {
  114. console.error(`Error al rechazar la solicitud de ${usersConPrefijo}:`, error);
  115. }} else {
  116. try {
  117. await conn.groupRequestParticipantsUpdate(m.chat, [rawUser], 'approve');
  118. console.log(`Solicitud de ${usersConPrefijo} aprobada (no tiene prefijo prohibido).`);
  119. } catch (error) {
  120. console.error(`Error al aprobar la solicitud de ${usersConPrefijo}:`, error);
  121. }}} else {
  122. try {
  123. await conn.groupRequestParticipantsUpdate(m.chat, [rawUser], 'approve');
  124. console.log(`Solicitud de ${usersConPrefijo} aprobada (antifake desactivado).`);
  125. } catch (error) {
  126. console.error(`Error al aprobar la solicitud de ${usersConPrefijo}:`, error);
  127. }}
  128. return; /*
  129. } if (chat.detect && m.messageStubType == 72) {
  130. await this.sendMessage(m.chat, { text: `${usuario} 𝘾𝘼𝙈𝘽𝙄𝙊 𝙇𝘼𝙎 𝘿𝙐𝙍𝘼𝘾𝙄𝙊𝙉 𝘿𝙀𝙇 𝙇𝙊𝙎 𝙈𝙀𝙉𝙎𝘼𝙅𝙀 𝙏𝙀𝙈𝙋𝙊𝙍𝘼𝙇𝙀𝙎 𝘼 *@${m.messageStubParameters[0]}*`, mentions: [m.sender] }, { quoted: fkontak, ephemeralExpiration: 24*60*100, disappearingMessagesInChat: 24*60*100})
  131. } else if (chat.detect && m.messageStubType == 123) {
  132. await this.sendMessage(m.chat, { text: `${usuario} *𝘿𝙀𝙎𝘼𝘾𝙏𝙄𝙑𝙊́* 𝙇𝙊𝙎 𝙈𝙀𝙉𝙎𝘼𝙅𝙀 𝙏𝙀𝙈𝙋𝙊𝙍𝘼𝙇.`, mentions: [m.sender] }, { quoted: fkontak, ephemeralExpiration: 24*60*100, disappearingMessagesInChat: 24*60*100})*/
  133. } else {
  134. console.log({messageStubType: m.messageStubType,
  135. messageStubParameters: m.messageStubParameters,
  136. type: WAMessageStubType[m.messageStubType],
  137. })}}