From ec3a64db856aa711820188d8853952000cf75cef Mon Sep 17 00:00:00 2001 From: Neko Ayaka Date: Sat, 29 Mar 2025 16:47:57 +0800 Subject: [PATCH] fix(telegram-bot): message were all empty --- services/telegram-bot/src/bots/telegram/utils/message.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/services/telegram-bot/src/bots/telegram/utils/message.ts b/services/telegram-bot/src/bots/telegram/utils/message.ts index 1e0de845a..eafd6873d 100644 --- a/services/telegram-bot/src/bots/telegram/utils/message.ts +++ b/services/telegram-bot/src/bots/telegram/utils/message.ts @@ -17,7 +17,10 @@ export function parseMayStructuredMessage(responseText: string) { if (result) { logger.withField('text', JSON.stringify(responseText)).withField('result', result).log('Multiple messages detected') - return parse(result?.[0]) as ({ messages?: string[], reply_to_message_id?: string } | undefined) + const parsedResponse = parse(result?.[0]) as ({ messages?: string[], reply_to_message_id?: string } | undefined) + parsedResponse.messages = parsedResponse.messages?.filter(message => message.trim() !== '') + + return parsedResponse } return { messages: [responseText], reply_to_message_id: undefined } @@ -62,6 +65,10 @@ export async function sendMayStructuredMessage( // If we get here, the task wasn't cancelled, so we can send the response for (let i = 0; i < structuredMessage.messages.length; i++) { const item = structuredMessage.messages[i] + if (!item) { + state.logger.log(`Not sending message to ${chatId} - no messages to send`) + continue + } // Create cancellable typing and reply tasks await state.bot.api.sendChatAction(chatId, 'typing')