project: Move to ESM Modules
This commit is contained in:
+31
-68
@@ -1,7 +1,7 @@
|
||||
import { Boom } from '@hapi/boom'
|
||||
import NodeCache from '@cacheable/node-cache'
|
||||
import readline from 'readline'
|
||||
import makeWASocket, { AnyMessageContent, BinaryInfo, delay, DisconnectReason, downloadAndProcessHistorySyncNotification, encodeWAM, fetchLatestBaileysVersion, getAggregateVotesInPollMessage, getHistoryMsg, isJidNewsletter, makeCacheableSignalKeyStore, proto, useMultiFileAuthState, WAMessageContent, WAMessageKey } from '../src'
|
||||
import makeWASocket, { AnyMessageContent, BinaryInfo, delay, DisconnectReason, downloadAndProcessHistorySyncNotification, encodeWAM, fetchLatestBaileysVersion, getAggregateVotesInPollMessage, getHistoryMsg, isJidNewsletter, jidDecode, makeCacheableSignalKeyStore, normalizeMessageContent, PatchedMessageWithRecipientJID, proto, useMultiFileAuthState, WAMessageContent, WAMessageKey } from '../src'
|
||||
//import MAIN_LOGGER from '../src/Utils/logger'
|
||||
import open from 'open'
|
||||
import fs from 'fs'
|
||||
@@ -33,7 +33,6 @@ const startSock = async() => {
|
||||
const sock = makeWASocket({
|
||||
version,
|
||||
logger,
|
||||
printQRInTerminal: !usePairingCode,
|
||||
auth: {
|
||||
creds: state.creds,
|
||||
/** caching makes the store faster to send/recv messages */
|
||||
@@ -45,7 +44,7 @@ const startSock = async() => {
|
||||
// comment the line below out
|
||||
// shouldIgnoreJid: jid => isJidBroadcast(jid),
|
||||
// implement to handle retries & poll updates
|
||||
getMessage,
|
||||
getMessage
|
||||
})
|
||||
|
||||
// Pairing code for Web clients
|
||||
@@ -148,77 +147,41 @@ const startSock = async() => {
|
||||
}
|
||||
|
||||
// received a new message
|
||||
if(events['messages.upsert']) {
|
||||
const upsert = events['messages.upsert']
|
||||
console.log('recv messages ', JSON.stringify(upsert, undefined, 2))
|
||||
if (events['messages.upsert']) {
|
||||
const upsert = events['messages.upsert']
|
||||
console.log('recv messages ', JSON.stringify(upsert, undefined, 2))
|
||||
|
||||
if(upsert.type === 'notify') {
|
||||
for (const msg of upsert.messages) {
|
||||
//TODO: More built-in implementation of this
|
||||
/* if (
|
||||
msg.message?.protocolMessage?.type ===
|
||||
proto.Message.ProtocolMessage.Type.HISTORY_SYNC_NOTIFICATION
|
||||
) {
|
||||
const historySyncNotification = getHistoryMsg(msg.message)
|
||||
if (
|
||||
historySyncNotification?.syncType ==
|
||||
proto.HistorySync.HistorySyncType.ON_DEMAND
|
||||
) {
|
||||
const { messages } =
|
||||
await downloadAndProcessHistorySyncNotification(
|
||||
historySyncNotification,
|
||||
{}
|
||||
)
|
||||
if (!!upsert.requestId) {
|
||||
console.log("placeholder message received for request of id=" + upsert.requestId, upsert)
|
||||
}
|
||||
|
||||
|
||||
const chatId = onDemandMap.get(
|
||||
historySyncNotification!.peerDataRequestSessionId!
|
||||
)
|
||||
|
||||
console.log(messages)
|
||||
if (upsert.type === 'notify') {
|
||||
for (const msg of upsert.messages) {
|
||||
if (msg.message?.conversation || msg.message?.extendedTextMessage?.text) {
|
||||
const text = msg.message?.conversation || msg.message?.extendedTextMessage?.text
|
||||
if (text == "requestPlaceholder" && !upsert.requestId) {
|
||||
const messageId = await sock.requestPlaceholderResend(msg.key)
|
||||
console.log('requested placeholder resync, id=', messageId)
|
||||
}
|
||||
|
||||
onDemandMap.delete(
|
||||
historySyncNotification!.peerDataRequestSessionId!
|
||||
)
|
||||
// go to an old chat and send this
|
||||
if (text == "onDemandHistSync") {
|
||||
const messageId = await sock.fetchMessageHistory(50, msg.key, msg.messageTimestamp!)
|
||||
console.log('requested on-demand sync, id=', messageId)
|
||||
}
|
||||
|
||||
/*
|
||||
// 50 messages is the limit imposed by whatsapp
|
||||
//TODO: Add ratelimit of 7200 seconds
|
||||
//TODO: Max retries 10
|
||||
const messageId = await sock.fetchMessageHistory(
|
||||
50,
|
||||
oldestMessageKey,
|
||||
oldestMessageTimestamp
|
||||
)
|
||||
onDemandMap.set(messageId, chatId)
|
||||
}
|
||||
} */
|
||||
if (!msg.key.fromMe && doReplies && !isJidNewsletter(msg.key?.remoteJid!)) {
|
||||
|
||||
if (msg.message?.conversation || msg.message?.extendedTextMessage?.text) {
|
||||
const text = msg.message?.conversation || msg.message?.extendedTextMessage?.text
|
||||
if (text == "requestPlaceholder" && !upsert.requestId) {
|
||||
const messageId = await sock.requestPlaceholderResend(msg.key)
|
||||
console.log('requested placeholder resync, id=', messageId)
|
||||
} else if (upsert.requestId) {
|
||||
console.log('Message received from phone, id=', upsert.requestId, msg)
|
||||
}
|
||||
|
||||
// go to an old chat and send this
|
||||
if (text == "onDemandHistSync") {
|
||||
const messageId = await sock.fetchMessageHistory(50, msg.key, msg.messageTimestamp!)
|
||||
console.log('requested on-demand sync, id=', messageId)
|
||||
}
|
||||
}
|
||||
|
||||
if(!msg.key.fromMe && doReplies && !isJidNewsletter(msg.key?.remoteJid!)) {
|
||||
|
||||
console.log('replying to', msg.key.remoteJid)
|
||||
await sock!.readMessages([msg.key])
|
||||
await sendMessageWTyping({ text: 'Hello there!' }, msg.key.remoteJid!)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log('replying to', msg.key.remoteJid)
|
||||
await sock!.readMessages([msg.key])
|
||||
await sendMessageWTyping({ text: 'Hello there!' }, msg.key.remoteJid!)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// messages updated like status delivered, message deleted etc.
|
||||
if(events['messages.update']) {
|
||||
@@ -284,7 +247,7 @@ const startSock = async() => {
|
||||
// up to you
|
||||
|
||||
// only if store is present
|
||||
return proto.Message.fromObject({})
|
||||
return proto.Message.fromObject({ conversation: 'test' })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user