UNPKG

naruyaizumi

Version:

A WebSockets library for interacting with WhatsApp Web

58 lines (57 loc) 2.11 kB
import { getBinaryNodeChild, getBinaryNodeChildren, getBinaryNodeChildString, } from "../../WABinary/index.js"; import { USyncUser } from "../USyncUser.js"; export class USyncBotProfileProtocol { constructor() { this.name = "bot"; } getQueryElement() { return { tag: "bot", attrs: {}, content: [{ tag: "profile", attrs: { v: "1" } }], }; } getUserElement(user) { return { tag: "bot", attrs: {}, content: [{ tag: "profile", attrs: { persona_id: user.personaId } }], }; } parser(node) { const botNode = getBinaryNodeChild(node, "bot"); const profile = getBinaryNodeChild(botNode, "profile"); const commandsNode = getBinaryNodeChild(profile, "commands"); const promptsNode = getBinaryNodeChild(profile, "prompts"); const commands = []; const prompts = []; for (const command of getBinaryNodeChildren(commandsNode, "command")) { commands.push({ name: getBinaryNodeChildString(command, "name"), description: getBinaryNodeChildString(command, "description"), }); } for (const prompt of getBinaryNodeChildren(promptsNode, "prompt")) { prompts.push( `${getBinaryNodeChildString(prompt, "emoji")} ${getBinaryNodeChildString(prompt, "text")}` ); } return { isDefault: !!getBinaryNodeChild(profile, "default"), jid: node.attrs.jid, name: getBinaryNodeChildString(profile, "name"), attributes: getBinaryNodeChildString(profile, "attributes"), description: getBinaryNodeChildString(profile, "description"), category: getBinaryNodeChildString(profile, "category"), personaId: profile.attrs["persona_id"], commandsDescription: getBinaryNodeChildString(commandsNode, "description"), commands, prompts, }; } } //# sourceMappingURL=UsyncBotProfileProtocol.js.map