Update version 4.9

This commit is contained in:
rubenlagus 2020-06-04 22:18:36 +01:00 committed by Ruben Bermudez
parent 28f60e3024
commit 72b239e851
19 changed files with 117 additions and 37 deletions

View File

@ -27,16 +27,16 @@ Just import add the library to your project with one of these options:
<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambots</artifactId>
<version>4.8.1</version>
<version>4.9</version>
</dependency>
```
```gradle
compile "org.telegram:telegrambots:4.8.1"
compile "org.telegram:telegrambots:4.9"
```
2. Using Jitpack from [here](https://jitpack.io/#rubenlagus/TelegramBots/4.8.1)
3. Download the jar(including all dependencies) from [here](https://mvnrepository.com/artifact/org.telegram/telegrambots/4.8.1)
2. Using Jitpack from [here](https://jitpack.io/#rubenlagus/TelegramBots/4.9)
3. Download the jar(including all dependencies) from [here](https://mvnrepository.com/artifact/org.telegram/telegrambots/4.9)
In order to use Long Polling mode, just create your own bot extending `org.telegram.telegrambots.bots.TelegramLongPollingBot`.

View File

@ -1,3 +1,7 @@
### <a id="4.9"></a>4.9 ###
1. Update Api version [4.9](https://core.telegram.org/bots/api-changelog#june-4-2020)
2. Bug fixing: #731, #749, #752 and #753
### <a id="4.8.1"></a>4.8.1 ###
1. Update Api version [4.8](https://core.telegram.org/bots/api-changelog#april-24-2020)
2. Add stats for Abilities

View File

@ -11,13 +11,13 @@ First you need ot get the library and add it to your project. There are few poss
<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambots</artifactId>
<version>4.8.1</version>
<version>4.9</version>
</dependency>
```
* With **Gradle**:
```groovy
compile group: 'org.telegram', name: 'telegrambots', version: '4.8.1'
compile group: 'org.telegram', name: 'telegrambots', version: '4.9'
```
2. Don't like **Maven Central Repository**? It can also be taken from [Jitpack](https://jitpack.io/#rubenlagus/TelegramBots).

View File

@ -9,12 +9,12 @@ As with any Java project, you will need to set your dependencies.
<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambots-abilities</artifactId>
<version>4.8.1</version>
<version>4.9</version>
</dependency>
```
* **Gradle**
```groovy
implementation group: 'org.telegram', name: 'telegrambots-abilities', version: '4.8.1'
implementation group: 'org.telegram', name: 'telegrambots-abilities', version: '4.9'
```
* [JitPack](https://jitpack.io/#rubenlagus/TelegramBots)

View File

@ -7,7 +7,7 @@
<groupId>org.telegram</groupId>
<artifactId>Bots</artifactId>
<packaging>pom</packaging>
<version>4.8.1</version>
<version>4.9</version>
<modules>
<module>telegrambots</module>

View File

@ -18,19 +18,19 @@ Usage
<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambots-abilities</artifactId>
<version>4.8.1</version>
<version>4.9</version>
</dependency>
```
**Gradle**
```gradle
compile "org.telegram:telegrambots-abilities:4.8.1"
compile "org.telegram:telegrambots-abilities:4.9"
```
**JitPack** - [JitPack](https://jitpack.io/#rubenlagus/TelegramBots/v4.8.1)
**JitPack** - [JitPack](https://jitpack.io/#rubenlagus/TelegramBots/v4.9)
**Plain imports** - [Here](https://github.com/rubenlagus/TelegramBots/releases/tag/v4.8.1)
**Plain imports** - [Here](https://github.com/rubenlagus/TelegramBots/releases/tag/v4.9)
Motivation
----------

View File

@ -7,7 +7,7 @@
<parent>
<groupId>org.telegram</groupId>
<artifactId>Bots</artifactId>
<version>4.8.1</version>
<version>4.9</version>
</parent>
<artifactId>telegrambots-abilities</artifactId>
@ -84,7 +84,7 @@
<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambots</artifactId>
<version>4.8.1</version>
<version>4.9</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>

View File

@ -15,7 +15,7 @@ Usage
<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambots-chat-session-bot</artifactId>
<version>4.8.1</version>
<version>4.9</version>
</dependency>
```

View File

@ -7,7 +7,7 @@
<parent>
<groupId>org.telegram</groupId>
<artifactId>Bots</artifactId>
<version>4.8.1</version>
<version>4.9</version>
</parent>
<artifactId>telegrambots-chat-session-bot</artifactId>
@ -84,7 +84,7 @@
<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambots</artifactId>
<version>4.8.1</version>
<version>4.9</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-core -->

View File

@ -16,12 +16,12 @@ Just import add the library to your project with one of these options:
<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambotsextensions</artifactId>
<version>4.8.1</version>
<version>4.9</version>
</dependency>
```
2. Using Gradle:
```gradle
compile "org.telegram:telegrambotsextensions:4.8.1"
compile "org.telegram:telegrambotsextensions:4.9"
```

View File

@ -7,7 +7,7 @@
<parent>
<groupId>org.telegram</groupId>
<artifactId>Bots</artifactId>
<version>4.8.1</version>
<version>4.9</version>
</parent>
<artifactId>telegrambotsextensions</artifactId>
@ -75,7 +75,7 @@
<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambots</artifactId>
<version>4.8.1</version>
<version>4.9</version>
</dependency>
</dependencies>

View File

@ -7,7 +7,7 @@
<parent>
<groupId>org.telegram</groupId>
<artifactId>Bots</artifactId>
<version>4.8.1</version>
<version>4.9</version>
</parent>
<artifactId>telegrambots-meta</artifactId>

View File

@ -10,14 +10,18 @@ import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException;
import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException;
import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* @author Ruben Bermudez
* @version 4.7
* Use this method to send a dice, which will have a random value from 1 to 6. On success, the sent Message is returned.
* (Yes, we're aware of the proper singular of die. But it's awkward, and we decided to help it change. One dice at a time!)
* Use this method to send an animated emoji that will display a random value. On success, the sent Message is returned.
*/
public class SendDice extends BotApiMethod<Message> {
private static final List<String> VALIDEMOJIS = Collections.unmodifiableList(Arrays.asList("\uD83C\uDFB2", "\uD83C\uDFAF", "\uD83C\uDFC0"));
public static final String PATH = "sendDice";
private static final String CHATID_FIELD = "chat_id";
@ -28,8 +32,12 @@ public class SendDice extends BotApiMethod<Message> {
@JsonProperty(CHATID_FIELD)
private String chatId; ///< Unique identifier for the target chat or username of the target channel (in the format @channelusername)
/**
* Emoji on which the dice throw animation is based. Currently, must be one of 🎲, 🎯, or 🏀.
* Dice can have values 1-6 for 🎲 and 🎯, and values 1-5 for 🏀. Defauts to 🎲
*/
@JsonProperty(EMOJI_FIELD)
private String emoji; ///< Optional. Emoji on which the dice throw animation is based. Currently, must be one of 🎲 or 🎯. Defauts to 🎲
private String emoji;
@JsonProperty(DISABLENOTIFICATION_FIELD)
private Boolean disableNotification; ///< Optional. Sends the message silently. Users will receive a notification with no sound.
@JsonProperty(REPLYTOMESSAGEID_FIELD)
@ -121,8 +129,8 @@ public class SendDice extends BotApiMethod<Message> {
if (chatId == null) {
throw new TelegramApiValidationException("ChatId parameter can't be empty", this);
}
if (emoji != null && !emoji.equals("\uD83C\uDFB2") && !emoji.equals("\uD83C\uDFAF")) {
throw new TelegramApiValidationException("Only \uD83C\uDFB2 and \uD83C\uDFAF are allowed in Emoji field ", this);
if (emoji != null && !VALIDEMOJIS.contains(emoji)) {
throw new TelegramApiValidationException("Only \uD83C\uDFB2, \uD83C\uDFAF or \uD83C\uDFC0 are allowed in Emoji field ", this);
}
if (replyMarkup != null) {
replyMarkup.validate();

View File

@ -6,15 +6,14 @@ import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
/**
* @author Ruben Bermudez
* @version 4.7
* This object represents a dice with random value from 1 to 6.
* (Yes, we're aware of the proper singular of die. But it's awkward, and we decided to help it change. One dice at a time!)
* This object represents an animated emoji that displays a random value.
*/
public class Dice implements BotApiObject {
private static final String VALUE_FIELD = "value";
private static final String EMOJI_FIELD = "emoji";
@JsonProperty(VALUE_FIELD)
private Integer value; ///< Value of the dice, 1-6
private Integer value; ///< Value of the dice, 1-6 for 🎲 and 🎯 base emoji, 1-5 for 🏀 base emoji
@JsonProperty(EMOJI_FIELD)
private String emoji; ///< Emoji on which the dice throw animation is based

View File

@ -68,6 +68,7 @@ public class Message implements BotApiObject {
private static final String POLL_FIELD = "poll";
private static final String REPLY_MARKUP_FIELD = "reply_markup";
private static final String DICE_FIELD = "dice";
private static final String VIABOT_FIELD = "via_bot";
@JsonProperty(MESSAGEID_FIELD)
private Integer messageId; ///< Integer Unique message identifier
@ -210,7 +211,8 @@ public class Message implements BotApiObject {
private InlineKeyboardMarkup replyMarkup;
@JsonProperty(DICE_FIELD)
private Dice dice; // Optional. Message is a dice with random value from 1 to 6
@JsonProperty(VIABOT_FIELD)
private User viaBot; // Optional. Bot through which the message was sent
public Message() {
super();
}
@ -521,6 +523,14 @@ public class Message implements BotApiObject {
return dice != null;
}
public User getViaBot() {
return viaBot;
}
public boolean hasViaBot() {
return viaBot != null;
}
public boolean hasReplyMarkup() {
return replyMarkup != null;
}
@ -579,6 +589,8 @@ public class Message implements BotApiObject {
", forwardSenderName='" + forwardSenderName + '\'' +
", poll=" + poll +
", replyMarkup=" + replyMarkup +
", dice=" + dice +
", viaBot=" + viaBot +
'}';
}
}

View File

@ -7,6 +7,10 @@ import org.telegram.telegrambots.meta.api.objects.inlinequery.inputmessageconten
import org.telegram.telegrambots.meta.api.objects.replykeyboard.InlineKeyboardMarkup;
import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* @author Ruben Bermudez
* @version 1.0
@ -16,12 +20,15 @@ import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException;
*/
@JsonDeserialize
public class InlineQueryResultGif implements InlineQueryResult {
private static final List<String> VALIDTHUMBTYPES = Collections.unmodifiableList(Arrays.asList("image/jpeg", "image/gif", "video/mp4"));
private static final String TYPE_FIELD = "type";
private static final String ID_FIELD = "id";
private static final String GIFURL_FIELD = "gif_url";
private static final String GIFWIDTH_FIELD = "gif_width";
private static final String GIFHEIGHT_FIELD = "gif_height";
private static final String THUMBURL_FIELD = "thumb_url";
private static final String THUMBMIMETYPE_FIELD = "thumb_mime_type";
private static final String TITLE_FIELD = "title";
private static final String CAPTION_FIELD = "caption";
private static final String INPUTMESSAGECONTENT_FIELD = "input_message_content";
@ -40,7 +47,9 @@ public class InlineQueryResultGif implements InlineQueryResult {
@JsonProperty(GIFHEIGHT_FIELD)
private Integer gifHeight; ///< Optional. Height of the GIF
@JsonProperty(THUMBURL_FIELD)
private String thumbUrl; ///< Optional. URL of a static thumbnail for the result (jpeg or gif)
private String thumbUrl; ///< Optional. URL of the static (JPEG or GIF) or animated (MPEG4) thumbnail for the result
@JsonProperty(THUMBMIMETYPE_FIELD)
private String thumbUrlType; ///< Optional. MIME type of the thumbnail, must be one of image/jpeg, image/gif, or video/mp4
@JsonProperty(TITLE_FIELD)
private String title; ///< Optional. Title for the result
@JsonProperty(CAPTION_FIELD)
@ -107,6 +116,15 @@ public class InlineQueryResultGif implements InlineQueryResult {
return this;
}
public String getThumbUrlType() {
return thumbUrlType;
}
public InlineQueryResultGif setThumbUrlType(String thumbUrlType) {
this.thumbUrlType = thumbUrlType;
return this;
}
public String getTitle() {
return title;
}
@ -169,6 +187,9 @@ public class InlineQueryResultGif implements InlineQueryResult {
if (gifUrl == null || gifUrl.isEmpty()) {
throw new TelegramApiValidationException("GifUrl parameter can't be empty", this);
}
if (thumbUrlType != null && !VALIDTHUMBTYPES.contains(thumbUrlType)) {
throw new TelegramApiValidationException("ThumbUrlType parameter must be one of “image/jpeg”, “image/gif”, or “video/mp4”", this);
}
if (inputMessageContent != null) {
inputMessageContent.validate();
}
@ -186,6 +207,7 @@ public class InlineQueryResultGif implements InlineQueryResult {
", gifWidth=" + gifWidth +
", gifHeight=" + gifHeight +
", thumbUrl='" + thumbUrl + '\'' +
", thumbUrlType='" + thumbUrlType + '\'' +
", title='" + title + '\'' +
", caption='" + caption + '\'' +
", inputMessageContent=" + inputMessageContent +

View File

@ -8,6 +8,10 @@ import org.telegram.telegrambots.meta.api.objects.inlinequery.result.InlineQuery
import org.telegram.telegrambots.meta.api.objects.replykeyboard.InlineKeyboardMarkup;
import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* @author Ruben Bermudez
* @version 1.0
@ -17,11 +21,15 @@ import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException;
*/
@JsonDeserialize
public class InlineQueryResultCachedGif implements InlineQueryResult {
private static final List<String> VALIDTHUMBTYPES = Collections.unmodifiableList(Arrays.asList("image/jpeg", "image/gif", "video/mp4"));
private static final String TYPE_FIELD = "type";
private static final String ID_FIELD = "id";
private static final String GIF_FILE_ID_FIELD = "gif_file_id";
private static final String TITLE_FIELD = "title";
private static final String CAPTION_FIELD = "caption";
private static final String THUMBURL_FIELD = "thumb_url";
private static final String THUMBMIMETYPE_FIELD = "thumb_mime_type";
private static final String INPUTMESSAGECONTENT_FIELD = "input_message_content";
private static final String REPLY_MARKUP_FIELD = "reply_markup";
private static final String PARSEMODE_FIELD = "parse_mode";
@ -42,6 +50,10 @@ public class InlineQueryResultCachedGif implements InlineQueryResult {
private InlineKeyboardMarkup replyMarkup; ///< Optional. Inline keyboard attached to the message
@JsonProperty(PARSEMODE_FIELD)
private String parseMode; ///< Send Markdown or HTML, if you want Telegram apps to show bold, italic, fixed-width text or inline URLs in the media caption.
@JsonProperty(THUMBURL_FIELD)
private String thumbUrl; ///< Optional. URL of the static (JPEG or GIF) or animated (MPEG4) thumbnail for the result
@JsonProperty(THUMBMIMETYPE_FIELD)
private String thumbUrlType;
public InlineQueryResultCachedGif() {
super();
@ -114,6 +126,24 @@ public class InlineQueryResultCachedGif implements InlineQueryResult {
return this;
}
public String getThumbUrl() {
return thumbUrl;
}
public InlineQueryResultCachedGif setThumbUrl(String thumbUrl) {
this.thumbUrl = thumbUrl;
return this;
}
public String getThumbUrlType() {
return thumbUrlType;
}
public InlineQueryResultCachedGif setThumbUrlType(String thumbUrlType) {
this.thumbUrlType = thumbUrlType;
return this;
}
@Override
public void validate() throws TelegramApiValidationException {
if (id == null || id.isEmpty()) {
@ -122,6 +152,9 @@ public class InlineQueryResultCachedGif implements InlineQueryResult {
if (gifFileId == null || gifFileId.isEmpty()) {
throw new TelegramApiValidationException("GifFileId parameter can't be empty", this);
}
if (thumbUrlType != null && !VALIDTHUMBTYPES.contains(thumbUrlType)) {
throw new TelegramApiValidationException("ThumbUrlType parameter must be one of “image/jpeg”, “image/gif”, or “video/mp4”", this);
}
if (inputMessageContent != null) {
inputMessageContent.validate();
}
@ -141,6 +174,8 @@ public class InlineQueryResultCachedGif implements InlineQueryResult {
", inputMessageContent=" + inputMessageContent +
", replyMarkup=" + replyMarkup +
", parseMode='" + parseMode + '\'' +
", thumbUrl='" + thumbUrl + '\'' +
", thumbUrlType='" + thumbUrlType + '\'' +
'}';
}
}

View File

@ -7,7 +7,7 @@
<parent>
<groupId>org.telegram</groupId>
<artifactId>Bots</artifactId>
<version>4.8.1</version>
<version>4.9</version>
</parent>
<artifactId>telegrambots-spring-boot-starter</artifactId>
@ -79,7 +79,7 @@
<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambots</artifactId>
<version>4.8.1</version>
<version>4.9</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>

View File

@ -7,7 +7,7 @@
<parent>
<groupId>org.telegram</groupId>
<artifactId>Bots</artifactId>
<version>4.8.1</version>
<version>4.9</version>
</parent>
<artifactId>telegrambots</artifactId>
@ -95,7 +95,7 @@
<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambots-meta</artifactId>
<version>4.8.1</version>
<version>4.9</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>