windkh / node-red-contrib-telegrambot

Telegram bot nodes for node-red.
Other
262 stars 116 forks source link

Add property caption_entities for case editMessageCaption,editMessageText,editMessageReplyMarkup #179

Closed temkagordin closed 3 years ago

temkagordin commented 3 years ago

Hi guys, when editing text, when you don't need to change the added tags, you can just pass the caption_entities parameter and it will apply to editing I could not configure the normal display of the code case "editMessageCaption": case"'editMessageText": case "editMessageReplyMarkup": if (this.hasContent(msg)) { if(msg.payload.caption_entities){ let test= ''; let type_start= ''; let type_end= ''; let last_pos = 0; let key = 1 for ( let param of msg.payload.caption_entities) { if(['b','strong','i','em','u','ins','s','strike','del','a','code','pre'].includes(param.type)){ type_start = '<'+param.type+'>'; type_end = '</'+param.type+'>'; if(last_pos > 0){ test += msg.payload.content.slice(last_pos,param.offset); } test+= type_start+msg.payload.content.slice(param.offset,param.offset+param.length)+type_end; last_pos = param.offset+param.length; } if(msg.payload.caption_entities.length === key){ test += msg.payload.content.slice(last_pos); } ++key } msg.payload.content = test } node.telegramBot[type](msg.payload.content, msg.payload.options).then(function (result) { msg.payload.content = result; msg.payload.sentMessageId = result.message_id; nodeSend(msg); if (nodeDone) { nodeDone(); } }); } break;

windkh commented 3 years ago

I am not sure if I understood what you wrote. Caption_entities can be passed as optional parameter. What is different in your code snipped?