n8n-nodes-discord-dnd 0.1.31 → 0.1.33
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.
- package/dist/credentials/DiscordApi.credentials.js.map +1 -1
- package/dist/nodes/DiscordTrigger.node.js +453 -0
- package/dist/nodes/DiscordTrigger.node.js.map +1 -0
- package/dist/nodes/{src/discord-trigger/client.d.ts → client.d.ts} +4 -7
- package/dist/nodes/client.js +40 -0
- package/dist/nodes/client.js.map +1 -0
- package/dist/nodes/{src/discord-trigger/node-description.js → node-description.js} +5 -5
- package/dist/nodes/node-description.js.map +1 -0
- package/dist/nodes/types.d.ts +4 -0
- package/dist/nodes/types.js.map +1 -0
- package/package.json +1 -1
- package/dist/nodes/DiscordTrigger/DiscordTrigger.node.d.ts +0 -2
- package/dist/nodes/DiscordTrigger/DiscordTrigger.node.js +0 -6
- package/dist/nodes/DiscordTrigger/DiscordTrigger.node.js.map +0 -1
- package/dist/nodes/src/discord-trigger/client.js +0 -70
- package/dist/nodes/src/discord-trigger/client.js.map +0 -1
- package/dist/nodes/src/discord-trigger/event-handlers.d.ts +0 -25
- package/dist/nodes/src/discord-trigger/event-handlers.js +0 -142
- package/dist/nodes/src/discord-trigger/event-handlers.js.map +0 -1
- package/dist/nodes/src/discord-trigger/filters.d.ts +0 -23
- package/dist/nodes/src/discord-trigger/filters.js +0 -62
- package/dist/nodes/src/discord-trigger/filters.js.map +0 -1
- package/dist/nodes/src/discord-trigger/index.js +0 -144
- package/dist/nodes/src/discord-trigger/index.js.map +0 -1
- package/dist/nodes/src/discord-trigger/node-description.js.map +0 -1
- package/dist/nodes/src/discord-trigger/trigger-logic.d.ts +0 -10
- package/dist/nodes/src/discord-trigger/trigger-logic.js +0 -85
- package/dist/nodes/src/discord-trigger/trigger-logic.js.map +0 -1
- package/dist/nodes/src/discord-trigger/types.d.ts +0 -85
- package/dist/nodes/src/discord-trigger/types.js.map +0 -1
- package/dist/nodes/src/discord-trigger/utils.d.ts +0 -6
- package/dist/nodes/src/discord-trigger/utils.js +0 -28
- package/dist/nodes/src/discord-trigger/utils.js.map +0 -1
- /package/dist/nodes/{src/discord-trigger/index.d.ts → DiscordTrigger.node.d.ts} +0 -0
- /package/dist/nodes/{src/discord-trigger/node-description.d.ts → node-description.d.ts} +0 -0
- /package/dist/nodes/{src/discord-trigger/types.js → types.js} +0 -0
@@ -1,70 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.initializeDiscordClient = exports.setupClientEvents = exports.createDiscordClient = void 0;
|
4
|
-
const discord_js_1 = require("discord.js");
|
5
|
-
/**
|
6
|
-
* Creates and initializes a Discord client with the required intents
|
7
|
-
* @returns Configured Discord client
|
8
|
-
*/
|
9
|
-
const createDiscordClient = () => {
|
10
|
-
// Initialize Discord client with necessary intents
|
11
|
-
const client = new discord_js_1.Client({
|
12
|
-
intents: [
|
13
|
-
discord_js_1.GatewayIntentBits.Guilds,
|
14
|
-
discord_js_1.GatewayIntentBits.GuildMembers,
|
15
|
-
discord_js_1.GatewayIntentBits.GuildModeration,
|
16
|
-
discord_js_1.GatewayIntentBits.GuildExpressions,
|
17
|
-
discord_js_1.GatewayIntentBits.GuildIntegrations,
|
18
|
-
discord_js_1.GatewayIntentBits.GuildWebhooks,
|
19
|
-
discord_js_1.GatewayIntentBits.GuildInvites,
|
20
|
-
discord_js_1.GatewayIntentBits.GuildVoiceStates,
|
21
|
-
discord_js_1.GatewayIntentBits.GuildPresences,
|
22
|
-
discord_js_1.GatewayIntentBits.GuildMessages,
|
23
|
-
discord_js_1.GatewayIntentBits.GuildMessageReactions,
|
24
|
-
discord_js_1.GatewayIntentBits.GuildMessageTyping,
|
25
|
-
discord_js_1.GatewayIntentBits.DirectMessages,
|
26
|
-
discord_js_1.GatewayIntentBits.DirectMessageReactions,
|
27
|
-
discord_js_1.GatewayIntentBits.DirectMessageTyping,
|
28
|
-
discord_js_1.GatewayIntentBits.MessageContent,
|
29
|
-
discord_js_1.GatewayIntentBits.GuildScheduledEvents,
|
30
|
-
discord_js_1.GatewayIntentBits.AutoModerationConfiguration,
|
31
|
-
discord_js_1.GatewayIntentBits.AutoModerationExecution,
|
32
|
-
discord_js_1.GatewayIntentBits.GuildMessagePolls,
|
33
|
-
discord_js_1.GatewayIntentBits.DirectMessagePolls,
|
34
|
-
],
|
35
|
-
});
|
36
|
-
return client;
|
37
|
-
};
|
38
|
-
exports.createDiscordClient = createDiscordClient;
|
39
|
-
/**
|
40
|
-
* Sets up the Discord client event listeners and status
|
41
|
-
* @param client Discord client instance
|
42
|
-
*/
|
43
|
-
const setupClientEvents = (client) => {
|
44
|
-
// Set an activity status for the bot when ready
|
45
|
-
client.once("ready", () => {
|
46
|
-
var _a, _b;
|
47
|
-
console.log(`Discord bot logged in as ${(_a = client.user) === null || _a === void 0 ? void 0 : _a.tag}`);
|
48
|
-
(_b = client.user) === null || _b === void 0 ? void 0 : _b.setActivity("with n8n workflows", {
|
49
|
-
type: discord_js_1.ActivityType.Playing,
|
50
|
-
});
|
51
|
-
});
|
52
|
-
};
|
53
|
-
exports.setupClientEvents = setupClientEvents;
|
54
|
-
/**
|
55
|
-
* Initializes the Discord client, sets up events, and logs in
|
56
|
-
* @param token Bot token for authentication
|
57
|
-
* @returns Discord client instance
|
58
|
-
*/
|
59
|
-
const initializeDiscordClient = async (token) => {
|
60
|
-
if (!token) {
|
61
|
-
throw new Error("No bot token provided in credentials!");
|
62
|
-
}
|
63
|
-
const client = (0, exports.createDiscordClient)();
|
64
|
-
(0, exports.setupClientEvents)(client);
|
65
|
-
// Login to Discord
|
66
|
-
await client.login(token);
|
67
|
-
return client;
|
68
|
-
};
|
69
|
-
exports.initializeDiscordClient = initializeDiscordClient;
|
70
|
-
//# sourceMappingURL=client.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../nodes/src/discord-trigger/client.ts"],"names":[],"mappings":";;;AAAA,2CAAqE;AAErE;;;GAGG;AACI,MAAM,mBAAmB,GAAG,GAAW,EAAE;IAC9C,mDAAmD;IACnD,MAAM,MAAM,GAAG,IAAI,mBAAM,CAAC;QACxB,OAAO,EAAE;YACP,8BAAiB,CAAC,MAAM;YACxB,8BAAiB,CAAC,YAAY;YAC9B,8BAAiB,CAAC,eAAe;YACjC,8BAAiB,CAAC,gBAAgB;YAClC,8BAAiB,CAAC,iBAAiB;YACnC,8BAAiB,CAAC,aAAa;YAC/B,8BAAiB,CAAC,YAAY;YAC9B,8BAAiB,CAAC,gBAAgB;YAClC,8BAAiB,CAAC,cAAc;YAChC,8BAAiB,CAAC,aAAa;YAC/B,8BAAiB,CAAC,qBAAqB;YACvC,8BAAiB,CAAC,kBAAkB;YACpC,8BAAiB,CAAC,cAAc;YAChC,8BAAiB,CAAC,sBAAsB;YACxC,8BAAiB,CAAC,mBAAmB;YACrC,8BAAiB,CAAC,cAAc;YAChC,8BAAiB,CAAC,oBAAoB;YACtC,8BAAiB,CAAC,2BAA2B;YAC7C,8BAAiB,CAAC,uBAAuB;YACzC,8BAAiB,CAAC,iBAAiB;YACnC,8BAAiB,CAAC,kBAAkB;SACrC;KACF,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AA7BW,QAAA,mBAAmB,uBA6B9B;AAEF;;;GAGG;AACI,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAQ,EAAE;IACxD,gDAAgD;IAChD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;;QACxB,OAAO,CAAC,GAAG,CAAC,4BAA4B,MAAA,MAAM,CAAC,IAAI,0CAAE,GAAG,EAAE,CAAC,CAAC;QAC5D,MAAA,MAAM,CAAC,IAAI,0CAAE,WAAW,CAAC,oBAAoB,EAAE;YAC7C,IAAI,EAAE,yBAAY,CAAC,OAAO;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AARW,QAAA,iBAAiB,qBAQ5B;AAEF;;;;GAIG;AACI,MAAM,uBAAuB,GAAG,KAAK,EAC1C,KAAa,EACI,EAAE;IACnB,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;KAC1D;IAED,MAAM,MAAM,GAAG,IAAA,2BAAmB,GAAE,CAAC;IACrC,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAC;IAE1B,mBAAmB;IACnB,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE1B,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAdW,QAAA,uBAAuB,2BAclC"}
|
@@ -1,25 +0,0 @@
|
|
1
|
-
import { Client, Message, PartialMessage } from 'discord.js';
|
2
|
-
import { ITriggerFunctions } from 'n8n-workflow';
|
3
|
-
import { IMessageData, ITriggerOptions } from './types';
|
4
|
-
/**
|
5
|
-
* Creates a message data object for emitting to n8n workflow
|
6
|
-
* @param message Discord message that triggered the workflow
|
7
|
-
* @param triggerType Type of trigger (messageContent or botInteraction)
|
8
|
-
* @param matchPattern The pattern that was matched
|
9
|
-
* @returns Formatted message data for n8n workflow
|
10
|
-
*/
|
11
|
-
export declare const createMessageData: (message: Message | PartialMessage, triggerType: string, matchPattern: string) => IMessageData;
|
12
|
-
/**
|
13
|
-
* Sets up event handlers for the Discord client
|
14
|
-
* @param client Discord client
|
15
|
-
* @param triggerFunctions n8n trigger functions
|
16
|
-
* @param options Trigger configuration options
|
17
|
-
*/
|
18
|
-
export declare const setupMessageEventHandler: (client: Client, triggerFunctions: ITriggerFunctions, options: ITriggerOptions) => void;
|
19
|
-
/**
|
20
|
-
* Sets up a handler for the selected Discord event
|
21
|
-
* @param client Discord client
|
22
|
-
* @param triggerFunctions n8n trigger functions
|
23
|
-
* @param eventName Discord event name (e.g., 'messageCreate')
|
24
|
-
*/
|
25
|
-
export declare const setupSelectedEventHandler: (client: Client, triggerFunctions: ITriggerFunctions, eventName: string) => void;
|
@@ -1,142 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.setupSelectedEventHandler = exports.setupMessageEventHandler = exports.createMessageData = void 0;
|
4
|
-
const discord_js_1 = require("discord.js");
|
5
|
-
const trigger_logic_1 = require("./trigger-logic");
|
6
|
-
const utils_1 = require("./utils");
|
7
|
-
/**
|
8
|
-
* Creates a message data object for emitting to n8n workflow
|
9
|
-
* @param message Discord message that triggered the workflow
|
10
|
-
* @param triggerType Type of trigger (messageContent or botInteraction)
|
11
|
-
* @param matchPattern The pattern that was matched
|
12
|
-
* @returns Formatted message data for n8n workflow
|
13
|
-
*/
|
14
|
-
const createMessageData = (message, triggerType, matchPattern) => {
|
15
|
-
var _a, _b, _c, _d, _e;
|
16
|
-
return {
|
17
|
-
messageId: message.id,
|
18
|
-
content: message.content,
|
19
|
-
authorId: (_a = message.author) === null || _a === void 0 ? void 0 : _a.id,
|
20
|
-
authorUsername: (_b = message.author) === null || _b === void 0 ? void 0 : _b.username,
|
21
|
-
channelId: message.channelId,
|
22
|
-
channelName: (0, utils_1.getChannelName)(message.channel),
|
23
|
-
channelType: (_c = message.channel) === null || _c === void 0 ? void 0 : _c.type,
|
24
|
-
guildId: message.guildId,
|
25
|
-
guildName: (_d = message.guild) === null || _d === void 0 ? void 0 : _d.name,
|
26
|
-
isBot: ((_e = message.author) === null || _e === void 0 ? void 0 : _e.bot) || false,
|
27
|
-
createdTimestamp: message.createdTimestamp,
|
28
|
-
attachments: [...message.attachments.values()],
|
29
|
-
embeds: message.embeds,
|
30
|
-
mentions: {
|
31
|
-
users: [...message.mentions.users.values()].map(user => ({
|
32
|
-
id: user.id,
|
33
|
-
username: user.username,
|
34
|
-
})),
|
35
|
-
roles: [...message.mentions.roles.values()].map(role => ({
|
36
|
-
id: role.id,
|
37
|
-
name: role.name,
|
38
|
-
})),
|
39
|
-
channels: [...message.mentions.channels.values()].map(channel => ({
|
40
|
-
id: channel.id,
|
41
|
-
name: (0, utils_1.getChannelName)(channel),
|
42
|
-
})),
|
43
|
-
},
|
44
|
-
// For replies, include the reference
|
45
|
-
reference: message.reference ? {
|
46
|
-
messageId: message.reference.messageId,
|
47
|
-
channelId: message.reference.channelId,
|
48
|
-
guildId: message.reference.guildId,
|
49
|
-
} : null,
|
50
|
-
triggerType: triggerType,
|
51
|
-
matchPattern: matchPattern,
|
52
|
-
rawData: message,
|
53
|
-
};
|
54
|
-
};
|
55
|
-
exports.createMessageData = createMessageData;
|
56
|
-
/**
|
57
|
-
* Sets up event handlers for the Discord client
|
58
|
-
* @param client Discord client
|
59
|
-
* @param triggerFunctions n8n trigger functions
|
60
|
-
* @param options Trigger configuration options
|
61
|
-
*/
|
62
|
-
const setupMessageEventHandler = (client, triggerFunctions, options) => {
|
63
|
-
client.on(discord_js_1.Events.MessageCreate, async (message) => {
|
64
|
-
try {
|
65
|
-
if ((0, trigger_logic_1.shouldTrigger)(message, client, options)) {
|
66
|
-
// Determine the match pattern to include in the data
|
67
|
-
let matchPattern = '';
|
68
|
-
if (options.triggerType === 'messageContent') {
|
69
|
-
matchPattern = options.matchPattern || '';
|
70
|
-
}
|
71
|
-
else if (options.triggerType === 'botInteraction') {
|
72
|
-
matchPattern = options.interactionType || '';
|
73
|
-
}
|
74
|
-
// Create message data and emit to n8n workflow
|
75
|
-
const messageData = (0, exports.createMessageData)(message, options.triggerType, matchPattern);
|
76
|
-
// Convert messageData to a plain object that satisfies IDataObject
|
77
|
-
const dataObject = {
|
78
|
-
...messageData,
|
79
|
-
// Convert the rawData to prevent circular references
|
80
|
-
rawData: undefined,
|
81
|
-
};
|
82
|
-
await triggerFunctions.emit([triggerFunctions.helpers.returnJsonArray([dataObject])]);
|
83
|
-
}
|
84
|
-
}
|
85
|
-
catch (error) {
|
86
|
-
console.error('Error handling Discord message:', error);
|
87
|
-
}
|
88
|
-
});
|
89
|
-
};
|
90
|
-
exports.setupMessageEventHandler = setupMessageEventHandler;
|
91
|
-
/**
|
92
|
-
* Sets up a handler for the selected Discord event
|
93
|
-
* @param client Discord client
|
94
|
-
* @param triggerFunctions n8n trigger functions
|
95
|
-
* @param eventName Discord event name (e.g., 'messageCreate')
|
96
|
-
*/
|
97
|
-
const setupSelectedEventHandler = (client, triggerFunctions, eventName) => {
|
98
|
-
client.on(eventName, async (...args) => {
|
99
|
-
var _a, _b, _c, _d, _e, _f;
|
100
|
-
try {
|
101
|
-
// For message events, try to format as message data
|
102
|
-
if (eventName.startsWith('message') && args[0]) {
|
103
|
-
const message = args[0];
|
104
|
-
const messageData = {
|
105
|
-
messageId: message.id,
|
106
|
-
content: message.content,
|
107
|
-
authorId: (_a = message.author) === null || _a === void 0 ? void 0 : _a.id,
|
108
|
-
authorUsername: (_b = message.author) === null || _b === void 0 ? void 0 : _b.username,
|
109
|
-
channelId: message.channelId,
|
110
|
-
channelName: (_c = message.channel) === null || _c === void 0 ? void 0 : _c.name,
|
111
|
-
channelType: (_d = message.channel) === null || _d === void 0 ? void 0 : _d.type,
|
112
|
-
guildId: message.guildId,
|
113
|
-
guildName: (_e = message.guild) === null || _e === void 0 ? void 0 : _e.name,
|
114
|
-
isBot: ((_f = message.author) === null || _f === void 0 ? void 0 : _f.bot) || false,
|
115
|
-
createdTimestamp: message.createdTimestamp,
|
116
|
-
attachments: message.attachments ? [...message.attachments.values()] : [],
|
117
|
-
embeds: message.embeds || [],
|
118
|
-
mentions: message.mentions || {},
|
119
|
-
reference: message.reference || null,
|
120
|
-
event: eventName,
|
121
|
-
rawData: undefined,
|
122
|
-
};
|
123
|
-
await triggerFunctions.emit([
|
124
|
-
triggerFunctions.helpers.returnJsonArray([messageData])
|
125
|
-
]);
|
126
|
-
}
|
127
|
-
else {
|
128
|
-
// For other events, just emit the raw event args
|
129
|
-
await triggerFunctions.emit([
|
130
|
-
triggerFunctions.helpers.returnJsonArray([
|
131
|
-
{ event: eventName, args }
|
132
|
-
])
|
133
|
-
]);
|
134
|
-
}
|
135
|
-
}
|
136
|
-
catch (error) {
|
137
|
-
console.error('Error handling Discord event:', eventName, error);
|
138
|
-
}
|
139
|
-
});
|
140
|
-
};
|
141
|
-
exports.setupSelectedEventHandler = setupSelectedEventHandler;
|
142
|
-
//# sourceMappingURL=event-handlers.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"event-handlers.js","sourceRoot":"","sources":["../../../../nodes/src/discord-trigger/event-handlers.ts"],"names":[],"mappings":"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"}
|
@@ -1,23 +0,0 @@
|
|
1
|
-
import { Message, PartialMessage } from 'discord.js';
|
2
|
-
import { IFilterOptions } from './types';
|
3
|
-
/**
|
4
|
-
* Check if the message should be filtered based on server
|
5
|
-
* @param message Discord message
|
6
|
-
* @param options Filter options
|
7
|
-
* @returns Boolean indicating if message passes server filter
|
8
|
-
*/
|
9
|
-
export declare const isServerAllowed: (message: Message | PartialMessage, options: IFilterOptions) => boolean;
|
10
|
-
/**
|
11
|
-
* Check if the message should be filtered based on channel
|
12
|
-
* @param message Discord message
|
13
|
-
* @param options Filter options
|
14
|
-
* @returns Boolean indicating if message passes channel filter
|
15
|
-
*/
|
16
|
-
export declare const isChannelAllowed: (message: Message | PartialMessage, options: IFilterOptions) => boolean;
|
17
|
-
/**
|
18
|
-
* Check if the message should be filtered based on user roles
|
19
|
-
* @param message Discord message
|
20
|
-
* @param options Filter options
|
21
|
-
* @returns Boolean indicating if message passes role filter
|
22
|
-
*/
|
23
|
-
export declare const isRoleAllowed: (message: Message | PartialMessage, options: IFilterOptions) => boolean;
|
@@ -1,62 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.isRoleAllowed = exports.isChannelAllowed = exports.isServerAllowed = void 0;
|
4
|
-
const utils_1 = require("./utils");
|
5
|
-
/**
|
6
|
-
* Check if the message should be filtered based on server
|
7
|
-
* @param message Discord message
|
8
|
-
* @param options Filter options
|
9
|
-
* @returns Boolean indicating if message passes server filter
|
10
|
-
*/
|
11
|
-
const isServerAllowed = (message, options) => {
|
12
|
-
if (!options.filterByServers || options.serverIds.length === 0)
|
13
|
-
return true;
|
14
|
-
// For server filtering, we only need to match the guild ID
|
15
|
-
// as all methods (fromList, byUrl, byId) are converted to server IDs
|
16
|
-
if (message.guild && options.serverIds.includes(message.guild.id)) {
|
17
|
-
return true;
|
18
|
-
}
|
19
|
-
return false;
|
20
|
-
};
|
21
|
-
exports.isServerAllowed = isServerAllowed;
|
22
|
-
/**
|
23
|
-
* Check if the message should be filtered based on channel
|
24
|
-
* @param message Discord message
|
25
|
-
* @param options Filter options
|
26
|
-
* @returns Boolean indicating if message passes channel filter
|
27
|
-
*/
|
28
|
-
const isChannelAllowed = (message, options) => {
|
29
|
-
if (!options.filterByChannels || options.channelIds.length === 0)
|
30
|
-
return true;
|
31
|
-
const channelName = (0, utils_1.getChannelName)(message.channel);
|
32
|
-
// Allow if channelId is in the channelIds list or channel name matches
|
33
|
-
if (options.channelIds.some(id => id === message.channelId ||
|
34
|
-
(channelName && channelName.toLowerCase() === id.toLowerCase()))) {
|
35
|
-
return true;
|
36
|
-
}
|
37
|
-
return false;
|
38
|
-
};
|
39
|
-
exports.isChannelAllowed = isChannelAllowed;
|
40
|
-
/**
|
41
|
-
* Check if the message should be filtered based on user roles
|
42
|
-
* @param message Discord message
|
43
|
-
* @param options Filter options
|
44
|
-
* @returns Boolean indicating if message passes role filter
|
45
|
-
*/
|
46
|
-
const isRoleAllowed = (message, options) => {
|
47
|
-
var _a;
|
48
|
-
if (!options.filterByRoles || options.roleIds.length === 0)
|
49
|
-
return true;
|
50
|
-
// If not in a guild, can't filter by role
|
51
|
-
if (!message.guild || !message.member)
|
52
|
-
return false;
|
53
|
-
// Allow if user has any of the specified roles
|
54
|
-
const memberRoles = (_a = message.member.roles) === null || _a === void 0 ? void 0 : _a.cache;
|
55
|
-
if (memberRoles) {
|
56
|
-
return options.roleIds.some(id => memberRoles.some(role => role.id === id ||
|
57
|
-
role.name.toLowerCase() === id.toLowerCase()));
|
58
|
-
}
|
59
|
-
return false;
|
60
|
-
};
|
61
|
-
exports.isRoleAllowed = isRoleAllowed;
|
62
|
-
//# sourceMappingURL=filters.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../../nodes/src/discord-trigger/filters.ts"],"names":[],"mappings":";;;AAEA,mCAAyC;AAEzC;;;;;GAKG;AACI,MAAM,eAAe,GAAG,CAAC,OAAiC,EAAE,OAAuB,EAAW,EAAE;IACrG,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5E,2DAA2D;IAC3D,qEAAqE;IACrE,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;QACjE,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAVW,QAAA,eAAe,mBAU1B;AAEF;;;;;GAKG;AACI,MAAM,gBAAgB,GAAG,CAAC,OAAiC,EAAE,OAAuB,EAAW,EAAE;IACtG,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9E,MAAM,WAAW,GAAG,IAAA,sBAAc,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpD,uEAAuE;IACvE,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAC/B,EAAE,KAAK,OAAO,CAAC,SAAS;QACxB,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE;QAClE,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAbW,QAAA,gBAAgB,oBAa3B;AAEF;;;;;GAKG;AACI,MAAM,aAAa,GAAG,CAAC,OAAiC,EAAE,OAAuB,EAAW,EAAE;;IACnG,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAExE,0CAA0C;IAC1C,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAEpD,+CAA+C;IAC/C,MAAM,WAAW,GAAG,MAAA,OAAO,CAAC,MAAM,CAAC,KAAK,0CAAE,KAAK,CAAC;IAChD,IAAI,WAAW,EAAE;QACf,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAC/B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtB,IAAI,CAAC,EAAE,KAAK,EAAE;YACd,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,CAC7C,CACF,CAAC;KACH;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAlBW,QAAA,aAAa,iBAkBxB"}
|
@@ -1,144 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.DiscordTrigger = void 0;
|
4
|
-
const client_1 = require("./client");
|
5
|
-
const event_handlers_1 = require("./event-handlers");
|
6
|
-
const node_description_1 = require("./node-description");
|
7
|
-
/**
|
8
|
-
* Discord Trigger node for n8n
|
9
|
-
* This is the main entry point for the node
|
10
|
-
*/
|
11
|
-
class DiscordTrigger {
|
12
|
-
constructor() {
|
13
|
-
this.description = node_description_1.nodeDescription;
|
14
|
-
this.methods = {
|
15
|
-
loadOptions: {
|
16
|
-
async getServers() {
|
17
|
-
const credentials = (await this.getCredentials("discordApi"));
|
18
|
-
const client = await (0, client_1.initializeDiscordClient)(credentials.botToken);
|
19
|
-
// Wait for client to be ready
|
20
|
-
await new Promise((resolve) => {
|
21
|
-
if (client.isReady())
|
22
|
-
resolve();
|
23
|
-
else
|
24
|
-
client.once("ready", () => resolve());
|
25
|
-
});
|
26
|
-
const servers = client.guilds.cache.map((guild) => ({
|
27
|
-
name: guild.name,
|
28
|
-
value: guild.id,
|
29
|
-
description: `Server ID: ${guild.id}`,
|
30
|
-
}));
|
31
|
-
// Clean up client
|
32
|
-
client.destroy();
|
33
|
-
return servers;
|
34
|
-
},
|
35
|
-
async getEvents() {
|
36
|
-
const resource = this.getCurrentNodeParameter('resource');
|
37
|
-
const eventOptions = {
|
38
|
-
guild: [
|
39
|
-
{ name: 'Channel Create', value: 'channelCreate' },
|
40
|
-
{ name: 'Channel Delete', value: 'channelDelete' },
|
41
|
-
{ name: 'Channel Update', value: 'channelUpdate' },
|
42
|
-
],
|
43
|
-
message: [
|
44
|
-
{ name: 'Message Create', value: 'messageCreate' },
|
45
|
-
{ name: 'Message Delete', value: 'messageDelete' },
|
46
|
-
{ name: 'Message Update', value: 'messageUpdate' },
|
47
|
-
],
|
48
|
-
moderation: [
|
49
|
-
{ name: 'Member Ban', value: 'guildBanAdd' },
|
50
|
-
{ name: 'Member Unban', value: 'guildBanRemove' },
|
51
|
-
],
|
52
|
-
// Add more resource-specific events as needed
|
53
|
-
};
|
54
|
-
return eventOptions[resource] || [];
|
55
|
-
},
|
56
|
-
},
|
57
|
-
};
|
58
|
-
}
|
59
|
-
async trigger() {
|
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),
|
70
|
-
channelIds: [],
|
71
|
-
filterByRoles: this.getNodeParameter("filterByRoles", false),
|
72
|
-
roleIds: [],
|
73
|
-
};
|
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
|
-
}
|
95
|
-
}
|
96
|
-
if (parameters.filterByChannels) {
|
97
|
-
parameters.channelIds = this.getNodeParameter("channelIds", "")
|
98
|
-
.split(",")
|
99
|
-
.map((id) => id.trim());
|
100
|
-
}
|
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();
|
136
|
-
};
|
137
|
-
return {
|
138
|
-
...responseData,
|
139
|
-
closeFunction,
|
140
|
-
};
|
141
|
-
}
|
142
|
-
}
|
143
|
-
exports.DiscordTrigger = DiscordTrigger;
|
144
|
-
//# sourceMappingURL=index.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../nodes/src/discord-trigger/index.ts"],"names":[],"mappings":"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"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"node-description.js","sourceRoot":"","sources":["../../../../nodes/src/discord-trigger/node-description.ts"],"names":[],"mappings":"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"}
|
@@ -1,10 +0,0 @@
|
|
1
|
-
import { Message, PartialMessage } from 'discord.js';
|
2
|
-
import { ITriggerOptions } from './types';
|
3
|
-
/**
|
4
|
-
* Determines if a message should trigger the workflow based on provided options
|
5
|
-
* @param message Discord message
|
6
|
-
* @param client Discord client
|
7
|
-
* @param options Configuration options for triggering
|
8
|
-
* @returns Boolean indicating if the workflow should be triggered
|
9
|
-
*/
|
10
|
-
export declare const shouldTrigger: (message: Message | PartialMessage, client: any, options: ITriggerOptions) => boolean;
|
@@ -1,85 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.shouldTrigger = void 0;
|
4
|
-
const filters_1 = require("./filters");
|
5
|
-
/**
|
6
|
-
* Determines if a message should trigger the workflow based on provided options
|
7
|
-
* @param message Discord message
|
8
|
-
* @param client Discord client
|
9
|
-
* @param options Configuration options for triggering
|
10
|
-
* @returns Boolean indicating if the workflow should be triggered
|
11
|
-
*/
|
12
|
-
const shouldTrigger = (message, client, options) => {
|
13
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
14
|
-
// Ignore messages from bots if not explicitly included
|
15
|
-
if (((_a = message.author) === null || _a === void 0 ? void 0 : _a.bot) && !options.includeBotMessages) {
|
16
|
-
return false;
|
17
|
-
}
|
18
|
-
// Check if message passes server, channel, and role filters
|
19
|
-
if (!(0, filters_1.isServerAllowed)(message, options) ||
|
20
|
-
!(0, filters_1.isChannelAllowed)(message, options) ||
|
21
|
-
!(0, filters_1.isRoleAllowed)(message, options)) {
|
22
|
-
return false;
|
23
|
-
}
|
24
|
-
// Check for the appropriate trigger condition
|
25
|
-
if (options.triggerType === 'botInteraction') {
|
26
|
-
if (options.interactionType === 'botMentioned') {
|
27
|
-
// Check if the bot was mentioned in the message
|
28
|
-
return !!((_c = (_b = message.mentions) === null || _b === void 0 ? void 0 : _b.users) === null || _c === void 0 ? void 0 : _c.has(client.user.id));
|
29
|
-
}
|
30
|
-
else if (options.interactionType === 'messageReplied') {
|
31
|
-
// Check if the message is a reply to a message from the bot
|
32
|
-
return !!(message.reference &&
|
33
|
-
message.reference.messageId &&
|
34
|
-
((_e = (_d = message.mentions) === null || _d === void 0 ? void 0 : _d.repliedUser) === null || _e === void 0 ? void 0 : _e.id) === client.user.id);
|
35
|
-
}
|
36
|
-
}
|
37
|
-
else if (options.triggerType === 'messageContent') {
|
38
|
-
// Skip message content checks if content is not available
|
39
|
-
if (!message.content) {
|
40
|
-
// Special case: if we're looking for image attachments, we can continue
|
41
|
-
if (options.matchPattern === 'containsImage') {
|
42
|
-
return message.attachments && message.attachments.some(attachment => { var _a; return (_a = attachment.contentType) === null || _a === void 0 ? void 0 : _a.startsWith('image/'); });
|
43
|
-
}
|
44
|
-
return false;
|
45
|
-
}
|
46
|
-
// Get message content and apply case sensitivity
|
47
|
-
let content = message.content;
|
48
|
-
let valueToMatch = options.matchValue || '';
|
49
|
-
if (!options.caseSensitive && options.matchValue) {
|
50
|
-
content = content.toLowerCase();
|
51
|
-
valueToMatch = valueToMatch.toLowerCase();
|
52
|
-
}
|
53
|
-
// Perform pattern matching
|
54
|
-
switch (options.matchPattern) {
|
55
|
-
case 'botMention':
|
56
|
-
return !!((_g = (_f = message.mentions) === null || _f === void 0 ? void 0 : _f.users) === null || _g === void 0 ? void 0 : _g.has(client.user.id));
|
57
|
-
case 'contains':
|
58
|
-
return content.includes(valueToMatch);
|
59
|
-
case 'containsImage':
|
60
|
-
return message.attachments && message.attachments.some(attachment => { var _a; return (_a = attachment.contentType) === null || _a === void 0 ? void 0 : _a.startsWith('image/'); });
|
61
|
-
case 'endsWith':
|
62
|
-
return content.endsWith(valueToMatch);
|
63
|
-
case 'equals':
|
64
|
-
return content === valueToMatch;
|
65
|
-
case 'every':
|
66
|
-
return true;
|
67
|
-
case 'regex':
|
68
|
-
try {
|
69
|
-
const regex = new RegExp(options.regexPattern || '');
|
70
|
-
return regex.test(content);
|
71
|
-
}
|
72
|
-
catch (error) {
|
73
|
-
console.error('Invalid regex pattern:', error);
|
74
|
-
return false;
|
75
|
-
}
|
76
|
-
case 'startsWith':
|
77
|
-
return content.startsWith(valueToMatch);
|
78
|
-
default:
|
79
|
-
return false;
|
80
|
-
}
|
81
|
-
}
|
82
|
-
return false;
|
83
|
-
};
|
84
|
-
exports.shouldTrigger = shouldTrigger;
|
85
|
-
//# sourceMappingURL=trigger-logic.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"trigger-logic.js","sourceRoot":"","sources":["../../../../nodes/src/discord-trigger/trigger-logic.ts"],"names":[],"mappings":"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"}
|