|
|
|
@ -2,8 +2,6 @@ const {
|
|
|
|
makeWASocket,
|
|
|
|
makeWASocket,
|
|
|
|
Browsers,
|
|
|
|
Browsers,
|
|
|
|
DisconnectReason,
|
|
|
|
DisconnectReason,
|
|
|
|
fetchLatestBaileysVersion,
|
|
|
|
|
|
|
|
getContentType, getDevice,
|
|
|
|
|
|
|
|
makeCacheableSignalKeyStore,
|
|
|
|
makeCacheableSignalKeyStore,
|
|
|
|
makeInMemoryStore,
|
|
|
|
makeInMemoryStore,
|
|
|
|
useMultiFileAuthState,
|
|
|
|
useMultiFileAuthState,
|
|
|
|
@ -11,7 +9,6 @@ const {
|
|
|
|
isJidNewsletter, isJidGroup, isJidBroadcast, isJidStatusBroadcast
|
|
|
|
isJidNewsletter, isJidGroup, isJidBroadcast, isJidStatusBroadcast
|
|
|
|
} = require('@whiskeysockets/baileys');
|
|
|
|
} = require('@whiskeysockets/baileys');
|
|
|
|
const fs = require('fs');
|
|
|
|
const fs = require('fs');
|
|
|
|
const path = require('path');
|
|
|
|
|
|
|
|
const { writeFile } = require('fs/promises');
|
|
|
|
const { writeFile } = require('fs/promises');
|
|
|
|
const waEmitter = require('../emitter');
|
|
|
|
const waEmitter = require('../emitter');
|
|
|
|
const serverConfig = require('../../config').server;
|
|
|
|
const serverConfig = require('../../config').server;
|
|
|
|
@ -21,8 +18,7 @@ const generateId = require('../../utils/generateId.util');
|
|
|
|
const NodeCache = require('node-cache');
|
|
|
|
const NodeCache = require('node-cache');
|
|
|
|
const P = require('pino');
|
|
|
|
const P = require('pino');
|
|
|
|
|
|
|
|
|
|
|
|
// Reference: https://github.com/WhiskeySockets/Baileys/blob/master/README.md
|
|
|
|
// Ref: https://github.com/WhiskeySockets/Baileys/blob/v6.7.19/README.md
|
|
|
|
|
|
|
|
|
|
|
|
const createWhatsApp = async phone => {
|
|
|
|
const createWhatsApp = async phone => {
|
|
|
|
let qrCode = null;
|
|
|
|
let qrCode = null;
|
|
|
|
const channelId = generateId();
|
|
|
|
const channelId = generateId();
|
|
|
|
@ -32,7 +28,7 @@ const createWhatsApp = async phone => {
|
|
|
|
// 缓存群信息,过期时间为 24 小时
|
|
|
|
// 缓存群信息,过期时间为 24 小时
|
|
|
|
const groupSubjectCache = new NodeCache({ stdTTL: 60*60*24 });
|
|
|
|
const groupSubjectCache = new NodeCache({ stdTTL: 60*60*24 });
|
|
|
|
const logger = P({ timestamp: () => `,"time":"${new Date().toJSON()}"` }, P.destination('./logs/wa-logs-' + phone + '.txt'));
|
|
|
|
const logger = P({ timestamp: () => `,"time":"${new Date().toJSON()}"` }, P.destination('./logs/wa-logs-' + phone + '.txt'));
|
|
|
|
logger.level = 'trace';
|
|
|
|
logger.level = 'warn';
|
|
|
|
const msgRetryCounterCache = new NodeCache();
|
|
|
|
const msgRetryCounterCache = new NodeCache();
|
|
|
|
const storeFilename = './baileys_auth_info/baileys_store_' + phone + '.json'
|
|
|
|
const storeFilename = './baileys_auth_info/baileys_store_' + phone + '.json'
|
|
|
|
const store = makeInMemoryStore({ logger });
|
|
|
|
const store = makeInMemoryStore({ logger });
|
|
|
|
@ -48,7 +44,7 @@ const createWhatsApp = async phone => {
|
|
|
|
// https://git.../WhiskeySockets/.../src/Utils/generics.ts
|
|
|
|
// https://git.../WhiskeySockets/.../src/Utils/generics.ts
|
|
|
|
// https://web.whatsapp.com/sw.js, client_revision: 1027426813
|
|
|
|
// https://web.whatsapp.com/sw.js, client_revision: 1027426813
|
|
|
|
const { version, isLatest, } = { version: [2, 3000, 1027426813], isLatest: true };
|
|
|
|
const { version, isLatest, } = { version: [2, 3000, 1027426813], isLatest: true };
|
|
|
|
const waVersion = version.join('.') + ', ' + (isLatest ? 'latest' : 'out');
|
|
|
|
const waVersion = version.join('.') + ', ' + (isLatest ? 'latest' : 'maybe');
|
|
|
|
|
|
|
|
|
|
|
|
const stop = () => {
|
|
|
|
const stop = () => {
|
|
|
|
|
|
|
|
|
|
|
|
@ -231,6 +227,7 @@ const createWhatsApp = async phone => {
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
type: 'document',
|
|
|
|
type: 'document',
|
|
|
|
document: {
|
|
|
|
document: {
|
|
|
|
|
|
|
|
filename: documentMessage.fileName,
|
|
|
|
mimetype: documentMessage.mimetype,
|
|
|
|
mimetype: documentMessage.mimetype,
|
|
|
|
sha256: uint8ArrayToBase64(documentMessage.fileSha256),
|
|
|
|
sha256: uint8ArrayToBase64(documentMessage.fileSha256),
|
|
|
|
caption: documentMessage.caption,
|
|
|
|
caption: documentMessage.caption,
|
|
|
|
@ -384,7 +381,7 @@ const createWhatsApp = async phone => {
|
|
|
|
if (connection === 'close') {
|
|
|
|
if (connection === 'close') {
|
|
|
|
waEmitter.off('request.' + whatsAppNo + '.send.message', sendMessageHandler);
|
|
|
|
waEmitter.off('request.' + whatsAppNo + '.send.message', sendMessageHandler);
|
|
|
|
waEmitter.off('request.' + whatsAppNo + '.stop', stopHandler);
|
|
|
|
waEmitter.off('request.' + whatsAppNo + '.stop', stopHandler);
|
|
|
|
if((lastDisconnect?.error)?.output?.statusCode !== DisconnectReason.loggedOut) {
|
|
|
|
if ((lastDisconnect?.error)?.output?.statusCode !== DisconnectReason.loggedOut) {
|
|
|
|
start();
|
|
|
|
start();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
// logout 异步删除验证目录
|
|
|
|
// logout 异步删除验证目录
|
|
|
|
|