2018-04-17 11:52:08 +02:00
|
|
|
package org.telegram.telegrambots.starter;
|
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.boot.CommandLineRunner;
|
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
|
import org.springframework.context.annotation.Configuration;
|
2018-07-08 01:41:21 +02:00
|
|
|
import org.telegram.telegrambots.meta.TelegramBotsApi;
|
|
|
|
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
|
|
|
|
import org.telegram.telegrambots.meta.generics.LongPollingBot;
|
|
|
|
import org.telegram.telegrambots.meta.generics.WebhookBot;
|
2018-04-17 11:52:08 +02:00
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Receives all beand which are #LongPollingBot and #WebhookBot and register them in #TelegramBotsApi.
|
|
|
|
* #TelegramBotsApi added to spring context as well
|
|
|
|
*/
|
|
|
|
@Configuration
|
|
|
|
public class TelegramBotStarterConfiguration implements CommandLineRunner {
|
|
|
|
|
|
|
|
|
|
|
|
private final List<LongPollingBot> longPollingBots;
|
|
|
|
private final List<WebhookBot> webHookBots;
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
private TelegramBotsApi telegramBotsApi;
|
|
|
|
|
|
|
|
public TelegramBotStarterConfiguration(List<LongPollingBot> longPollingBots,
|
|
|
|
List<WebhookBot> webHookBots) {
|
|
|
|
this.longPollingBots = longPollingBots;
|
|
|
|
this.webHookBots = webHookBots;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void run(String... args) {
|
|
|
|
try {
|
|
|
|
for (LongPollingBot bot : longPollingBots) {
|
|
|
|
telegramBotsApi.registerBot(bot);
|
|
|
|
}
|
|
|
|
for (WebhookBot bot : webHookBots) {
|
|
|
|
telegramBotsApi.registerBot(bot);
|
|
|
|
}
|
|
|
|
} catch (TelegramApiException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Bean
|
|
|
|
@ConditionalOnMissingBean(TelegramBotsApi.class)
|
|
|
|
public TelegramBotsApi telegramBotsApi() {
|
|
|
|
return new TelegramBotsApi();
|
|
|
|
}
|
|
|
|
}
|