1.0.0 • Published 5 months ago

pakada-balanne2 v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

Baileys - Typescript/Javascript WhatsApp Web API

Important Note

The original repository was initially removed by its creator and subsequently taken over by WhiskeySockets. Building upon this foundation, I have implemented several enhancements and introduced new features that were not present in the original repository. These improvements aim to elevate functionality and provide a more robust and versatile experience.

Install

Install in package.json:

"dependencies": {
    "ASITHA": "pakada balanne"
}

or install in terminal:

npm install pakada balanne

Then import the default function in your code:

// type esm
import makeWASocket from 'ASITHA'
// type cjs
const { default: makeWASocket } = require("baileys")

Added Features and Improvements

Here are some of the features and improvements I have added:

  • Support for Sending Messages to Channels: You can now easily send messages to channels.

  • Support for Button Messages and Interactive Messages: Added the ability to send messages with buttons and interactive messages.

  • AI Message Icon: Added customizable AI icon settings for messages

  • Profile Picture Settings: Allows users to upload profile pictures in their original size without cropping, ensuring better quality and visual presentation.

  • Custom Pairing Code: Users can now create and customize pairing codes as they wish, enhancing convenience and security when connecting devices.

  • Libsignal Fixes: Cleaned up logs for a cleaner and more informative output.

More features and improvements will be added in the future.

Feature Examples

NEWSLETTER

  • To get info newsletter
const metadata = await sock.newsletterMetadata("invite", "xxxxx")
// or
const metadata = await sock.newsletterMetadata("jid", "abcd@newsletter")
console.log(metadata)
  • To update the description of a newsletter
await sock.newsletterUpdateDescription("abcd@newsletter", "New Description")
  • To update the name of a newsletter
await sock.newsletterUpdateName("abcd@newsletter", "New Name")
  • To update the profile picture of a newsletter
await sock.newsletterUpdatePicture("abcd@newsletter", buffer)
  • To remove the profile picture of a newsletter
await sock.newsletterRemovePicture("abcd@newsletter")
  • To mute notifications for a newsletter
await sock.newsletterUnmute("abcd@newsletter")
  • To mute notifications for a newsletter
await sock.newsletterMute("abcd@newsletter")
  • To create a newsletter
const metadata = await sock.newsletterCreate("Newsletter Name", "Newsletter Description")
console.log(metadata)
  • To delete a newsletter
await sock.newsletterDelete("abcd@newsletter")
  • To follow a newsletter
await sock.newsletterFollow("abcd@newsletter")
  • To unfollow a newsletter
await sock.newsletterUnfollow("abcd@newsletter")
  • To send reaction
// jid, id message & emoticon
// way to get the ID is to copy the message url from channel
// Example: [ https://whatsapp.com/channel/xxxxx/175 ]
// The last number of the URL is the ID
const id = "175"
await sock.newsletterReactMessage("abcd@newsletter", id, "🥳")

BUTTON MESSAGE & INTERACTIVE MESSAGE

  • To send button with text
const buttons = [
  { buttonId: 'id1', buttonText: { displayText: 'Button 1' }, type: 1 },
  { buttonId: 'id2', buttonText: { displayText: 'Button 2' }, type: 1 }
]

const buttonMessage = {
    text: "Hi it's button message",
    footer: 'Hello World',
    buttons,
    headerType: 1,
    viewOnce: true
}

await sock.sendMessage(id, buttonMessage, { quoted: null })
  • To send button with image
const buttons = [
  { buttonId: 'id1', buttonText: { displayText: 'Button 1' }, type: 1 },
  { buttonId: 'id2', buttonText: { displayText: 'Button 2' }, type: 1 }
]

const buttonMessage = {
    image: { url: "https://example.com/abcd.jpg" }, // image: buffer or path
    caption: "Hi it's button message with image",
    footer: 'Hello World',
    buttons,
    headerType: 1,
    viewOnce: true
}

await sock.sendMessage(id, buttonMessage, { quoted: null })
  • To send button with video
const buttons = [
  { buttonId: 'id1', buttonText: { displayText: 'Button 1' }, type: 1 },
  { buttonId: 'id2', buttonText: { displayText: 'Button 2' }, type: 1 }
]

const buttonMessage = {
    video: { url: "https://example.com/abcd.mp4" }, // video: buffer or path
    caption: "Hi it's button message with video",
    footer: 'Hello World',
    buttons,
    headerType: 1,
    viewOnce: true
}

await sock.sendMessage(id, buttonMessage, { quoted: null })
  • To send interactive message
const interactiveButtons = [
     {
        name: "quick_reply",
        buttonParamsJson: JSON.stringify({
             display_text: "Quick Reply",
             id: "ID"
        })
     },
     {
        name: "cta_url",
        buttonParamsJson: JSON.stringify({
             display_text: "Tap Here!",
             url: "https://www.example.com/"
        })
     },
     {
        name: "cta_copy",
        buttonParamsJson: JSON.stringify({
             display_text: "Copy Code",
             id: "12345",
             copy_code: "12345"
        })
     }
]

const interactiveMessage = {
    text: "Hello World!",
    title: "this is the title",
    footer: "this is the footer",
    interactiveButtons
}

await sock.sendMessage(id, interactiveMessage, { quoted: null })
  • To send interactive message with image
const interactiveButtons = [
     {
        name: "quick_reply",
        buttonParamsJson: JSON.stringify({
             display_text: "Quick Reply",
             id: "ID"
        })
     },
     {
        name: "cta_url",
        buttonParamsJson: JSON.stringify({
             display_text: "Tap Here!",
             url: "https://www.example.com/"
        })
     },
     {
        name: "cta_copy",
        buttonParamsJson: JSON.stringify({
             display_text: "Copy Code",
             id: "12345",
             copy_code: "12345"
        })
     }
]

const interactiveMessage = {
    image: { url: "https://example.com/abcd.jpg" }, // image: buffer or path
    caption: "this is the caption",
    title: "this is the title",
    footer: "this is the footer",
    interactiveButtons
}

await sock.sendMessage(id, interactiveMessage, { quoted: null })
  • To send interactive message with video
const interactiveButtons = [
     {
        name: "quick_reply",
        buttonParamsJson: JSON.stringify({
             display_text: "Quick Reply",
             id: "ID"
        })
     },
     {
        name: "cta_url",
        buttonParamsJson: JSON.stringify({
             display_text: "Tap Here!",
             url: "https://www.example.com/"
        })
     },
     {
        name: "cta_copy",
        buttonParamsJson: JSON.stringify({
             display_text: "Copy Code",
             id: "12345",
             copy_code: "12345"
        })
     }
]

const interactiveMessage = {
    video: { url: "https://example.com/abcd.mp4" }, // video: buffer or path
    caption: "this is the caption",
    title: "this is the title",
    footer: "this is the footer",
    interactiveButtons
}

await sock.sendMessage(id, interactiveMessage, { quoted: null })

AI Icon

// just add "ai: true" function to sendMessage
await sock.sendMessage(id, { text: "Hello Wold", ai: true })

Custom Code Pairing

if(usePairingCode && !sock.authState.creds.registered) {
    const phoneNumber = await question('Please enter your mobile phone number:\n')
    const custom = "NSTRCODE" // must be 8 digits, can be letters or numbers
    const code = await sock.requestPairingCode(phoneNumber, custom)
    console.log(`Pairing code: ${code?.match(/.{1,4}/g)?.join('-') || code}`)
}

Reporting Issues

If you encounter any issues while using this repository or any part of it, please feel free to open a new issue here.

Notes

Everything other than the modifications mentioned above remains the same as the original repository. You can check out the original repository at WhiskeySockets