|
|
|
const { isJidUser, isLidUser, 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;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
const isJidPersonal = jid => {
|
|
|
|
return isJidUser(jid) || isJidBroadcast(jid) || isLidUser(jid);
|
|
|
|
}
|
|
|
|
|
|
|
|
// 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,
|
|
|
|
isJidPersonal,
|
|
|
|
};
|