Skip to content

Commit 68825db

Browse files
authored
Bump version of tg libs (#7)
* Bump version of tg libs * Bump version of tg libs * Bump version of tg libs * Fix test * Fix test * Added properties on application.yml * Fix application.yml
1 parent 562b911 commit 68825db

File tree

5 files changed

+50
-23
lines changed

5 files changed

+50
-23
lines changed

pom.xml

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
<version>3.0.9</version>
1111
</parent>
1212

13+
<name>alerting-tg-bot</name>
1314
<artifactId>alerting-tg-bot</artifactId>
1415
<version>1.0.0</version>
1516

@@ -23,6 +24,7 @@
2324
<management.port>8023</management.port>
2425
<exposed.ports>${server.port} ${management.port}</exposed.ports>
2526
<testcontainers.annotations.version>2.0.4</testcontainers.annotations.version>
27+
<org.telegram.telegrambots.version>9.0.0</org.telegram.telegrambots.version>
2628
</properties>
2729

2830
<dependencyManagement>
@@ -80,8 +82,18 @@
8082
<!--third party-->
8183
<dependency>
8284
<groupId>org.telegram</groupId>
83-
<artifactId>telegrambots-spring-boot-starter</artifactId>
84-
<version>6.9.7.1</version>
85+
<artifactId>telegrambots-springboot-longpolling-starter</artifactId>
86+
<version>${org.telegram.telegrambots.version}</version>
87+
</dependency>
88+
<dependency>
89+
<groupId>org.telegram</groupId>
90+
<artifactId>telegrambots-client</artifactId>
91+
<version>${org.telegram.telegrambots.version}</version>
92+
</dependency>
93+
<dependency>
94+
<groupId>org.telegram</groupId>
95+
<artifactId>telegrambots-meta</artifactId>
96+
<version>${org.telegram.telegrambots.version}</version>
8597
</dependency>
8698
<dependency>
8799
<groupId>javax.ws.rs</groupId>
Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,18 @@
11
package dev.vality.alerting.tg.bot.config;
22

3-
import dev.vality.alerting.tg.bot.service.AlertBot;
3+
import dev.vality.alerting.tg.bot.config.properties.AlertBotProperties;
44
import lombok.RequiredArgsConstructor;
55
import org.springframework.context.annotation.Bean;
66
import org.springframework.context.annotation.Configuration;
7-
import org.telegram.telegrambots.meta.TelegramBotsApi;
8-
import org.telegram.telegrambots.updatesreceivers.DefaultBotSession;
7+
import org.telegram.telegrambots.client.okhttp.OkHttpTelegramClient;
8+
import org.telegram.telegrambots.meta.generics.TelegramClient;
99

1010
@Configuration
1111
@RequiredArgsConstructor
1212
public class AlertBotConfig {
1313

14-
private final AlertBot alertBot;
15-
1614
@Bean
17-
public TelegramBotsApi telegramBotsApi() throws Exception {
18-
TelegramBotsApi api = new TelegramBotsApi(DefaultBotSession.class);
19-
api.registerBot(alertBot);
20-
return api;
15+
public TelegramClient telegramClient(AlertBotProperties properties) {
16+
return new OkHttpTelegramClient(properties.getToken());
2117
}
2218
}

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/main/resources/application.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,14 @@ spring:
3131
enabled: always
3232
main:
3333
allow-bean-definition-overriding: true
34+
cloud:
35+
vault:
36+
kv:
37+
enabled: true
38+
uri: https://vault.vality.dev:443
39+
authentication: TOKEN
40+
scheme: http
41+
token: "123456"
3442

3543
info:
3644
version: '@project.version@'
@@ -46,3 +54,7 @@ bot:
4654
altpay-conversion: ${topicAltpayConversion}
4755
failed-machines: ${topicFailedMachines}
4856
pending-payments: ${topicPendingPayments}
57+
58+
alertmanager:
59+
webhook:
60+
url: http://localhost:8082/alertmanager/webhook

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package dev.vality.alerting.tg.bot;
22

33
import com.fasterxml.jackson.databind.ObjectMapper;
4-
import dev.vality.alerting.tg.bot.config.AlertBotConfig;
54
import dev.vality.alerting.tg.bot.config.properties.AlertmanagerWebhookProperties;
65
import dev.vality.alerting.tg.bot.controller.WebhookController;
76
import dev.vality.alerting.tg.bot.model.Webhook;
@@ -14,6 +13,8 @@
1413
import org.springframework.mock.web.MockHttpServletRequest;
1514
import org.springframework.test.context.TestPropertySource;
1615
import org.springframework.test.context.bean.override.mockito.MockitoBean;
16+
import org.telegram.telegrambots.longpolling.starter.TelegramBotInitializer;
17+
import org.telegram.telegrambots.meta.generics.TelegramClient;
1718

1819
import java.nio.charset.StandardCharsets;
1920

@@ -42,7 +43,10 @@ public class WebhookControllerTest {
4243
AlertBot alertBot;
4344

4445
@MockitoBean
45-
AlertBotConfig alertBotConfig;
46+
TelegramClient telegramClient;
47+
48+
@MockitoBean
49+
TelegramBotInitializer telegramBotInitializer;
4650

4751
String webhookJson = """
4852
{

0 commit comments

Comments
 (0)