diff --git a/packages/nodes-base/nodes/Telegram/Telegram.node.ts b/packages/nodes-base/nodes/Telegram/Telegram.node.ts index 6cfaa3ad7d..ea9b7afb8e 100644 --- a/packages/nodes-base/nodes/Telegram/Telegram.node.ts +++ b/packages/nodes-base/nodes/Telegram/Telegram.node.ts @@ -19,7 +19,7 @@ export class Telegram implements INodeType { description: INodeTypeDescription = { displayName: 'Telegram', name: 'telegram', - icon: 'file:telegram.png', + icon: 'file:telegram.svg', group: ['output'], version: 1, subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}', @@ -200,6 +200,16 @@ export class Telegram implements INodeType { value: 'editMessageText', description: 'Edit a text message', }, + { + name: 'Pin Chat Message', + value: 'pinChatMessage', + description: 'Pin a chat message', + }, + { + name: 'Unpin Chat Message', + value: 'unpinChatMessage', + description: 'Unpin a chat message', + }, { name: 'Send Animation', value: 'sendAnimation', @@ -266,6 +276,8 @@ export class Telegram implements INodeType { 'get', 'leave', 'member', + 'pinChatMessage', + 'unpinChatMessage', 'setDescription', 'setTitle', 'sendAnimation', @@ -288,6 +300,54 @@ export class Telegram implements INodeType { description: 'Unique identifier for the target chat or username of the target
channel (in the format @channelusername).', }, + // ---------------------------------- + // message:pinChatMessage + // ---------------------------------- + { + displayName: 'Message ID', + name: 'messageId', + type: 'string', + default: '', + displayOptions: { + show: { + operation: [ + 'pinChatMessage', + 'unpinChatMessage', + ], + resource: [ + 'message', + ], + }, + }, + required: true, + description: 'Unique identifier of the message to pin or unpin.', + }, + { + displayName: 'Additional Fields', + name: 'additionalFields', + type: 'collection', + placeholder: 'Add Field', + displayOptions: { + show: { + operation: [ + 'pinChatMessage', + ], + resource: [ + 'message', + ], + }, + }, + default: {}, + options: [ + { + displayName: 'Disable Notification', + name: 'disable_notification', + type: 'boolean', + default: false, + description: 'Do not send a notification to all chat members about the new pinned message.', + }, + ], + }, // ---------------------------------- // chat @@ -1583,10 +1643,10 @@ export class Telegram implements INodeType { body.title = this.getNodeParameter('title', i) as string; } - // } else if (resource === 'bot') { - // if (operation === 'info') { - // endpoint = 'getUpdates'; - // } + // } else if (resource === 'bot') { + // if (operation === 'info') { + // endpoint = 'getUpdates'; + // } } else if (resource === 'file') { if (operation === 'get') { @@ -1622,6 +1682,30 @@ export class Telegram implements INodeType { // Add additional fields and replyMarkup addAdditionalFields.call(this, body, i); + } else if (operation === 'pinChatMessage') { + // ---------------------------------- + // message:pinChatMessage + // ---------------------------------- + + endpoint = 'pinChatMessage'; + + body.chat_id = this.getNodeParameter('chatId', i) as string; + body.message_id = this.getNodeParameter('messageId', i) as string; + + const { disable_notification } = this.getNodeParameter('additionalFields', i) as IDataObject; + if (disable_notification) { + body.disable_notification = true; + } + + } else if (operation === 'unpinChatMessage') { + // ---------------------------------- + // message:unpinChatMessage + // ---------------------------------- + + endpoint = 'unpinChatMessage'; + + body.chat_id = this.getNodeParameter('chatId', i) as string; + body.message_id = this.getNodeParameter('messageId', i) as string; } else if (operation === 'sendAnimation') { // ---------------------------------- diff --git a/packages/nodes-base/nodes/Telegram/TelegramTrigger.node.ts b/packages/nodes-base/nodes/Telegram/TelegramTrigger.node.ts index f6449586ff..69fab1d2ac 100644 --- a/packages/nodes-base/nodes/Telegram/TelegramTrigger.node.ts +++ b/packages/nodes-base/nodes/Telegram/TelegramTrigger.node.ts @@ -23,7 +23,7 @@ export class TelegramTrigger implements INodeType { description: INodeTypeDescription = { displayName: 'Telegram Trigger', name: 'telegramTrigger', - icon: 'file:telegram.png', + icon: 'file:telegram.svg', group: ['trigger'], version: 1, subtitle: '=Updates: {{$parameter["updates"].join(", ")}}', diff --git a/packages/nodes-base/nodes/Telegram/telegram.png b/packages/nodes-base/nodes/Telegram/telegram.png deleted file mode 100644 index 6eadb84e91..0000000000 Binary files a/packages/nodes-base/nodes/Telegram/telegram.png and /dev/null differ diff --git a/packages/nodes-base/nodes/Telegram/telegram.svg b/packages/nodes-base/nodes/Telegram/telegram.svg new file mode 100644 index 0000000000..8256014e98 --- /dev/null +++ b/packages/nodes-base/nodes/Telegram/telegram.svg @@ -0,0 +1 @@ + \ No newline at end of file