fix: 无法获取 QRCode

dev/supplier-email-drawer
LiaoYijun 9 months ago
parent fdc7539864
commit 32d197121f

@ -3,12 +3,10 @@ const { isJidUser, isJidGroup, isJidBroadcast, jidEncode, jidDecode, S_WHATSAPP_
const formatPhoneNumber = number => {
if (number === null || number === undefined) return '';
if (isJidGroup(number)) {
return number;
} else if (isJidBroadcast(number)) {
if (isJidGroup(number) || isJidBroadcast(number)) {
return number;
} else {
jidEncode(number, S_WHATSAPP_NET);
return jidEncode(number, S_WHATSAPP_NET);
}
};
@ -25,11 +23,18 @@ const parsePhoneNumber = number => {
// status: sent read delivered failed
// 2 sent, 3 delivered, 4 read, 0 error
const formatStatus = number => {
if (number === 2) return 'sent';
else if (number === 3) return 'delivered';
else if (number === 4) return 'read';
else if (number === 0) return 'error';
else return 'played';
switch (number) {
case 2:
return 'sent';
case 3:
return 'delivered';
case 4:
return 'read';
case 0:
return 'error';
default:
return 'played';
}
};
// Time: 2008-07-07 15:37:07
@ -38,7 +43,7 @@ const formatTimestamp = timestamp => {
const datetime = new Date(timestamp * 1000);
return datetime.getFullYear() + '-' + (datetime.getMonth() + 1) + '-' + datetime.getDay() + ' ' + datetime.getHours() + ':' + datetime.getMinutes() + ':' + datetime.getSeconds();
return `${datetime.getFullYear()}-${datetime.getMonth() + 1}-${datetime.getDate()} ${datetime.getHours()}:${datetime.getMinutes()}:${datetime.getSeconds()}`;
};
module.exports = {

@ -98,28 +98,30 @@ const createWhatsApp = async phone => {
waSocket.ev.on('connection.update', async update => {
console.log('connection update: ', update);
const { connection, lastDisconnect, qr, isOnline } = update;
if (isOnline === true) {
resolve('');
}
if (connection === 'close') {
console.log('链接断开:', lastDisconnect);
if (lastDisconnect?.error?.output?.statusCode !== DisconnectReason.loggedOut) {
console.log('正在重连:');
start();
} else {
waSocket.end(error => console.error('end.error: ', error));
waSocket.logout(msg => console.error('logout.msg: ', msg));
console.log('Connection closed. You are logged out.');
waEmitter.emit('connection:close', {
whatsAppNo,
status: 'offline',
});
}
} else if (connection === 'open') {
waEmitter.emit('connection.open', {
waEmitter.emit('connection:open', {
whatsAppNo,
status: 'online',
});
waEmitter.emit('connection:open', {
status: 'open', phone
});
resolve('');
} else if (qr !== undefined) {
// WebSocket 创建成功等待扫码,如果没有扫码会更新 qr
resolve(qr);
@ -149,8 +151,6 @@ const createWhatsApp = async phone => {
);
// save to file
await writeFile('d:/my-download.jpeg', buffer);
console.log('writeFile', messageType);
}
const fromWhatsAppNo = parsePhoneNumber(msg.key.remoteJid);

@ -7,16 +7,16 @@ module.exports = async (ctx, next) => {
try {
console.log('forward start ---------------');
// console.log(/^\/wai-server\/v\d{1}\/(?!channels|messages)/.test(ctx.path));
const { waisession } = ctx.headers;
if (isEmpty(waisession)) {
await next();
} else {
const findSession = await getConnection({ sesson_id: waisession, connect_domain: domain });
if (!isEmpty(findSession)) {
// todo: 设置一个flag, 是否存在, 不用再查一遍
await next();
}
}
// const { waisession } = ctx.headers;
// if (isEmpty(waisession)) {
// await next();
// } else {
// const findSession = await getConnection({ sesson_id: waisession, connect_domain: domain });
// if (!isEmpty(findSession)) {
// // todo: 设置一个flag, 是否存在, 不用再查一遍
// }
// }
await next();
// todo: forward to target server
console.log('forward End ---------------');

Loading…
Cancel
Save