Merge pull request #711 from rubenlagus/dev

Update 4.5
This commit is contained in:
Ruben Bermudez 2019-12-31 15:56:48 +01:00 committed by GitHub
commit 32be70c9eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
37 changed files with 462 additions and 134 deletions

View File

@ -22,10 +22,10 @@
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="telegrambots-meta" />
<module name="telegrambots-extensions" />
<module name="telegrambots" />
<module name="telegrambots-abilities" />
<module name="telegrambots-extensions" />
<module name="telegrambots-meta" />
<module name="telegrambots" />
<module name="telegrambots-chat-session-bot" />
<module name="telegrambots-spring-boot-starter" />
</profile>
@ -1280,39 +1280,6 @@
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpmime/4.5.10/httpmime-4.5.10-sources.jar!/" />
</SOURCES>
</library>
<library name="Maven: org.apache.logging.log4j:log4j-api:2.12.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-api/2.12.1/log4j-api-2.12.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-api/2.12.1/log4j-api-2.12.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-api/2.12.1/log4j-api-2.12.1-sources.jar!/" />
</SOURCES>
</library>
<library name="Maven: org.apache.logging.log4j:log4j-core:2.12.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-core/2.12.1/log4j-core-2.12.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-core/2.12.1/log4j-core-2.12.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-core/2.12.1/log4j-core-2.12.1-sources.jar!/" />
</SOURCES>
</library>
<library name="Maven: org.apache.logging.log4j:log4j-slf4j-impl:2.12.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-slf4j-impl/2.12.1/log4j-slf4j-impl-2.12.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-slf4j-impl/2.12.1/log4j-slf4j-impl-2.12.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/logging/log4j/log4j-slf4j-impl/2.12.1/log4j-slf4j-impl-2.12.1-sources.jar!/" />
</SOURCES>
</library>
<library name="Maven: org.apache.shiro:shiro-cache:1.4.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/shiro/shiro-cache/1.4.2/shiro-cache-1.4.2.jar!/" />
@ -1456,37 +1423,37 @@
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/mojo/animal-sniffer-annotations/1.18/animal-sniffer-annotations-1.18-sources.jar!/" />
</SOURCES>
</library>
<library name="Maven: org.eclipse.collections:eclipse-collections-api:10.0.0">
<library name="Maven: org.eclipse.collections:eclipse-collections-api:10.1.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/collections/eclipse-collections-api/10.0.0/eclipse-collections-api-10.0.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/collections/eclipse-collections-api/10.1.0/eclipse-collections-api-10.1.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/collections/eclipse-collections-api/10.0.0/eclipse-collections-api-10.0.0-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/collections/eclipse-collections-api/10.1.0/eclipse-collections-api-10.1.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/collections/eclipse-collections-api/10.0.0/eclipse-collections-api-10.0.0-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/collections/eclipse-collections-api/10.1.0/eclipse-collections-api-10.1.0-sources.jar!/" />
</SOURCES>
</library>
<library name="Maven: org.eclipse.collections:eclipse-collections-forkjoin:10.0.0">
<library name="Maven: org.eclipse.collections:eclipse-collections-forkjoin:10.1.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/collections/eclipse-collections-forkjoin/10.0.0/eclipse-collections-forkjoin-10.0.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/collections/eclipse-collections-forkjoin/10.1.0/eclipse-collections-forkjoin-10.1.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/collections/eclipse-collections-forkjoin/10.0.0/eclipse-collections-forkjoin-10.0.0-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/collections/eclipse-collections-forkjoin/10.1.0/eclipse-collections-forkjoin-10.1.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/collections/eclipse-collections-forkjoin/10.0.0/eclipse-collections-forkjoin-10.0.0-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/collections/eclipse-collections-forkjoin/10.1.0/eclipse-collections-forkjoin-10.1.0-sources.jar!/" />
</SOURCES>
</library>
<library name="Maven: org.eclipse.collections:eclipse-collections:10.0.0">
<library name="Maven: org.eclipse.collections:eclipse-collections:10.1.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/collections/eclipse-collections/10.0.0/eclipse-collections-10.0.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/collections/eclipse-collections/10.1.0/eclipse-collections-10.1.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/collections/eclipse-collections/10.0.0/eclipse-collections-10.0.0-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/collections/eclipse-collections/10.1.0/eclipse-collections-10.1.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/collections/eclipse-collections/10.0.0/eclipse-collections-10.0.0-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/collections/eclipse-collections/10.1.0/eclipse-collections-10.1.0-sources.jar!/" />
</SOURCES>
</library>
<library name="Maven: org.glassfish.grizzly:grizzly-framework:2.4.4">

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.4.0.2</version>
<version>4.5</version>
</dependency>
```
```gradle
compile "org.telegram:telegrambots:4.4.0.2"
compile "org.telegram:telegrambots:4.5"
```
2. Using Jitpack from [here](https://jitpack.io/#rubenlagus/TelegramBots/4.4.0.2)
3. Download the jar(including all dependencies) from [here](https://mvnrepository.com/artifact/org.telegram/telegrambots/4.4.0.2)
2. Using Jitpack from [here](https://jitpack.io/#rubenlagus/TelegramBots/4.5)
3. Download the jar(including all dependencies) from [here](https://mvnrepository.com/artifact/org.telegram/telegrambots/4.5)
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.5"></a>4.5 ###
1. Update Api version [4.5](https://core.telegram.org/bots/api-changelog#december-31-2019)
2. Fixes: #697, #710
### <a id="4.4.0.2"></a>4.4.0.2 ###
1. Use SLF4J
2. Support case-insensitive usernames

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.4.0.2</version>
<version>4.5</version>
</dependency>
```
* With **Gradle**:
```groovy
compile group: 'org.telegram', name: 'telegrambots', version: '4.4.0.2'
compile group: 'org.telegram', name: 'telegrambots', version: '4.5'
```
2. Don't like **Maven Central Repository**? It can also be taken from [Jitpack](https://jitpack.io/#rubenlagus/TelegramBots).

View File

@ -9,7 +9,7 @@ As with any Java project, you will need to set your dependencies.
<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambots-abilities</artifactId>
<version>4.4.0.2</version>
<version>4.5</version>
</dependency>
```
* **Gradle**

View File

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

View File

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

View File

@ -7,7 +7,7 @@
<parent>
<groupId>org.telegram</groupId>
<artifactId>Bots</artifactId>
<version>4.4.0.2</version>
<version>4.5</version>
</parent>
<artifactId>telegrambots-abilities</artifactId>
@ -78,14 +78,13 @@
<commonslang.version>3.9</commonslang.version>
<mapdb.version>3.0.7</mapdb.version>
<log4j.version>2.12.1</log4j.version>
</properties>
<dependencies>
<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambots</artifactId>
<version>4.4.0.2</version>
<version>4.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
@ -103,16 +102,6 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j.version}</version>
</dependency>
</dependencies>
<build>

View File

@ -3,8 +3,8 @@ package org.telegram.abilitybots.api.bot;
import com.google.common.collect.ListMultimap;
import com.google.common.collect.Multimap;
import org.apache.commons.io.IOUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.telegram.abilitybots.api.db.DBContext;
import org.telegram.abilitybots.api.objects.Ability;
import org.telegram.abilitybots.api.objects.MessageContext;
@ -35,12 +35,36 @@ import static java.util.Objects.nonNull;
import static java.util.stream.Collectors.joining;
import static org.apache.commons.lang3.StringUtils.isEmpty;
import static org.telegram.abilitybots.api.objects.Ability.builder;
import static org.telegram.abilitybots.api.objects.Flag.*;
import static org.telegram.abilitybots.api.objects.Flag.DOCUMENT;
import static org.telegram.abilitybots.api.objects.Flag.MESSAGE;
import static org.telegram.abilitybots.api.objects.Flag.REPLY;
import static org.telegram.abilitybots.api.objects.Locality.ALL;
import static org.telegram.abilitybots.api.objects.Locality.USER;
import static org.telegram.abilitybots.api.objects.Privacy.*;
import static org.telegram.abilitybots.api.util.AbilityMessageCodes.*;
import static org.telegram.abilitybots.api.util.AbilityUtils.*;
import static org.telegram.abilitybots.api.objects.Privacy.ADMIN;
import static org.telegram.abilitybots.api.objects.Privacy.CREATOR;
import static org.telegram.abilitybots.api.objects.Privacy.PUBLIC;
import static org.telegram.abilitybots.api.util.AbilityMessageCodes.ABILITY_BAN_FAIL;
import static org.telegram.abilitybots.api.util.AbilityMessageCodes.ABILITY_BAN_SUCCESS;
import static org.telegram.abilitybots.api.util.AbilityMessageCodes.ABILITY_CLAIM_FAIL;
import static org.telegram.abilitybots.api.util.AbilityMessageCodes.ABILITY_CLAIM_SUCCESS;
import static org.telegram.abilitybots.api.util.AbilityMessageCodes.ABILITY_COMMANDS_NOT_FOUND;
import static org.telegram.abilitybots.api.util.AbilityMessageCodes.ABILITY_DEMOTE_FAIL;
import static org.telegram.abilitybots.api.util.AbilityMessageCodes.ABILITY_DEMOTE_SUCCESS;
import static org.telegram.abilitybots.api.util.AbilityMessageCodes.ABILITY_PROMOTE_FAIL;
import static org.telegram.abilitybots.api.util.AbilityMessageCodes.ABILITY_PROMOTE_SUCCESS;
import static org.telegram.abilitybots.api.util.AbilityMessageCodes.ABILITY_RECOVER_ERROR;
import static org.telegram.abilitybots.api.util.AbilityMessageCodes.ABILITY_RECOVER_FAIL;
import static org.telegram.abilitybots.api.util.AbilityMessageCodes.ABILITY_RECOVER_MESSAGE;
import static org.telegram.abilitybots.api.util.AbilityMessageCodes.ABILITY_RECOVER_SUCCESS;
import static org.telegram.abilitybots.api.util.AbilityMessageCodes.ABILITY_UNBAN_FAIL;
import static org.telegram.abilitybots.api.util.AbilityMessageCodes.ABILITY_UNBAN_SUCCESS;
import static org.telegram.abilitybots.api.util.AbilityMessageCodes.USER_NOT_FOUND;
import static org.telegram.abilitybots.api.util.AbilityUtils.addTag;
import static org.telegram.abilitybots.api.util.AbilityUtils.commitTo;
import static org.telegram.abilitybots.api.util.AbilityUtils.escape;
import static org.telegram.abilitybots.api.util.AbilityUtils.getLocalizedMessage;
import static org.telegram.abilitybots.api.util.AbilityUtils.shortName;
import static org.telegram.abilitybots.api.util.AbilityUtils.stripTag;
public final class DefaultAbilities implements AbilityExtension {
// Default commands
@ -53,7 +77,7 @@ public final class DefaultAbilities implements AbilityExtension {
public static final String RECOVER = "recover";
public static final String COMMANDS = "commands";
public static final String REPORT = "report";
private static final Logger log = LogManager.getLogger(DefaultAbilities.class);
private static final Logger log = LoggerFactory.getLogger(DefaultAbilities.class);
private final BaseAbilityBot bot;
public DefaultAbilities(BaseAbilityBot bot) {

View File

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

View File

@ -7,7 +7,7 @@
<parent>
<groupId>org.telegram</groupId>
<artifactId>Bots</artifactId>
<version>4.4.0.2</version>
<version>4.5</version>
</parent>
<artifactId>telegrambots-chat-session-bot</artifactId>
@ -84,7 +84,7 @@
<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambots</artifactId>
<version>4.4.0.2</version>
<version>4.5</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.4.0.2</version>
<version>4.5</version>
</dependency>
```
2. Using Gradle:
```gradle
compile "org.telegram:telegrambotsextensions:4.4.0.2"
compile "org.telegram:telegrambotsextensions:4.5"
```

View File

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

View File

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

View File

@ -3,10 +3,10 @@ package org.telegram.telegrambots.meta.api.methods;
/**
* @author Ruben Bermudez
* @version 1.0
* @brief Type of parse modes for text in messages
* @date 10 of April of 2016
* Type of parse modes for text in messages
*/
public class ParseMode {
public static final String MARKDOWN = "Markdown";
public static final String MARKDOWNV2 = "MarkdownV2";
public static final String HTML = "html";
}

View File

@ -0,0 +1,129 @@
package org.telegram.telegrambots.meta.api.methods.groupadministration;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.type.TypeReference;
import org.telegram.telegrambots.meta.api.methods.BotApiMethod;
import org.telegram.telegrambots.meta.api.objects.ApiResponse;
import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException;
import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException;
import java.io.IOException;
import java.util.Objects;
import static com.google.common.base.Preconditions.checkNotNull;
/**
* @author Ruben Bermudez
* @version 4.5
* Use this method to set a custom title for an administrator in a supergroup promoted by the bot.
* Returns True on success.
*/
public class SetChatAdministratorCustomTitle extends BotApiMethod<Boolean> {
public static final String PATH = "setChatAdministratorCustomTitle";
private static final String CHATID_FIELD = "chat_id";
private static final String USERID_FIELD = "user_id";
private static final String CUSTOMTITLE_FIELD = "custom_title";
@JsonProperty(CHATID_FIELD)
private String chatId; ///< Unique identifier for the target chat or username of the target channel (in the format @channelusername)
@JsonProperty(USERID_FIELD)
private Integer userId; ///< Unique identifier of the target user
@JsonProperty(CUSTOMTITLE_FIELD)
private String customTitle; ///< New custom title for the administrator; 0-16 characters, emoji are not allowed
public SetChatAdministratorCustomTitle() {
super();
}
public SetChatAdministratorCustomTitle(String chatId, Integer userId, String customTitle) {
super();
this.chatId = checkNotNull(chatId);
this.userId = checkNotNull(userId);
this.customTitle = checkNotNull(customTitle);
}
public SetChatAdministratorCustomTitle(Long chatId, Integer userId, String customTitle) {
super();
this.chatId = checkNotNull(chatId).toString();
this.userId = checkNotNull(userId);
this.customTitle = checkNotNull(customTitle);
}
public String getChatId() {
return chatId;
}
public SetChatAdministratorCustomTitle setChatId(String chatId) {
this.chatId = chatId;
return this;
}
public SetChatAdministratorCustomTitle setChatId(Long chatId) {
Objects.requireNonNull(chatId);
this.chatId = chatId.toString();
return this;
}
public Integer getUserId() {
return userId;
}
public SetChatAdministratorCustomTitle setUserId(Integer userId) {
checkNotNull(userId);
this.userId = userId;
return this;
}
public String getCustomTitle() {
return customTitle;
}
public SetChatAdministratorCustomTitle setCustomTitle(String customTitle) {
checkNotNull(customTitle);
this.customTitle = customTitle;
return this;
}
@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 setting chat description", result);
}
} catch (IOException e) {
throw new TelegramApiRequestException("Unable to deserialize response", e);
}
}
@Override
public void validate() throws TelegramApiValidationException {
if (chatId == null || chatId.isEmpty()) {
throw new TelegramApiValidationException("ChatId can't be empty", this);
}
if (userId == null || userId == 0) {
throw new TelegramApiValidationException("UserId can't be empty", this);
}
if (customTitle == null) {
throw new TelegramApiValidationException("CustomTitle can't be null", this);
}
}
@Override
public String toString() {
return "SetChatDescription{" +
"chatId='" + chatId + '\'' +
"userId='" + userId + '\'' +
", customTitle='" + customTitle + '\'' +
'}';
}
}

View File

@ -5,8 +5,8 @@ import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.telegram.telegrambots.meta.api.methods.BotApiMethod;
import org.telegram.telegrambots.meta.api.methods.ParseMode;
import org.telegram.telegrambots.meta.api.objects.Message;
import org.telegram.telegrambots.meta.api.objects.ApiResponse;
import org.telegram.telegrambots.meta.api.objects.Message;
import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboard;
import org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException;
import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException;
@ -155,6 +155,15 @@ public class SendMessage extends BotApiMethod<Message> {
return this;
}
public SendMessage enableMarkdownV2(boolean enable) {
if (enable) {
this.parseMode = ParseMode.MARKDOWNV2;
} else {
this.parseMode = null;
}
return this;
}
@Override
public String getMethod() {
return PATH;

View File

@ -1,7 +1,6 @@
package org.telegram.telegrambots.meta.api.objects;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
/**
@ -12,6 +11,7 @@ import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
public class Audio implements BotApiObject {
private static final String FILEID_FIELD = "file_id";
private static final String FILEUNIQUEID_FIELD = "file_unique_id";
private static final String DURATION_FIELD = "duration";
private static final String MIMETYPE_FIELD = "mime_type";
private static final String FILESIZE_FIELD = "file_size";
@ -20,7 +20,13 @@ public class Audio implements BotApiObject {
private static final String THUMB_FIELD = "thumb";
@JsonProperty(FILEID_FIELD)
private String fileId; ///< Unique identifier for this file
private String fileId; ///< Identifier for this file, which can be used to download or reuse the file
/**
* Unique identifier for this file, which is supposed to be the same over time and for different bots.
* Can't be used to download or reuse the file.
*/
@JsonProperty(FILEUNIQUEID_FIELD)
private String fileUniqueId;
@JsonProperty(DURATION_FIELD)
private Integer duration; ///< Integer Duration of the audio in seconds as defined by sender
@JsonProperty(MIMETYPE_FIELD)
@ -66,6 +72,10 @@ public class Audio implements BotApiObject {
return thumb;
}
public String getFileUniqueId() {
return fileUniqueId;
}
@Override
public String toString() {
return "Audio{" +
@ -76,6 +86,7 @@ public class Audio implements BotApiObject {
", title='" + title + '\'' +
", performer='" + performer + '\'' +
", thumb=" + thumb +
", fileUniqueId=" + fileUniqueId +
'}';
}
}

View File

@ -1,7 +1,6 @@
package org.telegram.telegrambots.meta.api.objects;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
/**
@ -26,6 +25,7 @@ public class Chat implements BotApiObject {
private static final String STICKERSETNAME_FIELD = "sticker_set_name";
private static final String CANSETSTICKERSET_FIELD = "can_set_sticker_set";
private static final String PERMISSIONS_FIELD = "permissions";
private static final String SLOWMODEDELAY_FIELD = "slow_mode_delay";
private static final String USERCHATTYPE = "private";
private static final String GROUPCHATTYPE = "group";
@ -75,6 +75,13 @@ public class Chat implements BotApiObject {
private Boolean canSetStickerSet; ///< Optional. True, if the bot can change group the sticker set. Returned only in getChat.
@JsonProperty(PERMISSIONS_FIELD)
private ChatPermissions permissions; ///< Optional. Default chat member permissions, for groups and supergroups. Returned only in getChat.
/**
* Optional.
* For supergroups, the minimum allowed delay between consecutive messages sent by each unpriviledged user.
* Returned only in getChat.
*/
@JsonProperty(SLOWMODEDELAY_FIELD)
private Integer slowModeDelay;
public Chat() {
super();
@ -152,6 +159,10 @@ public class Chat implements BotApiObject {
return canSetStickerSet;
}
public Integer getSlowModeDelay() {
return slowModeDelay;
}
@Override
public String toString() {
return "Chat{" +
@ -169,6 +180,7 @@ public class Chat implements BotApiObject {
", stickerSetName='" + stickerSetName + '\'' +
", canSetStickerSet=" + canSetStickerSet +
", permissions=" + permissions +
", slowModeDelay=" + slowModeDelay +
'}';
}
}

View File

@ -1,7 +1,6 @@
package org.telegram.telegrambots.meta.api.objects;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
import java.time.Instant;
@ -21,7 +20,7 @@ public class ChatMember implements BotApiObject {
private static final String CANEDITMESSAGES_FIELD = "can_edit_messages";
private static final String CANDELETEMESSAGES_FIELD = "can_delete_messages";
private static final String CANINVITEUSERS_FIELD = "can_invite_users";
private static final String CANRESTRICTUSERS_FIELD = "can_restrict_users";
private static final String CANRESTRICTMEMBERS_FIELD = "can_restrict_members";
private static final String CANPINMESSAGES_FIELD = "can_pin_messages";
private static final String CANPROMOTEMEMBERS_FIELD = "can_promote_members";
private static final String CANSENDMESSAGES_FIELD = "can_send_messages";
@ -30,6 +29,7 @@ public class ChatMember implements BotApiObject {
private static final String CANADDWEBPAGEPREVIEWS_FIELD = "can_add_web_page_previews";
private static final String CAN_SEND_POLLS_FIELD = "can_send_polls";
private static final String ISMEMBER_FIELD = "is_member";
private static final String CUSTOMTITLE_FIELD = "custom_title";
@JsonProperty(USER_FIELD)
private User user; ///< Information about the user
@ -49,8 +49,8 @@ public class ChatMember implements BotApiObject {
private Boolean canDeleteMessages; ///< Optional. Administrators only. True, if the administrator can delete messages of other users
@JsonProperty(CANINVITEUSERS_FIELD)
private Boolean canInviteUsers; ///< Optional. Administrators and restricted only. True, if the administrator can invite new users to the chat
@JsonProperty(CANRESTRICTUSERS_FIELD)
private Boolean canRestrictUsers; ///< Optional. Administrators only. True, if the administrator can restrict, ban or unban chat members
@JsonProperty(CANRESTRICTMEMBERS_FIELD)
private Boolean canRestrictMembers; ///< Optional. Administrators only. True, if the administrator can restrict, ban or unban chat members
@JsonProperty(CANPINMESSAGES_FIELD)
private Boolean canPinMessages; ///< Optional. Administrators and restricted only. True, if the administrator can pin messages, groups and supergroups only
@JsonProperty(CANPROMOTEMEMBERS_FIELD)
@ -67,6 +67,8 @@ public class ChatMember implements BotApiObject {
private Boolean canSendPolls; ///< Optional. Restricted only. True, if the user is allowed to send polls.
@JsonProperty(ISMEMBER_FIELD)
private Boolean isMemberField; ///< True, if the user is a member of the chat at the moment of the request. For example, it can be false for the chat creator or for a restricted user.
@JsonProperty(CUSTOMTITLE_FIELD)
private String customTitle; ///< Optional. Owner and administrators only. Custom title for this user
public ChatMember() {
super();
@ -115,8 +117,16 @@ public class ChatMember implements BotApiObject {
return canInviteUsers;
}
public Boolean getCanRestrictMembers() {
return canRestrictMembers;
}
/**
* @deprecated Use {{@link #getCanRestrictMembers()}}
*/
@Deprecated
public Boolean getCanRestrictUsers() {
return canRestrictUsers;
return canRestrictMembers;
}
public Boolean getCanPinMessages() {
@ -151,6 +161,10 @@ public class ChatMember implements BotApiObject {
return isMemberField;
}
public String getCustomTitle() {
return customTitle;
}
@Override
public String toString() {
return "ChatMember{" +
@ -163,7 +177,7 @@ public class ChatMember implements BotApiObject {
", canEditMessages=" + canEditMessages +
", canDeleteMessages=" + canDeleteMessages +
", canInviteUsers=" + canInviteUsers +
", canRestrictUsers=" + canRestrictUsers +
", canRestrictMembers=" + canRestrictMembers +
", canPinMessages=" + canPinMessages +
", canPromoteMembers=" + canPromoteMembers +
", canSendMessages=" + canSendMessages +
@ -172,6 +186,7 @@ public class ChatMember implements BotApiObject {
", canAddWebPagePreviews=" + canAddWebPagePreviews +
", canSendPolls=" + canSendPolls +
", isMemberField=" + isMemberField +
", customTitle=" + customTitle +
'}';
}
}

View File

@ -10,20 +10,36 @@ import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
*/
public class ChatPhoto implements BotApiObject {
private static final String SMALLFILEID_FIELD = "small_file_id";
private static final String SMALLFILEUNIQUEID_FIELD = "small_file_unique_id";
private static final String BIGFILEID_FIELD = "big_file_id";
private static final String BIGFILEUNIQUEID_FIELD = "big_file_unique_id";
/**
* Unique file identifier of a small chat photo (160x160).
* File identifier of small (160x160) chat photo.
* This file_id can be used only for photo download and only for as long as the photo is not changed.
*/
@JsonProperty(SMALLFILEID_FIELD)
private String smallFileId;
/**
* Unique file identifier of a big chat photo (640x640).
* Unique file identifier of small (160x160) chat photo,
* which is supposed to be the same over time and for different bots.
* Can't be used to download or reuse the file.
*/
@JsonProperty(SMALLFILEUNIQUEID_FIELD)
private String smallFileUniqueId;
/**
* File identifier of big (640x640) chat photo.
* This file_id can be used only for photo download and only for as long as the photo is not changed.
*/
@JsonProperty(BIGFILEID_FIELD)
private String bigFileId;
/**
* Unique file identifier of big (640x640) chat photo,
* which is supposed to be the same over time and for different bots.
* Can't be used to download or reuse the file.
*/
@JsonProperty(BIGFILEUNIQUEID_FIELD)
private String bigFileUniqueId;
public ChatPhoto() {
super();
@ -37,11 +53,21 @@ public class ChatPhoto implements BotApiObject {
return bigFileId;
}
public String getSmallFileUniqueId() {
return smallFileUniqueId;
}
public String getBigFileUniqueId() {
return bigFileUniqueId;
}
@Override
public String toString() {
return "ChatPhoto{" +
"smallFileId='" + smallFileId + '\'' +
", smallFileUniqueId='" + smallFileUniqueId + '\'' +
", bigFileId='" + bigFileId + '\'' +
", bigFileUniqueId='" + bigFileUniqueId + '\'' +
'}';
}
}

View File

@ -1,7 +1,6 @@
package org.telegram.telegrambots.meta.api.objects;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
/**
@ -14,13 +13,20 @@ import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
public class Document implements BotApiObject {
private static final String FILEID_FIELD = "file_id";
private static final String FILEUNIQUEID_FIELD = "file_unique_id";
private static final String THUMB_FIELD = "thumb";
private static final String FILENAME_FIELD = "file_name";
private static final String MIMETYPE_FIELD = "mime_type";
private static final String FILESIZE_FIELD = "file_size";
@JsonProperty(FILEID_FIELD)
private String fileId; ///< Unique identifier for this file
private String fileId; ///< Identifier for this file, which can be used to download or reuse the file
/**
* Unique identifier for this file, which is supposed to be the same over time and for different bots.
* Can't be used to download or reuse the file.
*/
@JsonProperty(FILEUNIQUEID_FIELD)
private String fileUniqueId;
@JsonProperty(THUMB_FIELD)
private PhotoSize thumb; ///< Document thumbnail as defined by sender
@JsonProperty(FILENAME_FIELD)
@ -54,6 +60,10 @@ public class Document implements BotApiObject {
return fileSize;
}
public String getFileUniqueId() {
return fileUniqueId;
}
@Override
public String toString() {
return "Document{" +
@ -62,6 +72,7 @@ public class Document implements BotApiObject {
", fileName='" + fileName + '\'' +
", mimeType='" + mimeType + '\'' +
", fileSize=" + fileSize +
", fileUniqueId=" + fileUniqueId +
'}';
}
}

View File

@ -1,7 +1,6 @@
package org.telegram.telegrambots.meta.api.objects;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
import java.security.InvalidParameterException;
@ -14,12 +13,19 @@ import java.text.MessageFormat;
* @date 24 of June of 2015
*/
public class File implements BotApiObject {
private static final String FILE_ID = "file_id";
private static final String FILEID_FIELD = "file_id";
private static final String FILEUNIQUEID_FIELD = "file_unique_id";
private static final String FILE_SIZE_FIELD = "file_size";
private static final String FILE_PATH_FIELD = "file_path";
@JsonProperty(FILE_ID)
private String fileId; ///< Unique identifier for this file
@JsonProperty(FILEID_FIELD)
private String fileId; ///< Identifier for this file, which can be used to download or reuse the file
/**
* Unique identifier for this file, which is supposed to be the same over time and for different bots.
* Can't be used to download or reuse the file.
*/
@JsonProperty(FILEUNIQUEID_FIELD)
private String fileUniqueId;
@JsonProperty(FILE_SIZE_FIELD)
private Integer fileSize; ///< Optional. File size, if known
@JsonProperty(FILE_PATH_FIELD)
@ -41,13 +47,8 @@ public class File implements BotApiObject {
return filePath;
}
@Override
public String toString() {
return "File{" +
"fileId='" + fileId + '\'' +
", fileSize=" + fileSize +
", filePath='" + filePath + '\'' +
'}';
public String getFileUniqueId() {
return fileUniqueId;
}
public String getFileUrl(String botToken) {
@ -60,4 +61,14 @@ public class File implements BotApiObject {
}
return MessageFormat.format("https://api.telegram.org/file/bot{0}/{1}", botToken, filePath);
}
@Override
public String toString() {
return "File{" +
"fileId='" + fileId + '\'' +
", fileSize=" + fileSize +
", filePath='" + filePath + '\'' +
", fileUniqueId=" + fileUniqueId +
'}';
}
}

View File

@ -5,6 +5,8 @@ import org.telegram.telegrambots.meta.api.interfaces.InputBotApiObject;
import org.telegram.telegrambots.meta.api.interfaces.Validable;
import org.telegram.telegrambots.meta.exceptions.TelegramApiValidationException;
import java.util.Objects;
import static com.google.common.base.Preconditions.checkNotNull;
/**
@ -105,4 +107,22 @@ public class LoginUrl implements InputBotApiObject, Validable {
", requestWriteAccess=" + requestWriteAccess +
'}';
}
@Override
public boolean equals(Object o) {
if (o == this) return true;
if (!(o instanceof LoginUrl)) {
return false;
}
LoginUrl loginUrl = (LoginUrl) o;
return Objects.equals(url, loginUrl.url) &&
Objects.equals(forwardText, loginUrl.forwardText) &&
Objects.equals(botUsername, loginUrl.botUsername) &&
Objects.equals(requestWriteAccess, loginUrl.requestWriteAccess);
}
@Override
public int hashCode() {
return Objects.hash(url, forwardText, botUsername, requestWriteAccess);
}
}

View File

@ -2,7 +2,6 @@ package org.telegram.telegrambots.meta.api.objects;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
/**
@ -31,8 +30,10 @@ public class MessageEntity implements BotApiObject {
* italic (italic text),
* code (monowidth string),
* pre (monowidth block),
* text_link (for clickable text URLs)
* text_mention (for users without usernames)
* text_link (for clickable text URLs),
* text_mention (for users without usernames),
* underline,
* strikethrough
*/
@JsonProperty(TYPE_FIELD)

View File

@ -1,7 +1,6 @@
package org.telegram.telegrambots.meta.api.objects;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
/**
@ -13,13 +12,20 @@ import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
public class PhotoSize implements BotApiObject {
private static final String FILEID_FIELD = "file_id";
private static final String FILEUNIQUEID_FIELD = "file_unique_id";
private static final String WIDTH_FIELD = "width";
private static final String HEIGHT_FIELD = "height";
private static final String FILESIZE_FIELD = "file_size";
private static final String FILEPATH_FIELD = "file_path";
@JsonProperty(FILEID_FIELD)
private String fileId; ///< Unique identifier for this file
private String fileId; ///< Identifier for this file, which can be used to download or reuse the file
/**
* Unique identifier for this file, which is supposed to be the same over time and for different bots.
* Can't be used to download or reuse the file.
*/
@JsonProperty(FILEUNIQUEID_FIELD)
private String fileUniqueId;
@JsonProperty(WIDTH_FIELD)
private Integer width; ///< Photo width
@JsonProperty(HEIGHT_FIELD)
@ -57,6 +63,10 @@ public class PhotoSize implements BotApiObject {
return filePath != null && !filePath.isEmpty();
}
public String getFileUniqueId() {
return fileUniqueId;
}
@Override
public String toString() {
return "PhotoSize{" +
@ -64,6 +74,7 @@ public class PhotoSize implements BotApiObject {
", width=" + width +
", height=" + height +
", fileSize=" + fileSize +
", fileUniqueId=" + fileUniqueId +
'}';
}
}

View File

@ -1,7 +1,6 @@
package org.telegram.telegrambots.meta.api.objects;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
/**
@ -13,6 +12,7 @@ import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
public class Video implements BotApiObject {
private static final String FILEID_FIELD = "file_id";
private static final String FILEUNIQUEID_FIELD = "file_unique_id";
private static final String WIDTH_FIELD = "width";
private static final String HEIGHT_FIELD = "height";
private static final String DURATION_FIELD = "duration";
@ -21,7 +21,13 @@ public class Video implements BotApiObject {
private static final String FILESIZE_FIELD = "file_size";
@JsonProperty(FILEID_FIELD)
private String fileId; ///< Unique identifier for this file
private String fileId; ///< Identifier for this file, which can be used to download or reuse the file
/**
* Unique identifier for this file, which is supposed to be the same over time and for different bots.
* Can't be used to download or reuse the file.
*/
@JsonProperty(FILEUNIQUEID_FIELD)
private String fileUniqueId;
@JsonProperty(WIDTH_FIELD)
private Integer width; ///< Video width as defined by sender
@JsonProperty(HEIGHT_FIELD)
@ -67,6 +73,10 @@ public class Video implements BotApiObject {
return fileSize;
}
public String getFileUniqueId() {
return fileUniqueId;
}
@Override
public String toString() {
return "Video{" +
@ -77,6 +87,7 @@ public class Video implements BotApiObject {
", thumb=" + thumb +
", mimeType='" + mimeType + '\'' +
", fileSize=" + fileSize +
", fileUniqueId=" + fileUniqueId +
'}';
}
}

View File

@ -11,13 +11,20 @@ import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
*/
public class VideoNote implements BotApiObject {
private static final String FILEID_FIELD = "file_id";
private static final String FILEUNIQUEID_FIELD = "file_unique_id";
private static final String LENGTH_FIELD = "length";
private static final String DURATION_FIELD = "duration";
private static final String THUMB_FIELD = "thumb";
private static final String FILESIZE_FIELD = "file_size";
@JsonProperty(FILEID_FIELD)
private String fileId; ///< Unique identifier for this file
private String fileId; ///< Identifier for this file, which can be used to download or reuse the file
/**
* Unique identifier for this file, which is supposed to be the same over time and for different bots.
* Can't be used to download or reuse the file.
*/
@JsonProperty(FILEUNIQUEID_FIELD)
private String fileUniqueId;
@JsonProperty(LENGTH_FIELD)
private Integer length; ///< Video width and height as defined by sender
@JsonProperty(DURATION_FIELD)
@ -51,6 +58,10 @@ public class VideoNote implements BotApiObject {
return fileSize;
}
public String getFileUniqueId() {
return fileUniqueId;
}
@Override
public String toString() {
return "VideoNote{" +
@ -59,6 +70,7 @@ public class VideoNote implements BotApiObject {
", duration=" + duration +
", thumb=" + thumb +
", fileSize=" + fileSize +
", fileUniqueId=" + fileUniqueId +
'}';
}
}

View File

@ -1,7 +1,6 @@
package org.telegram.telegrambots.meta.api.objects;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
/**
@ -12,12 +11,19 @@ import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
*/
public class Voice implements BotApiObject {
private static final String FILEID_FIELD = "file_id";
private static final String FILEUNIQUEID_FIELD = "file_unique_id";
private static final String DURATION_FIELD = "duration";
private static final String MIMETYPE_FIELD = "mime_type";
private static final String FILESIZE_FIELD = "file_size";
@JsonProperty(FILEID_FIELD)
private String fileId; ///< Unique identifier for this file
private String fileId; ///< Identifier for this file, which can be used to download or reuse the file
/**
* Unique identifier for this file, which is supposed to be the same over time and for different bots.
* Can't be used to download or reuse the file.
*/
@JsonProperty(FILEUNIQUEID_FIELD)
private String fileUniqueId;
@JsonProperty(DURATION_FIELD)
private Integer duration; ///< Integer Duration of the audio in seconds as defined by sender
@JsonProperty(MIMETYPE_FIELD)
@ -45,6 +51,10 @@ public class Voice implements BotApiObject {
return fileSize;
}
public String getFileUniqueId() {
return fileUniqueId;
}
@Override
public String toString() {
return "Voice{" +
@ -52,6 +62,7 @@ public class Voice implements BotApiObject {
", duration=" + duration +
", mimeType='" + mimeType + '\'' +
", fileSize=" + fileSize +
", fileUniqueId=" + fileUniqueId +
'}';
}
}

View File

@ -17,7 +17,6 @@
package org.telegram.telegrambots.meta.api.objects.games;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
import org.telegram.telegrambots.meta.api.objects.PhotoSize;
@ -28,6 +27,7 @@ import org.telegram.telegrambots.meta.api.objects.PhotoSize;
*/
public class Animation implements BotApiObject {
private static final String FILEID_FIELD = "file_id";
private static final String FILEUNIQUEID_FIELD = "file_unique_id";
private static final String WIDTH_FIELD = "width";
private static final String HEIGHT_FIELD = "height";
private static final String DURATION_FIELD = "duration";
@ -37,7 +37,13 @@ public class Animation implements BotApiObject {
private static final String FILESIZE_FIELD = "file_size";
@JsonProperty(FILEID_FIELD)
private String fileId; ///< Unique file identifier
private String fileId; ///< Identifier for this file, which can be used to download or reuse the file
/**
* Unique identifier for this file, which is supposed to be the same over time and for different bots.
* Can't be used to download or reuse the file.
*/
@JsonProperty(FILEUNIQUEID_FIELD)
private String fileUniqueId;
@JsonProperty(WIDTH_FIELD)
private Integer width; ///< Video width as defined by sender
@JsonProperty(HEIGHT_FIELD)
@ -89,6 +95,10 @@ public class Animation implements BotApiObject {
return duration;
}
public String getFileUniqueId() {
return fileUniqueId;
}
@Override
public String toString() {
return "Animation{" +
@ -100,6 +110,7 @@ public class Animation implements BotApiObject {
", fileName='" + fileName + '\'' +
", mimetype='" + mimetype + '\'' +
", fileSize=" + fileSize +
", fileUniqueId=" + fileUniqueId +
'}';
}
}

View File

@ -34,4 +34,14 @@ public class CallbackGame implements BotApiObject {
public String toString() {
return "CallbackGame{}";
}
@Override
public boolean equals(Object o) {
return o == this || o instanceof CallbackGame;
}
@Override
public int hashCode() {
return getClass().hashCode();
}
}

View File

@ -11,11 +11,18 @@ import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
*/
public class PassportFile implements BotApiObject {
private static final String FILEID_FIELD = "file_id";
private static final String FILEUNIQUEID_FIELD = "file_unique_id";
private static final String FILESIZE_FIELD = "file_size";
private static final String FILEDATE_FIELD = "file_date";
@JsonProperty(FILEID_FIELD)
private String fileId; ///< Unique identifier for this file
private String fileId; ///< Identifier for this file, which can be used to download or reuse the file
/**
* Unique identifier for this file, which is supposed to be the same over time and for different bots.
* Can't be used to download or reuse the file.
*/
@JsonProperty(FILEUNIQUEID_FIELD)
private String fileUniqueId;
@JsonProperty(FILESIZE_FIELD)
private Integer fileSize; ///< File size
@JsonProperty(FILEDATE_FIELD)
@ -42,12 +49,17 @@ public class PassportFile implements BotApiObject {
return fileDate;
}
public String getFileUniqueId() {
return fileUniqueId;
}
@Override
public String toString() {
return "PassportFile{" +
"fileId='" + fileId + '\'' +
", fileSize=" + fileSize +
", fileDate=" + fileDate +
", fileUniqueId=" + fileUniqueId +
'}';
}
}

View File

@ -29,6 +29,11 @@ public class InlineKeyboardMarkup implements ReplyKeyboard {
keyboard = new ArrayList<>();
}
public InlineKeyboardMarkup(List<List<InlineKeyboardButton>> keyboard) {
super();
this.keyboard = keyboard;
}
public List<List<InlineKeyboardButton>> getKeyboard() {
return keyboard;
}

View File

@ -43,6 +43,11 @@ public class ReplyKeyboardMarkup implements ReplyKeyboard {
keyboard = new ArrayList<>();
}
public ReplyKeyboardMarkup(List<KeyboardRow> keyboard) {
super();
this.keyboard = keyboard;
}
public List<KeyboardRow> getKeyboard() {
return keyboard;
}

View File

@ -1,7 +1,6 @@
package org.telegram.telegrambots.meta.api.objects.stickers;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.telegram.telegrambots.meta.api.interfaces.BotApiObject;
import org.telegram.telegrambots.meta.api.objects.PhotoSize;
@ -13,6 +12,7 @@ import org.telegram.telegrambots.meta.api.objects.PhotoSize;
public class Sticker implements BotApiObject {
private static final String FILEID_FIELD = "file_id";
private static final String FILEUNIQUEID_FIELD = "file_unique_id";
private static final String WIDTH_FIELD = "width";
private static final String HEIGHT_FIELD = "height";
private static final String THUMB_FIELD = "thumb";
@ -23,7 +23,13 @@ public class Sticker implements BotApiObject {
private static final String ISANIMATED_FIELD = "is_animated";
@JsonProperty(FILEID_FIELD)
private String fileId; ///< Unique identifier for this file
private String fileId; ///< Identifier for this file, which can be used to download or reuse the file
/**
* Unique identifier for this file, which is supposed to be the same over time and for different bots.
* Can't be used to download or reuse the file.
*/
@JsonProperty(FILEUNIQUEID_FIELD)
private String fileUniqueId;
@JsonProperty(WIDTH_FIELD)
private Integer width; ///< Sticker width
@JsonProperty(HEIGHT_FIELD)
@ -81,6 +87,10 @@ public class Sticker implements BotApiObject {
return isAnimated;
}
public String getFileUniqueId() {
return fileUniqueId;
}
@Override
public String toString() {
return "Sticker{" +
@ -93,6 +103,7 @@ public class Sticker implements BotApiObject {
", setName='" + setName + '\'' +
", maskPosition=" + maskPosition +
", isAnimated=" + isAnimated +
", fileUniqueId=" + fileUniqueId +
'}';
}
}

View File

@ -7,7 +7,7 @@
<parent>
<groupId>org.telegram</groupId>
<artifactId>Bots</artifactId>
<version>4.4.0.2</version>
<version>4.5</version>
</parent>
<artifactId>telegrambots-spring-boot-starter</artifactId>
@ -78,7 +78,7 @@
<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambots</artifactId>
<version>4.4.0.2</version>
<version>4.5</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>

View File

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