example: revamp example and add options for unit tests
This commit is contained in:
+15
-22
@@ -42,6 +42,10 @@ const question = (text: string) => new Promise<string>((resolve) => rl.question(
|
|||||||
// start a connection
|
// start a connection
|
||||||
const startSock = async() => {
|
const startSock = async() => {
|
||||||
const { state, saveCreds } = await useMultiFileAuthState('baileys_auth_info')
|
const { state, saveCreds } = await useMultiFileAuthState('baileys_auth_info')
|
||||||
|
// NOTE: For unit testing purposes only
|
||||||
|
if (process.env.ADV_SECRET_KEY) {
|
||||||
|
state.creds.advSecretKey = process.env.ADV_SECRET_KEY
|
||||||
|
}
|
||||||
// fetch latest version of WA Web
|
// fetch latest version of WA Web
|
||||||
const { version, isLatest } = await fetchLatestBaileysVersion()
|
const { version, isLatest } = await fetchLatestBaileysVersion()
|
||||||
console.log(`using WA v${version.join('.')}, isLatest: ${isLatest}`)
|
console.log(`using WA v${version.join('.')}, isLatest: ${isLatest}`)
|
||||||
@@ -64,27 +68,6 @@ const startSock = async() => {
|
|||||||
getMessage
|
getMessage
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
// Pairing code for Web clients
|
|
||||||
if (usePairingCode && !sock.authState.creds.registered) {
|
|
||||||
// todo move to QR event
|
|
||||||
const phoneNumber = await question('Please enter your phone number:\n')
|
|
||||||
const code = await sock.requestPairingCode(phoneNumber)
|
|
||||||
console.log(`Pairing code: ${code}`)
|
|
||||||
}
|
|
||||||
|
|
||||||
const sendMessageWTyping = async(msg: AnyMessageContent, jid: string) => {
|
|
||||||
await sock.presenceSubscribe(jid)
|
|
||||||
await delay(500)
|
|
||||||
|
|
||||||
await sock.sendPresenceUpdate('composing', jid)
|
|
||||||
await delay(2000)
|
|
||||||
|
|
||||||
await sock.sendPresenceUpdate('paused', jid)
|
|
||||||
|
|
||||||
await sock.sendMessage(jid, msg)
|
|
||||||
}
|
|
||||||
|
|
||||||
// the process function lets you process all events that just occurred
|
// the process function lets you process all events that just occurred
|
||||||
// efficiently in a batch
|
// efficiently in a batch
|
||||||
sock.ev.process(
|
sock.ev.process(
|
||||||
@@ -94,7 +77,7 @@ const startSock = async() => {
|
|||||||
// maybe it closed, or we received all offline message or connection opened
|
// maybe it closed, or we received all offline message or connection opened
|
||||||
if(events['connection.update']) {
|
if(events['connection.update']) {
|
||||||
const update = events['connection.update']
|
const update = events['connection.update']
|
||||||
const { connection, lastDisconnect } = update
|
const { connection, lastDisconnect, qr } = update
|
||||||
if(connection === 'close') {
|
if(connection === 'close') {
|
||||||
// reconnect if not logged out
|
// reconnect if not logged out
|
||||||
if((lastDisconnect?.error as Boom)?.output?.statusCode !== DisconnectReason.loggedOut) {
|
if((lastDisconnect?.error as Boom)?.output?.statusCode !== DisconnectReason.loggedOut) {
|
||||||
@@ -103,6 +86,16 @@ const startSock = async() => {
|
|||||||
console.log('Connection closed. You are logged out.')
|
console.log('Connection closed. You are logged out.')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (qr) {
|
||||||
|
// Pairing code for Web clients
|
||||||
|
if (usePairingCode && !sock.authState.creds.registered) {
|
||||||
|
const phoneNumber = await question('Please enter your phone number:\n')
|
||||||
|
const code = await sock.requestPairingCode(phoneNumber)
|
||||||
|
console.log(`Pairing code: ${code}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
console.log('connection update', update)
|
console.log('connection update', update)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user