From 0eb8b8032fd6ceffb528ed361381a14a8dc1ab7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Hern=C3=A1ndez?= Date: Sun, 6 Nov 2022 00:15:24 +0100 Subject: [PATCH] fix: Parse entities when sending request (#1013) --- src/telegram.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/telegram.js b/src/telegram.js index 5dd529f..168172b 100644 --- a/src/telegram.js +++ b/src/telegram.js @@ -211,6 +211,32 @@ class TelegramBot extends EventEmitter { } } + /** + * Fix 'entities' or 'caption_entities' or 'explanation_entities' parameter by making it JSON-serialized, as + * required by the Telegram Bot API + * @param {Object} obj Object; + * @private + * @see https://core.telegram.org/bots/api#sendmessage + * @see https://core.telegram.org/bots/api#copymessage + * @see https://core.telegram.org/bots/api#sendpoll + */ + _fixEntitiesField(obj) { + const entities = obj.entities; + const captionEntities = obj.caption_entities; + const explanationEntities = obj.explanation_entities; + if (entities && typeof entities !== 'string') { + obj.entities = stringify(entities); + } + + if (captionEntities && typeof captionEntities !== 'string') { + obj.caption_entities = stringify(captionEntities); + } + + if (explanationEntities && typeof explanationEntities !== 'string') { + obj.explanation_entities = stringify(explanationEntities); + } + } + /** * Make request against the API * @param {String} _path API endpoint @@ -229,6 +255,7 @@ class TelegramBot extends EventEmitter { if (options.form) { this._fixReplyMarkup(options.form); + this._fixEntitiesField(options.form); } if (options.qs) { this._fixReplyMarkup(options.qs);