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" + +