mirror of
https://github.com/FranP-code/Baileys.git
synced 2025-10-13 00:32:22 +00:00
add viewOnce + buttons
This commit is contained in:
@@ -50,19 +50,26 @@ type Mentionable = {
|
|||||||
/** list of jids that are mentioned in the accompanying text */
|
/** list of jids that are mentioned in the accompanying text */
|
||||||
mentions?: string[]
|
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 MediaType = 'image' | 'video' | 'sticker' | 'audio' | 'document'
|
||||||
export type AnyMediaMessageContent = (
|
export type AnyMediaMessageContent = (
|
||||||
({
|
({
|
||||||
image: WAMediaUpload
|
image: WAMediaUpload
|
||||||
caption?: string
|
caption?: string
|
||||||
jpegThumbnail?: string
|
jpegThumbnail?: string
|
||||||
} & Mentionable) |
|
} & Mentionable & Buttonable) |
|
||||||
({
|
({
|
||||||
video: WAMediaUpload
|
video: WAMediaUpload
|
||||||
caption?: string
|
caption?: string
|
||||||
gifPlayback?: boolean
|
gifPlayback?: boolean
|
||||||
jpegThumbnail?: string
|
jpegThumbnail?: string
|
||||||
} & Mentionable) | {
|
} & Mentionable & Buttonable) | {
|
||||||
audio: WAMediaUpload
|
audio: WAMediaUpload
|
||||||
/** if set to true, will send as a `voice note` */
|
/** if set to true, will send as a `voice note` */
|
||||||
pttAudio?: boolean
|
pttAudio?: boolean
|
||||||
@@ -70,18 +77,18 @@ export type AnyMediaMessageContent = (
|
|||||||
seconds?: number
|
seconds?: number
|
||||||
} | {
|
} | {
|
||||||
sticker: WAMediaUpload
|
sticker: WAMediaUpload
|
||||||
} | {
|
} | ({
|
||||||
document: WAMediaUpload
|
document: WAMediaUpload
|
||||||
mimetype: string
|
mimetype: string
|
||||||
fileName?: string
|
fileName?: string
|
||||||
}) &
|
} & Buttonable)) &
|
||||||
{ mimetype?: string }
|
{ mimetype?: string }
|
||||||
|
|
||||||
export type AnyRegularMessageContent =
|
export type AnyRegularMessageContent = (
|
||||||
({
|
({
|
||||||
text: string
|
text: string
|
||||||
}
|
}
|
||||||
& Mentionable) |
|
& Mentionable & Buttonable) |
|
||||||
AnyMediaMessageContent |
|
AnyMediaMessageContent |
|
||||||
{
|
{
|
||||||
contacts: {
|
contacts: {
|
||||||
@@ -92,6 +99,7 @@ export type AnyRegularMessageContent =
|
|||||||
{
|
{
|
||||||
location: WALocationMessage
|
location: WALocationMessage
|
||||||
}
|
}
|
||||||
|
) & ViewOnce
|
||||||
|
|
||||||
export type AnyMessageContent = AnyRegularMessageContent | {
|
export type AnyMessageContent = AnyRegularMessageContent | {
|
||||||
forward: WAMessage
|
forward: WAMessage
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { Boom } from '@hapi/boom'
|
import { Boom } from '@hapi/boom'
|
||||||
import { createReadStream, promises as fs } from "fs"
|
import { createReadStream, promises as fs } from "fs"
|
||||||
import got from "got"
|
import got from "got"
|
||||||
|
import { proto } from '../../WAMessage'
|
||||||
import { DEFAULT_ORIGIN, URL_REGEX, WA_DEFAULT_EPHEMERAL } from "../Defaults"
|
import { DEFAULT_ORIGIN, URL_REGEX, WA_DEFAULT_EPHEMERAL } from "../Defaults"
|
||||||
import {
|
import {
|
||||||
AnyMediaMessageContent,
|
AnyMediaMessageContent,
|
||||||
@@ -235,7 +236,7 @@ export const generateWAMessageContent = async(
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m.extendedTextMessage = WAMessageProto.ExtendedTextMessage.fromObject(extContent)
|
m.extendedTextMessage = extContent
|
||||||
} else if('contacts' in message) {
|
} else if('contacts' in message) {
|
||||||
const contactLen = message.contacts.contacts.length
|
const contactLen = message.contacts.contacts.length
|
||||||
if(!contactLen) {
|
if(!contactLen) {
|
||||||
@@ -267,6 +268,21 @@ export const generateWAMessageContent = async(
|
|||||||
options
|
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) {
|
if('mentions' in message && message.mentions?.length) {
|
||||||
const [messageType] = Object.keys(m)
|
const [messageType] = Object.keys(m)
|
||||||
m[messageType].contextInfo = m[messageType] || { }
|
m[messageType].contextInfo = m[messageType] || { }
|
||||||
|
|||||||
Reference in New Issue
Block a user