From 0e1b44a920dd7127222bf7cc640158f2d3a4c572 Mon Sep 17 00:00:00 2001 From: Ruslan Penkrat Date: Sat, 28 Mar 2026 18:45:17 +0300 Subject: [PATCH] Update Telegram Bot API version and enhance message handling - Upgrade `java-telegram-bot-api` dependency from version 7.1.1 to 9.4.1 in `pom.xml`. - Modify `sendFile` method in `BotResponseImpl` to log the sent message ID. - Replace deprecated `disableWebPagePreview` with `linkPreviewOptions` in `editMessage` and `edit` methods. - Refactor `createFromScreen` and related methods in `SendMethodUtils` to handle chat ID as a long type for better type safety. --- stbf-pengrad/pom.xml | 2 +- .../stbf/impl/pengrad/BotResponseImpl.java | 11 +++++++--- .../stbf/impl/pengrad/SendMethodUtils.java | 22 +++++++++++++------ 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/stbf-pengrad/pom.xml b/stbf-pengrad/pom.xml index 651d987..d928151 100644 --- a/stbf-pengrad/pom.xml +++ b/stbf-pengrad/pom.xml @@ -21,7 +21,7 @@ com.github.pengrad java-telegram-bot-api - 7.1.1 + 9.4.1 diff --git a/stbf-pengrad/src/main/java/ru/penkrat/stbf/impl/pengrad/BotResponseImpl.java b/stbf-pengrad/src/main/java/ru/penkrat/stbf/impl/pengrad/BotResponseImpl.java index ad0078c..f1600c8 100644 --- a/stbf-pengrad/src/main/java/ru/penkrat/stbf/impl/pengrad/BotResponseImpl.java +++ b/stbf-pengrad/src/main/java/ru/penkrat/stbf/impl/pengrad/BotResponseImpl.java @@ -1,6 +1,8 @@ package ru.penkrat.stbf.impl.pengrad; import com.pengrad.telegrambot.TelegramBot; +import com.pengrad.telegrambot.model.LinkPreviewOptions; +import com.pengrad.telegrambot.model.Message; import com.pengrad.telegrambot.model.Update; import com.pengrad.telegrambot.model.request.InlineKeyboardButton; import com.pengrad.telegrambot.model.request.InlineKeyboardMarkup; @@ -58,7 +60,10 @@ public class BotResponseImpl implements BotResponse { @Override public void sendFile(String filename, byte[] data) { - telegramBot.execute(new SendDocument(chatId(), data).fileName(filename)); + Message message = telegramBot.execute(new SendDocument((long) chatId(), data) + .fileName(filename) + ).message(); + log.debug("Send file message = {}", message.messageId()); } @Override @@ -66,14 +71,14 @@ public class BotResponseImpl implements BotResponse { public void editMessage(String text) { telegramBot.execute(new EditMessageText(chatId(), messageId(), text) .parseMode(ParseMode.HTML) - .disableWebPagePreview(true)); + .linkPreviewOptions(new LinkPreviewOptions().isDisabled(true))); } @Override public void edit(Screen screen) { EditMessageText editMessage = new EditMessageText(chatId(), messageId(), screen.getText()) .parseMode(screen.getScreenProperties().isParseModeHtml() ? ParseMode.HTML : ParseMode.MarkdownV2) - .disableWebPagePreview(screen.getScreenProperties().isDisableWebPagePreview()); + .linkPreviewOptions(new LinkPreviewOptions().isDisabled(screen.getScreenProperties().isDisableWebPagePreview())); if (screen.getKeyboard() instanceof KeyboardImpl) { KeyboardImpl kk = (KeyboardImpl) screen.getKeyboard(); diff --git a/stbf-pengrad/src/main/java/ru/penkrat/stbf/impl/pengrad/SendMethodUtils.java b/stbf-pengrad/src/main/java/ru/penkrat/stbf/impl/pengrad/SendMethodUtils.java index be67852..b585816 100644 --- a/stbf-pengrad/src/main/java/ru/penkrat/stbf/impl/pengrad/SendMethodUtils.java +++ b/stbf-pengrad/src/main/java/ru/penkrat/stbf/impl/pengrad/SendMethodUtils.java @@ -1,5 +1,6 @@ package ru.penkrat.stbf.impl.pengrad; +import com.pengrad.telegrambot.model.LinkPreviewOptions; import com.pengrad.telegrambot.model.Message; import com.pengrad.telegrambot.model.request.ParseMode; import com.pengrad.telegrambot.request.AbstractSendRequest; @@ -23,7 +24,8 @@ import java.util.function.Consumer; @UtilityClass class SendMethodUtils { - public AbstractSendRequest createFromScreen(@NonNull Object chatId, @NonNull Screen screen) { + public AbstractSendRequest createFromScreen(@NonNull Object chatIdObj, @NonNull Screen screen) { + long chatId = chatIdObj instanceof Long ? (Long) chatIdObj : 0; if (isMedia(screen)) { final Media media = screen.getMedia(); switch (media.getMediaType()) { @@ -77,7 +79,8 @@ class SendMethodUtils { return new SendMessage(chatId, screen.getText().trim()) .parseMode(screen.getScreenProperties().isParseModeHtml() ? ParseMode.HTML : ParseMode.MarkdownV2) - .disableWebPagePreview(screen.getScreenProperties().isDisableWebPagePreview()) + .linkPreviewOptions(new LinkPreviewOptions().isDisabled(screen.getScreenProperties().isDisableWebPagePreview())) + // .disableWebPagePreview(screen.getScreenProperties().isDisableWebPagePreview()) .disableNotification(screen.getScreenProperties().isDisableNotification()); } @@ -102,7 +105,8 @@ class SendMethodUtils { } @NotNull - private SendVoice createSendVoice(@NotNull Object chatId, Media media) { + private SendVoice createSendVoice(@NotNull Object chatIdObj, Media media) { + long chatId = chatIdObj instanceof Long ? (Long) chatIdObj : 0; if (media.getData() != null) { return new SendVoice(chatId, media.getData().get()); } @@ -113,7 +117,8 @@ class SendMethodUtils { } @NotNull - private SendVideo createSendVideo(@NotNull Object chatId, Media media) { + private SendVideo createSendVideo(@NotNull Object chatIdObj, Media media) { + long chatId = chatIdObj instanceof Long ? (Long) chatIdObj : 0; if (media.getData() != null) { return new SendVideo(chatId, media.getData().get()); } @@ -124,7 +129,8 @@ class SendMethodUtils { } @NotNull - private SendAudio createSendAudio(@NotNull Object chatId, Media media) { + private SendAudio createSendAudio(@NotNull Object chatIdObj, Media media) { + long chatId = chatIdObj instanceof Long ? (Long) chatIdObj : 0; if (media.getData() != null) { return new SendAudio(chatId, media.getData().get()); } @@ -135,7 +141,8 @@ class SendMethodUtils { } @NotNull - private SendAnimation createSendAnimation(@NotNull Object chatId, Media media) { + private SendAnimation createSendAnimation(@NotNull Object chatIdObj, Media media) { + long chatId = chatIdObj instanceof Long ? (Long) chatIdObj : 0; if (media.getData() != null) { return new SendAnimation(chatId, media.getData().get()); } @@ -146,7 +153,8 @@ class SendMethodUtils { } @NotNull - private SendPhoto createSendPhoto(@NotNull Object chatId, Media media) { + private SendPhoto createSendPhoto(@NotNull Object chatIdObj, Media media) { + long chatId = chatIdObj instanceof Long ? (Long) chatIdObj : 0; if (media.getData() != null) { return new SendPhoto(chatId, media.getData().get()); }