From ddb5df9254c34041e73c2d1575863c795cb819b4 Mon Sep 17 00:00:00 2001 From: Pavel Gnedov Date: Fri, 19 Jan 2024 19:50:25 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BA=D0=BE=D1=80=D0=BE=D1=89=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=BB=D0=B8=D0=BD=D0=BD=D1=8B=D1=85?= =?UTF-8?q?=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B9=20?= =?UTF-8?q?=D0=B2=20telegram=20=D0=B1=D0=BE=D1=82=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../current-issues-eccm.bot-handler.service.ts | 4 ++-- src/telegram-bot/telegram-bot.service.ts | 13 +++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/telegram-bot/handlers/current-issues-eccm.bot-handler.service.ts b/src/telegram-bot/handlers/current-issues-eccm.bot-handler.service.ts index e4228c0..e697391 100644 --- a/src/telegram-bot/handlers/current-issues-eccm.bot-handler.service.ts +++ b/src/telegram-bot/handlers/current-issues-eccm.bot-handler.service.ts @@ -7,7 +7,7 @@ import { CurrentIssuesEccmReportService, } from 'src/reports/current-issues-eccm.report.service'; import { UserMetaInfoService } from 'src/user-meta-info/user-meta-info.service'; -import { TelegramBotService } from '../telegram-bot.service'; +import { TelegramBotService, cutMessage } from '../telegram-bot.service'; import { TelegramBotHandlerInterface } from '../telegram.bot-handler.interface'; @Injectable() @@ -45,7 +45,7 @@ export class CurrentIssuesEccmBotHandlerService fields: CurrentIssuesEccmReport.Defaults.currentIssuesFields, }); this.logger.debug(`Current issues eccm report: ${report}`); - bot.sendMessage(msg.chat.id, report || 'empty report', { + bot.sendMessage(msg.chat.id, cutMessage(report) || 'empty report', { parse_mode: 'HTML', }); }); diff --git a/src/telegram-bot/telegram-bot.service.ts b/src/telegram-bot/telegram-bot.service.ts index 2254fa3..6065536 100644 --- a/src/telegram-bot/telegram-bot.service.ts +++ b/src/telegram-bot/telegram-bot.service.ts @@ -9,6 +9,15 @@ import { CurrentIssuesEccmBotHandlerService } from './handlers/current-issues-ec import { TelegramBotHandlerInterface } from './telegram.bot-handler.interface'; import { SetDailyEccmUserCommentBotHandlerService } from './handlers/set-daily-eccm-user-comment.bot-handler.service'; +const MAX_TELEGRAM_MESSAGE_LENGTH = 4000; + +export function cutMessage(msg: string): string { + if (msg.length > MAX_TELEGRAM_MESSAGE_LENGTH) { + return msg.slice(0, 4000) + '...'; + } + return msg; +} + @Injectable() export class TelegramBotService { private logger = new Logger(TelegramBotService.name); @@ -94,7 +103,7 @@ export class TelegramBotService { `message = ${helpMessage}`, ); try { - this.bot.sendMessage(msg.chat.id, helpMessage); + this.bot.sendMessage(msg.chat.id, cutMessage(helpMessage)); } catch (ex) { this.logger.error(`Error at send help message - ${ex?.message}`); } @@ -111,7 +120,7 @@ export class TelegramBotService { ); if (!userMetaInfo) return false; const chatId = userMetaInfo.telegram_chat_id; - await this.bot.sendMessage(chatId, msg, options); + await this.bot.sendMessage(chatId, cutMessage(msg), options); this.logger.debug( `Sent message for redmineUserId = ${redmineId}, ` + `telegramChatId = ${chatId}, ` +