diff --git a/README.md b/README.md
index c9ae45cbb..1e6c446c5 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
[](https://codecov.io/gh/pengrad/java-telegram-bot-api)
Java library for interacting with [Telegram Bot API](https://core.telegram.org/bots/api)
-- Full support of all Bot API 10.0 methods
+- Full support of all Bot API 10.1 methods
- Telegram [Passport](https://core.telegram.org/passport) and Decryption API
- Bot [Payments](https://core.telegram.org/bots/payments)
- [Gaming Platform](https://telegram.org/blog/games)
@@ -13,14 +13,14 @@ Java library for interacting with [Telegram Bot API](https://core.telegram.org/b
Gradle:
```groovy
-implementation 'com.github.pengrad:java-telegram-bot-api:10.0.0'
+implementation 'com.github.pengrad:java-telegram-bot-api:10.1.0'
```
Maven:
```xml
com.github.pengrad
java-telegram-bot-api
- 10.0.0
+ 10.1.0
```
[JAR with all dependencies on release page](https://github.com/pengrad/java-telegram-bot-api/releases)
diff --git a/gradle.properties b/gradle.properties
index 69db2f62a..4be86b119 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,5 +1,5 @@
GROUP=com.github.pengrad
-VERSION_NAME=10.0.0
+VERSION_NAME=10.1.0
POM_DESCRIPTION=Java API for Telegram Bot API
POM_URL=https://github.com/pengrad/java-telegram-bot-api/
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/ChatFullInfo.java b/library/src/main/java/com/pengrad/telegrambot/model/ChatFullInfo.java
index e928a1b70..af73d609e 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/ChatFullInfo.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/ChatFullInfo.java
@@ -51,7 +51,7 @@ public enum Type {
private Integer profile_accent_color_id;
private String profile_background_custom_emoji_id;
private String emoji_status_custom_emoji_id;
- private Integer emoji_status_expiration_date;
+ private Long emoji_status_expiration_date;
private String bio;
private Boolean has_private_forwards;
private Boolean has_restricted_voice_and_video_messages;
@@ -79,6 +79,7 @@ public enum Type {
private Integer paid_message_star_count;
private UniqueGiftColors unique_gift_colors;
private Audio first_profile_audio;
+ private User guard_bot;
public Long id() {
return id;
@@ -172,7 +173,7 @@ public String emojiStatusCustomEmojiId() {
return emoji_status_custom_emoji_id;
}
- public Integer emojiStatusExpirationDate() {
+ public Long emojiStatusExpirationDate() {
return emoji_status_expiration_date;
}
@@ -283,6 +284,10 @@ public Audio firstProfileAudio() {
return first_profile_audio;
}
+ public User guardBot() {
+ return guard_bot;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
@@ -338,7 +343,8 @@ public boolean equals(Object o) {
Objects.equals(rating, chat.rating) &&
Objects.equals(paid_message_star_count, chat.paid_message_star_count) &&
Objects.equals(unique_gift_colors, chat.unique_gift_colors) &&
- Objects.equals(first_profile_audio, chat.first_profile_audio);
+ Objects.equals(first_profile_audio, chat.first_profile_audio) &&
+ Objects.equals(guard_bot, chat.guard_bot);
}
@Override
@@ -400,6 +406,7 @@ public String toString() {
", paid_message_star_count=" + paid_message_star_count +
", unique_gift_colors=" + unique_gift_colors +
", first_profile_audio=" + first_profile_audio +
+ ", guard_bot=" + guard_bot +
'}';
}
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/ChatInviteLink.java b/library/src/main/java/com/pengrad/telegrambot/model/ChatInviteLink.java
index f5c584587..cccab2350 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/ChatInviteLink.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/ChatInviteLink.java
@@ -16,7 +16,7 @@ public class ChatInviteLink implements Serializable {
private Boolean is_primary;
private Boolean is_revoked;
private String name;
- private Integer expire_date;
+ private Long expire_date;
private Integer member_limit;
private Integer pending_join_request_count;
@@ -45,7 +45,7 @@ public String name() {
return name;
}
- public Integer expireDate() {
+ public Long expireDate() {
return expire_date;
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/ChatJoinRequest.java b/library/src/main/java/com/pengrad/telegrambot/model/ChatJoinRequest.java
index b067670fd..5d4ecc24e 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/ChatJoinRequest.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/ChatJoinRequest.java
@@ -13,9 +13,10 @@ public class ChatJoinRequest implements Serializable {
private Chat chat;
private User from;
private Long user_chat_id;
- private Integer date;
+ private Long date;
private String bio;
private ChatInviteLink invite_link;
+ private String query_id;
public Chat chat() {
return chat;
@@ -29,7 +30,7 @@ public Long userChatId() {
return user_chat_id;
}
- public Integer date() {
+ public Long date() {
return date;
}
@@ -41,6 +42,9 @@ public ChatInviteLink inviteLink() {
return invite_link;
}
+ public String queryId() {
+ return query_id;
+ }
@Override
public boolean equals(Object o) {
@@ -52,12 +56,13 @@ public boolean equals(Object o) {
Objects.equals(user_chat_id, that.user_chat_id) &&
Objects.equals(date, that.date) &&
Objects.equals(bio, that.bio) &&
- Objects.equals(invite_link, that.invite_link);
+ Objects.equals(invite_link, that.invite_link) &&
+ Objects.equals(query_id, that.query_id);
}
@Override
public int hashCode() {
- return Objects.hash(chat, from, user_chat_id, date, bio, invite_link);
+ return Objects.hash(chat, from, user_chat_id, date, bio, invite_link, query_id);
}
@Override
@@ -69,6 +74,7 @@ public String toString() {
", date=" + date +
", bio=" + bio +
", invite_link=" + invite_link +
+ ", query_id=" + query_id +
'}';
}
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/ChatMember.java b/library/src/main/java/com/pengrad/telegrambot/model/ChatMember.java
index f3c2131fc..5ee8e1751 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/ChatMember.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/ChatMember.java
@@ -19,7 +19,7 @@ public enum Status {
private String custom_title;
private Boolean is_anonymous;
- private Integer until_date;
+ private Long until_date;
private Boolean can_be_edited;
private Boolean can_manage_chat;
private Boolean can_post_messages;
@@ -70,7 +70,7 @@ public Boolean isAnonymous() {
return is_anonymous != null && is_anonymous;
}
- public Integer untilDate() {
+ public Long untilDate() {
return until_date;
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/ChatMemberUpdated.java b/library/src/main/java/com/pengrad/telegrambot/model/ChatMemberUpdated.java
index 10ec6ac4f..565594276 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/ChatMemberUpdated.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/ChatMemberUpdated.java
@@ -12,7 +12,7 @@ public class ChatMemberUpdated implements Serializable {
private Chat chat;
private User from;
- private Integer date;
+ private Long date;
private ChatMember old_chat_member;
private ChatMember new_chat_member;
private ChatInviteLink invite_link;
@@ -27,7 +27,7 @@ public User from() {
return from;
}
- public Integer date() {
+ public Long date() {
return date;
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/Link.kt b/library/src/main/java/com/pengrad/telegrambot/model/Link.kt
new file mode 100644
index 000000000..05a5353d7
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/Link.kt
@@ -0,0 +1,5 @@
+package com.pengrad.telegrambot.model
+
+data class Link(
+ @get:JvmName("url") val url: String,
+)
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/Message.java b/library/src/main/java/com/pengrad/telegrambot/model/Message.java
index 9606ea51d..03756586a 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/Message.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/Message.java
@@ -17,6 +17,7 @@
import com.pengrad.telegrambot.model.message.origin.*;
import com.pengrad.telegrambot.model.paidmedia.PaidMediaInfo;
import com.pengrad.telegrambot.model.request.InlineKeyboardMarkup;
+import com.pengrad.telegrambot.model.richmessages.RichMessage;
import com.pengrad.telegrambot.model.stars.DirectMessagePriceChanged;
import com.pengrad.telegrambot.model.stars.PaidMessagePriceChanged;
import com.pengrad.telegrambot.model.suggestedposts.*;
@@ -50,7 +51,7 @@ public class Message extends MaybeInaccessibleMessage implements Serializable {
private Story reply_to_story;
private Integer reply_to_checklist_task_id;
private User via_bot;
- private Integer edit_date;
+ private Long edit_date;
private Boolean has_protected_content;
private Boolean is_from_offline;
private Boolean is_paid_post;
@@ -64,6 +65,7 @@ public class Message extends MaybeInaccessibleMessage implements Serializable {
private LinkPreviewOptions link_preview_options;
private SuggestedPostInfo suggested_post_info;
private String effect_id;
+ private RichMessage rich_message;
private Audio audio;
private PaidMediaInfo paid_media;
private Document document;
@@ -213,7 +215,7 @@ public User viaBot() {
return via_bot;
}
- public Integer editDate() {
+ public Long editDate() {
return edit_date;
}
@@ -270,6 +272,10 @@ public String effectId() {
return effect_id;
}
+ public RichMessage richMessage() {
+ return rich_message;
+ }
+
public Audio audio() {
return audio;
}
@@ -607,7 +613,7 @@ void setMessageId(Integer messageId) {
/**
* Only for backwards-compatibility with MaybeInaccessibleMessage
*/
- void setDate(Integer date) {
+ void setDate(Long date) {
this.date = date;
}
@@ -650,6 +656,7 @@ public boolean equals(Object o) {
Objects.equals(link_preview_options, message.link_preview_options) &&
Objects.equals(suggested_post_info, message.suggested_post_info) &&
Objects.equals(effect_id, message.effect_id) &&
+ Objects.equals(rich_message, message.rich_message) &&
Objects.equals(audio, message.audio) &&
Objects.equals(paid_media, message.paid_media) &&
Objects.equals(document, message.document) &&
@@ -774,6 +781,7 @@ public String toString() {
", link_preview_options=" + link_preview_options +
", suggested_post_info=" + suggested_post_info +
", effect_id=" + effect_id +
+ ", rich_message=" + rich_message +
", audio=" + audio +
", paid_media=" + paid_media +
", document=" + document +
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/MessageEntity.java b/library/src/main/java/com/pengrad/telegrambot/model/MessageEntity.java
index 9f2e8bbf6..095a63286 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/MessageEntity.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/MessageEntity.java
@@ -22,7 +22,7 @@ public enum Type {
private User user;
private String language;
private String custom_emoji_id;
- private Integer unix_time;
+ private Long unix_time;
private String date_time_format;
private MessageEntity() {
@@ -62,7 +62,7 @@ public String customEmojiId() {
return custom_emoji_id;
}
- public Integer unixTime() {
+ public Long unixTime() {
return unix_time;
}
@@ -90,7 +90,7 @@ public MessageEntity customEmojiId(String custom_emoji_id) {
return this;
}
- public MessageEntity unixTime(Integer unix_time) {
+ public MessageEntity unixTime(Long unix_time) {
this.unix_time = unix_time;
return this;
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/MessageReactionCountUpdated.java b/library/src/main/java/com/pengrad/telegrambot/model/MessageReactionCountUpdated.java
index 55a386944..5dcdade6b 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/MessageReactionCountUpdated.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/MessageReactionCountUpdated.java
@@ -9,7 +9,7 @@ public class MessageReactionCountUpdated {
private Chat chat;
private Integer message_id;
- private Integer date;
+ private Long date;
private ReactionCount[] reactions;
public Chat chat() {
@@ -20,7 +20,7 @@ public Integer messageId() {
return message_id;
}
- public Integer date() {
+ public Long date() {
return date;
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/MessageReactionUpdated.java b/library/src/main/java/com/pengrad/telegrambot/model/MessageReactionUpdated.java
index 73e60f528..68c910723 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/MessageReactionUpdated.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/MessageReactionUpdated.java
@@ -11,7 +11,7 @@ public class MessageReactionUpdated {
private Integer message_id;
private User user;
private Chat actor_chat;
- private Integer date;
+ private Long date;
private ReactionType[] old_reaction;
private ReactionType[] new_reaction;
@@ -31,7 +31,7 @@ public Chat actorChat() {
return actor_chat;
}
- public Integer date() {
+ public Long date() {
return date;
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/Poll.java b/library/src/main/java/com/pengrad/telegrambot/model/Poll.java
index bdd6f2c38..42d8286c5 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/Poll.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/Poll.java
@@ -28,7 +28,7 @@ public enum Type {
private String explanation;
private MessageEntity[] explanation_entities;
private Integer open_period;
- private Integer close_date;
+ private Long close_date;
private String description;
private MessageEntity[] description_entities;
private PollMedia media;
@@ -96,7 +96,7 @@ public Integer openPeriod() {
return open_period;
}
- public Integer closeDate() {
+ public Long closeDate() {
return close_date;
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/PollMedia.kt b/library/src/main/java/com/pengrad/telegrambot/model/PollMedia.kt
index fa569af34..67fc35a8c 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/PollMedia.kt
+++ b/library/src/main/java/com/pengrad/telegrambot/model/PollMedia.kt
@@ -10,6 +10,7 @@ data class PollMedia(
@get:JvmName("sticker") val sticker: Sticker? = null,
@get:JvmName("venue") val venue: Venue? = null,
@get:JvmName("video") val video: Video? = null,
+ @get:JvmName("link") val link: Link? = null,
) {
override fun equals(other: Any?): Boolean {
if (this === other) return true
@@ -22,7 +23,8 @@ data class PollMedia(
photo contentEquals other.photo &&
sticker == other.sticker &&
venue == other.venue &&
- video == other.video
+ video == other.video &&
+ link == other.link
}
override fun hashCode(): Int {
@@ -35,6 +37,7 @@ data class PollMedia(
result = 31 * result + (sticker?.hashCode() ?: 0)
result = 31 * result + (venue?.hashCode() ?: 0)
result = 31 * result + (video?.hashCode() ?: 0)
+ result = 31 * result + (link?.hashCode() ?: 0)
return result
}
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/PollOption.java b/library/src/main/java/com/pengrad/telegrambot/model/PollOption.java
index c74139183..86e3c7f96 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/PollOption.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/PollOption.java
@@ -17,7 +17,7 @@ public class PollOption implements Serializable {
private MessageEntity[] text_entities;
private User added_by_user;
private Chat added_by_chat;
- private Integer addition_date;
+ private Long addition_date;
private PollMedia media;
public String persistentId() {
@@ -44,7 +44,7 @@ public Chat addedByChat() {
return added_by_chat;
}
- public Integer additionDate() {
+ public Long additionDate() {
return addition_date;
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/PreparedInlineMessage.kt b/library/src/main/java/com/pengrad/telegrambot/model/PreparedInlineMessage.kt
index 7c68320ae..e59dc795e 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/PreparedInlineMessage.kt
+++ b/library/src/main/java/com/pengrad/telegrambot/model/PreparedInlineMessage.kt
@@ -2,5 +2,5 @@ package com.pengrad.telegrambot.model
data class PreparedInlineMessage(
@get:JvmName("id") val id: String,
- @get:JvmName("expirationDate") val expirationDate: Int
+ @get:JvmName("expirationDate") val expirationDate: Long
)
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/SuccessfulPayment.kt b/library/src/main/java/com/pengrad/telegrambot/model/SuccessfulPayment.kt
index a888f036c..16d85dcee 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/SuccessfulPayment.kt
+++ b/library/src/main/java/com/pengrad/telegrambot/model/SuccessfulPayment.kt
@@ -4,7 +4,7 @@ data class SuccessfulPayment(
@get:JvmName("currency") val currency: String,
@get:JvmName("totalAmount") val totalAmount: Int,
@get:JvmName("invoicePayload") val invoicePayload: String,
- @get:JvmName("subscriptionExpirationDate") val subscriptionExpirationDate: Int? = null,
+ @get:JvmName("subscriptionExpirationDate") val subscriptionExpirationDate: Long? = null,
@get:JvmName("isRecurring") val isRecurring: Boolean? = null,
@get:JvmName("isFirstRecurring") val isFirstRecurring: Boolean? = null,
@get:JvmName("shippingOptionId") val shippingOptionId: String? = null,
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/User.java b/library/src/main/java/com/pengrad/telegrambot/model/User.java
index 896294755..f10bb8900 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/User.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/User.java
@@ -27,6 +27,7 @@ public class User implements Serializable {
private Boolean allows_users_to_create_topics;
private Boolean can_manage_bots;
private Boolean supports_guest_queries;
+ private Boolean supports_join_request_queries;
private User() {
}
@@ -103,6 +104,10 @@ public Boolean supportsGuestQueries() {
return supports_guest_queries != null && supports_guest_queries;
}
+ public Boolean supportsJoinRequestQueries() {
+ return supports_join_request_queries != null && supports_join_request_queries;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
@@ -116,7 +121,8 @@ public boolean equals(Object o) {
&& Objects.equals(has_main_web_app, user.has_main_web_app) && Objects.equals(has_topics_enabled, user.has_topics_enabled)
&& Objects.equals(allows_users_to_create_topics, user.allows_users_to_create_topics)
&& Objects.equals(can_manage_bots, user.can_manage_bots)
- && Objects.equals(supports_guest_queries, user.supports_guest_queries);
+ && Objects.equals(supports_guest_queries, user.supports_guest_queries)
+ && Objects.equals(supports_join_request_queries, user.supports_join_request_queries);
}
@Override
@@ -144,6 +150,7 @@ public String toString() {
", allows_users_to_create_topics=" + allows_users_to_create_topics +
", can_manage_bots=" + can_manage_bots +
", supports_guest_queries=" + supports_guest_queries +
+ ", supports_join_request_queries=" + supports_join_request_queries +
'}';
}
}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/VideoChatScheduled.java b/library/src/main/java/com/pengrad/telegrambot/model/VideoChatScheduled.java
index 857d0c78a..8bff858ec 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/VideoChatScheduled.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/VideoChatScheduled.java
@@ -7,9 +7,9 @@ public class VideoChatScheduled implements Serializable {
private final static long serialVersionUID = 0L;
- private Integer start_date;
+ private Long start_date;
- public Integer startDate() {
+ public Long startDate() {
return start_date;
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/WebhookInfo.java b/library/src/main/java/com/pengrad/telegrambot/model/WebhookInfo.java
index d3b0c9689..7c4c3d493 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/WebhookInfo.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/WebhookInfo.java
@@ -15,9 +15,9 @@ public class WebhookInfo implements Serializable {
private Boolean has_custom_certificate;
private Integer pending_update_count;
private String ip_address;
- private Integer last_error_date;
+ private Long last_error_date;
private String last_error_message;
- private Integer last_synchronization_error_date;
+ private Long last_synchronization_error_date;
private Integer max_connections;
private String[] allowed_updates;
@@ -37,7 +37,7 @@ public String ipAddress() {
return ip_address;
}
- public Integer lastErrorDate() {
+ public Long lastErrorDate() {
return last_error_date;
}
@@ -45,7 +45,7 @@ public String lastErrorMessage() {
return last_error_message;
}
- public Integer lastSynchronizationErrorDate() {
+ public Long lastSynchronizationErrorDate() {
return last_synchronization_error_date;
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/business/BusinessConnection.java b/library/src/main/java/com/pengrad/telegrambot/model/business/BusinessConnection.java
index 36809eb83..eb2cc2126 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/business/BusinessConnection.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/business/BusinessConnection.java
@@ -9,7 +9,7 @@ public class BusinessConnection {
private String id;
private User user;
private Long user_chat_id;
- private Integer date;
+ private Long date;
private BusinessBotRights rights;
private Boolean is_enabled;
@@ -25,7 +25,7 @@ public Long userChatId() {
return user_chat_id;
}
- public Integer date() {
+ public Long date() {
return date;
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/chatboost/ChatBoost.java b/library/src/main/java/com/pengrad/telegrambot/model/chatboost/ChatBoost.java
index 97bb9c83f..8f6e5f04f 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/chatboost/ChatBoost.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/chatboost/ChatBoost.java
@@ -7,19 +7,19 @@
public class ChatBoost {
private String boost_id;
- private Integer add_date;
- private Integer expiration_date;
+ private Long add_date;
+ private Long expiration_date;
private ChatBoostSource source;
public String boostId() {
return boost_id;
}
- public Integer addDate() {
+ public Long addDate() {
return add_date;
}
- public Integer expirationDate() {
+ public Long expirationDate() {
return expiration_date;
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/chatboost/ChatBoostRemoved.java b/library/src/main/java/com/pengrad/telegrambot/model/chatboost/ChatBoostRemoved.java
index 02f5bd0e8..b3b2f01f2 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/chatboost/ChatBoostRemoved.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/chatboost/ChatBoostRemoved.java
@@ -9,7 +9,7 @@ public class ChatBoostRemoved {
private Chat chat;
private String boost_id;
- private Integer remove_date;
+ private Long remove_date;
private ChatBoostSource source;
public Chat chat() {
@@ -20,7 +20,7 @@ public String boostId() {
return boost_id;
}
- public Integer removeDate() {
+ public Long removeDate() {
return remove_date;
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTask.kt b/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTask.kt
index e236b4b6c..fce40378b 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTask.kt
+++ b/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTask.kt
@@ -11,7 +11,7 @@ data class ChecklistTask(
@get:JvmName("textEntities") val textEntities: Array?,
@get:JvmName("completedByUser") val completedByUser: User?,
@get:JvmName("completedByChat") val completedByChat: Chat? = null,
- @get:JvmName("completionDate") val completionDate: Int?
+ @get:JvmName("completionDate") val completionDate: Long?
) {
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/giveaway/Giveaway.java b/library/src/main/java/com/pengrad/telegrambot/model/giveaway/Giveaway.java
index 0a40a104f..d9b4d7971 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/giveaway/Giveaway.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/giveaway/Giveaway.java
@@ -12,7 +12,7 @@ public class Giveaway implements Serializable {
private final static long serialVersionUID = 0L;
private Chat[] chats;
- private Integer winners_selection_date;
+ private Long winners_selection_date;
private Integer winner_count;
private Boolean only_new_members;
private Boolean has_public_winners;
@@ -24,7 +24,7 @@ public class Giveaway implements Serializable {
public Chat[] chats() {
return chats;
}
- public Integer winnersSelectionDate() {
+ public Long winnersSelectionDate() {
return winners_selection_date;
}
public Integer winnerCount() {
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/giveaway/GiveawayWinners.java b/library/src/main/java/com/pengrad/telegrambot/model/giveaway/GiveawayWinners.java
index 3f8feff6d..9fafce42b 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/giveaway/GiveawayWinners.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/giveaway/GiveawayWinners.java
@@ -13,7 +13,7 @@ public class GiveawayWinners implements Serializable {
private Chat chat;
private Integer giveaway_message_id;
- private Integer winners_selection_date;
+ private Long winners_selection_date;
private Integer winner_count;
private User[] winners;
private Integer additional_chat_count;
@@ -32,7 +32,7 @@ public Integer giveawayMessageId() {
return giveaway_message_id;
}
- public Integer winnersSelectionDate() {
+ public Long winnersSelectionDate() {
return winners_selection_date;
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/message/MaybeInaccessibleMessage.java b/library/src/main/java/com/pengrad/telegrambot/model/message/MaybeInaccessibleMessage.java
index 4dc9511c2..a91975eb8 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/message/MaybeInaccessibleMessage.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/message/MaybeInaccessibleMessage.java
@@ -8,7 +8,7 @@ public class MaybeInaccessibleMessage {
protected Chat chat;
protected Integer message_id;
- protected Integer date;
+ protected Long date;
public Chat chat() {
return chat;
@@ -18,7 +18,7 @@ public Integer messageId() {
return message_id;
}
- public Integer date() {
+ public Long date() {
return date;
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOrigin.java b/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOrigin.java
index a5c9f253b..97333b8c0 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOrigin.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOrigin.java
@@ -7,7 +7,7 @@ public class MessageOrigin implements Serializable {
private final static long serialVersionUID = 0L;
protected String type;
- protected Integer date;
+ protected Long date;
public MessageOrigin(String type) {
this.type = type;
@@ -17,7 +17,7 @@ public String type() {
return type;
}
- public Integer date() {
+ public Long date() {
return date;
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/request/InputMediaLink.kt b/library/src/main/java/com/pengrad/telegrambot/model/request/InputMediaLink.kt
new file mode 100644
index 000000000..bf42933b4
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/request/InputMediaLink.kt
@@ -0,0 +1,10 @@
+package com.pengrad.telegrambot.model.request
+
+import java.io.Serializable
+
+class InputMediaLink(
+ val url: String,
+) : InputPollOptionMedia, Serializable {
+
+ val type: String = "link"
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/request/richmessages/InputRichMessage.kt b/library/src/main/java/com/pengrad/telegrambot/model/request/richmessages/InputRichMessage.kt
new file mode 100644
index 000000000..ec61a5d27
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/request/richmessages/InputRichMessage.kt
@@ -0,0 +1,45 @@
+package com.pengrad.telegrambot.model.request.richmessages
+
+class InputRichMessage private constructor(
+ @get:JvmName("html") var html: String?,
+ @get:JvmName("markdown") var markdown: String?,
+ @get:JvmName("isRtl") var isRtl: Boolean?,
+ @get:JvmName("skipEntityDetection") var skipEntityDetection: Boolean?
+) {
+
+ constructor() : this(
+ html = null,
+ markdown = null,
+ isRtl = null,
+ skipEntityDetection = null
+ )
+
+ fun html(html: String) = apply { this.html = html }
+
+ fun markdown(markdown: String) = apply { this.markdown = markdown }
+
+ fun isRtl(isRtl: Boolean) = apply { this.isRtl = isRtl }
+
+ fun skipEntityDetection(skipEntityDetection: Boolean) = apply { this.skipEntityDetection = skipEntityDetection }
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+ other as InputRichMessage
+ return html == other.html &&
+ markdown == other.markdown &&
+ isRtl == other.isRtl &&
+ skipEntityDetection == other.skipEntityDetection
+ }
+
+ override fun hashCode(): Int {
+ var result = html?.hashCode() ?: 0
+ result = 31 * result + (markdown?.hashCode() ?: 0)
+ result = 31 * result + (isRtl?.hashCode() ?: 0)
+ result = 31 * result + (skipEntityDetection?.hashCode() ?: 0)
+ return result
+ }
+
+ override fun toString(): String =
+ "InputRichMessage(html=$html, markdown=$markdown, isRtl=$isRtl, skipEntityDetection=$skipEntityDetection)"
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/request/richmessages/InputRichMessageContent.kt b/library/src/main/java/com/pengrad/telegrambot/model/request/richmessages/InputRichMessageContent.kt
new file mode 100644
index 000000000..8350bcde2
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/request/richmessages/InputRichMessageContent.kt
@@ -0,0 +1,19 @@
+package com.pengrad.telegrambot.model.request.richmessages
+
+import com.pengrad.telegrambot.model.request.InputMessageContent
+
+class InputRichMessageContent(
+ @get:JvmName("richMessage") val richMessage: InputRichMessage
+) : InputMessageContent() {
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+ other as InputRichMessageContent
+ return richMessage == other.richMessage
+ }
+
+ override fun hashCode(): Int = richMessage.hashCode()
+
+ override fun toString(): String = "InputRichMessageContent(richMessage=$richMessage)"
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/RichMessage.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/RichMessage.kt
new file mode 100644
index 000000000..12eb2c837
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/RichMessage.kt
@@ -0,0 +1,24 @@
+package com.pengrad.telegrambot.model.richmessages
+
+import com.pengrad.telegrambot.model.richmessages.richblock.RichBlock
+
+class RichMessage(
+ @get:JvmName("blocks") val blocks: Array,
+ @get:JvmName("isRtl") val isRtl: Boolean? = null
+) {
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+ other as RichMessage
+ return blocks.contentEquals(other.blocks) && isRtl == other.isRtl
+ }
+
+ override fun hashCode(): Int {
+ var result = blocks.contentHashCode()
+ result = 31 * result + (isRtl?.hashCode() ?: 0)
+ return result
+ }
+
+ override fun toString(): String = "RichMessage(blocks=${blocks.contentToString()}, isRtl=$isRtl)"
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlock.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlock.kt
new file mode 100644
index 000000000..1531c09a3
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlock.kt
@@ -0,0 +1,5 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+interface RichBlock {
+ val type: String
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockAnchor.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockAnchor.kt
new file mode 100644
index 000000000..5b6fe16aa
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockAnchor.kt
@@ -0,0 +1,7 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+data class RichBlockAnchor(
+ @get:JvmName("name") val name: String
+) : RichBlock {
+ override val type: String get() = RichBlockType.ANCHOR
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockAnimation.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockAnimation.kt
new file mode 100644
index 000000000..bbfaf9886
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockAnimation.kt
@@ -0,0 +1,11 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+import com.pengrad.telegrambot.model.Animation
+
+data class RichBlockAnimation(
+ @get:JvmName("animation") val animation: Animation,
+ @get:JvmName("hasSpoiler") val hasSpoiler: Boolean? = null,
+ @get:JvmName("caption") val caption: RichBlockCaption? = null
+) : RichBlock {
+ override val type: String get() = RichBlockType.ANIMATION
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockAudio.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockAudio.kt
new file mode 100644
index 000000000..c7804cc56
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockAudio.kt
@@ -0,0 +1,10 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+import com.pengrad.telegrambot.model.Audio
+
+data class RichBlockAudio(
+ @get:JvmName("audio") val audio: Audio,
+ @get:JvmName("caption") val caption: RichBlockCaption? = null
+) : RichBlock {
+ override val type: String get() = RichBlockType.AUDIO
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockBlockQuotation.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockBlockQuotation.kt
new file mode 100644
index 000000000..0ead7f7dc
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockBlockQuotation.kt
@@ -0,0 +1,26 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+import com.pengrad.telegrambot.model.richmessages.richtext.RichText
+
+class RichBlockBlockQuotation(
+ @get:JvmName("blocks") val blocks: Array,
+ @get:JvmName("credit") val credit: RichText? = null
+) : RichBlock {
+
+ override val type: String get() = RichBlockType.BLOCKQUOTE
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+ other as RichBlockBlockQuotation
+ return blocks.contentEquals(other.blocks) && credit == other.credit
+ }
+
+ override fun hashCode(): Int {
+ var result = blocks.contentHashCode()
+ result = 31 * result + (credit?.hashCode() ?: 0)
+ return result
+ }
+
+ override fun toString(): String = "RichBlockBlockQuotation(blocks=${blocks.contentToString()}, credit=$credit)"
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockCaption.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockCaption.kt
new file mode 100644
index 000000000..6b1966eee
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockCaption.kt
@@ -0,0 +1,8 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+import com.pengrad.telegrambot.model.richmessages.richtext.RichText
+
+data class RichBlockCaption(
+ @get:JvmName("text") val text: RichText,
+ @get:JvmName("credit") val credit: RichText? = null
+)
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockCollage.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockCollage.kt
new file mode 100644
index 000000000..07d7abd93
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockCollage.kt
@@ -0,0 +1,24 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+class RichBlockCollage(
+ @get:JvmName("blocks") val blocks: Array,
+ @get:JvmName("caption") val caption: RichBlockCaption? = null
+) : RichBlock {
+
+ override val type: String get() = RichBlockType.COLLAGE
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+ other as RichBlockCollage
+ return blocks.contentEquals(other.blocks) && caption == other.caption
+ }
+
+ override fun hashCode(): Int {
+ var result = blocks.contentHashCode()
+ result = 31 * result + (caption?.hashCode() ?: 0)
+ return result
+ }
+
+ override fun toString(): String = "RichBlockCollage(blocks=${blocks.contentToString()}, caption=$caption)"
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockDetails.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockDetails.kt
new file mode 100644
index 000000000..d34a95308
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockDetails.kt
@@ -0,0 +1,28 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+import com.pengrad.telegrambot.model.richmessages.richtext.RichText
+
+class RichBlockDetails(
+ @get:JvmName("summary") val summary: RichText,
+ @get:JvmName("blocks") val blocks: Array,
+ @get:JvmName("isOpen") val isOpen: Boolean? = null
+) : RichBlock {
+
+ override val type: String get() = RichBlockType.DETAILS
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+ other as RichBlockDetails
+ return summary == other.summary && blocks.contentEquals(other.blocks) && isOpen == other.isOpen
+ }
+
+ override fun hashCode(): Int {
+ var result = summary.hashCode()
+ result = 31 * result + blocks.contentHashCode()
+ result = 31 * result + (isOpen?.hashCode() ?: 0)
+ return result
+ }
+
+ override fun toString(): String = "RichBlockDetails(summary=$summary, blocks=${blocks.contentToString()}, isOpen=$isOpen)"
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockDivider.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockDivider.kt
new file mode 100644
index 000000000..9162c2257
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockDivider.kt
@@ -0,0 +1,14 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+class RichBlockDivider : RichBlock {
+ override val type: String get() = RichBlockType.DIVIDER
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ return other is RichBlockDivider
+ }
+
+ override fun hashCode(): Int = type.hashCode()
+
+ override fun toString(): String = "RichBlockDivider()"
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockFooter.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockFooter.kt
new file mode 100644
index 000000000..cf7fce611
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockFooter.kt
@@ -0,0 +1,9 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+import com.pengrad.telegrambot.model.richmessages.richtext.RichText
+
+data class RichBlockFooter(
+ @get:JvmName("text") val text: RichText
+) : RichBlock {
+ override val type: String get() = RichBlockType.FOOTER
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockList.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockList.kt
new file mode 100644
index 000000000..f1332c32b
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockList.kt
@@ -0,0 +1,19 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+class RichBlockList(
+ @get:JvmName("items") val items: Array
+) : RichBlock {
+
+ override val type: String get() = RichBlockType.LIST
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+ other as RichBlockList
+ return items.contentEquals(other.items)
+ }
+
+ override fun hashCode(): Int = items.contentHashCode()
+
+ override fun toString(): String = "RichBlockList(items=${items.contentToString()})"
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockListItem.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockListItem.kt
new file mode 100644
index 000000000..619d99857
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockListItem.kt
@@ -0,0 +1,36 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+class RichBlockListItem(
+ @get:JvmName("label") val label: String,
+ @get:JvmName("blocks") val blocks: Array,
+ @get:JvmName("hasCheckbox") val hasCheckbox: Boolean? = null,
+ @get:JvmName("isChecked") val isChecked: Boolean? = null,
+ @get:JvmName("value") val value: Int? = null,
+ @get:JvmName("type") val type: String? = null
+) {
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+ other as RichBlockListItem
+ return label == other.label &&
+ blocks.contentEquals(other.blocks) &&
+ hasCheckbox == other.hasCheckbox &&
+ isChecked == other.isChecked &&
+ value == other.value &&
+ type == other.type
+ }
+
+ override fun hashCode(): Int {
+ var result = label.hashCode()
+ result = 31 * result + blocks.contentHashCode()
+ result = 31 * result + (hasCheckbox?.hashCode() ?: 0)
+ result = 31 * result + (isChecked?.hashCode() ?: 0)
+ result = 31 * result + (value ?: 0)
+ result = 31 * result + (type?.hashCode() ?: 0)
+ return result
+ }
+
+ override fun toString(): String =
+ "RichBlockListItem(label='$label', blocks=${blocks.contentToString()}, hasCheckbox=$hasCheckbox, isChecked=$isChecked, value=$value, type=$type)"
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockMap.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockMap.kt
new file mode 100644
index 000000000..970ab3470
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockMap.kt
@@ -0,0 +1,13 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+import com.pengrad.telegrambot.model.Location
+
+data class RichBlockMap(
+ @get:JvmName("location") val location: Location,
+ @get:JvmName("zoom") val zoom: Int,
+ @get:JvmName("width") val width: Int,
+ @get:JvmName("height") val height: Int,
+ @get:JvmName("caption") val caption: RichBlockCaption? = null
+) : RichBlock {
+ override val type: String get() = RichBlockType.MAP
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockMathematicalExpression.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockMathematicalExpression.kt
new file mode 100644
index 000000000..66cdb94e7
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockMathematicalExpression.kt
@@ -0,0 +1,7 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+data class RichBlockMathematicalExpression(
+ @get:JvmName("expression") val expression: String
+) : RichBlock {
+ override val type: String get() = RichBlockType.MATHEMATICAL_EXPRESSION
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockParagraph.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockParagraph.kt
new file mode 100644
index 000000000..5fa2c51c2
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockParagraph.kt
@@ -0,0 +1,9 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+import com.pengrad.telegrambot.model.richmessages.richtext.RichText
+
+data class RichBlockParagraph(
+ @get:JvmName("text") val text: RichText
+) : RichBlock {
+ override val type: String get() = RichBlockType.PARAGRAPH
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockPhoto.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockPhoto.kt
new file mode 100644
index 000000000..de5816b09
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockPhoto.kt
@@ -0,0 +1,28 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+import com.pengrad.telegrambot.model.PhotoSize
+
+class RichBlockPhoto(
+ @get:JvmName("photo") val photo: Array,
+ @get:JvmName("hasSpoiler") val hasSpoiler: Boolean? = null,
+ @get:JvmName("caption") val caption: RichBlockCaption? = null
+) : RichBlock {
+
+ override val type: String get() = RichBlockType.PHOTO
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+ other as RichBlockPhoto
+ return photo.contentEquals(other.photo) && hasSpoiler == other.hasSpoiler && caption == other.caption
+ }
+
+ override fun hashCode(): Int {
+ var result = photo.contentHashCode()
+ result = 31 * result + (hasSpoiler?.hashCode() ?: 0)
+ result = 31 * result + (caption?.hashCode() ?: 0)
+ return result
+ }
+
+ override fun toString(): String = "RichBlockPhoto(photo=${photo.contentToString()}, hasSpoiler=$hasSpoiler, caption=$caption)"
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockPreformatted.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockPreformatted.kt
new file mode 100644
index 000000000..fc8f3aac3
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockPreformatted.kt
@@ -0,0 +1,10 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+import com.pengrad.telegrambot.model.richmessages.richtext.RichText
+
+data class RichBlockPreformatted(
+ @get:JvmName("text") val text: RichText,
+ @get:JvmName("language") val language: String? = null
+) : RichBlock {
+ override val type: String get() = RichBlockType.PRE
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockPullQuotation.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockPullQuotation.kt
new file mode 100644
index 000000000..49aa118cb
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockPullQuotation.kt
@@ -0,0 +1,10 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+import com.pengrad.telegrambot.model.richmessages.richtext.RichText
+
+data class RichBlockPullQuotation(
+ @get:JvmName("text") val text: RichText,
+ @get:JvmName("credit") val credit: RichText? = null
+) : RichBlock {
+ override val type: String get() = RichBlockType.PULLQUOTE
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockSectionHeading.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockSectionHeading.kt
new file mode 100644
index 000000000..4d352390f
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockSectionHeading.kt
@@ -0,0 +1,10 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+import com.pengrad.telegrambot.model.richmessages.richtext.RichText
+
+data class RichBlockSectionHeading(
+ @get:JvmName("text") val text: RichText,
+ @get:JvmName("size") val size: Int
+) : RichBlock {
+ override val type: String get() = RichBlockType.HEADING
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockSlideshow.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockSlideshow.kt
new file mode 100644
index 000000000..e7193a912
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockSlideshow.kt
@@ -0,0 +1,24 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+class RichBlockSlideshow(
+ @get:JvmName("blocks") val blocks: Array,
+ @get:JvmName("caption") val caption: RichBlockCaption? = null
+) : RichBlock {
+
+ override val type: String get() = RichBlockType.SLIDESHOW
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+ other as RichBlockSlideshow
+ return blocks.contentEquals(other.blocks) && caption == other.caption
+ }
+
+ override fun hashCode(): Int {
+ var result = blocks.contentHashCode()
+ result = 31 * result + (caption?.hashCode() ?: 0)
+ return result
+ }
+
+ override fun toString(): String = "RichBlockSlideshow(blocks=${blocks.contentToString()}, caption=$caption)"
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockTable.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockTable.kt
new file mode 100644
index 000000000..409520951
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockTable.kt
@@ -0,0 +1,33 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+import com.pengrad.telegrambot.model.richmessages.richtext.RichText
+
+class RichBlockTable(
+ @get:JvmName("cells") val cells: Array>,
+ @get:JvmName("isBordered") val isBordered: Boolean? = null,
+ @get:JvmName("isStriped") val isStriped: Boolean? = null,
+ @get:JvmName("caption") val caption: RichText? = null
+) : RichBlock {
+
+ override val type: String get() = RichBlockType.TABLE
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+ other as RichBlockTable
+ return cells.contentDeepEquals(other.cells) &&
+ isBordered == other.isBordered &&
+ isStriped == other.isStriped &&
+ caption == other.caption
+ }
+
+ override fun hashCode(): Int {
+ var result = cells.contentDeepHashCode()
+ result = 31 * result + (isBordered?.hashCode() ?: 0)
+ result = 31 * result + (isStriped?.hashCode() ?: 0)
+ result = 31 * result + (caption?.hashCode() ?: 0)
+ return result
+ }
+
+ override fun toString(): String = "RichBlockTable(cells=${cells.contentDeepToString()}, isBordered=$isBordered, isStriped=$isStriped, caption=$caption)"
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockTableCell.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockTableCell.kt
new file mode 100644
index 000000000..15c22cafb
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockTableCell.kt
@@ -0,0 +1,12 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+import com.pengrad.telegrambot.model.richmessages.richtext.RichText
+
+data class RichBlockTableCell(
+ @get:JvmName("text") val text: RichText? = null,
+ @get:JvmName("isHeader") val isHeader: Boolean? = null,
+ @get:JvmName("colspan") val colspan: Int? = null,
+ @get:JvmName("rowspan") val rowspan: Int? = null,
+ @get:JvmName("align") val align: String? = null,
+ @get:JvmName("valign") val valign: String? = null
+)
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockThinking.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockThinking.kt
new file mode 100644
index 000000000..0dfebf77c
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockThinking.kt
@@ -0,0 +1,9 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+import com.pengrad.telegrambot.model.richmessages.richtext.RichText
+
+data class RichBlockThinking(
+ @get:JvmName("text") val text: RichText
+) : RichBlock {
+ override val type: String get() = RichBlockType.THINKING
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockType.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockType.kt
new file mode 100644
index 000000000..7408aa18e
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockType.kt
@@ -0,0 +1,26 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+object RichBlockType {
+ const val PARAGRAPH = "paragraph"
+ const val HEADING = "heading"
+ const val PRE = "pre"
+ const val FOOTER = "footer"
+ const val DIVIDER = "divider"
+ const val MATHEMATICAL_EXPRESSION = "mathematical_expression"
+ const val ANCHOR = "anchor"
+ const val LIST = "list"
+ const val BLOCKQUOTE = "blockquote"
+ const val PULLQUOTE = "pullquote"
+ const val COLLAGE = "collage"
+ const val SLIDESHOW = "slideshow"
+ const val TABLE = "table"
+ const val DETAILS = "details"
+ const val MAP = "map"
+ const val ANIMATION = "animation"
+ const val AUDIO = "audio"
+ const val PHOTO = "photo"
+ const val VIDEO = "video"
+ const val VOICE_NOTE = "voice_note"
+ const val THINKING = "thinking"
+ const val UNKNOWN = "unknown"
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockUnknown.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockUnknown.kt
new file mode 100644
index 000000000..9e11df6ea
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockUnknown.kt
@@ -0,0 +1,15 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+class RichBlockUnknown(override val type: String = RichBlockType.UNKNOWN) : RichBlock {
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+ other as RichBlockUnknown
+ return type == other.type
+ }
+
+ override fun hashCode(): Int = type.hashCode()
+
+ override fun toString(): String = "RichBlockUnknown(type='$type')"
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockVideo.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockVideo.kt
new file mode 100644
index 000000000..12c72a329
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockVideo.kt
@@ -0,0 +1,11 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+import com.pengrad.telegrambot.model.Video
+
+data class RichBlockVideo(
+ @get:JvmName("video") val video: Video,
+ @get:JvmName("hasSpoiler") val hasSpoiler: Boolean? = null,
+ @get:JvmName("caption") val caption: RichBlockCaption? = null
+) : RichBlock {
+ override val type: String get() = RichBlockType.VIDEO
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockVoiceNote.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockVoiceNote.kt
new file mode 100644
index 000000000..9d8c0c8af
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richblock/RichBlockVoiceNote.kt
@@ -0,0 +1,10 @@
+package com.pengrad.telegrambot.model.richmessages.richblock
+
+import com.pengrad.telegrambot.model.Voice
+
+data class RichBlockVoiceNote(
+ @get:JvmName("voiceNote") val voiceNote: Voice,
+ @get:JvmName("caption") val caption: RichBlockCaption? = null
+) : RichBlock {
+ override val type: String get() = RichBlockType.VOICE_NOTE
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichText.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichText.kt
new file mode 100644
index 000000000..8f78aee7c
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichText.kt
@@ -0,0 +1,5 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+interface RichText {
+ val type: String
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextAnchor.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextAnchor.kt
new file mode 100644
index 000000000..57a3191c2
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextAnchor.kt
@@ -0,0 +1,7 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextAnchor(
+ @get:JvmName("name") val name: String
+) : RichText {
+ override val type: String get() = RichTextType.ANCHOR
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextAnchorLink.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextAnchorLink.kt
new file mode 100644
index 000000000..15759d4de
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextAnchorLink.kt
@@ -0,0 +1,8 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextAnchorLink(
+ @get:JvmName("text") val text: RichText,
+ @get:JvmName("anchorName") val anchorName: String
+) : RichText {
+ override val type: String get() = RichTextType.ANCHOR_LINK
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextArray.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextArray.kt
new file mode 100644
index 000000000..19a508a76
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextArray.kt
@@ -0,0 +1,19 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+class RichTextArray(
+ @get:JvmName("elements") val elements: Array
+) : RichText {
+
+ override val type: String get() = "array"
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+ other as RichTextArray
+ return elements.contentEquals(other.elements)
+ }
+
+ override fun hashCode(): Int = elements.contentHashCode()
+
+ override fun toString(): String = "RichTextArray(elements=${elements.contentToString()})"
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextBankCardNumber.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextBankCardNumber.kt
new file mode 100644
index 000000000..e30a640b1
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextBankCardNumber.kt
@@ -0,0 +1,8 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextBankCardNumber(
+ @get:JvmName("text") val text: RichText,
+ @get:JvmName("bankCardNumber") val bankCardNumber: String
+) : RichText {
+ override val type: String get() = RichTextType.BANK_CARD_NUMBER
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextBold.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextBold.kt
new file mode 100644
index 000000000..abe838685
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextBold.kt
@@ -0,0 +1,7 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextBold(
+ @get:JvmName("text") val text: RichText
+) : RichText {
+ override val type: String get() = RichTextType.BOLD
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextBotCommand.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextBotCommand.kt
new file mode 100644
index 000000000..2ccfa4815
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextBotCommand.kt
@@ -0,0 +1,8 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextBotCommand(
+ @get:JvmName("text") val text: RichText,
+ @get:JvmName("botCommand") val botCommand: String
+) : RichText {
+ override val type: String get() = RichTextType.BOT_COMMAND
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextCashtag.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextCashtag.kt
new file mode 100644
index 000000000..2ee11987f
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextCashtag.kt
@@ -0,0 +1,8 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextCashtag(
+ @get:JvmName("text") val text: RichText,
+ @get:JvmName("cashtag") val cashtag: String
+) : RichText {
+ override val type: String get() = RichTextType.CASHTAG
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextCode.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextCode.kt
new file mode 100644
index 000000000..a43219bb0
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextCode.kt
@@ -0,0 +1,7 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextCode(
+ @get:JvmName("text") val text: RichText
+) : RichText {
+ override val type: String get() = RichTextType.CODE
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextCustomEmoji.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextCustomEmoji.kt
new file mode 100644
index 000000000..6f35924a2
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextCustomEmoji.kt
@@ -0,0 +1,8 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextCustomEmoji(
+ @get:JvmName("customEmojiId") val customEmojiId: String,
+ @get:JvmName("alternativeText") val alternativeText: String
+) : RichText {
+ override val type: String get() = RichTextType.CUSTOM_EMOJI
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextDateTime.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextDateTime.kt
new file mode 100644
index 000000000..ff5c1d82d
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextDateTime.kt
@@ -0,0 +1,9 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextDateTime(
+ @get:JvmName("text") val text: RichText,
+ @get:JvmName("unixTime") val unixTime: Long,
+ @get:JvmName("dateTimeFormat") val dateTimeFormat: String
+) : RichText {
+ override val type: String get() = RichTextType.DATE_TIME
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextEmailAddress.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextEmailAddress.kt
new file mode 100644
index 000000000..4acad159d
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextEmailAddress.kt
@@ -0,0 +1,8 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextEmailAddress(
+ @get:JvmName("text") val text: RichText,
+ @get:JvmName("emailAddress") val emailAddress: String
+) : RichText {
+ override val type: String get() = RichTextType.EMAIL_ADDRESS
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextHashtag.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextHashtag.kt
new file mode 100644
index 000000000..ccc8dc23b
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextHashtag.kt
@@ -0,0 +1,8 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextHashtag(
+ @get:JvmName("text") val text: RichText,
+ @get:JvmName("hashtag") val hashtag: String
+) : RichText {
+ override val type: String get() = RichTextType.HASHTAG
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextItalic.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextItalic.kt
new file mode 100644
index 000000000..d8d19b32b
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextItalic.kt
@@ -0,0 +1,7 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextItalic(
+ @get:JvmName("text") val text: RichText
+) : RichText {
+ override val type: String get() = RichTextType.ITALIC
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextMarked.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextMarked.kt
new file mode 100644
index 000000000..5e964d97c
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextMarked.kt
@@ -0,0 +1,7 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextMarked(
+ @get:JvmName("text") val text: RichText
+) : RichText {
+ override val type: String get() = RichTextType.MARKED
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextMathematicalExpression.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextMathematicalExpression.kt
new file mode 100644
index 000000000..8cae1cf26
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextMathematicalExpression.kt
@@ -0,0 +1,7 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextMathematicalExpression(
+ @get:JvmName("expression") val expression: String
+) : RichText {
+ override val type: String get() = RichTextType.MATHEMATICAL_EXPRESSION
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextMention.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextMention.kt
new file mode 100644
index 000000000..d354e0985
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextMention.kt
@@ -0,0 +1,8 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextMention(
+ @get:JvmName("text") val text: RichText,
+ @get:JvmName("username") val username: String
+) : RichText {
+ override val type: String get() = RichTextType.MENTION
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextPhoneNumber.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextPhoneNumber.kt
new file mode 100644
index 000000000..60a5b71b6
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextPhoneNumber.kt
@@ -0,0 +1,8 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextPhoneNumber(
+ @get:JvmName("text") val text: RichText,
+ @get:JvmName("phoneNumber") val phoneNumber: String
+) : RichText {
+ override val type: String get() = RichTextType.PHONE_NUMBER
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextPlain.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextPlain.kt
new file mode 100644
index 000000000..788f8c76d
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextPlain.kt
@@ -0,0 +1,7 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextPlain(
+ @get:JvmName("text") val text: String
+) : RichText {
+ override val type: String get() = "plain"
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextReference.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextReference.kt
new file mode 100644
index 000000000..09700dbc0
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextReference.kt
@@ -0,0 +1,8 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextReference(
+ @get:JvmName("text") val text: RichText,
+ @get:JvmName("name") val name: String
+) : RichText {
+ override val type: String get() = RichTextType.REFERENCE
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextReferenceLink.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextReferenceLink.kt
new file mode 100644
index 000000000..35f1a3c90
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextReferenceLink.kt
@@ -0,0 +1,8 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextReferenceLink(
+ @get:JvmName("text") val text: RichText,
+ @get:JvmName("referenceName") val referenceName: String
+) : RichText {
+ override val type: String get() = RichTextType.REFERENCE_LINK
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextSpoiler.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextSpoiler.kt
new file mode 100644
index 000000000..e3138bb41
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextSpoiler.kt
@@ -0,0 +1,7 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextSpoiler(
+ @get:JvmName("text") val text: RichText
+) : RichText {
+ override val type: String get() = RichTextType.SPOILER
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextStrikethrough.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextStrikethrough.kt
new file mode 100644
index 000000000..932a2a1fe
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextStrikethrough.kt
@@ -0,0 +1,7 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextStrikethrough(
+ @get:JvmName("text") val text: RichText
+) : RichText {
+ override val type: String get() = RichTextType.STRIKETHROUGH
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextSubscript.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextSubscript.kt
new file mode 100644
index 000000000..118ad673a
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextSubscript.kt
@@ -0,0 +1,7 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextSubscript(
+ @get:JvmName("text") val text: RichText
+) : RichText {
+ override val type: String get() = RichTextType.SUBSCRIPT
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextSuperscript.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextSuperscript.kt
new file mode 100644
index 000000000..5118f307f
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextSuperscript.kt
@@ -0,0 +1,7 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextSuperscript(
+ @get:JvmName("text") val text: RichText
+) : RichText {
+ override val type: String get() = RichTextType.SUPERSCRIPT
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextTextMention.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextTextMention.kt
new file mode 100644
index 000000000..f3d0c640e
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextTextMention.kt
@@ -0,0 +1,10 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+import com.pengrad.telegrambot.model.User
+
+data class RichTextTextMention(
+ @get:JvmName("text") val text: RichText,
+ @get:JvmName("user") val user: User
+) : RichText {
+ override val type: String get() = RichTextType.TEXT_MENTION
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextType.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextType.kt
new file mode 100644
index 000000000..429d79d9a
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextType.kt
@@ -0,0 +1,30 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+object RichTextType {
+ const val BOLD = "bold"
+ const val ITALIC = "italic"
+ const val UNDERLINE = "underline"
+ const val STRIKETHROUGH = "strikethrough"
+ const val SPOILER = "spoiler"
+ const val DATE_TIME = "date_time"
+ const val TEXT_MENTION = "text_mention"
+ const val SUBSCRIPT = "subscript"
+ const val SUPERSCRIPT = "superscript"
+ const val MARKED = "marked"
+ const val CODE = "code"
+ const val CUSTOM_EMOJI = "custom_emoji"
+ const val MATHEMATICAL_EXPRESSION = "mathematical_expression"
+ const val URL = "url"
+ const val EMAIL_ADDRESS = "email_address"
+ const val PHONE_NUMBER = "phone_number"
+ const val BANK_CARD_NUMBER = "bank_card_number"
+ const val MENTION = "mention"
+ const val HASHTAG = "hashtag"
+ const val CASHTAG = "cashtag"
+ const val BOT_COMMAND = "bot_command"
+ const val ANCHOR = "anchor"
+ const val ANCHOR_LINK = "anchor_link"
+ const val REFERENCE = "reference"
+ const val REFERENCE_LINK = "reference_link"
+ const val UNKNOWN = "unknown"
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextUnderline.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextUnderline.kt
new file mode 100644
index 000000000..fb0fba3e0
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextUnderline.kt
@@ -0,0 +1,7 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextUnderline(
+ @get:JvmName("text") val text: RichText
+) : RichText {
+ override val type: String get() = RichTextType.UNDERLINE
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextUnknown.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextUnknown.kt
new file mode 100644
index 000000000..deae2b77d
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextUnknown.kt
@@ -0,0 +1,15 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+class RichTextUnknown(override val type: String = RichTextType.UNKNOWN) : RichText {
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (javaClass != other?.javaClass) return false
+ other as RichTextUnknown
+ return type == other.type
+ }
+
+ override fun hashCode(): Int = type.hashCode()
+
+ override fun toString(): String = "RichTextUnknown(type='$type')"
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextUrl.kt b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextUrl.kt
new file mode 100644
index 000000000..0fda6a550
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/model/richmessages/richtext/RichTextUrl.kt
@@ -0,0 +1,8 @@
+package com.pengrad.telegrambot.model.richmessages.richtext
+
+data class RichTextUrl(
+ @get:JvmName("text") val text: RichText,
+ @get:JvmName("url") val url: String
+) : RichText {
+ override val type: String get() = RichTextType.URL
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/stars/StarTransaction.kt b/library/src/main/java/com/pengrad/telegrambot/model/stars/StarTransaction.kt
index 6dba92c63..0845cb5f0 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/stars/StarTransaction.kt
+++ b/library/src/main/java/com/pengrad/telegrambot/model/stars/StarTransaction.kt
@@ -6,7 +6,7 @@ data class StarTransaction(
@get:JvmName("id") val id: String,
@get:JvmName("amount") val amount: Int,
@get:JvmName("nanostarAmount") val nanostarAmount: Int? = null,
- @get:JvmName("date") val date: Int,
+ @get:JvmName("date") val date: Long,
@get:JvmName("source") val source: TransactionPartner? = null,
@get:JvmName("receiver") val receiver: TransactionPartner? = null
)
diff --git a/library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalStateSucceeded.java b/library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalStateSucceeded.java
index 6875aa025..a65d70501 100644
--- a/library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalStateSucceeded.java
+++ b/library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalStateSucceeded.java
@@ -6,14 +6,14 @@ public class RevenueWithdrawalStateSucceeded extends RevenueWithdrawalState {
public static final String TYPE = "succeeded";
- private Integer date;
+ private Long date;
private String url;
public RevenueWithdrawalStateSucceeded() {
super(TYPE);
}
- public Integer date() {
+ public Long date() {
return date;
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/passport/PassportFile.java b/library/src/main/java/com/pengrad/telegrambot/passport/PassportFile.java
index 687f9ab13..27a48d2f1 100644
--- a/library/src/main/java/com/pengrad/telegrambot/passport/PassportFile.java
+++ b/library/src/main/java/com/pengrad/telegrambot/passport/PassportFile.java
@@ -12,7 +12,7 @@ public class PassportFile implements Serializable {
private String file_id;
private String file_unique_id;
private Long file_size;
- private Integer file_date;
+ private Long file_date;
public String fileId() {
return file_id;
@@ -26,7 +26,7 @@ public Long fileSize() {
return file_size;
}
- public Integer fileDate() {
+ public Long fileDate() {
return file_date;
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/AnswerChatJoinRequestQuery.kt b/library/src/main/java/com/pengrad/telegrambot/request/AnswerChatJoinRequestQuery.kt
new file mode 100644
index 000000000..8d7207f95
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/request/AnswerChatJoinRequestQuery.kt
@@ -0,0 +1,14 @@
+package com.pengrad.telegrambot.request
+
+import com.pengrad.telegrambot.response.BaseResponse
+import com.pengrad.telegrambot.utility.kotlin.requestParameter
+
+class AnswerChatJoinRequestQuery(
+ chatJoinRequestQueryId: String,
+ result: String,
+) : KBaseRequest(BaseResponse::class) {
+
+ val chatJoinRequestQueryId: String by requestParameter(chatJoinRequestQueryId)
+ val result: String by requestParameter(result)
+
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/BanChatMember.java b/library/src/main/java/com/pengrad/telegrambot/request/BanChatMember.java
index a94c04ee6..7d98f3b28 100644
--- a/library/src/main/java/com/pengrad/telegrambot/request/BanChatMember.java
+++ b/library/src/main/java/com/pengrad/telegrambot/request/BanChatMember.java
@@ -9,7 +9,7 @@ public BanChatMember(Object chatId, long userId) {
add("chat_id", chatId).add("user_id", userId);
}
- public BanChatMember untilDate(int untilDate) {
+ public BanChatMember untilDate(long untilDate) {
return add("until_date", untilDate);
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/CreateChatInviteLink.java b/library/src/main/java/com/pengrad/telegrambot/request/CreateChatInviteLink.java
index 10637e9c4..a36d2067f 100644
--- a/library/src/main/java/com/pengrad/telegrambot/request/CreateChatInviteLink.java
+++ b/library/src/main/java/com/pengrad/telegrambot/request/CreateChatInviteLink.java
@@ -21,7 +21,7 @@ public CreateChatInviteLink name(String name) {
return add("name", name);
}
- public CreateChatInviteLink expireDate(Integer expireDate) {
+ public CreateChatInviteLink expireDate(Long expireDate) {
return add("expire_date", expireDate);
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/EditChatInviteLink.java b/library/src/main/java/com/pengrad/telegrambot/request/EditChatInviteLink.java
index 2934af2d8..be7765a35 100644
--- a/library/src/main/java/com/pengrad/telegrambot/request/EditChatInviteLink.java
+++ b/library/src/main/java/com/pengrad/telegrambot/request/EditChatInviteLink.java
@@ -23,7 +23,7 @@ public EditChatInviteLink name(String name) {
return add("name", name);
}
- public EditChatInviteLink expireDate(Integer expireDate) {
+ public EditChatInviteLink expireDate(Long expireDate) {
return add("expire_date", expireDate);
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/EditMessageText.java b/library/src/main/java/com/pengrad/telegrambot/request/EditMessageText.java
index 1443e0ddd..4a3aeb281 100644
--- a/library/src/main/java/com/pengrad/telegrambot/request/EditMessageText.java
+++ b/library/src/main/java/com/pengrad/telegrambot/request/EditMessageText.java
@@ -4,6 +4,7 @@
import com.pengrad.telegrambot.model.MessageEntity;
import com.pengrad.telegrambot.model.request.InlineKeyboardMarkup;
import com.pengrad.telegrambot.model.request.ParseMode;
+import com.pengrad.telegrambot.model.request.richmessages.InputRichMessage;
import com.pengrad.telegrambot.response.BaseResponse;
import com.pengrad.telegrambot.response.SendResponse;
@@ -23,6 +24,16 @@ public EditMessageText(String inlineMessageId, String text) {
add("inline_message_id", inlineMessageId).add("text", text);
}
+ public EditMessageText(Object chatId, int messageId, InputRichMessage richMessage) {
+ super(SendResponse.class);
+ add("chat_id", chatId).add("message_id", messageId).add("rich_message", richMessage);
+ }
+
+ public EditMessageText(String inlineMessageId, InputRichMessage richMessage) {
+ super(BaseResponse.class);
+ add("inline_message_id", inlineMessageId).add("rich_message", richMessage);
+ }
+
public EditMessageText parseMode(ParseMode parseMode) {
return add("parse_mode", parseMode.name());
}
@@ -43,4 +54,8 @@ public EditMessageText businessConnectionId(String businessConnectionId) {
return add("business_connection_id", businessConnectionId);
}
+ public EditMessageText richMessage(InputRichMessage richMessage) {
+ return add("rich_message", richMessage);
+ }
+
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/RestrictChatMember.java b/library/src/main/java/com/pengrad/telegrambot/request/RestrictChatMember.java
index 1f44747f9..844d68c06 100644
--- a/library/src/main/java/com/pengrad/telegrambot/request/RestrictChatMember.java
+++ b/library/src/main/java/com/pengrad/telegrambot/request/RestrictChatMember.java
@@ -14,7 +14,7 @@ public RestrictChatMember(Object chatId, long userId, ChatPermissions permission
add("chat_id", chatId).add("user_id", userId).add("permissions", permissions);
}
- public RestrictChatMember untilDate(int untilDate) {
+ public RestrictChatMember untilDate(long untilDate) {
return add("until_date", untilDate);
}
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/SendChatJoinRequestWebApp.kt b/library/src/main/java/com/pengrad/telegrambot/request/SendChatJoinRequestWebApp.kt
new file mode 100644
index 000000000..6dfe8e163
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/request/SendChatJoinRequestWebApp.kt
@@ -0,0 +1,14 @@
+package com.pengrad.telegrambot.request
+
+import com.pengrad.telegrambot.response.BaseResponse
+import com.pengrad.telegrambot.utility.kotlin.requestParameter
+
+class SendChatJoinRequestWebApp(
+ chatJoinRequestQueryId: String,
+ webAppUrl: String,
+) : KBaseRequest(BaseResponse::class) {
+
+ val chatJoinRequestQueryId: String by requestParameter(chatJoinRequestQueryId)
+ val webAppUrl: String by requestParameter(webAppUrl)
+
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/SetUserEmojiStatus.kt b/library/src/main/java/com/pengrad/telegrambot/request/SetUserEmojiStatus.kt
index 9a790e595..7314a9ca7 100644
--- a/library/src/main/java/com/pengrad/telegrambot/request/SetUserEmojiStatus.kt
+++ b/library/src/main/java/com/pengrad/telegrambot/request/SetUserEmojiStatus.kt
@@ -6,11 +6,11 @@ import com.pengrad.telegrambot.utility.kotlin.requestParameter
class SetUserEmojiStatus(
userId: Long,
emojiStatusCustomEmojiId: String,
- emojiStatusExpirationDate: Int
+ emojiStatusExpirationDate: Long
) : KBaseRequest(BaseResponse::class) {
val userId: Long by requestParameter(userId)
val emojiStatusCustomEmojiId: String by requestParameter(emojiStatusCustomEmojiId)
- val emojiStatusExpirationDate: Int by requestParameter(emojiStatusExpirationDate)
+ val emojiStatusExpirationDate: Long by requestParameter(emojiStatusExpirationDate)
}
\ No newline at end of file
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/richmessages/SendRichMessage.kt b/library/src/main/java/com/pengrad/telegrambot/request/richmessages/SendRichMessage.kt
new file mode 100644
index 000000000..72fa1f9ff
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/request/richmessages/SendRichMessage.kt
@@ -0,0 +1,40 @@
+package com.pengrad.telegrambot.request.richmessages
+
+import com.pengrad.telegrambot.model.request.richmessages.InputRichMessage
+import com.pengrad.telegrambot.request.AbstractSendRequest
+import com.pengrad.telegrambot.utility.kotlin.checkDeprecatedConstructorParameters
+import com.pengrad.telegrambot.utility.kotlin.requestParameter
+
+@Suppress("unused")
+class SendRichMessage private constructor(
+ chatId: Long? = null,
+ channelUsername: String? = null,
+ richMessage: InputRichMessage
+) : AbstractSendRequest(
+ chatId = chatId,
+ channelUsername = channelUsername
+) {
+
+ constructor(chatId: Long, richMessage: InputRichMessage) : this(
+ chatId = chatId,
+ channelUsername = null,
+ richMessage = richMessage
+ )
+
+ constructor(channelUsername: String, richMessage: InputRichMessage) : this(
+ chatId = null,
+ channelUsername = channelUsername,
+ richMessage = richMessage
+ )
+
+ @Deprecated("Use constructor with chatId or channelUsername instead", ReplaceWith("SendRichMessage(chatId, richMessage)"))
+ constructor(chatId: Any, richMessage: InputRichMessage) : this(
+ chatId = (chatId as? Number)?.toLong(),
+ channelUsername = chatId as? String,
+ richMessage = richMessage
+ ) {
+ checkDeprecatedConstructorParameters()
+ }
+
+ val richMessage: InputRichMessage by requestParameter(richMessage)
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/request/richmessages/SendRichMessageDraft.kt b/library/src/main/java/com/pengrad/telegrambot/request/richmessages/SendRichMessageDraft.kt
new file mode 100644
index 000000000..5285729d7
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/request/richmessages/SendRichMessageDraft.kt
@@ -0,0 +1,23 @@
+package com.pengrad.telegrambot.request.richmessages
+
+import com.pengrad.telegrambot.model.request.richmessages.InputRichMessage
+import com.pengrad.telegrambot.request.KBaseRequest
+import com.pengrad.telegrambot.response.BaseResponse
+import com.pengrad.telegrambot.utility.kotlin.optionalRequestParameter
+import com.pengrad.telegrambot.utility.kotlin.requestParameter
+
+@Suppress("unused")
+class SendRichMessageDraft(
+ chatId: Long,
+ draftId: Int,
+ richMessage: InputRichMessage
+) : KBaseRequest(BaseResponse::class) {
+
+ val chatId: Long by requestParameter(chatId)
+ val draftId: Int by requestParameter(draftId)
+ val richMessage: InputRichMessage by requestParameter(richMessage)
+
+ var messageThreadId: Long? by optionalRequestParameter()
+
+ fun messageThreadId(messageThreadId: Long) = applySelf { this.messageThreadId = messageThreadId }
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/utility/BotUtils.java b/library/src/main/java/com/pengrad/telegrambot/utility/BotUtils.java
index 323a79e03..640786b4e 100644
--- a/library/src/main/java/com/pengrad/telegrambot/utility/BotUtils.java
+++ b/library/src/main/java/com/pengrad/telegrambot/utility/BotUtils.java
@@ -12,6 +12,8 @@
import com.pengrad.telegrambot.model.message.origin.MessageOrigin;
import com.pengrad.telegrambot.model.paidmedia.PaidMedia;
import com.pengrad.telegrambot.model.reaction.ReactionType;
+import com.pengrad.telegrambot.model.richmessages.richblock.RichBlock;
+import com.pengrad.telegrambot.model.richmessages.richtext.RichText;
import com.pengrad.telegrambot.model.stars.partner.TransactionPartner;
import com.pengrad.telegrambot.model.stars.withdrawal.RevenueWithdrawalState;
import com.pengrad.telegrambot.utility.gson.*;
@@ -40,6 +42,8 @@ private BotUtils() {}
.registerTypeAdapter(TransactionPartner.class, TransactionPartnerTypeAdapter.INSTANCE)
.registerTypeAdapter(PaidMedia.class, new PaidMediaTypeAdapter())
.registerTypeAdapter(OwnedGift.class, new OwnedGiftTypeAdapter())
+ .registerTypeAdapter(RichText.class, RichTextTypeAdapter.INSTANCE)
+ .registerTypeAdapter(RichBlock.class, RichBlockTypeAdapter.INSTANCE)
.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
.create();
diff --git a/library/src/main/java/com/pengrad/telegrambot/utility/gson/RichBlockTypeAdapter.kt b/library/src/main/java/com/pengrad/telegrambot/utility/gson/RichBlockTypeAdapter.kt
new file mode 100644
index 000000000..53b812639
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/utility/gson/RichBlockTypeAdapter.kt
@@ -0,0 +1,44 @@
+package com.pengrad.telegrambot.utility.gson
+
+import com.google.gson.JsonDeserializationContext
+import com.google.gson.JsonDeserializer
+import com.google.gson.JsonElement
+import com.google.gson.JsonParseException
+import com.pengrad.telegrambot.model.richmessages.richblock.*
+import java.lang.reflect.Type
+
+object RichBlockTypeAdapter : JsonDeserializer {
+
+ private val typeMapping = mapOf(
+ RichBlockType.PARAGRAPH to RichBlockParagraph::class,
+ RichBlockType.HEADING to RichBlockSectionHeading::class,
+ RichBlockType.PRE to RichBlockPreformatted::class,
+ RichBlockType.FOOTER to RichBlockFooter::class,
+ RichBlockType.DIVIDER to RichBlockDivider::class,
+ RichBlockType.MATHEMATICAL_EXPRESSION to RichBlockMathematicalExpression::class,
+ RichBlockType.ANCHOR to RichBlockAnchor::class,
+ RichBlockType.LIST to RichBlockList::class,
+ RichBlockType.BLOCKQUOTE to RichBlockBlockQuotation::class,
+ RichBlockType.PULLQUOTE to RichBlockPullQuotation::class,
+ RichBlockType.COLLAGE to RichBlockCollage::class,
+ RichBlockType.SLIDESHOW to RichBlockSlideshow::class,
+ RichBlockType.TABLE to RichBlockTable::class,
+ RichBlockType.DETAILS to RichBlockDetails::class,
+ RichBlockType.MAP to RichBlockMap::class,
+ RichBlockType.ANIMATION to RichBlockAnimation::class,
+ RichBlockType.AUDIO to RichBlockAudio::class,
+ RichBlockType.PHOTO to RichBlockPhoto::class,
+ RichBlockType.VIDEO to RichBlockVideo::class,
+ RichBlockType.VOICE_NOTE to RichBlockVoiceNote::class,
+ RichBlockType.THINKING to RichBlockThinking::class
+ )
+
+ @Throws(JsonParseException::class)
+ override fun deserialize(element: JsonElement, type: Type, context: JsonDeserializationContext): RichBlock {
+ val obj = element.asJsonObject
+ val discriminator = obj.getAsJsonPrimitive("type")?.asString ?: RichBlockType.UNKNOWN
+ return typeMapping[discriminator]?.let {
+ context.deserialize(obj, it.java)
+ } ?: RichBlockUnknown(discriminator)
+ }
+}
diff --git a/library/src/main/java/com/pengrad/telegrambot/utility/gson/RichTextTypeAdapter.kt b/library/src/main/java/com/pengrad/telegrambot/utility/gson/RichTextTypeAdapter.kt
new file mode 100644
index 000000000..a7fc39756
--- /dev/null
+++ b/library/src/main/java/com/pengrad/telegrambot/utility/gson/RichTextTypeAdapter.kt
@@ -0,0 +1,60 @@
+package com.pengrad.telegrambot.utility.gson
+
+import com.google.gson.JsonDeserializationContext
+import com.google.gson.JsonDeserializer
+import com.google.gson.JsonElement
+import com.google.gson.JsonParseException
+import com.pengrad.telegrambot.model.richmessages.richtext.*
+import java.lang.reflect.Type
+
+object RichTextTypeAdapter : JsonDeserializer {
+
+ private val typeMapping = mapOf(
+ RichTextType.BOLD to RichTextBold::class,
+ RichTextType.ITALIC to RichTextItalic::class,
+ RichTextType.UNDERLINE to RichTextUnderline::class,
+ RichTextType.STRIKETHROUGH to RichTextStrikethrough::class,
+ RichTextType.SPOILER to RichTextSpoiler::class,
+ RichTextType.DATE_TIME to RichTextDateTime::class,
+ RichTextType.TEXT_MENTION to RichTextTextMention::class,
+ RichTextType.SUBSCRIPT to RichTextSubscript::class,
+ RichTextType.SUPERSCRIPT to RichTextSuperscript::class,
+ RichTextType.MARKED to RichTextMarked::class,
+ RichTextType.CODE to RichTextCode::class,
+ RichTextType.CUSTOM_EMOJI to RichTextCustomEmoji::class,
+ RichTextType.MATHEMATICAL_EXPRESSION to RichTextMathematicalExpression::class,
+ RichTextType.URL to RichTextUrl::class,
+ RichTextType.EMAIL_ADDRESS to RichTextEmailAddress::class,
+ RichTextType.PHONE_NUMBER to RichTextPhoneNumber::class,
+ RichTextType.BANK_CARD_NUMBER to RichTextBankCardNumber::class,
+ RichTextType.MENTION to RichTextMention::class,
+ RichTextType.HASHTAG to RichTextHashtag::class,
+ RichTextType.CASHTAG to RichTextCashtag::class,
+ RichTextType.BOT_COMMAND to RichTextBotCommand::class,
+ RichTextType.ANCHOR to RichTextAnchor::class,
+ RichTextType.ANCHOR_LINK to RichTextAnchorLink::class,
+ RichTextType.REFERENCE to RichTextReference::class,
+ RichTextType.REFERENCE_LINK to RichTextReferenceLink::class
+ )
+
+ @Throws(JsonParseException::class)
+ override fun deserialize(element: JsonElement, type: Type, context: JsonDeserializationContext): RichText {
+ return when {
+ element.isJsonPrimitive -> RichTextPlain(element.asString)
+ element.isJsonArray -> {
+ val elements = element.asJsonArray
+ .map { context.deserialize(it, RichText::class.java) }
+ .toTypedArray()
+ RichTextArray(elements)
+ }
+ element.isJsonObject -> {
+ val obj = element.asJsonObject
+ val discriminator = obj.getAsJsonPrimitive("type")?.asString ?: RichTextType.UNKNOWN
+ typeMapping[discriminator]?.let {
+ context.deserialize(obj, it.java)
+ } ?: RichTextUnknown(discriminator)
+ }
+ else -> RichTextUnknown(RichTextType.UNKNOWN)
+ }
+ }
+}
diff --git a/library/src/test/java/com/pengrad/telegrambot/TelegramBotTest.java b/library/src/test/java/com/pengrad/telegrambot/TelegramBotTest.java
index cd8da1755..6bed0864d 100644
--- a/library/src/test/java/com/pengrad/telegrambot/TelegramBotTest.java
+++ b/library/src/test/java/com/pengrad/telegrambot/TelegramBotTest.java
@@ -1062,7 +1062,7 @@ public void setWebhook() throws IOException {
assertTrue(webhookInfo.hasCustomCertificate());
assertEquals(maxConnections, webhookInfo.maxConnections());
assertArrayEquals(allowedUpdates, webhookInfo.allowedUpdates());
- Integer lastErrorDate = webhookInfo.lastErrorDate();
+ Long lastErrorDate = webhookInfo.lastErrorDate();
if (lastErrorDate != null) {
assertEquals(System.currentTimeMillis(), lastErrorDate * 1000L, 30_000L);
}
@@ -2127,7 +2127,7 @@ public void deleteMyCommands() {
@Test
public void inviteLinks() {
int memberLimit = 2;
- int expireDate = (int) (System.currentTimeMillis() / 1000) + 500;
+ long expireDate = System.currentTimeMillis() / 1000 + 500;
String name = "TestName";
ChatInviteLinkResponse response = bot.execute(new CreateChatInviteLink(groupId)
@@ -2135,21 +2135,21 @@ public void inviteLinks() {
.memberLimit(memberLimit)
.name(name));
ChatInviteLink link = response.chatInviteLink();
- assertEquals(expireDate, link.expireDate().intValue());
+ assertEquals(expireDate, link.expireDate().longValue());
assertEquals(memberLimit, link.memberLimit().intValue());
assertFalse(link.isRevoked());
assertTrue(link.creator().isBot());
assertEquals(name, link.name());
int editMemberLimit = 3;
- int editExpireDate = (int) (System.currentTimeMillis() / 1000) + 1500;
+ long editExpireDate = System.currentTimeMillis() / 1000 + 1500;
String editName = name + "edit";
response = bot.execute(new EditChatInviteLink(groupId, link.inviteLink())
.expireDate(editExpireDate)
.memberLimit(editMemberLimit)
.name(editName));
link = response.chatInviteLink();
- assertEquals(editExpireDate, link.expireDate().intValue());
+ assertEquals(editExpireDate, link.expireDate().longValue());
assertEquals(editMemberLimit, link.memberLimit().intValue());
assertEquals(editName, link.name());
assertFalse(link.isRevoked());
diff --git a/pom.xml b/pom.xml
index 23269862b..41763de98 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
4.0.0
com.github.pengrad
java-telegram-bot-api
- 10.0.0
+ 10.1.0
JavaTelegramBotApi
Java API for Telegram Bot API
https://github.com/pengrad/java-telegram-bot-api/