diff --git a/pom.xml b/pom.xml
index fbc64ec..10966a9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -47,18 +47,8 @@
jsch
0.1.55
-
- org.springframework.boot
- spring-boot-starter-data-jpa
-
-
- org.liquibase
- liquibase-core
-
-
- org.postgresql
- postgresql
-
+
+
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/config/SshConfig.java b/src/main/java/ru/ldeloff/servermonitorbot/config/SshConfig.java
index bac7aed..deb3255 100644
--- a/src/main/java/ru/ldeloff/servermonitorbot/config/SshConfig.java
+++ b/src/main/java/ru/ldeloff/servermonitorbot/config/SshConfig.java
@@ -1,8 +1,5 @@
package ru.ldeloff.servermonitorbot.config;
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import ru.ldeloff.servermonitorbot.model.SshServer;
@@ -11,8 +8,14 @@ import java.util.List;
@Configuration
@ConfigurationProperties(prefix = "ssh")
-@Getter
-@Setter
public class SshConfig {
private List servers;
+
+ public List getServers() {
+ return servers;
+ }
+
+ public void setServers(List servers) {
+ this.servers = servers;
+ }
}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/config/UserConfig.java b/src/main/java/ru/ldeloff/servermonitorbot/config/UserConfig.java
deleted file mode 100644
index 9c9e51d..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/config/UserConfig.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package ru.ldeloff.servermonitorbot.config;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.Configuration;
-import ru.ldeloff.servermonitorbot.model.dto.InitUserDto;
-
-import java.util.List;
-
-@Configuration
-@ConfigurationProperties(prefix = "bot")
-@Getter
-@Setter
-public class UserConfig {
- private List users;
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/controller/TelegramBotController.java b/src/main/java/ru/ldeloff/servermonitorbot/controller/TelegramBotController.java
deleted file mode 100644
index 4ec8c43..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/controller/TelegramBotController.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package ru.ldeloff.servermonitorbot.controller;
-
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import org.telegram.telegrambots.bots.TelegramLongPollingBot;
-import org.telegram.telegrambots.meta.api.objects.Update;
-import ru.ldeloff.servermonitorbot.model.TelegramBot;
-import ru.ldeloff.servermonitorbot.repository.SshRepository;
-import ru.ldeloff.servermonitorbot.service.command.FirstUseCommand;
-import ru.ldeloff.servermonitorbot.service.command.GetStatusSessions;
-import ru.ldeloff.servermonitorbot.service.command.SwitchToMainMenu;
-import ru.ldeloff.servermonitorbot.service.command.cputemp.CpuTempAggregateCommand;
-import ru.ldeloff.servermonitorbot.service.command.cputemp.CpuTempCommand;
-import ru.ldeloff.servermonitorbot.service.command.hddtemp.HddTempAggregateCommand;
-import ru.ldeloff.servermonitorbot.service.command.hddtemp.HddTempCommand;
-import ru.ldeloff.servermonitorbot.service.command.uname.UnameAggregateCommand;
-import ru.ldeloff.servermonitorbot.service.command.uname.UnameCommand;
-
-@Service
-@Slf4j
-@RequiredArgsConstructor
-public class TelegramBotController extends TelegramLongPollingBot {
- final TelegramBot telegramBot;
- final SshRepository sshRepository;
-
- final FirstUseCommand firstUseCommand;
- final GetStatusSessions getStatusSessions;
- final UnameAggregateCommand unameAggregateCommand;
- final SwitchToMainMenu switchToMainMenu;
- final UnameCommand unameCommand;
- final CpuTempAggregateCommand cpuTempAggregateCommand;
- final CpuTempCommand cpuTempCommand;
- final HddTempAggregateCommand hddTempAggregateCommand;
- final HddTempCommand hddTempCommand;
-
- @Override
- public void onUpdateReceived(Update update) {
- if (update.hasMessage()) {
- if (update.getMessage().hasText()) {
- String messageText = update.getMessage().getText();
- switch (messageText) {
- case "/start" -> {
- firstUseCommand.execute(update, this);
- }
- case "Статус" -> {
- getStatusSessions.execute(update, this);
- }
- case "uname" -> {
- unameAggregateCommand.execute(update, this);
- }
- case "CPU.temp" -> {
- cpuTempAggregateCommand.execute(update, this);
- }
- case "HDD.temp" -> {
- hddTempAggregateCommand.execute(update, this);
- }
- default -> {
- switchToMainMenu.execute(update, this);
- }
- }
- }
- } else if (update.hasCallbackQuery()) {
- String [] tags = update.getCallbackQuery().getData().split(":");
- if (tags.length > 1) {
- switch (tags[0]) {
- case "uname" -> {
- unameCommand.execute(update, this);
- }
- case "CPU.temp" -> {
- cpuTempCommand.execute(update, this);
- }
- case "HDD.temp" -> {
- hddTempCommand.execute(update, this);
- }
- default -> {
- switchToMainMenu.execute(update, this);
- }
- }
- } else {
- switchToMainMenu.execute(update, this);
- }
- }
- }
- @Override
- public String getBotUsername() {
- return telegramBot.getBotUsername();
- }
- @Override
- public String getBotToken() {
- return telegramBot.getBotToken();
- }
- @Override
- public void onClosing() {
- super.onClosing();
- sshRepository.disconnectSessions();
- }
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/init/AddUsers.java b/src/main/java/ru/ldeloff/servermonitorbot/init/AddUsers.java
deleted file mode 100644
index 560d72e..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/init/AddUsers.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package ru.ldeloff.servermonitorbot.init;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.ApplicationArguments;
-import org.springframework.boot.ApplicationRunner;
-import org.springframework.stereotype.Component;
-import ru.ldeloff.servermonitorbot.config.UserConfig;
-import ru.ldeloff.servermonitorbot.mapper.UserMapper;
-import ru.ldeloff.servermonitorbot.model.User;
-import ru.ldeloff.servermonitorbot.model.dto.InitUserDto;
-import ru.ldeloff.servermonitorbot.service.user.UserService;
-
-import java.util.List;
-
-@Component
-public class AddUsers implements ApplicationRunner {
- final List initUsers;
- final UserService userService;
- final UserMapper userMapper;
-
- @Autowired
- public AddUsers(UserConfig userConfig, UserService userService, UserMapper userMapper) {
- this.initUsers = userConfig.getUsers();
- this.userService = userService;
- this.userMapper = userMapper;
- }
-
- @Override
- public void run(ApplicationArguments args) throws Exception {
- initUsers.forEach(initUserDto -> {
- User user = userService.saveOrUpdateUser(userMapper.dtoToUser(initUserDto));
- });
- }
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/init/SshConnect.java b/src/main/java/ru/ldeloff/servermonitorbot/init/SshConnect.java
index d429b0e..7aae5d7 100644
--- a/src/main/java/ru/ldeloff/servermonitorbot/init/SshConnect.java
+++ b/src/main/java/ru/ldeloff/servermonitorbot/init/SshConnect.java
@@ -3,18 +3,18 @@ package ru.ldeloff.servermonitorbot.init;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
-import ru.ldeloff.servermonitorbot.repository.SshRepository;
+import ru.ldeloff.servermonitorbot.service.SshService;
@Component
public class SshConnect implements ApplicationRunner {
- final SshRepository sshRepository;
+ final SshService sshService;
- public SshConnect(SshRepository sshRepository) {
- this.sshRepository = sshRepository;
+ public SshConnect(SshService sshService) {
+ this.sshService = sshService;
}
@Override
public void run(ApplicationArguments args) throws Exception {
- sshRepository.connectToAllServer();
+ sshService.connectToAllServer();
}
}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/init/StartBot.java b/src/main/java/ru/ldeloff/servermonitorbot/init/StartBot.java
index 5530238..c97bc49 100644
--- a/src/main/java/ru/ldeloff/servermonitorbot/init/StartBot.java
+++ b/src/main/java/ru/ldeloff/servermonitorbot/init/StartBot.java
@@ -9,16 +9,17 @@ 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.controller.TelegramBotController;
+import ru.ldeloff.servermonitorbot.model.TelegramBot;
+import ru.ldeloff.servermonitorbot.service.TelegramBotService;
@Slf4j
@Component
@NoArgsConstructor
public class StartBot implements ApplicationRunner {
- private TelegramBotController telegramBot;
+ private TelegramBotService telegramBot;
@Autowired
- public StartBot(TelegramBotController telegramBot) {
+ public StartBot(TelegramBotService telegramBot) {
this.telegramBot = telegramBot;
}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/mapper/UserMapper.java b/src/main/java/ru/ldeloff/servermonitorbot/mapper/UserMapper.java
deleted file mode 100644
index aa7811a..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/mapper/UserMapper.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package ru.ldeloff.servermonitorbot.mapper;
-
-import org.springframework.stereotype.Component;
-import ru.ldeloff.servermonitorbot.model.User;
-import ru.ldeloff.servermonitorbot.model.dto.InitUserDto;
-import ru.ldeloff.servermonitorbot.service.role.RoleService;
-
-@Component
-public class UserMapper {
- final RoleService roleService;
-
- public UserMapper(RoleService roleService) {
- this.roleService = roleService;
- }
-
- public User dtoToUser(InitUserDto initUserDto) {
- User user = new User();
- user.setTelegramId(initUserDto.getTelegramId());
- user.setRole(roleService.findRoleByName(initUserDto.getRole()));
- return user;
- }
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/model/Command.java b/src/main/java/ru/ldeloff/servermonitorbot/model/Command.java
deleted file mode 100644
index 936f89b..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/model/Command.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package ru.ldeloff.servermonitorbot.model;
-
-import jakarta.validation.constraints.Min;
-import jakarta.validation.constraints.NotNull;
-import lombok.Getter;
-import lombok.Setter;
-
-@Getter
-@Setter
-public class Command {
- @NotNull
- private String command;
- @NotNull
- @Min(100)
- private int timeout;
- @NotNull
- private SshServer sshServer;
- private String response;
-
- public Command(String command, int timeout, SshServer sshServer) {
- this.command = command;
- this.timeout = timeout;
- this.sshServer = sshServer;
- }
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/model/Role.java b/src/main/java/ru/ldeloff/servermonitorbot/model/Role.java
deleted file mode 100644
index d6f800d..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/model/Role.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package ru.ldeloff.servermonitorbot.model;
-
-import jakarta.persistence.*;
-import lombok.Data;
-
-@Entity
-@Data
-@Table(name = "roles")
-public class Role {
- @Id
- @Column(name = "id")
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private long id;
-
- @Column(name = "name")
- private String name;
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/model/User.java b/src/main/java/ru/ldeloff/servermonitorbot/model/User.java
deleted file mode 100644
index a32c391..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/model/User.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package ru.ldeloff.servermonitorbot.model;
-
-import jakarta.persistence.*;
-import lombok.Data;
-
-@Entity
-@Data
-@Table(name = "users")
-public class User {
- @Id
- @Column(name = "id")
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Long id;
-
- @Column(name = "telegram_id")
- private Long telegramId;
-
- @ManyToOne
- @JoinColumn(name = "role_id")
- private Role role;
-
- @Transient
- private String login;
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/model/dto/InitUserDto.java b/src/main/java/ru/ldeloff/servermonitorbot/model/dto/InitUserDto.java
deleted file mode 100644
index a18efdf..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/model/dto/InitUserDto.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package ru.ldeloff.servermonitorbot.model.dto;
-
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-import org.springframework.stereotype.Component;
-
-@Data
-@Component
-public class InitUserDto {
- @NotNull
- private long telegramId;
- @NotNull
- private String role;
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/repository/RoleRepository.java b/src/main/java/ru/ldeloff/servermonitorbot/repository/RoleRepository.java
deleted file mode 100644
index 4bb81ec..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/repository/RoleRepository.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package ru.ldeloff.servermonitorbot.repository;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-import ru.ldeloff.servermonitorbot.model.Role;
-
-import java.util.Optional;
-
-@Repository
-public interface RoleRepository extends JpaRepository {
- Optional findRoleByName(String name);
- Optional findRoleById(Long id);
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/repository/UserRepository.java b/src/main/java/ru/ldeloff/servermonitorbot/repository/UserRepository.java
deleted file mode 100644
index ceaacd3..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/repository/UserRepository.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package ru.ldeloff.servermonitorbot.repository;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-import ru.ldeloff.servermonitorbot.model.User;
-
-@Repository
-public interface UserRepository extends JpaRepository {
- User getByTelegramId(long id);
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/repository/SshRepository.java b/src/main/java/ru/ldeloff/servermonitorbot/service/SshService.java
similarity index 70%
rename from src/main/java/ru/ldeloff/servermonitorbot/repository/SshRepository.java
rename to src/main/java/ru/ldeloff/servermonitorbot/service/SshService.java
index c2821d4..32c11dd 100644
--- a/src/main/java/ru/ldeloff/servermonitorbot/repository/SshRepository.java
+++ b/src/main/java/ru/ldeloff/servermonitorbot/service/SshService.java
@@ -1,4 +1,4 @@
-package ru.ldeloff.servermonitorbot.repository;
+package ru.ldeloff.servermonitorbot.service;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
@@ -7,10 +7,10 @@ import ru.ldeloff.servermonitorbot.model.SshServer;
import java.util.List;
-public interface SshRepository {
+
+public interface SshService {
void connectToAllServer();
Session connectToServer(SshServer sshServer) throws JSchException;
void disconnectSessions();
- String getStatusSessions();
- List getSshServers();
+ SendMessage getStatusSessions(Long chatId);
}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/repository/SshRepositoryImpl.java b/src/main/java/ru/ldeloff/servermonitorbot/service/SshServiceImpl.java
similarity index 73%
rename from src/main/java/ru/ldeloff/servermonitorbot/repository/SshRepositoryImpl.java
rename to src/main/java/ru/ldeloff/servermonitorbot/service/SshServiceImpl.java
index 8210141..0580f9f 100644
--- a/src/main/java/ru/ldeloff/servermonitorbot/repository/SshRepositoryImpl.java
+++ b/src/main/java/ru/ldeloff/servermonitorbot/service/SshServiceImpl.java
@@ -1,27 +1,26 @@
-package ru.ldeloff.servermonitorbot.repository;
+package ru.ldeloff.servermonitorbot.service;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Repository;
+import org.springframework.stereotype.Service;
import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
import ru.ldeloff.servermonitorbot.config.SshConfig;
import ru.ldeloff.servermonitorbot.model.SshServer;
import java.util.ArrayList;
import java.util.List;
-import java.util.Objects;
@Slf4j
-@Repository
-public class SshRepositoryImpl implements SshRepository {
+@Service
+public class SshServiceImpl implements SshService{
private final List sshServers;
@Autowired
- public SshRepositoryImpl(SshConfig sshConfig) {
+ public SshServiceImpl(SshConfig sshConfig) {
this.sshServers = sshConfig.getServers();
}
@@ -61,28 +60,17 @@ public class SshRepositoryImpl implements SshRepository {
}
@Override
- public String getStatusSessions() {
+ public SendMessage getStatusSessions(Long chatId) {
StringBuilder text = new StringBuilder("Статус соединения: \n");
sshServers.forEach(server -> {
text.append(server.getName())
.append(": ")
- .append(checkStatusServer(server))
+ .append(server.getSession().isConnected() ? "OK" : "отключён")
.append("\n");
});
- return String.valueOf(text);
+ SendMessage message = new SendMessage();
+ message.setText(String.valueOf(text));
+ message.setChatId(chatId);
+ return message;
}
-
- @Override
- public List getSshServers() {
- return sshServers;
- }
-
- private String checkStatusServer(SshServer server) {
- if (Objects.isNull(server.getSession())) {
- return "нет соединения";
- } else {
- return server.getSession().isConnected() ? "OK" : "отключён";
- }
- }
-
}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/TelegramBotService.java b/src/main/java/ru/ldeloff/servermonitorbot/service/TelegramBotService.java
new file mode 100644
index 0000000..5837580
--- /dev/null
+++ b/src/main/java/ru/ldeloff/servermonitorbot/service/TelegramBotService.java
@@ -0,0 +1,92 @@
+package ru.ldeloff.servermonitorbot.service;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+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;
+import ru.ldeloff.servermonitorbot.model.TelegramBot;
+import ru.ldeloff.servermonitorbot.util.TelegramBotMenu;
+
+@Service
+@Slf4j
+public class TelegramBotService extends TelegramLongPollingBot {
+
+ final TelegramBot telegramBot;
+ final SshService sshService;
+ final TelegramBotMenu telegramBotMenu;
+
+
+ @Autowired
+ public TelegramBotService(TelegramBot telegramBot, SshService sshService, TelegramBotMenu telegramBotMenu) {
+ this.telegramBot = telegramBot;
+ this.sshService = sshService;
+ this.telegramBotMenu = telegramBotMenu;
+ }
+
+ @Override
+ public void onUpdateReceived(Update update) {
+ if (update.hasMessage()) {
+ if (update.getMessage().hasText()) {
+ SendMessage message = new SendMessage();
+ String messageText = update.getMessage().getText();
+ long chatId = update.getMessage().getChatId();
+ switch (messageText) {
+ case "/start":
+ message.setText("Привет: " + update.getMessage().getChat().getUserName());
+ message.setChatId(chatId);
+ message.setReplyMarkup(telegramBotMenu.initKeyboard());
+ sendMessage(message);
+ log.info("Получена команда /start");
+ break;
+ case "Статус":
+ sendMessage(sshService.getStatusSessions(chatId));
+ log.info("Получена команда 'Статус'");
+ break;
+ default:
+ message.setText("unknown command:" + messageText);
+ message.setChatId(chatId);
+ message.setReplyMarkup(telegramBotMenu.initKeyboard());
+ sendMessage(message);
+ log.warn("Неизвестная команда:" + messageText);
+ }
+ }
+ } else if (update.hasCallbackQuery()) {
+ try {
+ SendMessage message = new SendMessage();
+ message.setText(update.getCallbackQuery().getData());
+ message.setChatId(update.getCallbackQuery().getMessage().getChatId());
+ execute(message);
+ } catch (TelegramApiException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ private void sendMessage(SendMessage message) {
+ try {
+ execute(message);
+ } catch (TelegramApiException e) {
+ e.printStackTrace();
+ log.warn(e.getMessage());
+ }
+ }
+
+ @Override
+ public String getBotUsername() {
+ return telegramBot.getBotUsername();
+ }
+
+ @Override
+ public String getBotToken() {
+ return telegramBot.getBotToken();
+ }
+
+ @Override
+ public void onClosing() {
+ super.onClosing();
+ sshService.disconnectSessions();
+ }
+}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/command/CommandTemplate.java b/src/main/java/ru/ldeloff/servermonitorbot/service/command/CommandTemplate.java
deleted file mode 100644
index 0f178d7..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/service/command/CommandTemplate.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package ru.ldeloff.servermonitorbot.service.command;
-
-import lombok.Data;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
-import org.telegram.telegrambots.meta.api.objects.Update;
-import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
-import ru.ldeloff.servermonitorbot.controller.TelegramBotController;
-import ru.ldeloff.servermonitorbot.model.User;
-import ru.ldeloff.servermonitorbot.service.role.RoleService;
-import ru.ldeloff.servermonitorbot.service.user.UserService;
-
-@Data
-@Slf4j
-@RequiredArgsConstructor
-public abstract class CommandTemplate {
- final UserService userService;
- final RoleService roleService;
- long expectedRole = 2L;
- public abstract SendMessage actionForAuth(User user, SendMessage message);
-
- public SendMessage actionForNotAuth(User user, SendMessage message) {
- message.setText("У пользователя " + user.getLogin() + " (" + user.getTelegramId()
- + ") недостаточно прав для выполнения этой команды");
- return message;
- }
- public void execute(Update update, TelegramBotController bot) {
- User user = getUser(update);
- String message = getMessage(update);
- SendMessage answer = new SendMessage();
- answer.setChatId(user.getTelegramId());
- answer.setText(message);
- if (user.getRole().getId() <= expectedRole) {
- logSuccess(user, message);
- sendMessage(actionForAuth(user, answer), bot);
- } else {
- logNotAuth(user, message);
- sendMessage(actionForNotAuth(user, answer), bot);
- }
- }
- protected void logSuccess(User user, String message) {
- log.info("Получена команда '" + message + "' от " + user.getLogin()
- + " (" + user.getTelegramId() + "). OK");
- }
- protected void logNotAuth(User user, String message) {
- log.warn("Получена команда '" + message + "' от " + user.getLogin()
- + " (" + user.getTelegramId() + "). Нет прав");
- }
- private User getUser(Update update) {
- long id = -1L;
- String login = null;
- if (update.hasMessage()) {
- id = update.getMessage().getChat().getId();
- login = update.getMessage().getChat().getUserName();
- } else if (update.hasCallbackQuery()) {
- id = update.getCallbackQuery().getMessage().getChat().getId();
- login = update.getCallbackQuery().getMessage().getChat().getUserName();
- }
- User user = userService.getByTelegramId(id);
- if (user == null) {
- user = new User();
- user.setTelegramId(id);
- user.setRole(roleService.findRoleById(3L));
- }
- user.setLogin(login);
- return user;
- }
-
- private String getMessage(Update update) {
- if (update.hasMessage()) {
- return update.getMessage().getText();
- } else if (update.hasCallbackQuery()) {
- return update.getCallbackQuery().getData();
- }
- return "";
- }
-
- private void sendMessage(SendMessage message, TelegramBotController bot) {
- try {
- bot.execute(message);
- } catch (TelegramApiException e) {
- e.printStackTrace();
- log.warn(e.getMessage());
- }
- }
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/command/FirstUseCommand.java b/src/main/java/ru/ldeloff/servermonitorbot/service/command/FirstUseCommand.java
deleted file mode 100644
index dfab89d..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/service/command/FirstUseCommand.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package ru.ldeloff.servermonitorbot.service.command;
-
-import org.springframework.stereotype.Service;
-import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
-import ru.ldeloff.servermonitorbot.model.User;
-import ru.ldeloff.servermonitorbot.service.role.RoleService;
-import ru.ldeloff.servermonitorbot.service.user.UserService;
-import ru.ldeloff.servermonitorbot.utils.ui.TelegramBotKeyboard;
-
-@Service
-public class FirstUseCommand extends CommandTemplate {
- final TelegramBotKeyboard telegramBotKeyboard;
-
- public FirstUseCommand(UserService userService, RoleService roleService, TelegramBotKeyboard telegramBotKeyboard) {
- super(userService, roleService);
- this.telegramBotKeyboard = telegramBotKeyboard;
- }
- @Override
- public SendMessage actionForAuth(User user, SendMessage message) {
- message.setText("Добро пожаловать " + user.getLogin() + "!");
- return telegramBotKeyboard.uiForm(message);
- }
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/command/GetStatusSessions.java b/src/main/java/ru/ldeloff/servermonitorbot/service/command/GetStatusSessions.java
deleted file mode 100644
index af5d29e..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/service/command/GetStatusSessions.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package ru.ldeloff.servermonitorbot.service.command;
-
-import org.springframework.stereotype.Service;
-import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
-import ru.ldeloff.servermonitorbot.model.User;
-import ru.ldeloff.servermonitorbot.service.role.RoleService;
-import ru.ldeloff.servermonitorbot.service.ssh.SshService;
-import ru.ldeloff.servermonitorbot.service.user.UserService;
-
-@Service
-public class GetStatusSessions extends CommandTemplate {
- final SshService sshService;
-
- public GetStatusSessions(UserService userService, RoleService roleService, SshService sshService) {
- super(userService, roleService);
- this.sshService = sshService;
- }
-
- @Override
- public SendMessage actionForAuth(User user, SendMessage message) {
- return sshService.getStatusSessions(message);
- }
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/command/SwitchToMainMenu.java b/src/main/java/ru/ldeloff/servermonitorbot/service/command/SwitchToMainMenu.java
deleted file mode 100644
index 43dec0e..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/service/command/SwitchToMainMenu.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package ru.ldeloff.servermonitorbot.service.command;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
-import ru.ldeloff.servermonitorbot.model.User;
-import ru.ldeloff.servermonitorbot.service.role.RoleService;
-import ru.ldeloff.servermonitorbot.service.user.UserService;
-import ru.ldeloff.servermonitorbot.utils.ui.TelegramBotKeyboard;
-
-@Service
-@Slf4j
-public class SwitchToMainMenu extends CommandTemplate {
- final TelegramBotKeyboard telegramBotKeyboard;
-
- public SwitchToMainMenu(UserService userService, RoleService roleService, TelegramBotKeyboard telegramBotKeyboard) {
- super(userService, roleService);
- this.telegramBotKeyboard = telegramBotKeyboard;
- }
- @Override
- public SendMessage actionForAuth(User user, SendMessage message) {
- message.setText("Неверная команда. Попробуем сначала.");
- return telegramBotKeyboard.uiForm(message);
- }
- @Override
- public void logSuccess(User user, String message) {
- log.warn("Получена несуществующая команда '" + message + "' от " + user.getLogin()
- + " (" + user.getTelegramId() + "). OK");
- }
- @Override
- public void logNotAuth(User user, String message) {
- log.warn("Получена несуществующая команда '" + message + "' от " + user.getLogin()
- + " (" + user.getTelegramId() + "). Нет прав");
- }
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/command/cputemp/CpuTempAggregateCommand.java b/src/main/java/ru/ldeloff/servermonitorbot/service/command/cputemp/CpuTempAggregateCommand.java
deleted file mode 100644
index 90d2eb2..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/service/command/cputemp/CpuTempAggregateCommand.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package ru.ldeloff.servermonitorbot.service.command.cputemp;
-
-import org.springframework.stereotype.Service;
-import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
-import ru.ldeloff.servermonitorbot.model.User;
-import ru.ldeloff.servermonitorbot.service.command.CommandTemplate;
-import ru.ldeloff.servermonitorbot.service.role.RoleService;
-import ru.ldeloff.servermonitorbot.service.user.UserService;
-import ru.ldeloff.servermonitorbot.utils.ui.uname.ServerListButtons;
-
-@Service
-public class CpuTempAggregateCommand extends CommandTemplate {
- final ServerListButtons serverListButtons;
-
- public CpuTempAggregateCommand(UserService userService, RoleService roleService, ServerListButtons serverListButtons) {
- super(userService, roleService);
- this.serverListButtons = serverListButtons;
- }
-
- @Override
- public SendMessage actionForAuth(User user, SendMessage message) {
- return serverListButtons.uiForm(message);
- }
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/command/cputemp/CpuTempCommand.java b/src/main/java/ru/ldeloff/servermonitorbot/service/command/cputemp/CpuTempCommand.java
deleted file mode 100644
index fb046c1..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/service/command/cputemp/CpuTempCommand.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package ru.ldeloff.servermonitorbot.service.command.cputemp;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
-import ru.ldeloff.servermonitorbot.model.Command;
-import ru.ldeloff.servermonitorbot.model.SshServer;
-import ru.ldeloff.servermonitorbot.model.User;
-import ru.ldeloff.servermonitorbot.service.command.CommandTemplate;
-import ru.ldeloff.servermonitorbot.service.role.RoleService;
-import ru.ldeloff.servermonitorbot.service.ssh.SshService;
-import ru.ldeloff.servermonitorbot.service.user.UserService;
-import ru.ldeloff.servermonitorbot.utils.SshServerUtils;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
-
-@Service
-@Slf4j
-public class CpuTempCommand extends CommandTemplate {
- final SshService sshService;
- public CpuTempCommand(UserService userService, RoleService roleService, SshService sshService) {
- super(userService, roleService);
- this.sshService = sshService;
- }
-
- @Override
- public SendMessage actionForAuth(User user, SendMessage message) {
- String [] tags = Arrays.stream(message.getText().split(":"))
- .map(String::trim)
- .toArray(String[]::new);
-
- if (tags[1].equals("all")) {
- message.setText(hddTempAllHost());
- } else {
- message.setText(Objects.requireNonNull(hddTempSpecificHost(tags[1])));
- }
- return message;
- }
-
- private String hddTempAllHost() {
- List servers = SshServerUtils.filterGoodServers(sshService.getSshServers());
- StringBuilder response = new StringBuilder();
- servers.forEach(server -> response.append(hddTempSpecificHost(server.getName())).append("\n"));
- return response.toString();
- }
-
- private String hddTempSpecificHost(String serverName) {
- Optional server = sshService.getSshServers()
- .stream()
- .filter(x -> x.getName().equals(serverName))
- .findFirst();
- if (server.isPresent()) {
- Command result = sshService.execute(new Command("cat /sys/class/thermal/thermal_zone0/temp", 100, server.get()));
- return server.get().getName() + ": \n" +
- (Objects.isNull(result.getResponse()) ? "ошибка при выполнении команды" :
- String.format("%.1f",
- Double.parseDouble(result.getResponse().replaceAll("\n", ""))/1000))
- + "°C";
- } else {
- log.error("Ошибка при выполнении команды 'CPUtemp'. Искомый сервер (" + serverName + ") не найден");
- return null;
- }
- }
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/command/hddtemp/HddTempAggregateCommand.java b/src/main/java/ru/ldeloff/servermonitorbot/service/command/hddtemp/HddTempAggregateCommand.java
deleted file mode 100644
index 1f0ea18..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/service/command/hddtemp/HddTempAggregateCommand.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package ru.ldeloff.servermonitorbot.service.command.hddtemp;
-
-import org.springframework.stereotype.Service;
-import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
-import ru.ldeloff.servermonitorbot.model.User;
-import ru.ldeloff.servermonitorbot.service.command.CommandTemplate;
-import ru.ldeloff.servermonitorbot.service.role.RoleService;
-import ru.ldeloff.servermonitorbot.service.user.UserService;
-import ru.ldeloff.servermonitorbot.utils.ui.uname.ServerListButtons;
-
-@Service
-public class HddTempAggregateCommand extends CommandTemplate {
- final ServerListButtons serverListButtons;
-
- public HddTempAggregateCommand(UserService userService, RoleService roleService, ServerListButtons serverListButtons) {
- super(userService, roleService);
- this.serverListButtons = serverListButtons;
- }
-
- @Override
- public SendMessage actionForAuth(User user, SendMessage message) {
- return serverListButtons.uiForm(message);
- }
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/command/hddtemp/HddTempCommand.java b/src/main/java/ru/ldeloff/servermonitorbot/service/command/hddtemp/HddTempCommand.java
deleted file mode 100644
index 48793cc..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/service/command/hddtemp/HddTempCommand.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package ru.ldeloff.servermonitorbot.service.command.hddtemp;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
-import ru.ldeloff.servermonitorbot.model.Command;
-import ru.ldeloff.servermonitorbot.model.SshServer;
-import ru.ldeloff.servermonitorbot.model.User;
-import ru.ldeloff.servermonitorbot.service.command.CommandTemplate;
-import ru.ldeloff.servermonitorbot.service.role.RoleService;
-import ru.ldeloff.servermonitorbot.service.ssh.SshService;
-import ru.ldeloff.servermonitorbot.service.user.UserService;
-import ru.ldeloff.servermonitorbot.utils.SshServerUtils;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
-
-@Service
-@Slf4j
-public class HddTempCommand extends CommandTemplate {
- final SshService sshService;
- public HddTempCommand(UserService userService, RoleService roleService, SshService sshService) {
- super(userService, roleService);
- this.sshService = sshService;
- }
-
- @Override
- public SendMessage actionForAuth(User user, SendMessage message) {
- String [] tags = Arrays.stream(message.getText().split(":"))
- .map(String::trim)
- .toArray(String[]::new);
-
- if (tags[1].equals("all")) {
- message.setText(hddTempAllHost());
- } else {
- message.setText(Objects.requireNonNull(hddTempSpecificHost(tags[1])));
- }
- return message;
- }
-
- private String hddTempAllHost() {
- List servers = SshServerUtils.filterGoodServers(sshService.getSshServers());
- StringBuilder response = new StringBuilder();
- servers.forEach(server -> response.append(hddTempSpecificHost(server.getName())).append("\n"));
- return response.toString();
- }
-
- private String hddTempSpecificHost(String serverName) {
- Optional server = sshService.getSshServers()
- .stream()
- .filter(x -> x.getName().equals(serverName))
- .findFirst();
- if (server.isPresent()) {
- Command result = sshService.execute(new Command("hddtemp /dev/sd*", 500, server.get()));
- return server.get().getName() + ": \n" +
- (Objects.isNull(result.getResponse()) ? "ошибка при выполнении команды" : result.getResponse());
- } else {
- log.error("Ошибка при выполнении команды 'hddtemp'. Искомый сервер (" + serverName + ") не найден");
- return null;
- }
- }
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/command/uname/UnameAggregateCommand.java b/src/main/java/ru/ldeloff/servermonitorbot/service/command/uname/UnameAggregateCommand.java
deleted file mode 100644
index 2ac594e..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/service/command/uname/UnameAggregateCommand.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package ru.ldeloff.servermonitorbot.service.command.uname;
-
-import org.springframework.stereotype.Service;
-import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
-import ru.ldeloff.servermonitorbot.model.User;
-import ru.ldeloff.servermonitorbot.service.command.CommandTemplate;
-import ru.ldeloff.servermonitorbot.service.role.RoleService;
-import ru.ldeloff.servermonitorbot.service.user.UserService;
-import ru.ldeloff.servermonitorbot.utils.ui.uname.ServerListButtons;
-
-@Service
-public class UnameAggregateCommand extends CommandTemplate {
- final ServerListButtons serverListButtons;
-
- public UnameAggregateCommand(UserService userService, RoleService roleService, ServerListButtons serverListButtons) {
- super(userService, roleService);
- this.serverListButtons = serverListButtons;
- }
-
- @Override
- public SendMessage actionForAuth(User user, SendMessage message) {
- return serverListButtons.uiForm(message);
- }
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/command/uname/UnameCommand.java b/src/main/java/ru/ldeloff/servermonitorbot/service/command/uname/UnameCommand.java
deleted file mode 100644
index 94e3b73..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/service/command/uname/UnameCommand.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package ru.ldeloff.servermonitorbot.service.command.uname;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
-import ru.ldeloff.servermonitorbot.model.Command;
-import ru.ldeloff.servermonitorbot.model.SshServer;
-import ru.ldeloff.servermonitorbot.model.User;
-import ru.ldeloff.servermonitorbot.service.command.CommandTemplate;
-import ru.ldeloff.servermonitorbot.service.role.RoleService;
-import ru.ldeloff.servermonitorbot.service.ssh.SshService;
-import ru.ldeloff.servermonitorbot.service.user.UserService;
-import ru.ldeloff.servermonitorbot.utils.SshServerUtils;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
-
-@Service
-@Slf4j
-public class UnameCommand extends CommandTemplate {
- final SshService sshService;
- public UnameCommand(UserService userService, RoleService roleService, SshService sshService) {
- super(userService, roleService);
- this.sshService = sshService;
- }
- @Override
- public SendMessage actionForAuth(User user, SendMessage message) {
- String [] tags = Arrays.stream(message.getText().split(":"))
- .map(String::trim)
- .toArray(String[]::new);
-
- if (tags[1].equals("all")) {
- message.setText(unameAllHost());
- } else {
- message.setText(Objects.requireNonNull(unameSpecificHost(tags[1])));
- }
- return message;
- }
-
- private String unameAllHost() {
- List servers = SshServerUtils.filterGoodServers(sshService.getSshServers());
- StringBuilder response = new StringBuilder();
- servers.forEach(server -> response.append(unameSpecificHost(server.getName())).append("\n"));
- return response.toString();
- }
-
- private String unameSpecificHost(String serverName) {
- Optional server = sshService.getSshServers()
- .stream()
- .filter(x -> x.getName().equals(serverName))
- .findFirst();
- if (server.isPresent()) {
- Command result = sshService.execute(new Command("uname -a", 100, server.get()));
- return server.get().getName() + ": " +
- (Objects.isNull(result.getResponse()) ? "ошибка при выполнении команды" : result.getResponse());
- } else {
- log.error("Ошибка при выполнении команды 'uname'. Искомый сервер (" + serverName + ") не найден");
- return null;
- }
- }
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/role/RoleService.java b/src/main/java/ru/ldeloff/servermonitorbot/service/role/RoleService.java
deleted file mode 100644
index b26d5e1..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/service/role/RoleService.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package ru.ldeloff.servermonitorbot.service.role;
-
-import ru.ldeloff.servermonitorbot.model.Role;
-
-public interface RoleService {
- Role findRoleByName(String name);
-
- Role findRoleById(Long id);
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/role/RoleServiceImpl.java b/src/main/java/ru/ldeloff/servermonitorbot/service/role/RoleServiceImpl.java
deleted file mode 100644
index 6cf52a8..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/service/role/RoleServiceImpl.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package ru.ldeloff.servermonitorbot.service.role;
-
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Service;
-import ru.ldeloff.servermonitorbot.model.Role;
-import ru.ldeloff.servermonitorbot.repository.RoleRepository;
-
-import java.util.Locale;
-import java.util.Optional;
-
-@Service
-@RequiredArgsConstructor
-public class RoleServiceImpl implements RoleService {
- private final RoleRepository roleRepository;
-
- @Override
- public Role findRoleByName(String name) {
- Optional role = roleRepository.findRoleByName(name.toUpperCase(Locale.ROOT));
- //noinspection OptionalGetWithoutIsPresent
- return role.orElseGet(() -> roleRepository.findRoleByName("ANONYMOUS").get());
- }
-
- @Override
- public Role findRoleById(Long id) {
- Optional role = roleRepository.findRoleById(id);
- return role.orElseGet(() -> roleRepository.findRoleByName("ANONYMOUS").get());
- }
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/ssh/SshService.java b/src/main/java/ru/ldeloff/servermonitorbot/service/ssh/SshService.java
deleted file mode 100644
index 126e358..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/service/ssh/SshService.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package ru.ldeloff.servermonitorbot.service.ssh;
-
-
-import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
-import ru.ldeloff.servermonitorbot.model.Command;
-import ru.ldeloff.servermonitorbot.model.SshServer;
-
-import java.util.List;
-
-public interface SshService {
- SendMessage getStatusSessions(SendMessage update);
-
- List getSshServers();
- Command execute(Command command);
- List execute(List commands);
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/ssh/SshServiceImpl.java b/src/main/java/ru/ldeloff/servermonitorbot/service/ssh/SshServiceImpl.java
deleted file mode 100644
index f5ebec4..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/service/ssh/SshServiceImpl.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package ru.ldeloff.servermonitorbot.service.ssh;
-
-import com.jcraft.jsch.ChannelExec;
-import com.jcraft.jsch.JSchException;
-import com.jcraft.jsch.Session;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
-import ru.ldeloff.servermonitorbot.model.Command;
-import ru.ldeloff.servermonitorbot.model.SshServer;
-import ru.ldeloff.servermonitorbot.repository.SshRepository;
-
-import java.io.ByteArrayOutputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-@Service
-@Slf4j
-@RequiredArgsConstructor
-public class SshServiceImpl implements SshService {
- final SshRepository sshRepository;
- @Override
- public SendMessage getStatusSessions(SendMessage message) {
- message.setText(sshRepository.getStatusSessions());
- return message;
- }
- @Override
- public List getSshServers() {
- return sshRepository.getSshServers();
- }
-
- @Override
- public Command execute(Command command) {
- List commands = new ArrayList<>();
- commands.add(command);
- return execute(commands).get(0);
- }
-
- @Override
- public List execute(List commands) {
- Session session = commands.get(0).getSshServer().getSession(); // подразумевается, что в листе с командами сервер один и тот же
- ChannelExec channel = null;
- try {
- channel = (ChannelExec) session.openChannel("exec");
- ChannelExec finalChannel = channel;
-
- commands.forEach(command -> {
- try {
- finalChannel.setCommand(command.getCommand());
- ByteArrayOutputStream responseStream = new ByteArrayOutputStream();
- finalChannel.setOutputStream(responseStream);
- finalChannel.connect();
- while (finalChannel.isConnected()) {
- Thread.sleep(command.getTimeout());
- }
- String responseString = new String(responseStream.toByteArray());
- command.setResponse(responseString);
- } catch (JSchException | InterruptedException e) {
- log.warn(e.getMessage());
- throw new RuntimeException(e);
- }
- });
- } catch (JSchException e) {
- log.warn(e.getMessage());
- throw new RuntimeException(e);
- } finally {
- if (channel != null) {
- channel.disconnect();
- }
- }
- return commands;
- }
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/user/UserService.java b/src/main/java/ru/ldeloff/servermonitorbot/service/user/UserService.java
deleted file mode 100644
index e7ea1ff..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/service/user/UserService.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package ru.ldeloff.servermonitorbot.service.user;
-
-import ru.ldeloff.servermonitorbot.model.User;
-
-public interface UserService {
- User saveOrUpdateUser(User user);
-
- User getByTelegramId(Long id);
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/service/user/UserServiceImpl.java b/src/main/java/ru/ldeloff/servermonitorbot/service/user/UserServiceImpl.java
deleted file mode 100644
index ff2844a..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/service/user/UserServiceImpl.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package ru.ldeloff.servermonitorbot.service.user;
-
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import ru.ldeloff.servermonitorbot.model.User;
-import ru.ldeloff.servermonitorbot.repository.UserRepository;
-
-@Service
-@RequiredArgsConstructor
-@Slf4j
-public class UserServiceImpl implements UserService {
-
- final UserRepository userRepository;
-
- @Override
- public User saveOrUpdateUser(User user) {
- User existUser = userRepository.getByTelegramId(user.getTelegramId());
- if (existUser != null) {
- user.setId(existUser.getId());
- }
- return userRepository.save(user);
- }
-
- @Override
- public User getByTelegramId(Long id) {
- return userRepository.getByTelegramId(id);
- }
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/util/TelegramBotMenu.java b/src/main/java/ru/ldeloff/servermonitorbot/util/TelegramBotMenu.java
new file mode 100644
index 0000000..e853a4f
--- /dev/null
+++ b/src/main/java/ru/ldeloff/servermonitorbot/util/TelegramBotMenu.java
@@ -0,0 +1,61 @@
+package ru.ldeloff.servermonitorbot.util;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
+import org.telegram.telegrambots.meta.api.objects.replykeyboard.InlineKeyboardMarkup;
+import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboardMarkup;
+import org.telegram.telegrambots.meta.api.objects.replykeyboard.buttons.InlineKeyboardButton;
+import org.telegram.telegrambots.meta.api.objects.replykeyboard.buttons.KeyboardButton;
+import org.telegram.telegrambots.meta.api.objects.replykeyboard.buttons.KeyboardRow;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Slf4j
+@Component
+public class TelegramBotMenu {
+ private final String STATUS = "Статус";
+ public ReplyKeyboardMarkup initKeyboard()
+ {
+ //Создаем объект будущей клавиатуры и выставляем нужные настройки
+ ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup();
+ replyKeyboardMarkup.setResizeKeyboard(true); //подгоняем размер
+ replyKeyboardMarkup.setOneTimeKeyboard(false); //скрываем после использования
+
+ //Создаем список с рядами кнопок
+ ArrayList keyboardRows = new ArrayList<>();
+ //Создаем один ряд кнопок и добавляем его в список
+ KeyboardRow keyboardRow = new KeyboardRow();
+ keyboardRows.add(keyboardRow);
+ //Добавляем одну кнопку с текстом "Просвяти" наш ряд
+ keyboardRow.add(new KeyboardButton(STATUS));
+ //добавляем лист с одним рядом кнопок в главный объект
+ replyKeyboardMarkup.setKeyboard(keyboardRows);
+ return replyKeyboardMarkup;
+ }
+
+ public SendMessage mainMenu(long chatId) {
+ SendMessage message = new SendMessage();
+ message.setChatId(chatId);
+ message.setText("Choose an option:");
+
+ InlineKeyboardMarkup inlineKeyboardMarkup = new InlineKeyboardMarkup();
+ List keyboardRow = new ArrayList<>();
+
+ InlineKeyboardButton inlineKeyboardButton = new InlineKeyboardButton();
+ inlineKeyboardButton.setText(STATUS);
+ inlineKeyboardButton.setCallbackData("Button \"" + STATUS + "\" has been pressed");
+
+ keyboardRow.add(inlineKeyboardButton);
+
+ List> keyboard = new ArrayList<>();
+ keyboard.add(keyboardRow);
+
+ inlineKeyboardMarkup.setKeyboard(keyboard);
+ message.setReplyMarkup(inlineKeyboardMarkup);
+
+ return message;
+ }
+}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/utils/SshServerUtils.java b/src/main/java/ru/ldeloff/servermonitorbot/utils/SshServerUtils.java
deleted file mode 100644
index 4db77ca..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/utils/SshServerUtils.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package ru.ldeloff.servermonitorbot.utils;
-
-import ru.ldeloff.servermonitorbot.model.SshServer;
-
-import java.util.List;
-import java.util.Objects;
-
-public class SshServerUtils {
- public static List filterGoodServers(List sshServers) {
- List goodSshServers = sshServers.stream()
- .filter(Objects::nonNull)
- .filter(server -> Objects.nonNull(server.getSession()))
- .filter(server -> server.getSession().isConnected())
- .toList();
- return goodSshServers;
- }
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/utils/ui/TelegramBotKeyboard.java b/src/main/java/ru/ldeloff/servermonitorbot/utils/ui/TelegramBotKeyboard.java
deleted file mode 100644
index a7f776c..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/utils/ui/TelegramBotKeyboard.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package ru.ldeloff.servermonitorbot.utils.ui;
-
-import org.springframework.stereotype.Component;
-import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
-import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboardMarkup;
-import org.telegram.telegrambots.meta.api.objects.replykeyboard.buttons.KeyboardButton;
-import org.telegram.telegrambots.meta.api.objects.replykeyboard.buttons.KeyboardRow;
-
-
-import java.util.ArrayList;
-
-@Component
-public class TelegramBotKeyboard implements UiFormer {
- private final String STATUS = "Статус";
- private final String UNAME = "uname";
- private final String CPU_TEMP = "CPU.temp";
- private final String HDD_TEMP = "HDD.temp";
-
-
- @Override
- public SendMessage uiForm(SendMessage message) {
- ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup();
- replyKeyboardMarkup.setResizeKeyboard(true);
- replyKeyboardMarkup.setOneTimeKeyboard(false);
-
- ArrayList keyboardRows = new ArrayList<>();
-
- KeyboardRow keyboardRow = new KeyboardRow();
- keyboardRows.add(keyboardRow);
-
- keyboardRow.add(new KeyboardButton(STATUS));
- keyboardRow.add(new KeyboardButton(UNAME));
- keyboardRow.add(new KeyboardButton(CPU_TEMP));
- keyboardRow.add(new KeyboardButton(HDD_TEMP));
-
- replyKeyboardMarkup.setKeyboard(keyboardRows);
- message.setReplyMarkup(replyKeyboardMarkup);
- return message;
- }
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/utils/ui/UiFormer.java b/src/main/java/ru/ldeloff/servermonitorbot/utils/ui/UiFormer.java
deleted file mode 100644
index c847293..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/utils/ui/UiFormer.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package ru.ldeloff.servermonitorbot.utils.ui;
-
-import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
-
-public interface UiFormer {
- SendMessage uiForm(SendMessage message);
-}
diff --git a/src/main/java/ru/ldeloff/servermonitorbot/utils/ui/uname/ServerListButtons.java b/src/main/java/ru/ldeloff/servermonitorbot/utils/ui/uname/ServerListButtons.java
deleted file mode 100644
index c6d0b4e..0000000
--- a/src/main/java/ru/ldeloff/servermonitorbot/utils/ui/uname/ServerListButtons.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package ru.ldeloff.servermonitorbot.utils.ui.uname;
-
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Component;
-import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
-import org.telegram.telegrambots.meta.api.objects.replykeyboard.InlineKeyboardMarkup;
-import org.telegram.telegrambots.meta.api.objects.replykeyboard.buttons.InlineKeyboardButton;
-import ru.ldeloff.servermonitorbot.service.ssh.SshService;
-import ru.ldeloff.servermonitorbot.utils.ui.UiFormer;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-
-@Component
-@RequiredArgsConstructor
-public class ServerListButtons implements UiFormer {
-
- private final SshService sshService;
-
- @Override
- public SendMessage uiForm(SendMessage message) {
- List> keyboard = new ArrayList<>();
-
- InlineKeyboardMarkup inlineKeyboardMarkup = new InlineKeyboardMarkup();
-
- sshService.getSshServers().forEach(sshServer -> {
- if (Objects.nonNull(sshServer.getSession())) {
- if (sshServer.getSession().isConnected()) {
- List keyboardRow = new ArrayList<>();
- InlineKeyboardButton inlineKeyboardButton = new InlineKeyboardButton();
- inlineKeyboardButton.setText(sshServer.getName());
- inlineKeyboardButton.setCallbackData(message.getText() + ": " + sshServer.getName());
- keyboardRow.add(inlineKeyboardButton);
- keyboard.add(keyboardRow);
- }
- }
- });
-
- if (keyboard.size() > 1) {
- List keyboardRow = new ArrayList<>();
- InlineKeyboardButton inlineKeyboardButton = new InlineKeyboardButton();
- inlineKeyboardButton.setText("Все сервера");
- inlineKeyboardButton.setCallbackData(message.getText() + ": all");
- keyboardRow.add(inlineKeyboardButton);
- keyboard.add(keyboardRow);
- }
-
- inlineKeyboardMarkup.setKeyboard(keyboard);
- message.setReplyMarkup(inlineKeyboardMarkup);
- message.setText("Выполнить " + message.getText() + " для");
-
- return message;
- }
-}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 35a985d..e1b733b 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,27 +1,6 @@
-spring:
- application:
- name: ServerMonitorBot
- datasource:
- url: jdbc:postgresql://localhost:5432/servermonitorbot
- username: servermonitorbot
- password: servermonitorbot
- jpa:
- hibernate:
- ddl-auto: none
- liquibase:
- enabled: true
- change-log: classpath:db/scripts/changelog-master.xml
- url: jdbc:postgresql://localhost:5432/servermonitorbot
- user: servermonitorbot
- password: servermonitorbot
- liquibase-schema: "liquibase"
- default-schema: "servermonitorbot"
bot:
name: "ServerMonitorBot"
token: "token"
- users:
- - telegramId: 123456789
- role: admin
ssh:
servers:
-
diff --git a/src/main/resources/db/scripts/changelog-master.xml b/src/main/resources/db/scripts/changelog-master.xml
deleted file mode 100644
index bd90cc4..0000000
--- a/src/main/resources/db/scripts/changelog-master.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/resources/db/scripts/release_0_0_1/changelog.xml b/src/main/resources/db/scripts/release_0_0_1/changelog.xml
deleted file mode 100644
index 1b0334d..0000000
--- a/src/main/resources/db/scripts/release_0_0_1/changelog.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/00_create_schema_servermonitorbot.sql b/src/main/resources/db/scripts/release_0_0_1/scripts/00_create_schema_servermonitorbot.sql
deleted file mode 100644
index e69de29..0000000
diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/01_create_table_users.sql b/src/main/resources/db/scripts/release_0_0_1/scripts/01_create_table_users.sql
deleted file mode 100644
index 9164f99..0000000
--- a/src/main/resources/db/scripts/release_0_0_1/scripts/01_create_table_users.sql
+++ /dev/null
@@ -1,17 +0,0 @@
---liquibase formatted sql
-
---changeset L_DelOff:create_table_users rollbackSplitStatements:true
---comment: Создание таблицы пользователей
-CREATE TABLE users
-(
- id SERIAL PRIMARY KEY,
- login VARCHAR(128),
- id_role integer
-);
-
-COMMENT ON TABLE users IS 'Пользователи';
-COMMENT ON COLUMN users.id IS 'Идентификатор пользователя';
-COMMENT ON COLUMN users.login IS 'Логин пользователя';
-COMMENT ON COLUMN users.id_role IS 'Ссылка на роль пользователя';
-
---rollback DROP TABLE users;
\ No newline at end of file
diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/02_create_table_roles.sql b/src/main/resources/db/scripts/release_0_0_1/scripts/02_create_table_roles.sql
deleted file mode 100644
index e7d5fad..0000000
--- a/src/main/resources/db/scripts/release_0_0_1/scripts/02_create_table_roles.sql
+++ /dev/null
@@ -1,15 +0,0 @@
---liquibase formatted sql
-
---changeset L_DelOff:create_table_roles rollbackSplitStatements:true
---comment: Создание таблицы ролей
-CREATE TABLE roles
-(
- id SERIAL PRIMARY KEY,
- role VARCHAR(128)
-);
-
-COMMENT ON TABLE roles IS 'Пользователи';
-COMMENT ON COLUMN roles.id IS 'Идентификатор пользователя';
-COMMENT ON COLUMN roles.role IS 'Логин пользователя';
-
---rollback DROP TABLE roles;
\ No newline at end of file
diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/03_add_FK_users_to_roles.sql b/src/main/resources/db/scripts/release_0_0_1/scripts/03_add_FK_users_to_roles.sql
deleted file mode 100644
index 6225766..0000000
--- a/src/main/resources/db/scripts/release_0_0_1/scripts/03_add_FK_users_to_roles.sql
+++ /dev/null
@@ -1,2 +0,0 @@
-ALTER TABLE users
-ADD COLUMN role_id INT NOT NULL REFERENCES roles(id);
\ No newline at end of file
diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/04_add_roles.sql b/src/main/resources/db/scripts/release_0_0_1/scripts/04_add_roles.sql
deleted file mode 100644
index 65c0cbf..0000000
--- a/src/main/resources/db/scripts/release_0_0_1/scripts/04_add_roles.sql
+++ /dev/null
@@ -1,2 +0,0 @@
-INSERT INTO roles (id, role) VALUES (1, 'ADMIN');
-INSERT INTO roles (id, role) VALUES (2, 'USER');
\ No newline at end of file
diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/05_add_anonymous_role.sql b/src/main/resources/db/scripts/release_0_0_1/scripts/05_add_anonymous_role.sql
deleted file mode 100644
index ba5a19a..0000000
--- a/src/main/resources/db/scripts/release_0_0_1/scripts/05_add_anonymous_role.sql
+++ /dev/null
@@ -1 +0,0 @@
-INSERT INTO roles (id, role) VALUES (3, 'ANONYMOUS');
\ No newline at end of file
diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/06_refactor_users_table.sql b/src/main/resources/db/scripts/release_0_0_1/scripts/06_refactor_users_table.sql
deleted file mode 100644
index 4a51d65..0000000
--- a/src/main/resources/db/scripts/release_0_0_1/scripts/06_refactor_users_table.sql
+++ /dev/null
@@ -1,9 +0,0 @@
-ALTER TABLE users
- DROP COLUMN login;
-
-ALTER TABLE users
- ADD COLUMN telegram_id INTEGER UNIQUE;
- COMMENT ON COLUMN users.telegram_id IS 'Telegram ID пользователя';
-
-ALTER TABLE users
- DROP COLUMN id_role;
\ No newline at end of file
diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/07_refactor_roles_table.sql b/src/main/resources/db/scripts/release_0_0_1/scripts/07_refactor_roles_table.sql
deleted file mode 100644
index c39ec05..0000000
--- a/src/main/resources/db/scripts/release_0_0_1/scripts/07_refactor_roles_table.sql
+++ /dev/null
@@ -1,6 +0,0 @@
-ALTER TABLE roles
- DROP COLUMN role;
-
-ALTER TABLE roles
- ADD COLUMN name VARCHAR(128);
-COMMENT ON COLUMN roles.name IS 'Имя роли';
\ No newline at end of file
diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/08_add_roles.sql b/src/main/resources/db/scripts/release_0_0_1/scripts/08_add_roles.sql
deleted file mode 100644
index cdce579..0000000
--- a/src/main/resources/db/scripts/release_0_0_1/scripts/08_add_roles.sql
+++ /dev/null
@@ -1,4 +0,0 @@
-TRUNCATE TABLE roles CASCADE;
-INSERT INTO roles (id, name) VALUES (1, 'ADMIN');
-INSERT INTO roles (id, name) VALUES (2, 'USER');
-INSERT INTO roles (id, name) VALUES (3, 'ANONYMOUS');
\ No newline at end of file