_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. })}}