(sock, message, args, context)
| 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 | } |
nothing calls this directly
no outgoing calls
no test coverage detected