Advertisement
AnshorFalahi

upswtag

Feb 23rd, 2025 (edited)
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 3.93 KB | Source Code | 0 0
  1. const { generateWAMessage, STORIES_JID } = require("@adiwajshing/baileys");
  2.  
  3. exports.run = {
  4.     usage: ['upswtag'],
  5.     category: 'owner',
  6.     async: async (m, { client, body, groupSet, Func, command, isPrefix, text }) => {
  7.         // Function to fetch all participants from given group IDs
  8.         var fetchParticipants = async (...jids) => {
  9.             var results = [];
  10.             for (var jid of jids) {
  11.                 var { participants } = await client.groupMetadata(jid);
  12.                 participants = participants.map(({ id }) => id);
  13.                 results = results.concat(participants);
  14.             }
  15.             return results;
  16.         };
  17.  
  18.         // Function to send a status message with mentions
  19.         var mstatus = async (jids, content) => {
  20.             var msg = await generateWAMessage(STORIES_JID, content, {
  21.                 upload: client.waUploadToServer
  22.             });
  23.  
  24.             var statusJidList = [];
  25.             for (var _jid of jids) {
  26.                 if (_jid.endsWith("@g.us")) {
  27.                     var groupParticipants = await fetchParticipants(_jid);
  28.                     statusJidList.push(...groupParticipants);
  29.                 } else {
  30.                     statusJidList.push(_jid);
  31.                 }
  32.             }
  33.             statusJidList = [...new Set(statusJidList)];
  34.  
  35.             await client.relayMessage(msg.key.remoteJid, msg.message, {
  36.                 messageId: msg.key.id,
  37.                 statusJidList,
  38.                 additionalNodes: [{
  39.                     tag: "meta",
  40.                     attrs: {},
  41.                     content: [{
  42.                         tag: "mentioned_users",
  43.                         attrs: {},
  44.                         content: jids.map((jid) => ({
  45.                             tag: "to",
  46.                             attrs: { jid },
  47.                             content: undefined
  48.                         }))
  49.                     }]
  50.                 }]
  51.             });
  52.  
  53.             for (var jid of jids) {
  54.                 var type = jid.endsWith("@g.us") ? "groupStatusMentionMessage" : "statusMentionMessage";
  55.                 await client.relayMessage(jid, {
  56.                     [type]: {
  57.                         message: {
  58.                             protocolMessage: {
  59.                                 key: msg.key,
  60.                                 type: 25
  61.                             }
  62.                         }
  63.                     }
  64.                 }, {
  65.                     additionalNodes: [{
  66.                         tag: "meta",
  67.                         attrs: { is_status_mention: "true" },
  68.                         content: undefined
  69.                     }]
  70.                 });
  71.             }
  72.             return msg;
  73.         };
  74.  
  75.         try {
  76.             var q = m.quoted ? m.quoted : m;
  77.             var mime = (q.msg || q).mimetype || '';
  78.             var content = {};
  79.  
  80.             if (mime) {
  81.                 var media = await q.download();
  82.                 if (/image/.test(mime)) {
  83.                     content.image = media;
  84.                 } else if (/video/.test(mime)) {
  85.                     content.video = media;
  86.                 } else if (/audio/.test(mime)) {
  87.                     content.audio = media;
  88.                 } else {
  89.                     throw new Error("Jenis file tidak didukung!");
  90.                 }
  91.                 if (q.text) content.caption = q.text;
  92.             } else if (text && text.trim().length > 0) {
  93.                 content.text = text;
  94.             } else {
  95.                 throw new Error(`Reply media atau masukkan Text\nContoh:\n${isPrefix + command} halo guys`);
  96.             }
  97.  
  98.             var sentMessage = await mstatus([m.chat], content);
  99.             client.reply(m.chat, `✅ *Status berhasil dikirim!*\n\`\`\`${JSON.stringify(sentMessage, null, 2)}\`\`\``, m);
  100.         } catch (e) {
  101.             client.reply(m.chat, Func.jsonFormat(e), m);
  102.         }
  103.     },
  104.     owner: true,
  105.     group: true
  106. }
  107.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement