|
@@ -4,10 +4,16 @@ import com.pengrad.telegrambot.Callback;
|
|
|
import com.pengrad.telegrambot.TelegramBot;
|
|
|
import com.pengrad.telegrambot.TelegramBotAdapter;
|
|
|
import com.pengrad.telegrambot.model.Update;
|
|
|
+import com.pengrad.telegrambot.request.GetMe;
|
|
|
import com.pengrad.telegrambot.request.GetUpdates;
|
|
|
+import com.pengrad.telegrambot.response.GetMeResponse;
|
|
|
import com.pengrad.telegrambot.response.GetUpdatesResponse;
|
|
|
+import in.ocsf.these.days.app.KV;
|
|
|
import in.ocsf.these.days.app.object.UpdateState;
|
|
|
+import in.ocsf.these.days.app.object.User;
|
|
|
import in.ocsf.these.days.app.repo.UpdateStateRepository;
|
|
|
+import in.ocsf.these.days.app.repo.UserRepository;
|
|
|
+import in.ocsf.these.days.app.service.UpdateService;
|
|
|
import org.apache.log4j.Logger;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
@@ -15,6 +21,7 @@ import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import javax.annotation.PostConstruct;
|
|
|
import java.io.IOException;
|
|
|
import java.util.Optional;
|
|
|
|
|
@@ -26,15 +33,41 @@ public class ChatListener {
|
|
|
@Value("${these-days.bot.token}")
|
|
|
private String token;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private KV kv;
|
|
|
+
|
|
|
@Autowired
|
|
|
private UpdateStateRepository stateRepo;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private UpdateService updateService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private UserRepository userRepo;
|
|
|
+
|
|
|
@Async
|
|
|
protected void update(Update update) {
|
|
|
- log.info(update.updateId());
|
|
|
+ updateService.update(update);
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostConstruct
|
|
|
+ protected void init() {
|
|
|
+ TelegramBot bot = TelegramBotAdapter.build(token);
|
|
|
+ bot.execute(new GetMe(), new Callback<GetMe, GetMeResponse>() {
|
|
|
+ @Override
|
|
|
+ public void onResponse(GetMe request, GetMeResponse response) {
|
|
|
+ User self = userRepo.save(User.fromUser(response.user()));
|
|
|
+ kv.setSelfUser(self.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onFailure(GetMe request, IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
- @Scheduled(fixedDelay = 500)
|
|
|
+ @Scheduled(fixedDelay = 1000)
|
|
|
protected void doRequest() {
|
|
|
TelegramBot bot = TelegramBotAdapter.build(token);
|
|
|
|