UNPKG

n8n-nodes-discord-dnd

Version:
60 lines 3.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DiscordTrigger = void 0; const client_1 = require("./client"); const DiscordTriggerDescription_1 = require("../definitions/node-description/DiscordTriggerDescription"); const DiscordEventMethods_1 = require("../definitions/node-methods/DiscordEventMethods"); const DiscordIntentMapping_1 = require("../definitions/DiscordIntentMapping"); const TriggerEventHandler_1 = require("../handlers/trigger/TriggerEventHandler"); class DiscordTrigger { constructor() { this.description = DiscordTriggerDescription_1.DiscordTriggerDescription; this.methods = DiscordEventMethods_1.DiscordTriggerMethods; } async trigger() { const credentials = (await this.getCredentials("discordApiDnd")); const parameters = { triggerType: this.getNodeParameter("triggerType", "message"), event: this.getNodeParameter("event", "messageCreate"), includeBot: this.getNodeParameter("includeBot", false), directMessage: this.getNodeParameter("directMessage", false), }; // Get pattern and value parameters for message triggers if (parameters.triggerType === "message") { parameters.pattern = this.getNodeParameter("pattern", "botMention"); if (["contains", "startsWith", "endsWith", "equals", "regex"].includes(parameters.pattern)) { parameters.value = this.getNodeParameter("value", ""); } } // Get additional fields for filtering const additionalFields = this.getNodeParameter("additionalFields", {}); if (additionalFields.serverIds) { parameters.serverIds = additionalFields.serverIds.split(',').map(id => id.trim()); } if (additionalFields.channelIds) { parameters.channelIds = additionalFields.channelIds.split(',').map(id => id.trim()); } if (additionalFields.roleIds) { parameters.roleIds = additionalFields.roleIds.split(',').map(id => id.trim()); } if (additionalFields.userIds) { parameters.userIds = additionalFields.userIds.split(',').map(id => id.trim()); } const clientOptions = (0, DiscordIntentMapping_1.getclientOptions)(parameters.triggerType); const client = await (0, client_1.initializeDiscordClient)(credentials.botToken, clientOptions); const eventHandler = new TriggerEventHandler_1.TriggerEventHandler(client, this); await eventHandler.setupEventHandler(parameters.event, parameters.includeBot, parameters.directMessage, parameters.pattern, parameters.value, parameters.serverIds, parameters.channelIds, parameters.roleIds, parameters.userIds); const closeFunction = async () => { console.log("Disconnecting from Discord..."); client.destroy(); }; return { manualTriggerFunction: async () => { return; }, closeFunction, }; } } exports.DiscordTrigger = DiscordTrigger; //# sourceMappingURL=DiscordTrigger.node.js.map