const { isJidUser, isJidGroup, isJidBroadcast, jidDecode, S_WHATSAPP_NET } = require('@whiskeysockets/baileys'); const encodeJid = number => { if (number === null || number === undefined) return ''; if (number.indexOf('@') > -1) { return number; } else { return number + S_WHATSAPP_NET; } }; const decodeJid = number => { if (number === null || number === undefined) return ''; if (isJidUser(number)) { return jidDecode(number).user; } else { return number; } }; // status: sent read delivered failed // 2 sent, 3 delivered, 4 read, 0 error const formatStatus = status => { switch (status) { case 0: return 'error'; case 1: return 'pending'; case 2: return 'sent'; case 3: return 'delivered'; case 4: return 'read'; case 5: return 'played'; default: return `unknown(${status})`; } }; // Time: 2008-07-07 15:37:07 const formatTimestamp = timestamp => { if (timestamp === null) return ''; const datetime = new Date(timestamp * 1000); return `${datetime.getFullYear()}-${datetime.getMonth() + 1}-${datetime.getDate()} ${datetime.getHours()}:${datetime.getMinutes()}:${datetime.getSeconds()}`; }; const getFileExtension = mimeType => { switch (mimeType) { case 'image/jpeg': return '.jpg'; case 'image/png': return '.png'; case 'image/gif': return '.gif'; case 'image/bmp': return '.bmp'; case 'image/webp': return '.webp'; default: return 'unknown'; } } const uint8ArrayToBase64 = uint8Array => { const binaryString = String.fromCharCode(...uint8Array); return btoa(binaryString); } module.exports = { uint8ArrayToBase64, getFileExtension, formatTimestamp, formatStatus, encodeJid, decodeJid, };