Уведомление о перезапуске
parent
25b73feb48
commit
21f4a71c63
|
@ -7,19 +7,25 @@ import org.springframework.boot.ApplicationArguments;
|
||||||
import org.springframework.boot.ApplicationRunner;
|
import org.springframework.boot.ApplicationRunner;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.telegram.telegrambots.meta.TelegramBotsApi;
|
import org.telegram.telegrambots.meta.TelegramBotsApi;
|
||||||
|
import org.telegram.telegrambots.meta.api.methods.send.SendMessage;
|
||||||
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
|
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
|
||||||
import org.telegram.telegrambots.updatesreceivers.DefaultBotSession;
|
import org.telegram.telegrambots.updatesreceivers.DefaultBotSession;
|
||||||
import ru.ldeloff.servermonitorbot.controller.TelegramBotController;
|
import ru.ldeloff.servermonitorbot.controller.TelegramBotController;
|
||||||
|
import ru.ldeloff.servermonitorbot.model.User;
|
||||||
|
import ru.ldeloff.servermonitorbot.service.command.CommandTemplate;
|
||||||
|
import ru.ldeloff.servermonitorbot.service.user.UserService;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
public class StartBot implements ApplicationRunner {
|
public class StartBot implements ApplicationRunner {
|
||||||
private TelegramBotController telegramBot;
|
private TelegramBotController telegramBot;
|
||||||
|
private UserService userService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public StartBot(TelegramBotController telegramBot) {
|
public StartBot(TelegramBotController telegramBot, UserService userService) {
|
||||||
this.telegramBot = telegramBot;
|
this.telegramBot = telegramBot;
|
||||||
|
this.userService = userService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -27,10 +33,18 @@ public class StartBot implements ApplicationRunner {
|
||||||
try {
|
try {
|
||||||
TelegramBotsApi botsApi = new TelegramBotsApi(DefaultBotSession.class);
|
TelegramBotsApi botsApi = new TelegramBotsApi(DefaultBotSession.class);
|
||||||
botsApi.registerBot(telegramBot);
|
botsApi.registerBot(telegramBot);
|
||||||
|
userService.getAllUsers().forEach(this::SendInitMessage);
|
||||||
log.info("Бот запущен");
|
log.info("Бот запущен");
|
||||||
} catch (TelegramApiException e) {
|
} catch (TelegramApiException e) {
|
||||||
e.printStackTrace();
|
//e.printStackTrace();
|
||||||
log.error(e.getMessage());
|
log.error(e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SendInitMessage(User user) {
|
||||||
|
SendMessage answer = new SendMessage();
|
||||||
|
answer.setChatId(user.getTelegramId());
|
||||||
|
answer.setText("Бот перезапущен");
|
||||||
|
CommandTemplate.sendMessage(answer, telegramBot);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
package ru.ldeloff.servermonitorbot.repository;
|
package ru.ldeloff.servermonitorbot.repository;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import org.springframework.data.domain.Example;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
import ru.ldeloff.servermonitorbot.model.User;
|
import ru.ldeloff.servermonitorbot.model.User;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public interface UserRepository extends JpaRepository<User, Long> {
|
public interface UserRepository extends JpaRepository<User, Long> {
|
||||||
User getByTelegramId(long id);
|
User getByTelegramId(long id);
|
||||||
|
@NotNull List<User> findAll();
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,7 @@ public abstract class CommandTemplate {
|
||||||
sendMessage(actionForNotAuth(user, answer), bot);
|
sendMessage(actionForNotAuth(user, answer), bot);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void logSuccess(User user, String message) {
|
protected void logSuccess(User user, String message) {
|
||||||
log.info("Получена команда '" + message + "' от " + user.getLogin()
|
log.info("Получена команда '" + message + "' от " + user.getLogin()
|
||||||
+ " (" + user.getTelegramId() + "). OK");
|
+ " (" + user.getTelegramId() + "). OK");
|
||||||
|
@ -76,7 +77,7 @@ public abstract class CommandTemplate {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendMessage(SendMessage message, TelegramBotController bot) {
|
public static void sendMessage(SendMessage message, TelegramBotController bot) {
|
||||||
try {
|
try {
|
||||||
bot.execute(message);
|
bot.execute(message);
|
||||||
} catch (TelegramApiException e) {
|
} catch (TelegramApiException e) {
|
||||||
|
|
|
@ -2,8 +2,12 @@ package ru.ldeloff.servermonitorbot.service.user;
|
||||||
|
|
||||||
import ru.ldeloff.servermonitorbot.model.User;
|
import ru.ldeloff.servermonitorbot.model.User;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public interface UserService {
|
public interface UserService {
|
||||||
User saveOrUpdateUser(User user);
|
User saveOrUpdateUser(User user);
|
||||||
|
|
||||||
User getByTelegramId(Long id);
|
User getByTelegramId(Long id);
|
||||||
|
|
||||||
|
List<User> getAllUsers();
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,8 @@ import org.springframework.stereotype.Service;
|
||||||
import ru.ldeloff.servermonitorbot.model.User;
|
import ru.ldeloff.servermonitorbot.model.User;
|
||||||
import ru.ldeloff.servermonitorbot.repository.UserRepository;
|
import ru.ldeloff.servermonitorbot.repository.UserRepository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
@ -26,4 +28,7 @@ public class UserServiceImpl implements UserService {
|
||||||
public User getByTelegramId(Long id) {
|
public User getByTelegramId(Long id) {
|
||||||
return userRepository.getByTelegramId(id);
|
return userRepository.getByTelegramId(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<User> getAllUsers() {return userRepository.findAll(); }
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue