@catalogicus-international/n8n-nodes-telegram-advance 0.1.2 → 0.1.3
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/README.md +30 -40
- package/dist/nodes/TelegramAdvance/TelegramAdvance.node.d.ts +1 -2
- package/dist/nodes/TelegramAdvance/TelegramAdvance.node.js +126 -59
- package/dist/nodes/TelegramAdvance/TelegramAdvance.node.js.map +1 -1
- package/dist/nodes/matchResponse.d.ts +16 -0
- package/dist/nodes/matchResponse.js +60 -0
- package/dist/nodes/matchResponse.js.map +1 -0
- package/dist/nodes/pendingStore.d.ts +0 -22
- package/dist/nodes/pendingStore.js +0 -4
- package/dist/nodes/pendingStore.js.map +1 -1
- package/dist/nodes/shared.d.ts +5 -4
- package/dist/nodes/shared.js +2 -5
- package/dist/nodes/shared.js.map +1 -1
- package/package.json +2 -3
- package/dist/nodes/TelegramAdvanceTrigger/TelegramAdvanceTrigger.node.d.ts +0 -5
- package/dist/nodes/TelegramAdvanceTrigger/TelegramAdvanceTrigger.node.js +0 -105
- package/dist/nodes/TelegramAdvanceTrigger/TelegramAdvanceTrigger.node.js.map +0 -1
- package/dist/nodes/TelegramAdvanceTrigger/TelegramAdvanceTrigger.node.json +0 -22
- package/dist/nodes/pendingStoreFactory.d.ts +0 -5
- package/dist/nodes/pendingStoreFactory.js +0 -8
- package/dist/nodes/pendingStoreFactory.js.map +0 -1
- package/dist/nodes/processUpdate.d.ts +0 -7
- package/dist/nodes/processUpdate.js +0 -147
- package/dist/nodes/processUpdate.js.map +0 -1
- package/dist/nodes/staticDataPendingStore.d.ts +0 -17
- package/dist/nodes/staticDataPendingStore.js +0 -66
- package/dist/nodes/staticDataPendingStore.js.map +0 -1
- package/dist/nodes/wait.d.ts +0 -2
- package/dist/nodes/wait.js +0 -15
- package/dist/nodes/wait.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
# @catalogicus-international/n8n-nodes-telegram-advance
|
|
2
2
|
|
|
3
3
|
An n8n community package for Telegram-native human-in-the-loop workflows.
|
|
4
|
-
It sends a question and
|
|
5
|
-
|
|
4
|
+
It sends a question and waits for the user to respond inside Telegram with an
|
|
5
|
+
inline button or a reply. No n8n approval page, redirect link, or external
|
|
6
|
+
response form is opened, and no separate trigger node is required.
|
|
6
7
|
|
|
7
8
|
## Nodes
|
|
8
9
|
|
|
9
10
|
### Telegram Advance
|
|
10
11
|
|
|
11
|
-
Use this node to send a regular Telegram message or
|
|
12
|
-
|
|
12
|
+
Use this node to send a regular Telegram message or wait until a human responds.
|
|
13
|
+
When asking a question, the node sends the message and then polls Telegram
|
|
14
|
+
(`getUpdates`) itself until the user answers or the wait limit is reached — all
|
|
15
|
+
within a single execution. The send-and-wait operation supports:
|
|
13
16
|
|
|
14
17
|
- **Approval** — approve and decline inline buttons;
|
|
15
18
|
- **Choice** — custom inline buttons, for example a product or delivery option;
|
|
@@ -39,55 +42,42 @@ The node resumes with data shaped like:
|
|
|
39
42
|
Approval responses also contain `approved: true` or `approved: false`.
|
|
40
43
|
Free-text responses contain `text` and return the same value in `value`.
|
|
41
44
|
|
|
42
|
-
|
|
45
|
+
#### Wait settings
|
|
43
46
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
after a response is routed. Leaving the trigger disconnected is the simplest
|
|
53
|
-
setup. If you connect it to other nodes, filter out routed events unless you
|
|
54
|
-
intentionally want to process them.
|
|
55
|
-
|
|
56
|
-
The trigger can also emit Telegram messages and callbacks that do not belong
|
|
57
|
-
to a waiting question. Disable **Emit Unmatched Updates** if the workflow only
|
|
58
|
-
uses the trigger as an internal response router.
|
|
47
|
+
- **Wait Limit Amount / Unit** — how long the node keeps polling before giving
|
|
48
|
+
up. The node holds the execution open for this whole time, so prefer minutes
|
|
49
|
+
for interactive approvals.
|
|
50
|
+
- **Poll Interval (Seconds)** — how long each `getUpdates` long-poll waits for
|
|
51
|
+
Telegram before reconnecting (Telegram returns early as soon as an update
|
|
52
|
+
arrives).
|
|
53
|
+
- **On Timeout** — return a `{ "timedOut": true }` item so you can branch on it,
|
|
54
|
+
or throw an error.
|
|
59
55
|
|
|
60
56
|
## Setup
|
|
61
57
|
|
|
62
58
|
1. Create a bot with [BotFather](https://t.me/BotFather) and copy its token.
|
|
63
59
|
2. Create `Telegram Advance API` credentials in n8n.
|
|
64
|
-
3. Add `Telegram Advance
|
|
65
|
-
|
|
66
|
-
a response.
|
|
67
|
-
5. Activate the workflow.
|
|
60
|
+
3. Add `Telegram Advance` where the workflow should send a message or ask a
|
|
61
|
+
question, and select the credentials.
|
|
68
62
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
webhook on the same bot. On activation the trigger clears any existing webhook so
|
|
72
|
-
polling can take over.
|
|
63
|
+
No public URL, inbound HTTPS, or separate trigger is required — only outbound
|
|
64
|
+
access to `api.telegram.org`.
|
|
73
65
|
|
|
74
66
|
For free-text questions, the user must reply to the bot's question message.
|
|
75
|
-
This lets the
|
|
76
|
-
|
|
67
|
+
This lets the node distinguish its own awaited answer from unrelated chat
|
|
68
|
+
messages.
|
|
77
69
|
|
|
78
70
|
## Reliability notes
|
|
79
71
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
This storage mode is intended for a single n8n instance running in regular
|
|
86
|
-
execution mode. Queue mode and multiple workers are not supported because
|
|
87
|
-
workflow static data is not a distributed, atomic store.
|
|
72
|
+
While a question is waiting, the node polls `getUpdates` from inside the running
|
|
73
|
+
execution, so the execution stays active (and holds a worker) until the user
|
|
74
|
+
answers or the wait limit elapses. Keep wait limits short for interactive
|
|
75
|
+
approvals.
|
|
88
76
|
|
|
89
|
-
|
|
90
|
-
|
|
77
|
+
Telegram permits only one `getUpdates` consumer per bot. Do not run a Telegram
|
|
78
|
+
webhook or another poller (including another waiting Telegram Advance question)
|
|
79
|
+
on the same bot at the same time. Before polling, the node clears any existing
|
|
80
|
+
webhook so `getUpdates` can take over.
|
|
91
81
|
|
|
92
82
|
## Development
|
|
93
83
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
2
|
export declare class TelegramAdvance implements INodeType {
|
|
3
3
|
description: INodeTypeDescription;
|
|
4
|
-
webhook(this: IWebhookFunctions): Promise<IWebhookResponseData>;
|
|
5
4
|
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
6
5
|
}
|
|
@@ -3,10 +3,46 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TelegramAdvance = void 0;
|
|
4
4
|
const crypto_1 = require("crypto");
|
|
5
5
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
6
|
+
const matchResponse_1 = require("../matchResponse");
|
|
6
7
|
const question_1 = require("../question");
|
|
7
|
-
const pendingStoreFactory_1 = require("../pendingStoreFactory");
|
|
8
8
|
const shared_1 = require("../shared");
|
|
9
|
-
|
|
9
|
+
function getWaitLimitMs(amount, unit) {
|
|
10
|
+
const multipliers = {
|
|
11
|
+
minutes: 60 * 1000,
|
|
12
|
+
hours: 60 * 60 * 1000,
|
|
13
|
+
days: 24 * 60 * 60 * 1000,
|
|
14
|
+
};
|
|
15
|
+
return Math.max(0, amount) * multipliers[unit];
|
|
16
|
+
}
|
|
17
|
+
async function bestEffort(operation) {
|
|
18
|
+
try {
|
|
19
|
+
await operation();
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async function pollForResponse(context, pending, waitLimitMs, pollSeconds) {
|
|
25
|
+
const deadline = Date.now() + waitLimitMs;
|
|
26
|
+
let offset = 0;
|
|
27
|
+
while (Date.now() < deadline) {
|
|
28
|
+
const remainingMs = deadline - Date.now();
|
|
29
|
+
const timeout = Math.max(1, Math.min(pollSeconds, Math.ceil(remainingMs / 1000)));
|
|
30
|
+
const updates = await (0, shared_1.telegramApiRequest)(context, 'getUpdates', {
|
|
31
|
+
offset,
|
|
32
|
+
timeout,
|
|
33
|
+
allowed_updates: ['callback_query', 'message'],
|
|
34
|
+
}, { timeoutMs: (timeout + 10) * 1000 });
|
|
35
|
+
for (const update of updates) {
|
|
36
|
+
offset = update.update_id + 1;
|
|
37
|
+
const matched = (0, matchResponse_1.matchResponse)(pending, update);
|
|
38
|
+
if (matched) {
|
|
39
|
+
await bestEffort(() => (0, shared_1.telegramApiRequest)(context, 'getUpdates', { offset, timeout: 0 }));
|
|
40
|
+
return matched;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
10
46
|
class TelegramAdvance {
|
|
11
47
|
constructor() {
|
|
12
48
|
this.description = {
|
|
@@ -28,18 +64,6 @@ class TelegramAdvance {
|
|
|
28
64
|
required: true,
|
|
29
65
|
},
|
|
30
66
|
],
|
|
31
|
-
waitingNodeTooltip: "Execution will continue after the user's Telegram response",
|
|
32
|
-
webhooks: [
|
|
33
|
-
{
|
|
34
|
-
name: 'default',
|
|
35
|
-
httpMethod: 'POST',
|
|
36
|
-
responseMode: 'onReceived',
|
|
37
|
-
responseData: '',
|
|
38
|
-
path: '={{ $nodeId }}',
|
|
39
|
-
restartWebhook: true,
|
|
40
|
-
isFullPath: true,
|
|
41
|
-
},
|
|
42
|
-
],
|
|
43
67
|
properties: [
|
|
44
68
|
{
|
|
45
69
|
displayName: 'Operation',
|
|
@@ -63,11 +87,11 @@ class TelegramAdvance {
|
|
|
63
87
|
default: 'sendAndWait',
|
|
64
88
|
},
|
|
65
89
|
{
|
|
66
|
-
displayName: '
|
|
67
|
-
name: '
|
|
90
|
+
displayName: 'Self-Contained Wait',
|
|
91
|
+
name: 'waitNotice',
|
|
68
92
|
type: 'notice',
|
|
69
93
|
default: '',
|
|
70
|
-
description: '
|
|
94
|
+
description: 'This node sends the question and then polls Telegram (getUpdates) itself until the user answers with an inline button or a reply, or the wait limit is reached. No public URL, separate trigger, or external store is required. Telegram allows only one getUpdates consumer per bot, so do not run a Telegram webhook or another poller on the same bot while a question is waiting.',
|
|
71
95
|
displayOptions: { show: { operation: ['sendAndWait'] } },
|
|
72
96
|
},
|
|
73
97
|
{
|
|
@@ -300,23 +324,16 @@ class TelegramAdvance {
|
|
|
300
324
|
],
|
|
301
325
|
},
|
|
302
326
|
{
|
|
303
|
-
displayName: 'Limit
|
|
304
|
-
name: 'limitWaitTime',
|
|
305
|
-
type: 'boolean',
|
|
306
|
-
default: false,
|
|
307
|
-
description: 'Whether to resume automatically if nobody responds',
|
|
308
|
-
displayOptions: { show: { operation: ['sendAndWait'] } },
|
|
309
|
-
},
|
|
310
|
-
{
|
|
311
|
-
displayName: 'Wait Amount',
|
|
327
|
+
displayName: 'Wait Limit Amount',
|
|
312
328
|
name: 'waitAmount',
|
|
313
329
|
type: 'number',
|
|
314
330
|
typeOptions: { minValue: 0.1, numberPrecision: 2 },
|
|
315
|
-
default:
|
|
316
|
-
|
|
331
|
+
default: 5,
|
|
332
|
+
description: 'How long to keep polling Telegram for an answer before giving up. The node holds the execution open for this whole time, so prefer minutes for human-in-the-loop approvals.',
|
|
333
|
+
displayOptions: { show: { operation: ['sendAndWait'] } },
|
|
317
334
|
},
|
|
318
335
|
{
|
|
319
|
-
displayName: 'Wait Unit',
|
|
336
|
+
displayName: 'Wait Limit Unit',
|
|
320
337
|
name: 'waitUnit',
|
|
321
338
|
type: 'options',
|
|
322
339
|
options: [
|
|
@@ -324,19 +341,40 @@ class TelegramAdvance {
|
|
|
324
341
|
{ name: 'Hours', value: 'hours' },
|
|
325
342
|
{ name: 'Minutes', value: 'minutes' },
|
|
326
343
|
],
|
|
327
|
-
default: '
|
|
328
|
-
displayOptions: { show: { operation: ['sendAndWait']
|
|
344
|
+
default: 'minutes',
|
|
345
|
+
displayOptions: { show: { operation: ['sendAndWait'] } },
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
displayName: 'Poll Interval (Seconds)',
|
|
349
|
+
name: 'pollInterval',
|
|
350
|
+
type: 'number',
|
|
351
|
+
typeOptions: { minValue: 1, maxValue: 50 },
|
|
352
|
+
default: 25,
|
|
353
|
+
description: 'How long each getUpdates long-poll waits for Telegram before reconnecting. Telegram holds the request open until an update arrives or this timeout elapses, so a higher value means fewer reconnects.',
|
|
354
|
+
displayOptions: { show: { operation: ['sendAndWait'] } },
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
displayName: 'On Timeout',
|
|
358
|
+
name: 'onTimeout',
|
|
359
|
+
type: 'options',
|
|
360
|
+
options: [
|
|
361
|
+
{
|
|
362
|
+
name: 'Return Timeout Item',
|
|
363
|
+
value: 'return',
|
|
364
|
+
description: 'Continue the workflow with a timed-out item so you can branch on it',
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
name: 'Throw Error',
|
|
368
|
+
value: 'error',
|
|
369
|
+
description: 'Fail the node if nobody answers within the wait limit',
|
|
370
|
+
},
|
|
371
|
+
],
|
|
372
|
+
default: 'return',
|
|
373
|
+
displayOptions: { show: { operation: ['sendAndWait'] } },
|
|
329
374
|
},
|
|
330
375
|
],
|
|
331
376
|
};
|
|
332
377
|
}
|
|
333
|
-
async webhook() {
|
|
334
|
-
const response = this.getBodyData();
|
|
335
|
-
return {
|
|
336
|
-
webhookResponse: { ok: true },
|
|
337
|
-
workflowData: [[{ json: response }]],
|
|
338
|
-
};
|
|
339
|
-
}
|
|
340
378
|
async execute() {
|
|
341
379
|
var _a;
|
|
342
380
|
const operation = this.getNodeParameter('operation', 0);
|
|
@@ -372,30 +410,59 @@ class TelegramAdvance {
|
|
|
372
410
|
};
|
|
373
411
|
if (parseMode !== 'none')
|
|
374
412
|
body.parse_mode = parseMode;
|
|
413
|
+
await (0, shared_1.telegramApiRequest)(this, 'deleteWebhook', { drop_pending_updates: false });
|
|
375
414
|
const sentMessage = await (0, shared_1.telegramApiRequest)(this, 'sendMessage', body);
|
|
376
|
-
const
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
}
|
|
415
|
+
const pending = {
|
|
416
|
+
token,
|
|
417
|
+
chatId,
|
|
418
|
+
messageId: sentMessage.message_id,
|
|
419
|
+
responseType,
|
|
420
|
+
options: responseOptions,
|
|
421
|
+
allowedUserIds: (0, question_1.parseUserIds)(options.allowedUserIds),
|
|
422
|
+
};
|
|
423
|
+
const acknowledgementText = String((_a = options.acknowledgementText) !== null && _a !== void 0 ? _a : 'Response recorded');
|
|
424
|
+
const removeButtons = options.removeButtons !== false;
|
|
425
|
+
const waitLimitMs = getWaitLimitMs(this.getNodeParameter('waitAmount', 0, 5), this.getNodeParameter('waitUnit', 0, 'minutes'));
|
|
426
|
+
const pollSeconds = Math.max(1, Math.min(50, this.getNodeParameter('pollInterval', 0, 25)));
|
|
427
|
+
const matched = await pollForResponse(this, pending, waitLimitMs, pollSeconds);
|
|
428
|
+
if (!matched) {
|
|
429
|
+
if (this.getNodeParameter('onTimeout', 0, 'return') === 'error') {
|
|
430
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No Telegram response received before the wait limit');
|
|
431
|
+
}
|
|
432
|
+
return [
|
|
433
|
+
[
|
|
434
|
+
{
|
|
435
|
+
json: {
|
|
436
|
+
timedOut: true,
|
|
437
|
+
questionMessageId: sentMessage.message_id,
|
|
438
|
+
chat: { id: chatId },
|
|
439
|
+
},
|
|
440
|
+
pairedItem: { item: 0 },
|
|
441
|
+
},
|
|
442
|
+
],
|
|
443
|
+
];
|
|
444
|
+
}
|
|
445
|
+
if (matched.callbackQueryId) {
|
|
446
|
+
await bestEffort(() => (0, shared_1.telegramApiRequest)(this, 'answerCallbackQuery', {
|
|
447
|
+
callback_query_id: matched.callbackQueryId,
|
|
448
|
+
...(acknowledgementText ? { text: acknowledgementText.slice(0, 200) } : {}),
|
|
449
|
+
}));
|
|
450
|
+
if (removeButtons) {
|
|
451
|
+
await bestEffort(() => (0, shared_1.telegramApiRequest)(this, 'editMessageReplyMarkup', {
|
|
452
|
+
chat_id: chatId,
|
|
453
|
+
message_id: sentMessage.message_id,
|
|
454
|
+
reply_markup: { inline_keyboard: [] },
|
|
455
|
+
}));
|
|
456
|
+
}
|
|
393
457
|
}
|
|
394
|
-
|
|
395
|
-
|
|
458
|
+
else if (acknowledgementText) {
|
|
459
|
+
await bestEffort(() => (0, shared_1.telegramApiRequest)(this, 'sendMessage', {
|
|
460
|
+
chat_id: chatId,
|
|
461
|
+
text: acknowledgementText,
|
|
462
|
+
reply_parameters: { message_id: matched.response.responseMessageId },
|
|
463
|
+
}));
|
|
396
464
|
}
|
|
397
|
-
|
|
398
|
-
return [inputData];
|
|
465
|
+
return [[{ json: { response: matched.response }, pairedItem: { item: 0 } }]];
|
|
399
466
|
}
|
|
400
467
|
catch (error) {
|
|
401
468
|
if (this.continueOnFail()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TelegramAdvance.node.js","sourceRoot":"","sources":["../../../nodes/TelegramAdvance/TelegramAdvance.node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TelegramAdvance.node.js","sourceRoot":"","sources":["../../../nodes/TelegramAdvance/TelegramAdvance.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { IDataObject } from 'n8n-workflow';
|
|
2
|
+
import type { PendingOption, PendingResponseType } from './pendingStore';
|
|
3
|
+
import type { TelegramUpdate } from './shared';
|
|
4
|
+
export interface PendingQuestion {
|
|
5
|
+
token: string;
|
|
6
|
+
chatId: string;
|
|
7
|
+
messageId: number;
|
|
8
|
+
responseType: PendingResponseType;
|
|
9
|
+
options: PendingOption[];
|
|
10
|
+
allowedUserIds: string[];
|
|
11
|
+
}
|
|
12
|
+
export interface MatchedResponse {
|
|
13
|
+
response: IDataObject;
|
|
14
|
+
callbackQueryId?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function matchResponse(pending: PendingQuestion, update: TelegramUpdate): MatchedResponse | undefined;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.matchResponse = matchResponse;
|
|
4
|
+
const pendingStore_1 = require("./pendingStore");
|
|
5
|
+
function isAllowedUser(pending, user) {
|
|
6
|
+
if (pending.allowedUserIds.length === 0)
|
|
7
|
+
return true;
|
|
8
|
+
return user !== undefined && pending.allowedUserIds.includes(String(user.id));
|
|
9
|
+
}
|
|
10
|
+
function matchResponse(pending, update) {
|
|
11
|
+
var _a, _b, _c, _d;
|
|
12
|
+
const callback = update.callback_query;
|
|
13
|
+
const parsed = (0, pendingStore_1.parseCallbackData)(callback === null || callback === void 0 ? void 0 : callback.data);
|
|
14
|
+
if (callback && parsed && parsed.token === pending.token) {
|
|
15
|
+
const selected = pending.options[parsed.optionIndex];
|
|
16
|
+
if (!selected ||
|
|
17
|
+
String((_a = callback.message) === null || _a === void 0 ? void 0 : _a.chat.id) !== pending.chatId ||
|
|
18
|
+
((_b = callback.message) === null || _b === void 0 ? void 0 : _b.message_id) !== pending.messageId ||
|
|
19
|
+
!isAllowedUser(pending, callback.from)) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
callbackQueryId: callback.id,
|
|
24
|
+
response: {
|
|
25
|
+
type: pending.responseType,
|
|
26
|
+
value: selected.value,
|
|
27
|
+
label: selected.label,
|
|
28
|
+
...(selected.approved === undefined ? {} : { approved: selected.approved }),
|
|
29
|
+
user: callback.from,
|
|
30
|
+
chat: (_c = callback.message) === null || _c === void 0 ? void 0 : _c.chat,
|
|
31
|
+
questionMessageId: pending.messageId,
|
|
32
|
+
callbackQueryId: callback.id,
|
|
33
|
+
receivedAt: new Date().toISOString(),
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const message = update.message;
|
|
38
|
+
const repliedMessageId = (_d = message === null || message === void 0 ? void 0 : message.reply_to_message) === null || _d === void 0 ? void 0 : _d.message_id;
|
|
39
|
+
if (pending.responseType === 'text' &&
|
|
40
|
+
message &&
|
|
41
|
+
repliedMessageId === pending.messageId &&
|
|
42
|
+
String(message.chat.id) === pending.chatId &&
|
|
43
|
+
isAllowedUser(pending, message.from) &&
|
|
44
|
+
typeof message.text === 'string') {
|
|
45
|
+
return {
|
|
46
|
+
response: {
|
|
47
|
+
type: 'text',
|
|
48
|
+
value: message.text,
|
|
49
|
+
text: message.text,
|
|
50
|
+
user: message.from,
|
|
51
|
+
chat: message.chat,
|
|
52
|
+
questionMessageId: pending.messageId,
|
|
53
|
+
responseMessageId: message.message_id,
|
|
54
|
+
receivedAt: new Date().toISOString(),
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=matchResponse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matchResponse.js","sourceRoot":"","sources":["../../nodes/matchResponse.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,28 +5,6 @@ export interface PendingOption {
|
|
|
5
5
|
value: string;
|
|
6
6
|
approved?: boolean;
|
|
7
7
|
}
|
|
8
|
-
export interface PendingRequest {
|
|
9
|
-
token: string;
|
|
10
|
-
resumeUrl: string;
|
|
11
|
-
chatId: string;
|
|
12
|
-
messageId: number;
|
|
13
|
-
responseType: PendingResponseType;
|
|
14
|
-
options: PendingOption[];
|
|
15
|
-
allowedUserIds: string[];
|
|
16
|
-
acknowledgementText: string;
|
|
17
|
-
removeButtons: boolean;
|
|
18
|
-
createdAt: string;
|
|
19
|
-
expiresAt?: string;
|
|
20
|
-
}
|
|
21
|
-
export declare function replyKey(chatId: string | number, messageId: string | number): string;
|
|
22
|
-
export interface PendingStore {
|
|
23
|
-
save(pending: PendingRequest): Promise<void>;
|
|
24
|
-
getByToken(token: string): Promise<PendingRequest | undefined>;
|
|
25
|
-
getByReply(chatId: string | number, messageId: string | number): Promise<PendingRequest | undefined>;
|
|
26
|
-
claimByToken(token: string): Promise<PendingRequest | undefined>;
|
|
27
|
-
claimByReply(chatId: string | number, messageId: string | number): Promise<PendingRequest | undefined>;
|
|
28
|
-
close(): void;
|
|
29
|
-
}
|
|
30
8
|
export declare function buildCallbackData(token: string, optionIndex: number): string;
|
|
31
9
|
export declare function parseCallbackData(value: string | undefined): {
|
|
32
10
|
token: string;
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CALLBACK_PREFIX = void 0;
|
|
4
|
-
exports.replyKey = replyKey;
|
|
5
4
|
exports.buildCallbackData = buildCallbackData;
|
|
6
5
|
exports.parseCallbackData = parseCallbackData;
|
|
7
6
|
exports.CALLBACK_PREFIX = 'ta';
|
|
8
|
-
function replyKey(chatId, messageId) {
|
|
9
|
-
return `${chatId}:${messageId}`;
|
|
10
|
-
}
|
|
11
7
|
function buildCallbackData(token, optionIndex) {
|
|
12
8
|
return `${exports.CALLBACK_PREFIX}:${token}:${optionIndex}`;
|
|
13
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pendingStore.js","sourceRoot":"","sources":["../../nodes/pendingStore.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"pendingStore.js","sourceRoot":"","sources":["../../nodes/pendingStore.ts"],"names":[],"mappings":";;;AAUA,8CAEC;AAED,8CAYC;AA1BY,QAAA,eAAe,GAAG,IAAI,CAAC;AAUpC,SAAgB,iBAAiB,CAAC,KAAa,EAAE,WAAmB;IACnE,OAAO,GAAG,uBAAe,IAAI,KAAK,IAAI,WAAW,EAAE,CAAC;AACrD,CAAC;AAED,SAAgB,iBAAiB,CAChC,KAAyB;IAEzB,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,uBAAe,yBAAyB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnF,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,OAAO;QACN,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACf,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC7B,CAAC;AACH,CAAC"}
|
package/dist/nodes/shared.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IDataObject, IExecuteFunctions
|
|
2
|
-
export type TelegramContext = IExecuteFunctions
|
|
1
|
+
import type { IDataObject, IExecuteFunctions } from 'n8n-workflow';
|
|
2
|
+
export type TelegramContext = IExecuteFunctions;
|
|
3
3
|
export interface TelegramUser {
|
|
4
4
|
id: number;
|
|
5
5
|
is_bot?: boolean;
|
|
@@ -33,5 +33,6 @@ export interface TelegramUpdate extends IDataObject {
|
|
|
33
33
|
callback_query?: TelegramCallbackQuery;
|
|
34
34
|
}
|
|
35
35
|
export declare function normalizeBaseUrl(value: unknown): string;
|
|
36
|
-
export declare function telegramApiRequest<T>(context: TelegramContext, method: string, body?: IDataObject
|
|
37
|
-
|
|
36
|
+
export declare function telegramApiRequest<T>(context: TelegramContext, method: string, body?: IDataObject, options?: {
|
|
37
|
+
timeoutMs?: number;
|
|
38
|
+
}): Promise<T>;
|
package/dist/nodes/shared.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.normalizeBaseUrl = normalizeBaseUrl;
|
|
4
4
|
exports.telegramApiRequest = telegramApiRequest;
|
|
5
|
-
exports.getTelegramSecret = getTelegramSecret;
|
|
6
5
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
7
6
|
function normalizeBaseUrl(value) {
|
|
8
7
|
const baseUrl = String(value !== null && value !== void 0 ? value : '').trim().replace(/\/+$/, '');
|
|
@@ -11,7 +10,7 @@ function normalizeBaseUrl(value) {
|
|
|
11
10
|
}
|
|
12
11
|
return baseUrl;
|
|
13
12
|
}
|
|
14
|
-
async function telegramApiRequest(context, method, body = {}) {
|
|
13
|
+
async function telegramApiRequest(context, method, body = {}, options = {}) {
|
|
15
14
|
const credentials = await context.getCredentials('telegramAdvanceApi');
|
|
16
15
|
const baseUrl = normalizeBaseUrl(credentials.baseUrl);
|
|
17
16
|
try {
|
|
@@ -20,6 +19,7 @@ async function telegramApiRequest(context, method, body = {}) {
|
|
|
20
19
|
url: `${baseUrl}/bot${credentials.accessToken}/${method}`,
|
|
21
20
|
body,
|
|
22
21
|
json: true,
|
|
22
|
+
...(options.timeoutMs ? { timeout: options.timeoutMs } : {}),
|
|
23
23
|
});
|
|
24
24
|
if (!response.ok) {
|
|
25
25
|
throw new Error(response.description || `Telegram API method ${method} failed`);
|
|
@@ -30,7 +30,4 @@ async function telegramApiRequest(context, method, body = {}) {
|
|
|
30
30
|
throw new n8n_workflow_1.NodeApiError(context.getNode(), error);
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
function getTelegramSecret(context) {
|
|
34
|
-
return `${context.getWorkflow().id}_${context.getNode().id}`.replace(/[^a-zA-Z0-9_-]+/g, '');
|
|
35
|
-
}
|
|
36
33
|
//# sourceMappingURL=shared.js.map
|
package/dist/nodes/shared.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../nodes/shared.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../nodes/shared.ts"],"names":[],"mappings":";;AAgDA,4CAMC;AAED,gDA6BC;AApFD,+CAA4C;AA+C5C,SAAgB,gBAAgB,CAAC,KAAc;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACvC,OAAwB,EACxB,MAAc,EACd,OAAoB,EAAE,EACtB,UAAkC,EAAE;IAEpC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEtD,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;YAClD,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,GAAG,OAAO,OAAO,WAAW,CAAC,WAAW,IAAI,MAAM,EAAE;YACzD,IAAI;YACJ,IAAI,EAAE,IAAI;YAIV,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,CAA2B,CAAC;QAE7B,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,IAAI,uBAAuB,MAAM,SAAS,CAAC,CAAC;QACjF,CAAC;QAED,OAAO,QAAQ,CAAC,MAAM,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,2BAAY,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,KAAmB,CAAC,CAAC;IAChE,CAAC;AACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@catalogicus-international/n8n-nodes-telegram-advance",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Native Telegram approval, choice, and reply workflows for n8n without external response pages",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"packageManager": "pnpm@9.15.0",
|
|
@@ -44,8 +44,7 @@
|
|
|
44
44
|
"dist/credentials/TelegramAdvanceApi.credentials.js"
|
|
45
45
|
],
|
|
46
46
|
"nodes": [
|
|
47
|
-
"dist/nodes/TelegramAdvance/TelegramAdvance.node.js"
|
|
48
|
-
"dist/nodes/TelegramAdvanceTrigger/TelegramAdvanceTrigger.node.js"
|
|
47
|
+
"dist/nodes/TelegramAdvance/TelegramAdvance.node.js"
|
|
49
48
|
]
|
|
50
49
|
},
|
|
51
50
|
"devDependencies": {
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { INodeType, INodeTypeDescription, ITriggerFunctions, ITriggerResponse } from 'n8n-workflow';
|
|
2
|
-
export declare class TelegramAdvanceTrigger implements INodeType {
|
|
3
|
-
description: INodeTypeDescription;
|
|
4
|
-
trigger(this: ITriggerFunctions): Promise<ITriggerResponse>;
|
|
5
|
-
}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TelegramAdvanceTrigger = void 0;
|
|
4
|
-
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
-
const processUpdate_1 = require("../processUpdate");
|
|
6
|
-
const pendingStoreFactory_1 = require("../pendingStoreFactory");
|
|
7
|
-
const shared_1 = require("../shared");
|
|
8
|
-
const LONG_POLL_TIMEOUT_SECONDS = 50;
|
|
9
|
-
const ERROR_BACKOFF_MS = 3000;
|
|
10
|
-
class TelegramAdvanceTrigger {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.description = {
|
|
13
|
-
displayName: 'Telegram Advance Trigger',
|
|
14
|
-
name: 'telegramAdvanceTrigger',
|
|
15
|
-
icon: 'file:../../icons/telegram.svg',
|
|
16
|
-
group: ['trigger'],
|
|
17
|
-
version: 1,
|
|
18
|
-
subtitle: 'Routes replies to waiting executions',
|
|
19
|
-
description: 'Receives Telegram updates via long polling and resumes Telegram Advance questions',
|
|
20
|
-
defaults: {
|
|
21
|
-
name: 'Telegram Advance Trigger',
|
|
22
|
-
},
|
|
23
|
-
inputs: [],
|
|
24
|
-
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
25
|
-
credentials: [
|
|
26
|
-
{
|
|
27
|
-
name: 'telegramAdvanceApi',
|
|
28
|
-
required: true,
|
|
29
|
-
},
|
|
30
|
-
],
|
|
31
|
-
properties: [
|
|
32
|
-
{
|
|
33
|
-
displayName: 'This trigger polls Telegram (getUpdates) and needs no public URL. Telegram allows only one getUpdates consumer per bot, so use a single Telegram Advance Trigger per bot and do not run a webhook on the same bot.',
|
|
34
|
-
name: 'telegramPollingNotice',
|
|
35
|
-
type: 'notice',
|
|
36
|
-
default: '',
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
displayName: 'Emit Unmatched Updates',
|
|
40
|
-
name: 'emitUnmatchedUpdates',
|
|
41
|
-
type: 'boolean',
|
|
42
|
-
default: true,
|
|
43
|
-
description: 'Whether messages and callbacks that do not belong to a waiting question should start the workflow',
|
|
44
|
-
},
|
|
45
|
-
],
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
async trigger() {
|
|
49
|
-
const emitUnmatched = this.getNodeParameter('emitUnmatchedUpdates', true);
|
|
50
|
-
await (0, shared_1.telegramApiRequest)(this, 'deleteWebhook', { drop_pending_updates: false });
|
|
51
|
-
let running = true;
|
|
52
|
-
const staticData = this.getWorkflowStaticData('node');
|
|
53
|
-
let offset = typeof staticData.offset === 'number' ? staticData.offset : 0;
|
|
54
|
-
const pollOnce = async () => {
|
|
55
|
-
const updates = await (0, shared_1.telegramApiRequest)(this, 'getUpdates', {
|
|
56
|
-
offset,
|
|
57
|
-
timeout: LONG_POLL_TIMEOUT_SECONDS,
|
|
58
|
-
allowed_updates: ['callback_query', 'message'],
|
|
59
|
-
});
|
|
60
|
-
for (const update of updates) {
|
|
61
|
-
const store = await (0, pendingStoreFactory_1.createPendingStore)(this);
|
|
62
|
-
try {
|
|
63
|
-
const routed = await (0, processUpdate_1.processUpdate)(this, store, update, emitUnmatched);
|
|
64
|
-
if (routed)
|
|
65
|
-
this.emit([[{ json: routed.json }]]);
|
|
66
|
-
}
|
|
67
|
-
finally {
|
|
68
|
-
store.close();
|
|
69
|
-
}
|
|
70
|
-
offset = update.update_id + 1;
|
|
71
|
-
staticData.offset = offset;
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
const loop = async () => {
|
|
75
|
-
var _a;
|
|
76
|
-
while (running) {
|
|
77
|
-
try {
|
|
78
|
-
await pollOnce();
|
|
79
|
-
}
|
|
80
|
-
catch (error) {
|
|
81
|
-
if (!running)
|
|
82
|
-
break;
|
|
83
|
-
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.warn(`Telegram Advance Trigger polling error: ${error instanceof Error ? error.message : String(error)}`);
|
|
84
|
-
await (0, n8n_workflow_1.sleep)(ERROR_BACKOFF_MS);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
const manualTriggerFunction = async () => {
|
|
89
|
-
await pollOnce().catch((error) => {
|
|
90
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), error);
|
|
91
|
-
});
|
|
92
|
-
};
|
|
93
|
-
const polling = loop();
|
|
94
|
-
const closeFunction = async () => {
|
|
95
|
-
running = false;
|
|
96
|
-
await polling.catch(() => { });
|
|
97
|
-
};
|
|
98
|
-
return {
|
|
99
|
-
closeFunction,
|
|
100
|
-
manualTriggerFunction,
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
exports.TelegramAdvanceTrigger = TelegramAdvanceTrigger;
|
|
105
|
-
//# sourceMappingURL=TelegramAdvanceTrigger.node.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TelegramAdvanceTrigger.node.js","sourceRoot":"","sources":["../../../nodes/TelegramAdvanceTrigger/TelegramAdvanceTrigger.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"node": "@catalogicus-international/n8n-nodes-telegram-advance.telegramAdvanceTrigger",
|
|
3
|
-
"nodeVersion": "1.0",
|
|
4
|
-
"codexVersion": "1.0",
|
|
5
|
-
"categories": ["Communication", "HITL"],
|
|
6
|
-
"subcategories": {
|
|
7
|
-
"HITL": ["Human in the Loop"]
|
|
8
|
-
},
|
|
9
|
-
"alias": ["telegram", "trigger", "approval", "callback", "reply"],
|
|
10
|
-
"resources": {
|
|
11
|
-
"credentialDocumentation": [
|
|
12
|
-
{
|
|
13
|
-
"url": "https://core.telegram.org/bots/features#creating-a-new-bot"
|
|
14
|
-
}
|
|
15
|
-
],
|
|
16
|
-
"primaryDocumentation": [
|
|
17
|
-
{
|
|
18
|
-
"url": "https://github.com/catalogicus-international/n8n-nodes-telegram-advance#readme"
|
|
19
|
-
}
|
|
20
|
-
]
|
|
21
|
-
}
|
|
22
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { IExecuteFunctions, ITriggerFunctions, IWebhookFunctions } from 'n8n-workflow';
|
|
2
|
-
import type { PendingStore } from './pendingStore';
|
|
3
|
-
type StoreContext = IExecuteFunctions | ITriggerFunctions | IWebhookFunctions;
|
|
4
|
-
export declare function createPendingStore(context: StoreContext): Promise<PendingStore>;
|
|
5
|
-
export {};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createPendingStore = createPendingStore;
|
|
4
|
-
const staticDataPendingStore_1 = require("./staticDataPendingStore");
|
|
5
|
-
async function createPendingStore(context) {
|
|
6
|
-
return new staticDataPendingStore_1.StaticDataPendingStore(context);
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=pendingStoreFactory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pendingStoreFactory.js","sourceRoot":"","sources":["../../nodes/pendingStoreFactory.ts"],"names":[],"mappings":";;AAWA,gDAEC;AAXD,qEAAkE;AAS3D,KAAK,UAAU,kBAAkB,CAAC,OAAqB;IAC7D,OAAO,IAAI,+CAAsB,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { IDataObject } from 'n8n-workflow';
|
|
2
|
-
import { type PendingStore } from './pendingStore';
|
|
3
|
-
import { type TelegramContext, type TelegramUpdate } from './shared';
|
|
4
|
-
export interface RoutedResult {
|
|
5
|
-
json: IDataObject;
|
|
6
|
-
}
|
|
7
|
-
export declare function processUpdate(context: TelegramContext, store: PendingStore, update: TelegramUpdate, emitUnmatched: boolean): Promise<RoutedResult | undefined>;
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.processUpdate = processUpdate;
|
|
4
|
-
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
-
const pendingStore_1 = require("./pendingStore");
|
|
6
|
-
const shared_1 = require("./shared");
|
|
7
|
-
function isAllowedUser(pending, user) {
|
|
8
|
-
if (pending.allowedUserIds.length === 0)
|
|
9
|
-
return true;
|
|
10
|
-
return user !== undefined && pending.allowedUserIds.includes(String(user.id));
|
|
11
|
-
}
|
|
12
|
-
function matchesMessage(pending, message) {
|
|
13
|
-
return Boolean(message &&
|
|
14
|
-
String(message.chat.id) === pending.chatId &&
|
|
15
|
-
message.message_id === pending.messageId);
|
|
16
|
-
}
|
|
17
|
-
async function answerCallback(context, callback, text) {
|
|
18
|
-
await (0, shared_1.telegramApiRequest)(context, 'answerCallbackQuery', {
|
|
19
|
-
callback_query_id: callback.id,
|
|
20
|
-
...(text ? { text: text.slice(0, 200) } : {}),
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
async function removeButtons(context, pending) {
|
|
24
|
-
if (!pending.removeButtons)
|
|
25
|
-
return;
|
|
26
|
-
await (0, shared_1.telegramApiRequest)(context, 'editMessageReplyMarkup', {
|
|
27
|
-
chat_id: pending.chatId,
|
|
28
|
-
message_id: pending.messageId,
|
|
29
|
-
reply_markup: { inline_keyboard: [] },
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
async function resumeExecution(context, pending, response) {
|
|
33
|
-
await context.helpers.httpRequest({
|
|
34
|
-
method: 'POST',
|
|
35
|
-
url: pending.resumeUrl,
|
|
36
|
-
body: response,
|
|
37
|
-
json: true,
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
async function bestEffort(operation) {
|
|
41
|
-
try {
|
|
42
|
-
await operation();
|
|
43
|
-
}
|
|
44
|
-
catch {
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
async function processUpdate(context, store, update, emitUnmatched) {
|
|
48
|
-
var _a, _b;
|
|
49
|
-
const callback = update.callback_query;
|
|
50
|
-
const parsedCallback = (0, pendingStore_1.parseCallbackData)(callback === null || callback === void 0 ? void 0 : callback.data);
|
|
51
|
-
if (callback && parsedCallback) {
|
|
52
|
-
const pending = await store.getByToken(parsedCallback.token);
|
|
53
|
-
const selected = pending === null || pending === void 0 ? void 0 : pending.options[parsedCallback.optionIndex];
|
|
54
|
-
if (!pending ||
|
|
55
|
-
!selected ||
|
|
56
|
-
!matchesMessage(pending, callback.message) ||
|
|
57
|
-
!isAllowedUser(pending, callback.from)) {
|
|
58
|
-
await bestEffort(() => answerCallback(context, callback, 'This request is no longer active'));
|
|
59
|
-
return undefined;
|
|
60
|
-
}
|
|
61
|
-
const claimed = await store.claimByToken(pending.token);
|
|
62
|
-
if (!claimed) {
|
|
63
|
-
await bestEffort(() => answerCallback(context, callback, 'This request is no longer active'));
|
|
64
|
-
return undefined;
|
|
65
|
-
}
|
|
66
|
-
try {
|
|
67
|
-
await resumeExecution(context, claimed, {
|
|
68
|
-
response: {
|
|
69
|
-
type: claimed.responseType,
|
|
70
|
-
value: selected.value,
|
|
71
|
-
label: selected.label,
|
|
72
|
-
...(selected.approved === undefined ? {} : { approved: selected.approved }),
|
|
73
|
-
user: callback.from,
|
|
74
|
-
chat: (_a = callback.message) === null || _a === void 0 ? void 0 : _a.chat,
|
|
75
|
-
questionMessageId: claimed.messageId,
|
|
76
|
-
callbackQueryId: callback.id,
|
|
77
|
-
receivedAt: new Date().toISOString(),
|
|
78
|
-
},
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
await store.save(claimed);
|
|
83
|
-
throw new n8n_workflow_1.NodeApiError(context.getNode(), error);
|
|
84
|
-
}
|
|
85
|
-
await Promise.all([
|
|
86
|
-
bestEffort(() => answerCallback(context, callback, claimed.acknowledgementText)),
|
|
87
|
-
bestEffort(() => removeButtons(context, claimed)),
|
|
88
|
-
]);
|
|
89
|
-
return {
|
|
90
|
-
json: {
|
|
91
|
-
telegramAdvanceRouted: true,
|
|
92
|
-
responseType: claimed.responseType,
|
|
93
|
-
token: claimed.token,
|
|
94
|
-
update: update,
|
|
95
|
-
},
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
const message = update.message;
|
|
99
|
-
const repliedMessageId = (_b = message === null || message === void 0 ? void 0 : message.reply_to_message) === null || _b === void 0 ? void 0 : _b.message_id;
|
|
100
|
-
if (message && repliedMessageId !== undefined) {
|
|
101
|
-
const pending = await store.getByReply(message.chat.id, repliedMessageId);
|
|
102
|
-
if ((pending === null || pending === void 0 ? void 0 : pending.responseType) === 'text' &&
|
|
103
|
-
isAllowedUser(pending, message.from) &&
|
|
104
|
-
typeof message.text === 'string') {
|
|
105
|
-
const claimed = await store.claimByReply(message.chat.id, repliedMessageId);
|
|
106
|
-
if (!claimed)
|
|
107
|
-
return undefined;
|
|
108
|
-
try {
|
|
109
|
-
await resumeExecution(context, claimed, {
|
|
110
|
-
response: {
|
|
111
|
-
type: 'text',
|
|
112
|
-
value: message.text,
|
|
113
|
-
text: message.text,
|
|
114
|
-
user: message.from,
|
|
115
|
-
chat: message.chat,
|
|
116
|
-
questionMessageId: claimed.messageId,
|
|
117
|
-
responseMessageId: message.message_id,
|
|
118
|
-
receivedAt: new Date().toISOString(),
|
|
119
|
-
},
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
catch (error) {
|
|
123
|
-
await store.save(claimed);
|
|
124
|
-
throw new n8n_workflow_1.NodeApiError(context.getNode(), error);
|
|
125
|
-
}
|
|
126
|
-
if (claimed.acknowledgementText) {
|
|
127
|
-
await bestEffort(() => (0, shared_1.telegramApiRequest)(context, 'sendMessage', {
|
|
128
|
-
chat_id: claimed.chatId,
|
|
129
|
-
text: claimed.acknowledgementText,
|
|
130
|
-
reply_parameters: { message_id: message.message_id },
|
|
131
|
-
}));
|
|
132
|
-
}
|
|
133
|
-
return {
|
|
134
|
-
json: {
|
|
135
|
-
telegramAdvanceRouted: true,
|
|
136
|
-
responseType: claimed.responseType,
|
|
137
|
-
token: claimed.token,
|
|
138
|
-
update: update,
|
|
139
|
-
},
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
if (!emitUnmatched)
|
|
144
|
-
return undefined;
|
|
145
|
-
return { json: update };
|
|
146
|
-
}
|
|
147
|
-
//# sourceMappingURL=processUpdate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"processUpdate.js","sourceRoot":"","sources":["../../nodes/processUpdate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { IExecuteFunctions, ITriggerFunctions, IWebhookFunctions } from 'n8n-workflow';
|
|
2
|
-
import { type PendingRequest, type PendingStore } from './pendingStore';
|
|
3
|
-
type StoreContext = IExecuteFunctions | ITriggerFunctions | IWebhookFunctions;
|
|
4
|
-
export declare class StaticDataPendingStore implements PendingStore {
|
|
5
|
-
private readonly context;
|
|
6
|
-
private readonly data;
|
|
7
|
-
constructor(context: StoreContext);
|
|
8
|
-
save(pending: PendingRequest): Promise<void>;
|
|
9
|
-
getByToken(token: string): Promise<PendingRequest | undefined>;
|
|
10
|
-
getByReply(chatId: string | number, messageId: string | number): Promise<PendingRequest | undefined>;
|
|
11
|
-
claimByToken(token: string): Promise<PendingRequest | undefined>;
|
|
12
|
-
claimByReply(chatId: string | number, messageId: string | number): Promise<PendingRequest | undefined>;
|
|
13
|
-
close(): void;
|
|
14
|
-
private remove;
|
|
15
|
-
private purgeExpired;
|
|
16
|
-
}
|
|
17
|
-
export {};
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StaticDataPendingStore = void 0;
|
|
4
|
-
const pendingStore_1 = require("./pendingStore");
|
|
5
|
-
const STATIC_DATA_KEY = 'telegramAdvancePending';
|
|
6
|
-
function isExpired(pending) {
|
|
7
|
-
return pending.expiresAt !== undefined && Date.parse(pending.expiresAt) <= Date.now();
|
|
8
|
-
}
|
|
9
|
-
class StaticDataPendingStore {
|
|
10
|
-
constructor(context) {
|
|
11
|
-
this.context = context;
|
|
12
|
-
const staticData = this.context.getWorkflowStaticData('global');
|
|
13
|
-
if (!staticData[STATIC_DATA_KEY]) {
|
|
14
|
-
staticData[STATIC_DATA_KEY] = { pending: {}, replies: {} };
|
|
15
|
-
}
|
|
16
|
-
this.data = staticData[STATIC_DATA_KEY];
|
|
17
|
-
this.purgeExpired();
|
|
18
|
-
}
|
|
19
|
-
async save(pending) {
|
|
20
|
-
const responseKey = (0, pendingStore_1.replyKey)(pending.chatId, pending.messageId);
|
|
21
|
-
if (isExpired(pending)) {
|
|
22
|
-
delete this.data.pending[pending.token];
|
|
23
|
-
delete this.data.replies[responseKey];
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
this.data.pending[pending.token] = pending;
|
|
27
|
-
this.data.replies[responseKey] = pending.token;
|
|
28
|
-
}
|
|
29
|
-
async getByToken(token) {
|
|
30
|
-
const pending = this.data.pending[token];
|
|
31
|
-
if (pending && isExpired(pending)) {
|
|
32
|
-
this.remove(pending);
|
|
33
|
-
return undefined;
|
|
34
|
-
}
|
|
35
|
-
return pending;
|
|
36
|
-
}
|
|
37
|
-
async getByReply(chatId, messageId) {
|
|
38
|
-
const token = this.data.replies[(0, pendingStore_1.replyKey)(chatId, messageId)];
|
|
39
|
-
return token ? this.getByToken(token) : undefined;
|
|
40
|
-
}
|
|
41
|
-
async claimByToken(token) {
|
|
42
|
-
const pending = await this.getByToken(token);
|
|
43
|
-
if (pending)
|
|
44
|
-
this.remove(pending);
|
|
45
|
-
return pending;
|
|
46
|
-
}
|
|
47
|
-
async claimByReply(chatId, messageId) {
|
|
48
|
-
const pending = await this.getByReply(chatId, messageId);
|
|
49
|
-
if (pending)
|
|
50
|
-
this.remove(pending);
|
|
51
|
-
return pending;
|
|
52
|
-
}
|
|
53
|
-
close() { }
|
|
54
|
-
remove(pending) {
|
|
55
|
-
delete this.data.pending[pending.token];
|
|
56
|
-
delete this.data.replies[(0, pendingStore_1.replyKey)(pending.chatId, pending.messageId)];
|
|
57
|
-
}
|
|
58
|
-
purgeExpired() {
|
|
59
|
-
for (const pending of Object.values(this.data.pending)) {
|
|
60
|
-
if (isExpired(pending))
|
|
61
|
-
this.remove(pending);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
exports.StaticDataPendingStore = StaticDataPendingStore;
|
|
66
|
-
//# sourceMappingURL=staticDataPendingStore.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"staticDataPendingStore.js","sourceRoot":"","sources":["../../nodes/staticDataPendingStore.ts"],"names":[],"mappings":"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"}
|
package/dist/nodes/wait.d.ts
DELETED
package/dist/nodes/wait.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getWaitTill = getWaitTill;
|
|
4
|
-
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
-
function getWaitTill(limitWaitTime, amount, unit, now = Date.now()) {
|
|
6
|
-
if (!limitWaitTime)
|
|
7
|
-
return n8n_workflow_1.WAIT_INDEFINITELY;
|
|
8
|
-
const multipliers = {
|
|
9
|
-
minutes: 60 * 1000,
|
|
10
|
-
hours: 60 * 60 * 1000,
|
|
11
|
-
days: 24 * 60 * 60 * 1000,
|
|
12
|
-
};
|
|
13
|
-
return new Date(now + amount * multipliers[unit]);
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=wait.js.map
|
package/dist/nodes/wait.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../../nodes/wait.ts"],"names":[],"mappings":";;AAIA,kCAeC;AAnBD,+CAAiD;AAIjD,SAAgB,WAAW,CAC1B,aAAsB,EACtB,MAAc,EACd,IAAc,EACd,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAEhB,IAAI,CAAC,aAAa;QAAE,OAAO,gCAAiB,CAAC;IAE7C,MAAM,WAAW,GAA6B;QAC7C,OAAO,EAAE,EAAE,GAAG,IAAI;QAClB,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;QACrB,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;KACzB,CAAC;IAEF,OAAO,IAAI,IAAI,CAAC,GAAG,GAAG,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACnD,CAAC"}
|