add viewOnce + buttons

This commit is contained in:
Adhiraj Singh
2021-08-06 11:55:09 +05:30
parent 39a6d804e1
commit 0a746b9f53
2 changed files with 31 additions and 7 deletions

View File

@@ -50,19 +50,26 @@ type Mentionable = {
/** list of jids that are mentioned in the accompanying text */
mentions?: string[]
}
type ViewOnce = {
viewOnce?: boolean
}
type Buttonable = {
/** add buttons to the message */
buttons?: proto.IButton[]
}
export type MediaType = 'image' | 'video' | 'sticker' | 'audio' | 'document'
export type AnyMediaMessageContent = (
({
image: WAMediaUpload
caption?: string
jpegThumbnail?: string
} & Mentionable) |
} & Mentionable & Buttonable) |
({
video: WAMediaUpload
caption?: string
gifPlayback?: boolean
jpegThumbnail?: string
} & Mentionable) | {
} & Mentionable & Buttonable) | {
audio: WAMediaUpload
/** if set to true, will send as a `voice note` */
pttAudio?: boolean
@@ -70,18 +77,18 @@ export type AnyMediaMessageContent = (
seconds?: number
} | {
sticker: WAMediaUpload
} | {
} | ({
document: WAMediaUpload
mimetype: string
fileName?: string
}) &
} & Buttonable)) &
{ mimetype?: string }
export type AnyRegularMessageContent =
export type AnyRegularMessageContent = (
({
text: string
}
& Mentionable) |
& Mentionable & Buttonable) |
AnyMediaMessageContent |
{
contacts: {
@@ -92,6 +99,7 @@ export type AnyRegularMessageContent =
{
location: WALocationMessage
}
) & ViewOnce
export type AnyMessageContent = AnyRegularMessageContent | {
forward: WAMessage

View File

@@ -1,6 +1,7 @@
import { Boom } from '@hapi/boom'
import { createReadStream, promises as fs } from "fs"
import got from "got"
import { proto } from '../../WAMessage'
import { DEFAULT_ORIGIN, URL_REGEX, WA_DEFAULT_EPHEMERAL } from "../Defaults"
import {
AnyMediaMessageContent,
@@ -235,7 +236,7 @@ export const generateWAMessageContent = async(
}
}
m.extendedTextMessage = WAMessageProto.ExtendedTextMessage.fromObject(extContent)
m.extendedTextMessage = extContent
} else if('contacts' in message) {
const contactLen = message.contacts.contacts.length
if(!contactLen) {
@@ -267,6 +268,21 @@ export const generateWAMessageContent = async(
options
)
}
if('buttons' in message && !!message.buttons) {
const buttonsMessage: proto.IButtonsMessage = {
buttons: message.buttons!,
text: ''
}
if('text' in message) {
buttonsMessage.contentText = message.text
} else {
Object.assign(buttonsMessage, m)
}
m = { buttonsMessage }
}
if('viewOnce' in message && !!message.viewOnce) {
m = { viewOnceMessage: { message: m } }
}
if('mentions' in message && message.mentions?.length) {
const [messageType] = Object.keys(m)
m[messageType].contextInfo = m[messageType] || { }