commit
6c118fccfd
@ -31,8 +31,8 @@ Just import add the library to your project with one of these options:
|
|||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Using Jitpack from [here](https://jitpack.io/#rubenlagus/TelegramBots/v2.4.4)
|
2. Using Jitpack from [here](https://jitpack.io/#rubenlagus/TelegramBots/v2.4.4.1)
|
||||||
3. Download the jar(including all dependencies) from [here](https://github.com/rubenlagus/TelegramBots/releases/tag/v2.4.4)
|
3. Download the jar(including all dependencies) from [here](https://github.com/rubenlagus/TelegramBots/releases/tag/v2.4.4.1)
|
||||||
|
|
||||||
In order to use Long Polling mode, just create your own bot extending `org.telegram.telegrambots.bots.TelegramLongPollingBot`.
|
In order to use Long Polling mode, just create your own bot extending `org.telegram.telegrambots.bots.TelegramLongPollingBot`.
|
||||||
|
|
||||||
|
@ -18,3 +18,9 @@
|
|||||||
5. Added `channel_post` and `edited_channel_post` to `Update` object.
|
5. Added `channel_post` and `edited_channel_post` to `Update` object.
|
||||||
|
|
||||||
**[[How to update to version 2.4.4|How-To-Update#2.4.4]]**
|
**[[How to update to version 2.4.4|How-To-Update#2.4.4]]**
|
||||||
|
|
||||||
|
### <a id="2.4.4.1"></a>2.4.4.1 ###
|
||||||
|
1. New `max_connections` in `setWebhook` method.
|
||||||
|
2. New `allowed_updates` in `setWebhook` and `getUpdates`
|
||||||
|
3. New `deleteWebhook` method
|
||||||
|
4. Added new configs to DefaultBotOptions to handle `max_connections` and `allowed_updates`
|
@ -11,13 +11,13 @@ First you need ot get the library and add it to your project. There are few poss
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.telegram</groupId>
|
<groupId>org.telegram</groupId>
|
||||||
<artifactId>telegrambots</artifactId>
|
<artifactId>telegrambots</artifactId>
|
||||||
<version>2.4.3</version>
|
<version>2.4.4.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
* With **Gradle**:
|
* With **Gradle**:
|
||||||
|
|
||||||
```groovy
|
```groovy
|
||||||
compile group: 'org.telegram', name: 'telegrambots', version: '2.4.3'
|
compile group: 'org.telegram', name: 'telegrambots', version: '2.4.4.1'
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Don't like **Maven Central Repository**? It can also be taken from [Jitpack](https://jitpack.io/#rubenlagus/TelegramBots).
|
2. Don't like **Maven Central Repository**? It can also be taken from [Jitpack](https://jitpack.io/#rubenlagus/TelegramBots).
|
||||||
|
@ -10,7 +10,6 @@
|
|||||||
* `getPersonal` from `AnswerInlineQuery`. Use `isPersonal` instead.
|
* `getPersonal` from `AnswerInlineQuery`. Use `isPersonal` instead.
|
||||||
* `FILEBASEURL` from `File`. Use `getFileUrl` instead.
|
* `FILEBASEURL` from `File`. Use `getFileUrl` instead.
|
||||||
|
|
||||||
|
|
||||||
### <a id="2.4.4"></a>To version 2.4.4 ###
|
### <a id="2.4.4"></a>To version 2.4.4 ###
|
||||||
1. Replace `ReplyKeyboardHide` by `ReplyKeyboardRemove` and its field `hideKeyboard` by `removeKeyboard` (remember getter and setters)
|
1. Replace `ReplyKeyboardHide` by `ReplyKeyboardRemove` and its field `hideKeyboard` by `removeKeyboard` (remember getter and setters)
|
||||||
2. Replace usage of `edit_message` by `disable_edit_message` (see [this post](https://telegram.me/BotNews/22))
|
2. Replace usage of `edit_message` by `disable_edit_message` (see [this post](https://telegram.me/BotNews/22))
|
||||||
|
4
pom.xml
4
pom.xml
@ -7,7 +7,7 @@
|
|||||||
<groupId>org.telegram</groupId>
|
<groupId>org.telegram</groupId>
|
||||||
<artifactId>Bots</artifactId>
|
<artifactId>Bots</artifactId>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<version>2.4.4</version>
|
<version>2.4.4.1</version>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>telegrambots</module>
|
<module>telegrambots</module>
|
||||||
@ -24,6 +24,6 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<maven.deploy.skip>true</maven.deploy.skip>
|
<maven.deploy.skip>true</maven.deploy.skip>
|
||||||
<bots.version>2.4.4</bots.version>
|
<bots.version>2.4.4.1</bots.version>
|
||||||
</properties>
|
</properties>
|
||||||
</project>
|
</project>
|
@ -5,7 +5,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>org.telegram</groupId>
|
<groupId>org.telegram</groupId>
|
||||||
<artifactId>telegrambots-meta</artifactId>
|
<artifactId>telegrambots-meta</artifactId>
|
||||||
<version>2.4.4</version>
|
<version>2.4.4.1</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>Telegram Bots Meta</name>
|
<name>Telegram Bots Meta</name>
|
||||||
|
@ -0,0 +1,15 @@
|
|||||||
|
package org.telegram.telegrambots.api.methods.updates;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Ruben Bermudez
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
public final class AllowedUpdates {
|
||||||
|
public static final String MESSAGE = "message";
|
||||||
|
public static final String EDITEDMESSAGE = "edited_message";
|
||||||
|
public static final String CHANNELPOST = "channel_post";
|
||||||
|
public static final String EDITEDCHANNELPOST = "edited_channel_post";
|
||||||
|
public static final String INLINEQUERY = "inline_query";
|
||||||
|
public static final String CHOSENINLINERESULT = "chosen_inline_result";
|
||||||
|
public static final String CALLBACKQUERY = "callback_query";
|
||||||
|
}
|
@ -0,0 +1,55 @@
|
|||||||
|
package org.telegram.telegrambots.api.methods.updates;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
|
|
||||||
|
import org.telegram.telegrambots.api.methods.BotApiMethod;
|
||||||
|
import org.telegram.telegrambots.api.objects.replykeyboard.ApiResponse;
|
||||||
|
import org.telegram.telegrambots.exceptions.TelegramApiRequestException;
|
||||||
|
import org.telegram.telegrambots.exceptions.TelegramApiValidationException;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Ruben Bermudez
|
||||||
|
* @version 1.0
|
||||||
|
* @brief Use this method to receive incoming updates using long polling (wiki). An Array of Update
|
||||||
|
* objects is returned.
|
||||||
|
* @date 20 of June of 2015
|
||||||
|
*/
|
||||||
|
public class DeleteWebhook extends BotApiMethod<Boolean>{
|
||||||
|
public static final String PATH = "deleteWebhook";
|
||||||
|
|
||||||
|
public DeleteWebhook() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getMethod() {
|
||||||
|
return PATH;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean deserializeResponse(String answer) throws
|
||||||
|
TelegramApiRequestException {
|
||||||
|
try {
|
||||||
|
ApiResponse<Boolean> result = OBJECT_MAPPER.readValue(answer,
|
||||||
|
new TypeReference<ApiResponse<Boolean>>(){});
|
||||||
|
if (result.getOk()) {
|
||||||
|
return result.getResult();
|
||||||
|
} else {
|
||||||
|
throw new TelegramApiRequestException("Error deleting webhook", result);
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new TelegramApiRequestException("Unable to deserialize response", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void validate() throws TelegramApiValidationException {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "DeleteWebhook{}";
|
||||||
|
}
|
||||||
|
}
|
@ -11,6 +11,7 @@ import org.telegram.telegrambots.exceptions.TelegramApiValidationException;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Ruben Bermudez
|
* @author Ruben Bermudez
|
||||||
@ -25,6 +26,8 @@ public class GetUpdates extends BotApiMethod<ArrayList<Update>>{
|
|||||||
private static final String OFFSET_FIELD = "offset";
|
private static final String OFFSET_FIELD = "offset";
|
||||||
private static final String LIMIT_FIELD = "limit";
|
private static final String LIMIT_FIELD = "limit";
|
||||||
private static final String TIMEOUT_FIELD = "timeout";
|
private static final String TIMEOUT_FIELD = "timeout";
|
||||||
|
private static final String ALLOWEDUPDATES_FIELD = "allowed_updates";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Optional. Identifier of the first update to be returned. Must be greater by one than the
|
* Optional. Identifier of the first update to be returned. Must be greater by one than the
|
||||||
* highest among the identifiers of previously received updates. By default, updates starting
|
* highest among the identifiers of previously received updates. By default, updates starting
|
||||||
@ -47,6 +50,17 @@ public class GetUpdates extends BotApiMethod<ArrayList<Update>>{
|
|||||||
*/
|
*/
|
||||||
@JsonProperty(TIMEOUT_FIELD)
|
@JsonProperty(TIMEOUT_FIELD)
|
||||||
private Integer timeout;
|
private Integer timeout;
|
||||||
|
/**
|
||||||
|
* List the types of updates you want your bot to receive.
|
||||||
|
* For example, specify [“message”, “edited_channel_post”, “callback_query”] to only receive
|
||||||
|
* updates of these types. Specify an empty list to receive all updates regardless of type (default).
|
||||||
|
* If not specified, the previous setting will be used.
|
||||||
|
*
|
||||||
|
* Please note that this parameter doesn't affect updates created before the call to the setWebhook,
|
||||||
|
* so unwanted updates may be received for a short period of time.
|
||||||
|
*/
|
||||||
|
@JsonProperty(ALLOWEDUPDATES_FIELD)
|
||||||
|
private List<String> allowedUpdates;
|
||||||
|
|
||||||
public GetUpdates() {
|
public GetUpdates() {
|
||||||
super();
|
super();
|
||||||
@ -79,6 +93,15 @@ public class GetUpdates extends BotApiMethod<ArrayList<Update>>{
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<String> getAllowedUpdates() {
|
||||||
|
return allowedUpdates;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GetUpdates setAllowedUpdates(List<String> allowedUpdates) {
|
||||||
|
this.allowedUpdates = allowedUpdates;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getMethod() {
|
public String getMethod() {
|
||||||
return PATH;
|
return PATH;
|
||||||
@ -110,6 +133,7 @@ public class GetUpdates extends BotApiMethod<ArrayList<Update>>{
|
|||||||
"offset=" + offset +
|
"offset=" + offset +
|
||||||
", limit=" + limit +
|
", limit=" + limit +
|
||||||
", timeout=" + timeout +
|
", timeout=" + timeout +
|
||||||
|
", allowedUpdates=" + allowedUpdates +
|
||||||
'}';
|
'}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package org.telegram.telegrambots.api.methods.updates;
|
package org.telegram.telegrambots.api.methods.updates;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Ruben Bermudez
|
* @author Ruben Bermudez
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
@ -14,9 +16,27 @@ public class SetWebhook {
|
|||||||
|
|
||||||
public static final String URL_FIELD = "url";
|
public static final String URL_FIELD = "url";
|
||||||
public static final String CERTIFICATE_FIELD = "certificate";
|
public static final String CERTIFICATE_FIELD = "certificate";
|
||||||
|
public static final String MAXCONNECTIONS_FIELD = "max_connections";
|
||||||
|
public static final String ALLOWEDUPDATES_FIELD = "allowed_updates";
|
||||||
|
|
||||||
private String url; ///< Optional. HTTPS url to send updates to. Use an empty string to remove webhook integration
|
private String url; ///< Optional. HTTPS url to send updates to. Use an empty string to remove webhook integration
|
||||||
private String certificateFile; ///< Optional. Upload your public key certificate so that the root certificate in use can be checked
|
private String certificateFile; ///< Optional. Upload your public key certificate so that the root certificate in use can be checked
|
||||||
|
/**
|
||||||
|
* Maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery, 1-100.
|
||||||
|
* Defaults to 40. Use lower values to limit the load on your bot‘s server,
|
||||||
|
* and higher values to increase your bot’s throughput.
|
||||||
|
*/
|
||||||
|
private Integer maxConnections;
|
||||||
|
/**
|
||||||
|
* List the types of updates you want your bot to receive.
|
||||||
|
* For example, specify [“message”, “edited_channel_post”, “callback_query”] to only receive
|
||||||
|
* updates of these types. Specify an empty list to receive all updates regardless of type (default).
|
||||||
|
* If not specified, the previous setting will be used.
|
||||||
|
*
|
||||||
|
* Please note that this parameter doesn't affect updates created before the call to the setWebhook,
|
||||||
|
* so unwanted updates may be received for a short period of time.
|
||||||
|
*/
|
||||||
|
private List<String> allowedUpdates;
|
||||||
|
|
||||||
public SetWebhook() {
|
public SetWebhook() {
|
||||||
this.url = "";
|
this.url = "";
|
||||||
@ -40,11 +60,31 @@ public class SetWebhook {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getMaxConnections() {
|
||||||
|
return maxConnections;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SetWebhook setMaxConnections(Integer maxConnections) {
|
||||||
|
this.maxConnections = maxConnections;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getAllowedUpdates() {
|
||||||
|
return allowedUpdates;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SetWebhook setAllowedUpdates(List<String> allowedUpdates) {
|
||||||
|
this.allowedUpdates = allowedUpdates;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "SetWebhook{" +
|
return "SetWebhook{" +
|
||||||
"url='" + url + '\'' +
|
"url='" + url + '\'' +
|
||||||
", certificateFile='" + certificateFile + '\'' +
|
", certificateFile='" + certificateFile + '\'' +
|
||||||
|
", maxConnections=" + maxConnections +
|
||||||
|
", allowedUpdates=" + allowedUpdates +
|
||||||
'}';
|
'}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
|||||||
|
|
||||||
import org.telegram.telegrambots.api.interfaces.BotApiObject;
|
import org.telegram.telegrambots.api.interfaces.BotApiObject;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Ruben Bermudez
|
* @author Ruben Bermudez
|
||||||
* @version 2.4
|
* @version 2.4
|
||||||
@ -15,6 +17,8 @@ public class WebhookInfo implements BotApiObject {
|
|||||||
private static final String URL_FIELD = "url";
|
private static final String URL_FIELD = "url";
|
||||||
private static final String HASCUSTOMCERTIFICATE_FIELD = "has_custom_certificate";
|
private static final String HASCUSTOMCERTIFICATE_FIELD = "has_custom_certificate";
|
||||||
private static final String PENDINGUPDATESCOUNT_FIELD = "pending_updates_count";
|
private static final String PENDINGUPDATESCOUNT_FIELD = "pending_updates_count";
|
||||||
|
private static final String MAXCONNECTIONS_FIELD = "max_connections";
|
||||||
|
private static final String ALLOWEDUPDATES_FIELD = "allowed_updates";
|
||||||
private static final String LASTERRORDATE_FIELD = "last_error_date";
|
private static final String LASTERRORDATE_FIELD = "last_error_date";
|
||||||
private static final String LASTERRORMESSAGE_FIELD = "last_error_message";
|
private static final String LASTERRORMESSAGE_FIELD = "last_error_message";
|
||||||
|
|
||||||
@ -28,6 +32,10 @@ public class WebhookInfo implements BotApiObject {
|
|||||||
private Integer lastErrorDate; ///< Optional. Unix time for the most recent error that happened when trying to deliver an update via webhook
|
private Integer lastErrorDate; ///< Optional. Unix time for the most recent error that happened when trying to deliver an update via webhook
|
||||||
@JsonProperty(LASTERRORMESSAGE_FIELD)
|
@JsonProperty(LASTERRORMESSAGE_FIELD)
|
||||||
private String lastErrorMessage; ///< Optional. Error message in human-readable format for the most recent error that happened when trying to deliver an update via webhook
|
private String lastErrorMessage; ///< Optional. Error message in human-readable format for the most recent error that happened when trying to deliver an update via webhook
|
||||||
|
@JsonProperty(MAXCONNECTIONS_FIELD)
|
||||||
|
private Integer maxConnections; ///< Optional. Maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery
|
||||||
|
@JsonProperty(ALLOWEDUPDATES_FIELD)
|
||||||
|
private List<String> allowedUpdates; ///< Optional. A list of update types the bot is subscribed to. Defaults to all update types
|
||||||
|
|
||||||
public WebhookInfo() {
|
public WebhookInfo() {
|
||||||
super();
|
super();
|
||||||
@ -52,4 +60,12 @@ public class WebhookInfo implements BotApiObject {
|
|||||||
public String getLastErrorMessage() {
|
public String getLastErrorMessage() {
|
||||||
return lastErrorMessage;
|
return lastErrorMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getMaxConnections() {
|
||||||
|
return maxConnections;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getAllowedUpdates() {
|
||||||
|
return allowedUpdates;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,7 @@ import org.telegram.telegrambots.api.methods.send.SendSticker;
|
|||||||
import org.telegram.telegrambots.api.methods.send.SendVenue;
|
import org.telegram.telegrambots.api.methods.send.SendVenue;
|
||||||
import org.telegram.telegrambots.api.methods.send.SendVideo;
|
import org.telegram.telegrambots.api.methods.send.SendVideo;
|
||||||
import org.telegram.telegrambots.api.methods.send.SendVoice;
|
import org.telegram.telegrambots.api.methods.send.SendVoice;
|
||||||
|
import org.telegram.telegrambots.api.methods.updates.DeleteWebhook;
|
||||||
import org.telegram.telegrambots.api.methods.updates.GetWebhookInfo;
|
import org.telegram.telegrambots.api.methods.updates.GetWebhookInfo;
|
||||||
import org.telegram.telegrambots.api.methods.updatingmessages.EditMessageCaption;
|
import org.telegram.telegrambots.api.methods.updatingmessages.EditMessageCaption;
|
||||||
import org.telegram.telegrambots.api.methods.updatingmessages.EditMessageReplyMarkup;
|
import org.telegram.telegrambots.api.methods.updatingmessages.EditMessageReplyMarkup;
|
||||||
@ -241,6 +242,13 @@ public abstract class AbsSender {
|
|||||||
return sendApiMethod(sendGame);
|
return sendApiMethod(sendGame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public final Boolean deleteWebhook(DeleteWebhook deleteWebhook) throws TelegramApiException {
|
||||||
|
if(deleteWebhook == null){
|
||||||
|
throw new TelegramApiException("Parameter deleteWebhook can not be null");
|
||||||
|
}
|
||||||
|
return sendApiMethod(deleteWebhook);
|
||||||
|
}
|
||||||
|
|
||||||
// Send Requests Async
|
// Send Requests Async
|
||||||
|
|
||||||
public final void sendMessageAsync(SendMessage sendMessage, SentCallback<Message> sentCallback) throws TelegramApiException {
|
public final void sendMessageAsync(SendMessage sendMessage, SentCallback<Message> sentCallback) throws TelegramApiException {
|
||||||
@ -512,6 +520,16 @@ public abstract class AbsSender {
|
|||||||
sendApiMethodAsync(sendGame, sentCallback);
|
sendApiMethodAsync(sendGame, sentCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public final void deleteWebhook(DeleteWebhook deleteWebhook, SentCallback<Boolean> sentCallback) throws TelegramApiException {
|
||||||
|
if (deleteWebhook == null) {
|
||||||
|
throw new TelegramApiException("Parameter deleteWebhook can not be null");
|
||||||
|
}
|
||||||
|
if (sentCallback == null) {
|
||||||
|
throw new TelegramApiException("Parameter sentCallback can not be null");
|
||||||
|
}
|
||||||
|
sendApiMethodAsync(deleteWebhook, sentCallback);
|
||||||
|
}
|
||||||
|
|
||||||
// Specific Send Requests
|
// Specific Send Requests
|
||||||
public abstract Message sendDocument(SendDocument sendDocument) throws TelegramApiException;
|
public abstract Message sendDocument(SendDocument sendDocument) throws TelegramApiException;
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>org.telegram</groupId>
|
<groupId>org.telegram</groupId>
|
||||||
<artifactId>telegrambots</artifactId>
|
<artifactId>telegrambots</artifactId>
|
||||||
<version>2.4.4</version>
|
<version>2.4.4.1</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>Telegram Bots</name>
|
<name>Telegram Bots</name>
|
||||||
@ -65,7 +65,7 @@
|
|||||||
<json.version>20160810</json.version>
|
<json.version>20160810</json.version>
|
||||||
<jackson.version>2.8.5</jackson.version>
|
<jackson.version>2.8.5</jackson.version>
|
||||||
<commonio.version>2.5</commonio.version>
|
<commonio.version>2.5</commonio.version>
|
||||||
<bots.version>2.4.4</bots.version>
|
<bots.version>2.4.4.1</bots.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencyManagement>
|
<dependencyManagement>
|
||||||
|
@ -3,6 +3,8 @@ package org.telegram.telegrambots.bots;
|
|||||||
import org.apache.http.client.config.RequestConfig;
|
import org.apache.http.client.config.RequestConfig;
|
||||||
import org.telegram.telegrambots.generics.BotOptions;
|
import org.telegram.telegrambots.generics.BotOptions;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Ruben Bermudez
|
* @author Ruben Bermudez
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
@ -12,6 +14,8 @@ import org.telegram.telegrambots.generics.BotOptions;
|
|||||||
public class DefaultBotOptions implements BotOptions {
|
public class DefaultBotOptions implements BotOptions {
|
||||||
private int maxThreads; ///< Max number of threads used for async methods executions (default 1)
|
private int maxThreads; ///< Max number of threads used for async methods executions (default 1)
|
||||||
private RequestConfig requestConfig;
|
private RequestConfig requestConfig;
|
||||||
|
private Integer maxWebhookConnections;
|
||||||
|
private List<String> allowedUpdates;
|
||||||
|
|
||||||
public DefaultBotOptions() {
|
public DefaultBotOptions() {
|
||||||
maxThreads = 1;
|
maxThreads = 1;
|
||||||
@ -29,6 +33,22 @@ public class DefaultBotOptions implements BotOptions {
|
|||||||
return requestConfig;
|
return requestConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getMaxWebhookConnections() {
|
||||||
|
return maxWebhookConnections;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaxWebhookConnections(Integer maxWebhookConnections) {
|
||||||
|
this.maxWebhookConnections = maxWebhookConnections;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getAllowedUpdates() {
|
||||||
|
return allowedUpdates;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAllowedUpdates(List<String> allowedUpdates) {
|
||||||
|
this.allowedUpdates = allowedUpdates;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @implSpec Default implementation assumes no proxy is needed and sets a 75secs timoute
|
* @implSpec Default implementation assumes no proxy is needed and sets a 75secs timoute
|
||||||
* @param requestConfig Request config to be used in all Http requests
|
* @param requestConfig Request config to be used in all Http requests
|
||||||
|
@ -10,6 +10,7 @@ import org.apache.http.entity.mime.MultipartEntityBuilder;
|
|||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
import org.apache.http.impl.client.CloseableHttpClient;
|
||||||
import org.apache.http.impl.client.HttpClientBuilder;
|
import org.apache.http.impl.client.HttpClientBuilder;
|
||||||
import org.apache.http.util.EntityUtils;
|
import org.apache.http.util.EntityUtils;
|
||||||
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
import org.telegram.telegrambots.ApiConstants;
|
import org.telegram.telegrambots.ApiConstants;
|
||||||
@ -50,6 +51,12 @@ public abstract class TelegramWebhookBot extends DefaultAbsSender implements Web
|
|||||||
httppost.setConfig(botOptions.getRequestConfig());
|
httppost.setConfig(botOptions.getRequestConfig());
|
||||||
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
|
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
|
||||||
builder.addTextBody(SetWebhook.URL_FIELD, url);
|
builder.addTextBody(SetWebhook.URL_FIELD, url);
|
||||||
|
if (botOptions.getMaxWebhookConnections() != null) {
|
||||||
|
builder.addTextBody(SetWebhook.MAXCONNECTIONS_FIELD, botOptions.getMaxWebhookConnections().toString());
|
||||||
|
}
|
||||||
|
if (botOptions.getAllowedUpdates() != null) {
|
||||||
|
builder.addTextBody(SetWebhook.ALLOWEDUPDATES_FIELD, new JSONArray(botOptions.getMaxWebhookConnections()).toString());
|
||||||
|
}
|
||||||
if (publicCertificatePath != null) {
|
if (publicCertificatePath != null) {
|
||||||
File certificate = new File(publicCertificatePath);
|
File certificate = new File(publicCertificatePath);
|
||||||
if (certificate.exists()) {
|
if (certificate.exists()) {
|
||||||
|
@ -158,10 +158,15 @@ public class DefaultBotSession implements BotSession {
|
|||||||
setPriority(Thread.MIN_PRIORITY);
|
setPriority(Thread.MIN_PRIORITY);
|
||||||
while (running) {
|
while (running) {
|
||||||
try {
|
try {
|
||||||
GetUpdates request = new GetUpdates();
|
GetUpdates request = new GetUpdates()
|
||||||
request.setLimit(100);
|
.setLimit(100)
|
||||||
request.setTimeout(ApiConstants.GETUPDATES_TIMEOUT);
|
.setTimeout(ApiConstants.GETUPDATES_TIMEOUT)
|
||||||
request.setOffset(lastReceivedUpdate + 1);
|
.setOffset(lastReceivedUpdate + 1);
|
||||||
|
|
||||||
|
if (options.getAllowedUpdates() != null) {
|
||||||
|
request.setAllowedUpdates(options.getAllowedUpdates());
|
||||||
|
}
|
||||||
|
|
||||||
String url = ApiConstants.BASE_URL + token + "/" + GetUpdates.PATH;
|
String url = ApiConstants.BASE_URL + token + "/" + GetUpdates.PATH;
|
||||||
//http client
|
//http client
|
||||||
HttpPost httpPost = new HttpPost(url);
|
HttpPost httpPost = new HttpPost(url);
|
||||||
|
Loading…
Reference in New Issue
Block a user