1.0.2 • Published 2 years ago

@navetacandra/wa-bot v1.0.2

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

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)