n8n-nodes-wechat-pad-pro
Version:
n8n node for WeChatPadPro, allowing you to automate WeChat messaging and interactions within your n8n workflows. Support WeChatPadPro0859
74 lines • 2.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TextMessageTrigger = void 0;
class TextMessageTrigger {
constructor() {
this.description = {
displayName: 'WeChatPadPro Text Message Trigger',
name: 'weChatPadProTextMessageTrigger',
icon: 'file:wechatPadPro.svg',
group: ['trigger'],
version: 1,
description: 'Triggers when a text message is received from WeChatPadPro',
defaults: {
name: 'WeChatPadPro Text Message Trigger',
},
inputs: [],
outputs: ["main"],
credentials: [
{
name: 'weChatPadProApi',
required: true,
},
],
properties: [],
};
}
async trigger() {
const credentials = await this.getCredentials('weChatPadProApi');
if (credentials === undefined) {
throw new Error('No credentials got returned!');
}
const { baseUrl, authKey } = credentials;
const webSocketUrl = `ws://${baseUrl}/ws/GetSyncMsg?key=${authKey}`;
const socket = new WebSocket(webSocketUrl);
const manualTriggerFunction = async () => {
return new Promise((resolve) => {
socket.onopen = () => {
this.logger.debug('WebSocket connected');
};
socket.onmessage = (event) => {
try {
const data = JSON.parse(event.data);
if (data.msg_type === 1) {
this.emit([this.helpers.returnJsonArray([data])]);
}
}
catch (error) {
this.logger.error('Error processing message', error);
}
};
socket.onclose = () => {
this.logger.debug('WebSocket disconnected');
resolve(true);
};
socket.onerror = (error) => {
this.logger.error('WebSocket error', error);
resolve(false);
};
});
};
if (this.getMode() === 'trigger') {
await manualTriggerFunction();
}
const closeFunction = async () => {
socket.close();
};
return {
closeFunction,
manualTriggerFunction,
};
}
}
exports.TextMessageTrigger = TextMessageTrigger;
//# sourceMappingURL=TextMessageTrigger.node.js.map