n8n-nodes-discord-dnd 0.1.28 → 0.1.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -33,238 +33,110 @@ class DiscordTrigger {
|
|
33
33
|
return servers;
|
34
34
|
},
|
35
35
|
async getEvents() {
|
36
|
-
const
|
36
|
+
const resource = this.getCurrentNodeParameter('resource');
|
37
37
|
const eventOptions = {
|
38
|
-
message: [
|
39
|
-
{ name: "Message Create", value: "messageCreate" },
|
40
|
-
{ name: "Message Delete", value: "messageDelete" },
|
41
|
-
{ name: "Message Delete Bulk", value: "messageDeleteBulk" },
|
42
|
-
{ name: "Message Update", value: "messageUpdate" },
|
43
|
-
{ name: "Message Reaction Add", value: "messageReactionAdd" },
|
44
|
-
{ name: "Message Reaction Remove", value: "messageReactionRemove" },
|
45
|
-
{
|
46
|
-
name: "Message Reaction Remove All",
|
47
|
-
value: "messageReactionRemoveAll",
|
48
|
-
},
|
49
|
-
{
|
50
|
-
name: "Message Reaction Remove Emoji",
|
51
|
-
value: "messageReactionRemoveEmoji",
|
52
|
-
},
|
53
|
-
{ name: "Typing Start", value: "typingStart" },
|
54
|
-
],
|
55
38
|
guild: [
|
56
|
-
{ name:
|
57
|
-
{ name:
|
58
|
-
{ name:
|
59
|
-
{ name: "Channel Update", value: "channelUpdate" },
|
60
|
-
{ name: "Guild Available", value: "guildAvailable" },
|
61
|
-
{ name: "Guild Create", value: "guildCreate" },
|
62
|
-
{ name: "Guild Delete", value: "guildDelete" },
|
63
|
-
{ name: "Guild Unavailable", value: "guildUnavailable" },
|
64
|
-
{ name: "Guild Update", value: "guildUpdate" },
|
65
|
-
{ name: "Role Create", value: "roleCreate" },
|
66
|
-
{ name: "Role Delete", value: "roleDelete" },
|
67
|
-
{ name: "Role Update", value: "roleUpdate" },
|
68
|
-
{ name: "Stage Instance Create", value: "stageInstanceCreate" },
|
69
|
-
{ name: "Stage Instance Delete", value: "stageInstanceDelete" },
|
70
|
-
{ name: "Stage Instance Update", value: "stageInstanceUpdate" },
|
71
|
-
{ name: "Thread Create", value: "threadCreate" },
|
72
|
-
{ name: "Thread Delete", value: "threadDelete" },
|
73
|
-
{ name: "Thread List Sync", value: "threadListSync" },
|
74
|
-
{ name: "Thread Members Update", value: "threadMembersUpdate" },
|
75
|
-
{ name: "Thread Member Update", value: "threadMemberUpdate" },
|
76
|
-
{ name: "Thread Update", value: "threadUpdate" },
|
77
|
-
],
|
78
|
-
moderation: [
|
79
|
-
{ name: "Guild Ban Add", value: "guildBanAdd" },
|
80
|
-
{ name: "Guild Ban Remove", value: "guildBanRemove" },
|
81
|
-
{
|
82
|
-
name: "Guild Audit Log Entry Create",
|
83
|
-
value: "guildAuditLogEntryCreate",
|
84
|
-
},
|
85
|
-
],
|
86
|
-
emojiSticker: [
|
87
|
-
{ name: "Emoji Create", value: "emojiCreate" },
|
88
|
-
{ name: "Emoji Delete", value: "emojiDelete" },
|
89
|
-
{ name: "Emoji Update", value: "emojiUpdate" },
|
90
|
-
{ name: "Sticker Create", value: "stickerCreate" },
|
91
|
-
{ name: "Sticker Delete", value: "stickerDelete" },
|
92
|
-
{ name: "Sticker Update", value: "stickerUpdate" },
|
93
|
-
],
|
94
|
-
integrationWebhook: [
|
95
|
-
{
|
96
|
-
name: "Guild Integrations Update",
|
97
|
-
value: "guildIntegrationsUpdate",
|
98
|
-
},
|
99
|
-
{ name: "Webhook Update", value: "webhookUpdate" },
|
100
|
-
],
|
101
|
-
invite: [
|
102
|
-
{ name: "Invite Create", value: "inviteCreate" },
|
103
|
-
{ name: "Invite Delete", value: "inviteDelete" },
|
104
|
-
],
|
105
|
-
voice: [
|
106
|
-
{
|
107
|
-
name: "Voice Channel Effect Send",
|
108
|
-
value: "voiceChannelEffectSend",
|
109
|
-
},
|
110
|
-
{ name: "Voice State Update", value: "voiceStateUpdate" },
|
111
|
-
],
|
112
|
-
presence: [{ name: "Presence Update", value: "presenceUpdate" }],
|
113
|
-
scheduledEvent: [
|
114
|
-
{
|
115
|
-
name: "Guild Scheduled Event Create",
|
116
|
-
value: "guildScheduledEventCreate",
|
117
|
-
},
|
118
|
-
{
|
119
|
-
name: "Guild Scheduled Event Delete",
|
120
|
-
value: "guildScheduledEventDelete",
|
121
|
-
},
|
122
|
-
{
|
123
|
-
name: "Guild Scheduled Event Update",
|
124
|
-
value: "guildScheduledEventUpdate",
|
125
|
-
},
|
126
|
-
{
|
127
|
-
name: "Guild Scheduled Event User Add",
|
128
|
-
value: "guildScheduledEventUserAdd",
|
129
|
-
},
|
130
|
-
{
|
131
|
-
name: "Guild Scheduled Event User Remove",
|
132
|
-
value: "guildScheduledEventUserRemove",
|
133
|
-
},
|
39
|
+
{ name: 'Channel Create', value: 'channelCreate' },
|
40
|
+
{ name: 'Channel Delete', value: 'channelDelete' },
|
41
|
+
{ name: 'Channel Update', value: 'channelUpdate' },
|
134
42
|
],
|
135
|
-
|
136
|
-
{ name:
|
137
|
-
{
|
138
|
-
|
139
|
-
value: "applicationCommandPermissionsUpdate",
|
140
|
-
},
|
141
|
-
],
|
142
|
-
botStatus: [
|
143
|
-
{ name: "Debug", value: "debug" },
|
144
|
-
{ name: "Error", value: "error" },
|
145
|
-
{ name: "Warn", value: "warn" },
|
146
|
-
{ name: "Ready", value: "ready" },
|
147
|
-
{ name: "Shard Disconnect", value: "shardDisconnect" },
|
148
|
-
{ name: "Shard Error", value: "shardError" },
|
149
|
-
{ name: "Shard Ready", value: "shardReady" },
|
150
|
-
{ name: "Shard Reconnecting", value: "shardReconnecting" },
|
151
|
-
{ name: "Shard Resume", value: "shardResume" },
|
152
|
-
],
|
153
|
-
user: [
|
154
|
-
{ name: "User Update", value: "userUpdate" },
|
155
|
-
{ name: "Guild Member Add", value: "guildMemberAdd" },
|
156
|
-
{ name: "Guild Member Available", value: "guildMemberAvailable" },
|
157
|
-
{ name: "Guild Member Remove", value: "guildMemberRemove" },
|
158
|
-
{ name: "Guild Member Update", value: "guildMemberUpdate" },
|
159
|
-
{ name: "Guild Members Chunk", value: "guildMembersChunk" },
|
160
|
-
],
|
161
|
-
autoModeration: [
|
162
|
-
{
|
163
|
-
name: "Auto Moderation Action Execution",
|
164
|
-
value: "autoModerationActionExecution",
|
165
|
-
},
|
166
|
-
{
|
167
|
-
name: "Auto Moderation Rule Create",
|
168
|
-
value: "autoModerationRuleCreate",
|
169
|
-
},
|
170
|
-
{
|
171
|
-
name: "Auto Moderation Rule Delete",
|
172
|
-
value: "autoModerationRuleDelete",
|
173
|
-
},
|
174
|
-
{
|
175
|
-
name: "Auto Moderation Rule Update",
|
176
|
-
value: "autoModerationRuleUpdate",
|
177
|
-
},
|
43
|
+
message: [
|
44
|
+
{ name: 'Message Create', value: 'messageCreate' },
|
45
|
+
{ name: 'Message Delete', value: 'messageDelete' },
|
46
|
+
{ name: 'Message Update', value: 'messageUpdate' },
|
178
47
|
],
|
179
|
-
|
180
|
-
{ name:
|
181
|
-
{
|
182
|
-
name: "Message Poll Vote Remove",
|
183
|
-
value: "messagePollVoteRemove",
|
184
|
-
},
|
48
|
+
moderation: [
|
49
|
+
{ name: 'Member Ban', value: 'guildBanAdd' },
|
50
|
+
{ name: 'Member Unban', value: 'guildBanRemove' },
|
185
51
|
],
|
52
|
+
// Add more resource-specific events as needed
|
186
53
|
};
|
187
|
-
return eventOptions[
|
54
|
+
return eventOptions[resource] || [];
|
188
55
|
},
|
189
56
|
},
|
190
57
|
};
|
191
58
|
}
|
192
59
|
async trigger() {
|
193
|
-
const credentials = await this.getCredentials(
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
const serverFilterMethod = this.getNodeParameter('serverFilterMethod', 'fromList');
|
204
|
-
if (serverFilterMethod === 'fromList') {
|
205
|
-
serverIds = this.getNodeParameter('serverIds', []);
|
206
|
-
}
|
207
|
-
else if (serverFilterMethod === 'byId') {
|
208
|
-
const serverId = this.getNodeParameter('serverId', '');
|
209
|
-
if (serverId) {
|
210
|
-
serverIds = [serverId];
|
211
|
-
}
|
212
|
-
}
|
213
|
-
else if (serverFilterMethod === 'byUrl') {
|
214
|
-
const serverUrl = this.getNodeParameter('serverUrl', '');
|
215
|
-
if (serverUrl) {
|
216
|
-
// Extract server ID from URL
|
217
|
-
const matches = serverUrl.match(/channels\/(\d+)/);
|
218
|
-
if (matches && matches[1]) {
|
219
|
-
serverIds = [matches[1]];
|
220
|
-
}
|
221
|
-
}
|
222
|
-
}
|
223
|
-
}
|
224
|
-
// Initialize trigger parameters
|
225
|
-
const triggerParameters = {
|
226
|
-
triggerType: type,
|
227
|
-
includeBotMessages: true,
|
228
|
-
filterByServers,
|
229
|
-
serverIds,
|
230
|
-
filterByChannels: false,
|
60
|
+
const credentials = (await this.getCredentials("discordApi"));
|
61
|
+
// Extract parameters from node configuration
|
62
|
+
const parameters = {
|
63
|
+
// Get core parameters
|
64
|
+
triggerType: this.getNodeParameter("triggerType", "messageContent"),
|
65
|
+
includeBotMessages: this.getNodeParameter("includeBotMessages", false),
|
66
|
+
// Get filter parameters
|
67
|
+
filterByServers: this.getNodeParameter("filterByServers", false),
|
68
|
+
serverIds: [],
|
69
|
+
filterByChannels: this.getNodeParameter("filterByChannels", false),
|
231
70
|
channelIds: [],
|
232
|
-
filterByRoles: false,
|
71
|
+
filterByRoles: this.getNodeParameter("filterByRoles", false),
|
233
72
|
roleIds: [],
|
234
73
|
};
|
235
|
-
//
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
74
|
+
// Process server filter parameters
|
75
|
+
if (parameters.filterByServers) {
|
76
|
+
parameters.serverFilterMethod = this.getNodeParameter("serverFilterMethod", "fromList");
|
77
|
+
switch (parameters.serverFilterMethod) {
|
78
|
+
case "fromList":
|
79
|
+
parameters.serverIds = this.getNodeParameter("serverIds", []);
|
80
|
+
break;
|
81
|
+
case "byUrl":
|
82
|
+
const url = this.getNodeParameter("serverUrl", "");
|
83
|
+
const serverIdFromUrl = url.split("/").pop();
|
84
|
+
if (serverIdFromUrl) {
|
85
|
+
parameters.serverIds = [serverIdFromUrl];
|
86
|
+
}
|
87
|
+
break;
|
88
|
+
case "byId":
|
89
|
+
const serverId = this.getNodeParameter("serverId", "");
|
90
|
+
if (serverId) {
|
91
|
+
parameters.serverIds = [serverId];
|
92
|
+
}
|
93
|
+
break;
|
94
|
+
}
|
251
95
|
}
|
252
|
-
|
253
|
-
|
254
|
-
|
96
|
+
if (parameters.filterByChannels) {
|
97
|
+
parameters.channelIds = this.getNodeParameter("channelIds", "")
|
98
|
+
.split(",")
|
99
|
+
.map((id) => id.trim());
|
255
100
|
}
|
256
|
-
|
257
|
-
|
258
|
-
|
101
|
+
if (parameters.filterByRoles) {
|
102
|
+
parameters.roleIds = this.getNodeParameter("roleIds", "")
|
103
|
+
.split(",")
|
104
|
+
.map((id) => id.trim());
|
105
|
+
}
|
106
|
+
// Get trigger-specific parameters
|
107
|
+
if (parameters.triggerType === "messageContent") {
|
108
|
+
parameters.matchPattern = this.getNodeParameter("matchPattern", "");
|
109
|
+
if (["contains", "endsWith", "equals", "startsWith"].includes(parameters.matchPattern)) {
|
110
|
+
parameters.matchValue = this.getNodeParameter("matchValue", "");
|
111
|
+
parameters.caseSensitive = this.getNodeParameter("caseSensitive", false);
|
112
|
+
}
|
113
|
+
else if (parameters.matchPattern === "regex") {
|
114
|
+
parameters.regexPattern = this.getNodeParameter("regexPattern", "");
|
115
|
+
}
|
116
|
+
}
|
117
|
+
else if (parameters.triggerType === "botInteraction") {
|
118
|
+
parameters.interactionType = this.getNodeParameter("interactionType", "botMentioned");
|
119
|
+
}
|
120
|
+
// Initialize Discord client and set up event handlers
|
121
|
+
const client = await (0, client_1.initializeDiscordClient)(credentials.botToken);
|
122
|
+
// Set up response data with manual trigger function
|
123
|
+
const responseData = {
|
124
|
+
manualTriggerFunction: async () => {
|
125
|
+
// This function will be executed when the workflow is manually triggered
|
126
|
+
// Don't need to do anything here as we only want the workflow to be triggered by Discord events
|
127
|
+
return;
|
128
|
+
},
|
129
|
+
};
|
130
|
+
// Set up message event handler
|
131
|
+
(0, event_handlers_1.setupMessageEventHandler)(client, this, parameters);
|
132
|
+
// Function to clean up when node is deactivated
|
133
|
+
const closeFunction = async () => {
|
134
|
+
console.log("Disconnecting from Discord...");
|
135
|
+
client.destroy();
|
259
136
|
};
|
260
137
|
return {
|
261
|
-
|
262
|
-
closeFunction
|
263
|
-
// Clean up when workflow is deactivated
|
264
|
-
if (client) {
|
265
|
-
client.destroy();
|
266
|
-
}
|
267
|
-
},
|
138
|
+
...responseData,
|
139
|
+
closeFunction,
|
268
140
|
};
|
269
141
|
}
|
270
142
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../nodes/src/discord-trigger/index.ts"],"names":[],"mappings":";;;AAQA,qCAAmD;AACnD,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../nodes/src/discord-trigger/index.ts"],"names":[],"mappings":"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"}
|