MCPcopy Create free account
hub / github.com/GlobalTechInfo/MEGA-MD / handler

Function handler

plugins/styletext.js:9–76  ·  view source on GitHub ↗
(sock, message, args, context)

Source from the content-addressed store, hash-verified

7 description: 'Style text in different fancy formats',
8 usage: '.stext <text>',
9 async handler(sock, message, args, context) {
10 const chatId = context.chatId || message.key.remoteJid;
11 const text = args.join(' ');
12 try {
13 if (!text || text.trim() === '') {
14 await sock.sendMessage(chatId, {
15 text: "*Please provide a text to style.*\nExample: .stext Hello"
16 }, { quoted: message });
17 return;
18 }
19 const styledResult = await QasimAny.styletext(text);
20 if (!Array.isArray(styledResult) || styledResult.length === 0) {
21 throw new Error('No styled text found.');
22 }
23 let messageText = 'Reply with choosen number:\n\n';
24 styledResult.forEach((item, index) => {
25 const styledText = item.result || item;
26 messageText += `*${index + 1}.* ${styledText}\n`;
27 });
28 const sentMsg = await sock.sendMessage(chatId, {
29 text: messageText
30 }, { quoted: message });
31 sock.styletext = sock.styletext || {};
32 sock.styletext[sentMsg.key.id] = styledResult;
33 const listener = async ({ messages }) => {
34 const m = messages[0];
35 if (!m.message || !m.key || !m.key.remoteJid)
36 return;
37 if (m.key.remoteJid !== chatId)
38 return;
39 let isQuoted = false;
40 if (m.message.extendedTextMessage &&
41 m.message.extendedTextMessage.contextInfo &&
42 m.message.extendedTextMessage.contextInfo.quotedMessage) {
43 const quotedId = m.message.extendedTextMessage.contextInfo.stanzaId
44 || m.message.extendedTextMessage.contextInfo.quotedMessageKey?.id;
45 if (quotedId === sentMsg.key.id)
46 isQuoted = true;
47 }
48 let userReply = m.message.conversation || '';
49 if (m.message.extendedTextMessage && m.message.extendedTextMessage.text)
50 userReply = m.message.extendedTextMessage.text;
51 if (!userReply)
52 return;
53 if (!isQuoted && m.message.conversation !== sentMsg.key.id)
54 return;
55 const choice = parseInt(userReply.trim(), 10);
56 if (!isNaN(choice) && choice >= 1 && choice <= styledResult.length) {
57 const selectedText = styledResult[choice - 1].result || styledResult[choice - 1];
58 await sock.sendMessage(m.key.remoteJid, { text: selectedText }, { quoted: m });
59 delete sock.styletext[sentMsg.key.id];
60 sock.ev.off('messages.upsert', listener);
61 }
62 else {
63 await sock.sendMessage(m.key.remoteJid, {
64 text: `Invalid selection. Please choose a number between 1 and ${styledResult.length}.`
65 }, { quoted: m });
66 }

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected