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