You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Global-sales/wai-server/core/baileys/helper.js

88 lines
1.9 KiB
JavaScript

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;
}
};
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,
};