1.0.2 • Published 2 years ago
@navetacandra/wa-bot v1.0.2
Wa Bot Baileys Simplified
Thanks to @adiwajshing for creating @adiwajshing/baileys module.
It need support ffmpeg for sending GIF file or send any media file send as sticker.
Install Package
npm install @navetacandra/wa-bot
yarn add @navetacandra/wa-bot
Connect To WhatsApp Socket
const {
WAConn
} = require('@navetacandra/wa-bot'); // import wa-bot module
const conn = new WAConn(); // Create new connection
// On connection recieve QR
conn.on('qr', qr => {
console.log(qr) // Logging QR to terminal
})
// Launch connection
conn.connect().catch(console.log)
Connect to WhatsApp with Session
const {
WAConn
} = require('@navetacandra/wa-bot'); // import wa-bot module
const fs = require('fs'); // import node filesystem module
const conn = new WAConn(); // Create new connection
// Check if session file exist
if (fs.existsSync('./session.json')) {
conn.loadAuthInfo('./session.json') // Load session from file
}
// On connection recieve QR
conn.on('qr', qr => {
console.log(qr) // Logging QR to terminal
})
// On connection opened
conn.on('open', () => {
// Write session
fs.writeFileSync('./session.json', JSON.stringify(conn.base64EncodedAuthInfo(), null, '\t'))
})
// Launch connection
conn.connect().catch(console.log)
On recieve new message
// On connection recieve chat-update
conn.on('chat-update', async chat => {
if (chat && chat.count < 1 || !chat.hasNewMessage) return; // Check is any new message
let m = await conn.simpliify(chat.messages.all()[0]) // To explain simplify chat-update
if (m.isBaileys) return; // To avoid spamming
if (m.isStatus) return; // For block when is status update
conn.chatRead(m.from) // Read chat-update
m.reply('tes') // Reply message
})
On detected message deleted
// On connection detect mesage deleted
conn.on('message-delete', m => {
/*
Do Something here
*/
})
On recieve new status update
// On recieve status update
conn.on('status', m => {
/*
Do something here
*/
})
On recieve broadcast message
// On recieve broadcast message
conn.on('broadcast', m => {
/*
Do something here
*/
})
On battery status change
// On battery change
conn.on('battery-change', batt => {
/*
Do something here
*/
})
Send file
/// Send file from url
conn.sendFile("123@s.whatsapp.net", "https://cdn-icons-png.flaticon.com/512/174/174879.png")
/// Send file from local file
conn.sendFile("123@s.whatsapp.net", "./image.jpg")
Send whatsapp sticker
/// Send sticker from url
conn.sendSticker("123@s.whatsapp.net", "https://cdn-icons-png.flaticon.com/512/174/174879.png")
/// Send sticker from local file
conn.sendSticker("123@s.whatsapp.net", "./image.jpg")
Set Exif/WhatsApp sticker property
// Set sticker property
conn.setExif('./exif.json' /* Exif file (must json) */, 'WhatsApp Bot Sticker' /* Packname */, 'Bot' /* Author*/)
Sending WhatsApp status
// send with media (can be buffer, locally or link)
conn.sendStatus('https://navetacandra.eu.org/images/proj-1.png', {media: true, caption: 'Sending status'})
// Send only text
conn.sendStatus('Sending status')
On Group Participant Update
function onAdd(g){
/*
Do something here
*/
}
function onRemove(g){
/*
Do something here
*/
}
function onPromote(g){
/*
Do something here
*/
}
function onDemote(g){
/*
Do something here
*/
}
conn.onParticipantUpdate(onAdd, onRemove, onPromote, onDemote)