n8n-nodes-zalo-nnt
Version:
Unofficial Zalo integration for n8n - Send messages, manage groups, user operations with QR login. No API key required, works via browser simulation.
72 lines • 2.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildMessageContent = buildMessageContent;
const validator_1 = require("./validator");
function buildQuote(quoteData) {
(0, validator_1.validateQuote)(quoteData);
return {
content: quoteData.content,
msgType: quoteData.msgType || 'webchat',
propertyExt: {},
uidFrom: quoteData.uidFrom,
msgId: quoteData.msgId,
cliMsgId: quoteData.cliMsgId,
ts: parseInt(quoteData.ts),
ttl: quoteData.ttl || 0,
};
}
function buildMentions(mentions) {
return mentions
.filter(m => m.uid && m.len > 0)
.map(m => ({
pos: m.pos || 0,
uid: m.uid,
len: m.len || 0,
}));
}
function buildStyles(styles) {
return styles.map(s => {
const style = {
start: s.start,
len: s.len,
st: s.st,
};
if (s.indentSize !== undefined) {
style.indentSize = s.indentSize;
}
return style;
});
}
function buildMessageContent(params, logger) {
const messageContent = {
msg: params.message,
};
if (params.urgency !== undefined && params.urgency !== 0) {
messageContent.urgency = params.urgency;
logger.info(`Added urgency: ${params.urgency}`);
}
if (params.ttl !== undefined && params.ttl > 0) {
messageContent.ttl = params.ttl;
logger.info(`Added TTL: ${params.ttl}ms`);
}
if (params.quote) {
messageContent.quote = buildQuote(params.quote);
logger.info(`Quote configured: msgId=${params.quote.msgId}, uidFrom=${params.quote.uidFrom}`);
}
if (params.mentions && params.mentions.length > 0) {
(0, validator_1.validateMentions)(params.mentions, params.message.length);
messageContent.mentions = buildMentions(params.mentions);
logger.info(`Added ${messageContent.mentions.length} mentions`);
}
if (params.styles && params.styles.length > 0) {
(0, validator_1.validateStyles)(params.styles, params.message.length);
messageContent.styles = buildStyles(params.styles);
logger.info(`Added ${messageContent.styles.length} styles`);
}
if (params.attachments && params.attachments.length > 0) {
messageContent.attachments = params.attachments;
logger.info(`Added ${params.attachments.length} attachments`);
}
return messageContent;
}
//# sourceMappingURL=messageBuilder.js.map