From 4eef99092a8595cb3dac4fa39c91e6a63433da07 Mon Sep 17 00:00:00 2001 From: L_DelOff Date: Sat, 5 Aug 2023 17:21:44 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B0=D1=81=D1=82=D0=BE=D0=B9=D0=BA?= =?UTF-8?q?=D0=B0=20=D1=82=D0=B5=D0=BB=D0=B5=D0=B3=D1=80=D0=B0=D0=BC=20?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 12 +++++ .../ru/ldeloff/servermonitorbot/StartBot.java | 36 ++++++++++++++ .../servermonitorbot/model/TelegramBot.java | 47 +++++++++++++++++++ src/main/resources/application.yml | 5 ++ 4 files changed, 100 insertions(+) create mode 100644 src/main/java/ru/ldeloff/servermonitorbot/StartBot.java create mode 100644 src/main/java/ru/ldeloff/servermonitorbot/model/TelegramBot.java create mode 100644 src/main/resources/application.yml diff --git a/pom.xml b/pom.xml index e3ef3e0..8b2bf69 100644 --- a/pom.xml +++ b/pom.xml @@ -32,6 +32,18 @@ spring-boot-starter-test test + + org.springframework.boot + spring-boot-configuration-processor + true + + + org.telegram + telegrambots + 6.7.0 + + + diff --git a/src/main/java/ru/ldeloff/servermonitorbot/StartBot.java b/src/main/java/ru/ldeloff/servermonitorbot/StartBot.java new file mode 100644 index 0000000..53fad7e --- /dev/null +++ b/src/main/java/ru/ldeloff/servermonitorbot/StartBot.java @@ -0,0 +1,36 @@ +package ru.ldeloff.servermonitorbot; + +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.stereotype.Component; +import org.telegram.telegrambots.meta.TelegramBotsApi; +import org.telegram.telegrambots.meta.exceptions.TelegramApiException; +import org.telegram.telegrambots.updatesreceivers.DefaultBotSession; +import ru.ldeloff.servermonitorbot.model.TelegramBot; + +@Slf4j +@Component +@NoArgsConstructor +public class StartBot implements ApplicationRunner { + private TelegramBot telegramBot; + + @Autowired + public StartBot(TelegramBot telegramBot) { + this.telegramBot = telegramBot; + } + + @Override + public void run(ApplicationArguments args) { + try { + TelegramBotsApi botsApi = new TelegramBotsApi(DefaultBotSession.class); + botsApi.registerBot(telegramBot); + log.info("Бот запущен"); + } catch (TelegramApiException e) { + e.printStackTrace(); + log.error(e.getMessage()); + } + } +} diff --git a/src/main/java/ru/ldeloff/servermonitorbot/model/TelegramBot.java b/src/main/java/ru/ldeloff/servermonitorbot/model/TelegramBot.java new file mode 100644 index 0000000..14f6c4e --- /dev/null +++ b/src/main/java/ru/ldeloff/servermonitorbot/model/TelegramBot.java @@ -0,0 +1,47 @@ +package ru.ldeloff.servermonitorbot.model; + +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import org.telegram.telegrambots.bots.TelegramLongPollingBot; +import org.telegram.telegrambots.meta.api.methods.send.SendMessage; +import org.telegram.telegrambots.meta.api.objects.Update; +import org.telegram.telegrambots.meta.exceptions.TelegramApiException; + +@Component +@NoArgsConstructor +@AllArgsConstructor +public class TelegramBot extends TelegramLongPollingBot { + @Value("${bot.name}") + private String botUsername; + + @Value("${bot.token}") + private String botToken; + + @Override + public void onUpdateReceived(Update update) { + // We check if the update has a message and the message has text + if (update.hasMessage() && update.getMessage().hasText()) { + SendMessage message = new SendMessage(); // Create a SendMessage object with mandatory fields + message.setChatId(update.getMessage().getChatId().toString()); + message.setText(update.getMessage().getText()); + + try { + execute(message); // Call method to send the message + } catch (TelegramApiException e) { + e.printStackTrace(); + } + } + } + + @Override + public String getBotUsername() { + return botUsername; + } + + @Override + public String getBotToken() { + return botToken; + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..4529629 --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,5 @@ +bot: + name: "ServerMonitorBot" + token: "token" + +