Skip to content

Commit fe0bc3f

Browse files
committed
Bump version of tg libs
1 parent 562b911 commit fe0bc3f

File tree

4 files changed

+37
-18
lines changed

4 files changed

+37
-18
lines changed

pom.xml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
<management.port>8023</management.port>
2424
<exposed.ports>${server.port} ${management.port}</exposed.ports>
2525
<testcontainers.annotations.version>2.0.4</testcontainers.annotations.version>
26+
<org.telegram.telegrambots.version>9.0.0</org.telegram.telegrambots.version>
2627
</properties>
2728

2829
<dependencyManagement>
@@ -80,8 +81,18 @@
8081
<!--third party-->
8182
<dependency>
8283
<groupId>org.telegram</groupId>
83-
<artifactId>telegrambots-spring-boot-starter</artifactId>
84-
<version>6.9.7.1</version>
84+
<artifactId>telegrambots-springboot-longpolling-starter</artifactId>
85+
<version>${org.telegram.telegrambots.version}</version>
86+
</dependency>
87+
<dependency>
88+
<groupId>org.telegram</groupId>
89+
<artifactId>telegrambots-client</artifactId>
90+
<version>${org.telegram.telegrambots.version}</version>
91+
</dependency>
92+
<dependency>
93+
<groupId>org.telegram</groupId>
94+
<artifactId>telegrambots-meta</artifactId>
95+
<version>${org.telegram.telegrambots.version}</version>
8596
</dependency>
8697
<dependency>
8798
<groupId>javax.ws.rs</groupId>
Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
package dev.vality.alerting.tg.bot.config;
22

3+
import dev.vality.alerting.tg.bot.config.properties.AlertBotProperties;
34
import dev.vality.alerting.tg.bot.service.AlertBot;
45
import lombok.RequiredArgsConstructor;
6+
import org.springframework.boot.context.properties.EnableConfigurationProperties;
57
import org.springframework.context.annotation.Bean;
68
import org.springframework.context.annotation.Configuration;
7-
import org.telegram.telegrambots.meta.TelegramBotsApi;
8-
import org.telegram.telegrambots.updatesreceivers.DefaultBotSession;
9+
import org.telegram.telegrambots.client.okhttp.OkHttpTelegramClient;
10+
import org.telegram.telegrambots.meta.generics.TelegramClient;
911

1012
@Configuration
13+
@EnableConfigurationProperties(AlertBotProperties.class)
1114
@RequiredArgsConstructor
1215
public class AlertBotConfig {
1316

1417
private final AlertBot alertBot;
1518

1619
@Bean
17-
public TelegramBotsApi telegramBotsApi() throws Exception {
18-
TelegramBotsApi api = new TelegramBotsApi(DefaultBotSession.class);
19-
api.registerBot(alertBot);
20-
return api;
20+
public TelegramClient telegramClient(AlertBotProperties properties) {
21+
return new OkHttpTelegramClient(properties.getToken());
2122
}
2223
}

src/main/java/dev/vality/alerting/tg/bot/service/AlertBot.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,37 +6,40 @@
66
import lombok.extern.slf4j.Slf4j;
77
import org.springframework.scheduling.annotation.EnableScheduling;
88
import org.springframework.stereotype.Service;
9-
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
9+
import org.telegram.telegrambots.longpolling.starter.SpringLongPollingBot;
10+
import org.telegram.telegrambots.longpolling.util.LongPollingSingleThreadUpdateConsumer;
1011
import org.telegram.telegrambots.meta.api.methods.forum.CreateForumTopic;
1112
import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
12-
import org.telegram.telegrambots.meta.api.objects.Message;
1313
import org.telegram.telegrambots.meta.api.objects.Update;
14+
import org.telegram.telegrambots.meta.api.objects.message.Message;
1415
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
16+
import org.telegram.telegrambots.meta.generics.TelegramClient;
1517

1618
import java.util.*;
1719

1820
@Slf4j
1921
@Service
2022
@RequiredArgsConstructor
2123
@EnableScheduling
22-
public class AlertBot extends TelegramLongPollingBot {
24+
public class AlertBot implements SpringLongPollingBot, LongPollingSingleThreadUpdateConsumer {
2325

2426
private final AlertBotProperties properties;
27+
private final TelegramClient telegramClient;
2528
private static final Map<Long, List<String>> activeTopics = new HashMap<>();
2629
private static final Set<Long> waitingForTopicName = new HashSet<>();
2730

2831
@Override
29-
public String getBotUsername() {
30-
return properties.getName();
32+
public String getBotToken() {
33+
return properties.getToken();
3134
}
3235

3336
@Override
34-
public String getBotToken() {
35-
return properties.getToken();
37+
public LongPollingSingleThreadUpdateConsumer getUpdatesConsumer() {
38+
return this;
3639
}
3740

3841
@Override
39-
public void onUpdateReceived(Update update) {
42+
public void consume(Update update) {
4043
if (update.hasMessage() && update.getMessage().hasText()) {
4144

4245
log.debug("Получено сообщение: message={}, chatId={}, threadId={}, user=@{}, text='{}'",
@@ -98,7 +101,7 @@ private void createTopic(Long chatId, String topicName) {
98101
.name(topicName)
99102
.build();
100103

101-
Integer messageThreadId = execute(createForumTopic).getMessageThreadId();
104+
Integer messageThreadId = telegramClient.execute(createForumTopic).getMessageThreadId();
102105
// activeTopics.put(chatId, String.valueOf(messageThreadId));
103106

104107
// Добавляем топик в список, если у чата уже есть созданные топики
@@ -231,7 +234,7 @@ private void sendResponse(Long chatId, Integer threadId, String messageText, Str
231234
.build();
232235

233236
try {
234-
execute(message);
237+
telegramClient.execute(message);
235238
} catch (TelegramApiException e) {
236239
log.error("Ошибка при отправке сообщения", e);
237240
}

src/test/java/dev/vality/alerting/tg/bot/WebhookControllerTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.springframework.mock.web.MockHttpServletRequest;
1515
import org.springframework.test.context.TestPropertySource;
1616
import org.springframework.test.context.bean.override.mockito.MockitoBean;
17+
import org.telegram.telegrambots.meta.generics.TelegramClient;
1718

1819
import java.nio.charset.StandardCharsets;
1920

@@ -44,6 +45,9 @@ public class WebhookControllerTest {
4445
@MockitoBean
4546
AlertBotConfig alertBotConfig;
4647

48+
@MockitoBean
49+
private TelegramClient telegramClient;
50+
4751
String webhookJson = """
4852
{
4953
"status": "firing",

0 commit comments

Comments
 (0)