From 049bf6bee8087e5984ae8b243f5df7511c7a34f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Ovejero?= Date: Thu, 4 Feb 2021 05:50:39 -0300 Subject: [PATCH] :sparkles: Add message pinning and unpinning to Telegram (#1398) * Implement chat message pinning and unpinning * :zap: Add svg logo Co-authored-by: ricardo --- .../nodes/Telegram/Telegram.node.ts | 94 +++++++++++++++++- .../nodes/Telegram/TelegramTrigger.node.ts | 2 +- .../nodes-base/nodes/Telegram/telegram.png | Bin 1403 -> 0 bytes .../nodes-base/nodes/Telegram/telegram.svg | 1 + 4 files changed, 91 insertions(+), 6 deletions(-) delete mode 100644 packages/nodes-base/nodes/Telegram/telegram.png create mode 100644 packages/nodes-base/nodes/Telegram/telegram.svg 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 6eadb84e915fcd065a90bd47fe02f240d4ed5207..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1403 zcmV->1%&#EP)}_#oY*j@-5-|JHmcq#pxGUi(<7PHFs0ivr`$8B+$o>g z9Fx*1p4cCj)HA2sDW2CgsN5cv(=w&mDV^3aq}eW{+aZ|MGpXJ%rrjZ!)i$i(9Fx)< zlhP-h*e;~oCY;wUquVyA+%~D)HmKYomed`T(<7MGHLc+vmee4a)ikT%F{$4$sNOfO z;v}5cEu`EXl+!4m**LG`GpgS!quVd0-6WdUBAM16mD47j*dv+NE~VWko!Ba&+U)iF zDWKZ$_xv4`(*OVe^!fer`26qo`~Lm^_WJ$p_Wbz!{`>s?>h$^?m)0DU(#P8BBca?G zl+^V2{mwm}UgvaT`*XV7)=V83&cD&-U&f!b3;Z?HWEuGgLnb+s=_^jIT*W~cl zbW)@bK>J>D=4N#Ds!zWi%HtndvnE00PTN zL_t(Y$L-Z+SKCk+!11(Y9q#UI3nbE&Z_={2 zUn#E;h<97=i^`9QZt#kZ$xqq0i!@b~-4GVaL0~C`IHa#Y);dCHOn-O2dBXK|PbD0)g^Tnd7FnHd){8m_;Urlf_ ze4NYm$Ko3!Pz-LwcSC&`_Dt(v zI3)&cOF-Gwr5#_LpTaN-Tk^y{QGobT(_cJg*XUClhFSC!MXebF%LSqB(cHEmbz1G_ z@+^%}$_E1^g-wl10+S1&ae5t_X|iqgAwnr>h5qpiQmMpxnF>^&$-5I9cFwsbH6AFST5#cZA!8|pI*Ycz8xNqTE+@P0i5@T)St1AqT>-Jn^V zmLrJVTVo@vI1{i*a@twU?nQ^jCRh1tyvJ>3X6K<$7h70r+g}?toOTrP)_CtkEi)?s z#L2a6>bK7~K099`=$~5A53@$efLPER6uTWx=f~}_UR;I9Eh9Q+l5+zBC~9VrHotlQ zWm~QL_Jo!rs9ViUlEBAXE1UZ3ryrg~4KE|g>F+QzNQZ#pq--z@w@Rh0@UN}@bse)@ z1c3=oz#uxEj=4Eq32`Wc!@34>O1K$D65k=2$KS^B9+Tp{FfFf)!n>T3n3hYK@D7kL z8H&L5SWufFfFhHcAnXhxEKGwUCn$|Qd(WryTx@A2v}e!1`3+J^#=|Qv;7$Ml002ov JPDHLkV1kES>#_g< 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