diff --git a/README.md b/README.md index 69d96222..44ba5165 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [![codecov](https://codecov.io/gh/pengrad/java-telegram-bot-api/branch/master/graph/badge.svg)](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 9.0 methods +- Full support of all Bot API 9.2 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:9.0.0' +implementation 'com.github.pengrad:java-telegram-bot-api:9.2.0' ``` Maven: ```xml com.github.pengrad java-telegram-bot-api - 9.0.0 + 9.2.0 ``` [JAR with all dependencies on release page](https://github.com/pengrad/java-telegram-bot-api/releases) diff --git a/README_RU.md b/README_RU.md index fc83a4f6..443936f3 100644 --- a/README_RU.md +++ b/README_RU.md @@ -4,7 +4,7 @@ [![codecov](https://codecov.io/gh/pengrad/java-telegram-bot-api/branch/master/graph/badge.svg)](https://codecov.io/gh/pengrad/java-telegram-bot-api) Java библиотека, созданная для работы с [Telegram Bot API](https://core.telegram.org/bots/api) -- Полная поддержка всех методов BOT API 9.0 +- Полная поддержка всех методов BOT API 9.2 - Поддержка Telegram [паспорта](https://core.telegram.org/passport) и дешифровки (Decryption API); - Поддержка [платежей](https://core.telegram.org/bots/payments); - [Игровая платформа](https://telegram.org/blog/games). @@ -13,14 +13,14 @@ Java библиотека, созданная для работы с [Telegram B Gradle: ```groovy -implementation 'com.github.pengrad:java-telegram-bot-api:9.0.0' +implementation 'com.github.pengrad:java-telegram-bot-api:9.2.0' ``` Maven: ```xml com.github.pengrad java-telegram-bot-api - 9.0.0 + 9.2.0 ``` Также JAR со всеми зависимостями можно найти [в релизах](https://github.com/pengrad/java-telegram-bot-api/releases). diff --git a/gradle.properties b/gradle.properties index eabaeda8..1c9d7cdc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ GROUP=com.github.pengrad -VERSION_NAME=9.0.0 +VERSION_NAME=9.2.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/Chat.java b/library/src/main/java/com/pengrad/telegrambot/model/Chat.java index 7f21cb31..dfdf7bdd 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/Chat.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/Chat.java @@ -31,6 +31,8 @@ public enum Type { private Boolean is_forum; + private Boolean is_direct_messages; + public Long id() { return id; } @@ -55,6 +57,10 @@ public Boolean isForum() { return is_forum != null && is_forum; } + public Boolean isDirectMessages() { + return is_direct_messages != null && is_direct_messages; + } + public String title() { return title; } @@ -69,6 +75,7 @@ public boolean equals(Object o) { Objects.equals(first_name, chat.first_name) && Objects.equals(last_name, chat.last_name) && Objects.equals(is_forum, chat.is_forum) && + Objects.equals(is_direct_messages, chat.is_direct_messages) && Objects.equals(username, chat.username) && Objects.equals(title, chat.title); } @@ -86,6 +93,7 @@ public String toString() { ", first_name='" + first_name + '\'' + ", last_name='" + last_name + '\'' + ", is_forum=" + is_forum + + ", is_direct_messages=" + is_direct_messages + ", username='" + username + '\'' + ", title='" + title + '\'' + '}'; diff --git a/library/src/main/java/com/pengrad/telegrambot/model/ChatAdministratorRights.java b/library/src/main/java/com/pengrad/telegrambot/model/ChatAdministratorRights.java index 25fe017b..621e2313 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/ChatAdministratorRights.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/ChatAdministratorRights.java @@ -26,6 +26,7 @@ public class ChatAdministratorRights implements Serializable { private Boolean can_edit_stories; private Boolean can_delete_stories; private Boolean can_manage_topics; + private Boolean can_manage_direct_messages; public Boolean isAnonymous() { return is_anonymous != null && is_anonymous; @@ -87,6 +88,10 @@ public Boolean canManageTopics() { return can_manage_topics != null && can_manage_topics; } + public Boolean canManageDirectMessages() { + return can_manage_direct_messages != null && can_manage_direct_messages; + } + public ChatAdministratorRights canManageChat(boolean canManageChat) { this.can_manage_chat = canManageChat; return this; @@ -157,6 +162,11 @@ public ChatAdministratorRights canManageTopics(boolean canManageTopics) { return this; } + public ChatAdministratorRights canManageDirectMessages(boolean can_manage_direct_messages) { + this.can_manage_direct_messages = can_manage_direct_messages; + return this; + } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -177,7 +187,8 @@ public boolean equals(Object o) { Objects.equals(can_post_stories, that.can_post_stories) && Objects.equals(can_edit_stories, that.can_edit_stories) && Objects.equals(can_delete_stories, that.can_delete_stories) && - Objects.equals(can_manage_topics, that.can_manage_topics); + Objects.equals(can_manage_topics, that.can_manage_topics) && + Objects.equals(can_manage_direct_messages, that.can_manage_direct_messages); } @Override @@ -196,7 +207,8 @@ public int hashCode() { can_post_stories, can_edit_stories, can_delete_stories, - can_manage_topics); + can_manage_topics, + can_manage_direct_messages); } @Override @@ -217,6 +229,7 @@ public String toString() { ", can_edit_stories=" + can_edit_stories + ", can_delete_stories=" + can_delete_stories + ", can_manage_topics=" + can_manage_topics + + ", can_manage_direct_messages=" + can_manage_direct_messages + '}'; } 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 bbddf1b4..30e08d85 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/ChatFullInfo.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/ChatFullInfo.java @@ -34,6 +34,7 @@ public enum Type { private String last_name; private Boolean is_forum; + private Boolean is_direct_messages; private ChatPhoto photo; private String[] active_usernames; private Birthdate birthdate; @@ -41,6 +42,7 @@ public enum Type { private BusinessLocation business_location; private BusinessOpeningHours business_opening_hours; private Chat personal_chat; + private Chat parent_chat; private ReactionType[] available_reactions; private Integer accent_color_id; private Integer max_reaction_count; @@ -98,6 +100,10 @@ public Boolean isForum() { return is_forum != null && is_forum; } + public Boolean isDirectMessages() { + return is_direct_messages != null && is_direct_messages; + } + public String title() { return title; } @@ -130,6 +136,10 @@ public Chat personalChat() { return personal_chat; } + public Chat parentChat() { + return parent_chat; + } + public ReactionType[] availableReactions() { return available_reactions; } @@ -272,6 +282,7 @@ public boolean equals(Object o) { Objects.equals(first_name, chat.first_name) && Objects.equals(last_name, chat.last_name) && Objects.equals(is_forum, chat.is_forum) && + Objects.equals(is_direct_messages, chat.is_direct_messages) && Objects.equals(username, chat.username) && Objects.equals(title, chat.title) && Objects.equals(photo, chat.photo) && @@ -281,6 +292,7 @@ public boolean equals(Object o) { Objects.equals(business_location, chat.business_location) && Objects.equals(business_opening_hours, chat.business_opening_hours) && Objects.equals(personal_chat, chat.personal_chat) && + Objects.equals(parent_chat, chat.parent_chat) && Arrays.equals(available_reactions, chat.available_reactions) && Objects.equals(accent_color_id, chat.accent_color_id) && Objects.equals(max_reaction_count, chat.max_reaction_count) && @@ -327,6 +339,7 @@ public String toString() { ", first_name='" + first_name + '\'' + ", last_name='" + last_name + '\'' + ", is_forum=" + is_forum + + ", is_direct_messages=" + is_direct_messages + ", username='" + username + '\'' + ", title='" + title + '\'' + ", photo=" + photo + @@ -336,6 +349,7 @@ public String toString() { ", business_location=" + business_location + ", business_opening_hours=" + business_opening_hours + ", personal_chat=" + personal_chat + + ", parent_chat=" + parent_chat + ", available_reactions=" + Arrays.toString(available_reactions) + ", accent_color_id=" + accent_color_id + ", max_reaction_count=" + max_reaction_count + 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 ee39a312..182756c1 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/ChatMember.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/ChatMember.java @@ -35,6 +35,7 @@ public enum Status { private Boolean can_edit_stories; private Boolean can_delete_stories; private Boolean can_manage_topics; + private Boolean can_manage_direct_messages; private Boolean is_member; private Boolean can_send_messages; @@ -129,6 +130,10 @@ public Boolean canManageTopics() { return can_manage_topics != null && can_manage_topics; } + public Boolean canManageDirectMessages() { + return can_manage_direct_messages != null && can_manage_direct_messages; + } + public Boolean isMember() { return is_member != null && is_member; } @@ -198,6 +203,7 @@ public boolean equals(Object o) { Objects.equals(can_edit_stories, that.can_edit_stories) && Objects.equals(can_delete_stories, that.can_delete_stories) && Objects.equals(can_manage_topics, that.can_manage_topics) && + Objects.equals(can_manage_direct_messages, that.can_manage_direct_messages) && Objects.equals(is_member, that.is_member) && Objects.equals(can_send_messages, that.can_send_messages) && Objects.equals(can_send_audios, that.can_send_audios) && @@ -233,6 +239,7 @@ public int hashCode() { can_edit_stories, can_delete_stories, can_manage_topics, + can_manage_direct_messages, is_member, can_send_messages, can_send_audios, @@ -269,6 +276,7 @@ public String toString() { ", can_edit_stories=" + can_edit_stories + ", can_delete_stories=" + can_delete_stories + ", can_manage_topics=" + can_manage_topics + + ", can_manage_direct_messages=" + can_manage_direct_messages + ", is_member=" + is_member + ", can_send_messages=" + can_send_messages + ", can_send_audios=" + can_send_audios + diff --git a/library/src/main/java/com/pengrad/telegrambot/model/DirectMessagesTopic.kt b/library/src/main/java/com/pengrad/telegrambot/model/DirectMessagesTopic.kt new file mode 100644 index 00000000..8a5f719b --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/DirectMessagesTopic.kt @@ -0,0 +1,8 @@ +package com.pengrad.telegrambot.model + +@Suppress("unused") +data class DirectMessagesTopic ( + @get:JvmName("topicId") val topicId: Int, + @get:JvmName("user") val user: User? +) { +} \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/model/ExternalReplyInfo.java b/library/src/main/java/com/pengrad/telegrambot/model/ExternalReplyInfo.java index a4a8939a..f45150f4 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/ExternalReplyInfo.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/ExternalReplyInfo.java @@ -1,5 +1,6 @@ package com.pengrad.telegrambot.model; +import com.pengrad.telegrambot.model.checklist.Checklist; import com.pengrad.telegrambot.model.giveaway.Giveaway; import com.pengrad.telegrambot.model.giveaway.GiveawayWinners; import com.pengrad.telegrambot.model.message.origin.MessageOrigin; @@ -28,6 +29,7 @@ public class ExternalReplyInfo implements Serializable { private VideoNote video_note; private Voice voice; private Boolean has_media_spoiler; + private Checklist checklist; private Contact contact; private Dice dice; private Game game; @@ -97,6 +99,10 @@ public Boolean hasMediaSpoiler() { return has_media_spoiler; } + public Checklist checklist() { + return checklist; + } + public Contact contact() { return contact; } @@ -138,12 +144,12 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ExternalReplyInfo that = (ExternalReplyInfo) o; - return Objects.equals(origin, that.origin) && Objects.equals(chat, that.chat) && Objects.equals(message_id, that.message_id) && Objects.equals(link_preview_options, that.link_preview_options) && Objects.equals(animation, that.animation) && Objects.equals(audio, that.audio) && Objects.equals(paid_media, that.paid_media) && Objects.equals(document, that.document) && Arrays.equals(photo, that.photo) && Objects.equals(sticker, that.sticker) && Objects.equals(story, that.story) && Objects.equals(video, that.video) && Objects.equals(video_note, that.video_note) && Objects.equals(voice, that.voice) && Objects.equals(has_media_spoiler, that.has_media_spoiler) && Objects.equals(contact, that.contact) && Objects.equals(dice, that.dice) && Objects.equals(game, that.game) && Objects.equals(giveaway, that.giveaway) && Objects.equals(giveaway_winners, that.giveaway_winners) && Objects.equals(invoice, that.invoice) && Objects.equals(location, that.location) && Objects.equals(poll, that.poll) && Objects.equals(venue, that.venue); + return Objects.equals(origin, that.origin) && Objects.equals(chat, that.chat) && Objects.equals(message_id, that.message_id) && Objects.equals(link_preview_options, that.link_preview_options) && Objects.equals(animation, that.animation) && Objects.equals(audio, that.audio) && Objects.equals(paid_media, that.paid_media) && Objects.equals(document, that.document) && Arrays.equals(photo, that.photo) && Objects.equals(sticker, that.sticker) && Objects.equals(story, that.story) && Objects.equals(video, that.video) && Objects.equals(video_note, that.video_note) && Objects.equals(voice, that.voice) && Objects.equals(has_media_spoiler, that.has_media_spoiler) && Objects.equals(checklist, that.checklist) && Objects.equals(contact, that.contact) && Objects.equals(dice, that.dice) && Objects.equals(game, that.game) && Objects.equals(giveaway, that.giveaway) && Objects.equals(giveaway_winners, that.giveaway_winners) && Objects.equals(invoice, that.invoice) && Objects.equals(location, that.location) && Objects.equals(poll, that.poll) && Objects.equals(venue, that.venue); } @Override public int hashCode() { - int result = Objects.hash(origin, chat, message_id, link_preview_options, animation, audio, paid_media, document, sticker, story, video, video_note, voice, has_media_spoiler, contact, dice, game, giveaway, giveaway_winners, invoice, location, poll, venue); + int result = Objects.hash(origin, chat, message_id, link_preview_options, animation, audio, paid_media, document, sticker, story, video, video_note, voice, has_media_spoiler, checklist, contact, dice, game, giveaway, giveaway_winners, invoice, location, poll, venue); result = 31 * result + Arrays.hashCode(photo); return result; } @@ -166,6 +172,7 @@ public String toString() { ", video_note=" + video_note + ", voice=" + voice + ", has_media_spoiler=" + has_media_spoiler + + ", checklist=" + checklist + ", contact=" + contact + ", dice=" + dice + ", game=" + game + 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 fad61402..7cc7e433 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/Message.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/Message.java @@ -2,6 +2,9 @@ import com.pengrad.telegrambot.model.chatbackground.ChatBackground; import com.pengrad.telegrambot.model.chatboost.ChatBoostAdded; +import com.pengrad.telegrambot.model.checklist.Checklist; +import com.pengrad.telegrambot.model.checklist.ChecklistTasksAdded; +import com.pengrad.telegrambot.model.checklist.ChecklistTasksDone; import com.pengrad.telegrambot.model.gift.GiftInfo; import com.pengrad.telegrambot.model.gift.unique.UniqueGiftInfo; import com.pengrad.telegrambot.model.giveaway.Giveaway; @@ -12,6 +15,9 @@ 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.stars.DirectMessagePriceChanged; +import com.pengrad.telegrambot.model.stars.PaidMessagePriceChanged; +import com.pengrad.telegrambot.model.suggestedposts.*; import com.pengrad.telegrambot.passport.PassportData; import java.io.Serializable; @@ -26,6 +32,7 @@ public class Message extends MaybeInaccessibleMessage implements Serializable { private final static long serialVersionUID = 0L; private Integer message_thread_id; + private DirectMessagesTopic direct_messages_topic; private User from; private Chat sender_chat; private Integer sender_boost_count; @@ -38,10 +45,12 @@ public class Message extends MaybeInaccessibleMessage implements Serializable { private ExternalReplyInfo external_reply; private TextQuote quote; private Story reply_to_story; + private Integer reply_to_checklist_task_id; private User via_bot; private Integer edit_date; private Boolean has_protected_content; private Boolean is_from_offline; + private Boolean is_paid_post; private Boolean has_media_spoiler; private String media_group_id; private String author_signature; @@ -50,6 +59,7 @@ public class Message extends MaybeInaccessibleMessage implements Serializable { private MessageEntity[] caption_entities; private Boolean show_caption_above_media; private LinkPreviewOptions link_preview_options; + private SuggestedPostInfo suggested_post_info; private String effect_id; private Audio audio; private PaidMediaInfo paid_media; @@ -62,6 +72,9 @@ public class Message extends MaybeInaccessibleMessage implements Serializable { private Voice voice; private VideoNote video_note; private String caption; + private Checklist checklist; + private ChecklistTasksDone checklist_tasks_done; + private ChecklistTasksAdded checklist_tasks_added; private Contact contact; private Location location; private Venue venue; @@ -110,12 +123,22 @@ public class Message extends MaybeInaccessibleMessage implements Serializable { private GiftInfo gift; private UniqueGiftInfo unique_gift; private PaidMessagePriceChanged paid_message_price_changed; + private SuggestedPostApproved suggested_post_approved; + private SuggestedPostApprovalFailed suggested_post_approval_failed; + private SuggestedPostDeclined suggested_post_declined; + private SuggestedPostPaid suggested_post_paid; + private SuggestedPostRefunded suggested_post_refunded; + private DirectMessagePriceChanged direct_message_price_changed; private Integer paid_star_count; public Integer messageThreadId() { return message_thread_id; } + public DirectMessagesTopic directMessagesTopic() { + return direct_messages_topic; + } + public User from() { return from; } @@ -164,6 +187,10 @@ public Story replyToStory() { return reply_to_story; } + public Integer replyToChecklistTaskId() { + return reply_to_checklist_task_id; + } + public User viaBot() { return via_bot; } @@ -180,6 +207,10 @@ public Boolean isFromOffline() { return is_from_offline != null && is_from_offline; } + public Boolean isPaidPost() { + return is_paid_post != null && is_paid_post; + } + public Boolean hasMediaSpoiler() { return has_media_spoiler != null && has_media_spoiler; } @@ -213,6 +244,10 @@ public LinkPreviewOptions linkPreviewOptions() { return link_preview_options; } + public SuggestedPostInfo suggestedPostInfo() { + return suggested_post_info; + } + public String effectId() { return effect_id; } @@ -261,6 +296,18 @@ public String caption() { return caption; } + public Checklist checklist() { + return checklist; + } + + public ChecklistTasksDone checklistTasksDone() { + return checklist_tasks_done; + } + + public ChecklistTasksAdded checklistTasksAdded() { + return checklist_tasks_added; + } + public Contact contact() { return contact; } @@ -453,6 +500,30 @@ public PaidMessagePriceChanged paidMessagePriceChanged() { return paid_message_price_changed; } + public SuggestedPostApproved suggestedPostApproved() { + return suggested_post_approved; + } + + public SuggestedPostApprovalFailed suggestedPostApprovalFailed() { + return suggested_post_approval_failed; + } + + public SuggestedPostDeclined suggestedPostDeclined() { + return suggested_post_declined; + } + + public SuggestedPostPaid suggestedPostPaid() { + return suggested_post_paid; + } + + public SuggestedPostRefunded suggestedPostRefunded() { + return suggested_post_refunded; + } + + public DirectMessagePriceChanged directMessagePriceChanged() { + return direct_message_price_changed; + } + public Integer paidStarCount() { return paid_star_count; } @@ -485,6 +556,7 @@ public boolean equals(Object o) { Message message = (Message) o; return Objects.equals(message_id, message.message_id) && Objects.equals(message_thread_id, message.message_thread_id) && + Objects.equals(direct_messages_topic, message.direct_messages_topic) && Objects.equals(from, message.from) && Objects.equals(sender_chat, message.sender_chat) && Objects.equals(sender_boost_count, message.sender_boost_count) && @@ -499,10 +571,12 @@ public boolean equals(Object o) { Objects.equals(external_reply, message.external_reply) && Objects.equals(quote, message.quote) && Objects.equals(reply_to_story, message.reply_to_story) && + Objects.equals(reply_to_checklist_task_id, message.reply_to_checklist_task_id) && Objects.equals(via_bot, message.via_bot) && Objects.equals(edit_date, message.edit_date) && Objects.equals(has_protected_content, message.has_protected_content) && Objects.equals(is_from_offline, message.is_from_offline) && + Objects.equals(is_paid_post, message.is_paid_post) && Objects.equals(has_media_spoiler, message.has_media_spoiler) && Objects.equals(media_group_id, message.media_group_id) && Objects.equals(author_signature, message.author_signature) && @@ -511,6 +585,7 @@ public boolean equals(Object o) { Arrays.equals(caption_entities, message.caption_entities) && Objects.equals(show_caption_above_media, message.show_caption_above_media) && 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(audio, message.audio) && Objects.equals(paid_media, message.paid_media) && @@ -523,6 +598,9 @@ public boolean equals(Object o) { Objects.equals(voice, message.voice) && Objects.equals(video_note, message.video_note) && Objects.equals(caption, message.caption) && + Objects.equals(checklist, message.checklist) && + Objects.equals(checklist_tasks_done, message.checklist_tasks_done) && + Objects.equals(checklist_tasks_added, message.checklist_tasks_added) && Objects.equals(contact, message.contact) && Objects.equals(location, message.location) && Objects.equals(venue, message.venue) && @@ -571,6 +649,12 @@ public boolean equals(Object o) { Objects.equals(gift, message.gift) && Objects.equals(unique_gift, message.unique_gift) && Objects.equals(paid_message_price_changed, message.paid_message_price_changed) && + Objects.equals(suggested_post_approved, message.suggested_post_approved) && + Objects.equals(suggested_post_approval_failed, message.suggested_post_approval_failed) && + Objects.equals(suggested_post_declined, message.suggested_post_declined) && + Objects.equals(suggested_post_paid, message.suggested_post_paid) && + Objects.equals(suggested_post_refunded, message.suggested_post_refunded) && + Objects.equals(direct_message_price_changed, message.direct_message_price_changed) && Objects.equals(paid_star_count, message.paid_star_count); } @@ -584,6 +668,7 @@ public String toString() { return "Message{" + "message_id=" + message_id + ", message_thread_id=" + message_thread_id + + ", direct_messages_topic=" + direct_messages_topic + ", from=" + from + ", sender_chat=" + sender_chat + ", sender_boost_count=" + sender_boost_count + @@ -598,10 +683,12 @@ public String toString() { ", external_reply=" + external_reply + ", quote=" + quote + ", reply_to_story=" + reply_to_story + + ", reply_to_checklist_task_id=" + reply_to_checklist_task_id + ", via_bot=" + via_bot + ", edit_date=" + edit_date + ", has_protected_content=" + has_protected_content + ", is_from_offline=" + is_from_offline + + ", is_paid_post=" + is_paid_post + ", has_media_spoiler=" + has_media_spoiler + ", media_group_id='" + media_group_id + '\'' + ", author_signature='" + author_signature + '\'' + @@ -610,6 +697,7 @@ public String toString() { ", caption_entities=" + Arrays.toString(caption_entities) + ", show_caption_above_media=" + show_caption_above_media + ", link_preview_options=" + link_preview_options + + ", suggested_post_info=" + suggested_post_info + ", effect_id=" + effect_id + ", audio=" + audio + ", paid_media=" + paid_media + @@ -622,6 +710,9 @@ public String toString() { ", voice=" + voice + ", video_note=" + video_note + ", caption='" + caption + '\'' + + ", checklist=" + checklist + + ", checklist_tasks_done=" + checklist_tasks_done + + ", checklist_tasks_added=" + checklist_tasks_added + ", contact=" + contact + ", location=" + location + ", venue=" + venue + @@ -670,6 +761,12 @@ public String toString() { ", gift=" + gift + ", unique_gift=" + unique_gift + ", paid_message_price_changed=" + paid_message_price_changed + + ", suggested_post_approved=" + suggested_post_approved + + ", suggested_post_approval_failed=" + suggested_post_approval_failed + + ", suggested_post_declined=" + suggested_post_declined + + ", suggested_post_paid=" + suggested_post_paid + + ", suggested_post_refunded=" + suggested_post_refunded + + ", direct_message_price_changed=" + direct_message_price_changed + ", paid_star_count=" + paid_star_count + '}'; } diff --git a/library/src/main/java/com/pengrad/telegrambot/model/Video.kt b/library/src/main/java/com/pengrad/telegrambot/model/Video.kt index 7c10da58..cc932f59 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/Video.kt +++ b/library/src/main/java/com/pengrad/telegrambot/model/Video.kt @@ -21,17 +21,17 @@ data class Video( ) { /** - * Backwards compatability for Java code because of Kotlin optimization + * Backwards compatibility for Java code because of Kotlin optimization */ fun width() = width as JavaInteger /** - * Backwards compatability for Java code because of Kotlin optimization + * Backwards compatibility for Java code because of Kotlin optimization */ fun height() = height as JavaInteger /** - * Backwards compatability for Java code because of Kotlin optimization + * Backwards compatibility for Java code because of Kotlin optimization */ fun duration() = duration as JavaInteger diff --git a/library/src/main/java/com/pengrad/telegrambot/model/checklist/Checklist.kt b/library/src/main/java/com/pengrad/telegrambot/model/checklist/Checklist.kt new file mode 100644 index 00000000..ebb7ac63 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/checklist/Checklist.kt @@ -0,0 +1,34 @@ +package com.pengrad.telegrambot.model.checklist + +import com.pengrad.telegrambot.model.MessageEntity + +data class Checklist( + + @get:JvmName("title") val title: String, + @get:JvmName("titleEntities") val titleEntities: Array?, + @get:JvmName("tasks") val tasks: Array, + @get:JvmName("othersCanAddTasks") val othersCanAddTasks: Boolean?, + @get:JvmName("othersCanMarkTasksAsDone") val othersCanMarkTasksAsDone: Boolean? +) { + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (other !is Checklist) return false + + return title == other.title && + titleEntities contentEquals other.titleEntities && + tasks contentEquals other.tasks && + othersCanAddTasks == other.othersCanAddTasks && + othersCanMarkTasksAsDone == other.othersCanMarkTasksAsDone + } + + override fun hashCode(): Int { + var result = title.hashCode() + result = 31 * result + (titleEntities?.contentHashCode() ?: 0) + result = 31 * result + (tasks?.contentHashCode() ?: 0) + result = 31 * result + (othersCanAddTasks?.hashCode() ?: 0) + result = 31 * result + (othersCanMarkTasksAsDone?.hashCode() ?: 0) + return result + } + +} \ No newline at end of file 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 new file mode 100644 index 00000000..184b133e --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTask.kt @@ -0,0 +1,36 @@ +package com.pengrad.telegrambot.model.checklist + +import com.pengrad.telegrambot.model.MessageEntity +import com.pengrad.telegrambot.model.User + +data class ChecklistTask( + + @get:JvmName("id") val id: Int, + @get:JvmName("text") val text: String, + @get:JvmName("textEntities") val textEntities: Array?, + @get:JvmName("completedByUser") val completedByUser: User?, + @get:JvmName("completionDate") val completionDate: Int? + +) { + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (other !is ChecklistTask) return false + + return id == other.id && + text == other.text && + textEntities contentEquals other.textEntities && + completedByUser == other.completedByUser && + completionDate == other.completionDate + } + + override fun hashCode(): Int { + var result = id.hashCode() + result = 31 * result + (text?.hashCode() ?: 0) + result = 31 * result + (textEntities?.contentHashCode() ?: 0) + result = 31 * result + (completedByUser?.hashCode() ?: 0) + result = 31 * result + (completionDate?.hashCode() ?: 0) + return result + } + +} \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTasksAdded.kt b/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTasksAdded.kt new file mode 100644 index 00000000..dd23b0ac --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTasksAdded.kt @@ -0,0 +1,24 @@ +package com.pengrad.telegrambot.model.checklist + +import com.pengrad.telegrambot.model.Message + +data class ChecklistTasksAdded ( + @get:JvmName("checklistMessage") val checklistMessage: Message?, + @get:JvmName("tasks") val tasks: Array? +){ + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (other !is ChecklistTasksAdded) return false + + return checklistMessage == other.checklistMessage && + tasks contentEquals other.tasks + } + + override fun hashCode(): Int { + var result = checklistMessage.hashCode() + result = 31 * result + (tasks?.hashCode() ?: 0) + return result + } + +} \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTasksDone.kt b/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTasksDone.kt new file mode 100644 index 00000000..693b3a20 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/checklist/ChecklistTasksDone.kt @@ -0,0 +1,29 @@ +package com.pengrad.telegrambot.model.checklist + +import com.pengrad.telegrambot.model.Message + +data class ChecklistTasksDone ( + + @get:JvmName("checklistMessage") val checklistMessage: Message?, + @get:JvmName("markedAsDoneTaskIds") val markedAsDoneTaskIds: Array?, + @get:JvmName("markedAsNotDoneTaskIds") val markedAsNotDoneTaskIds: Array? + +){ + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (other !is ChecklistTasksDone) return false + + return checklistMessage == other.checklistMessage && + markedAsDoneTaskIds contentEquals other.markedAsDoneTaskIds && + markedAsNotDoneTaskIds contentEquals other.markedAsNotDoneTaskIds + } + + override fun hashCode(): Int { + var result = checklistMessage.hashCode() + result = 31 * result + (markedAsDoneTaskIds?.hashCode() ?: 0) + result = 31 * result + (markedAsNotDoneTaskIds?.hashCode() ?: 0) + return result + } + +} \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/model/checklist/InputChecklist.kt b/library/src/main/java/com/pengrad/telegrambot/model/checklist/InputChecklist.kt new file mode 100644 index 00000000..16867944 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/checklist/InputChecklist.kt @@ -0,0 +1,40 @@ +package com.pengrad.telegrambot.model.checklist + +import com.pengrad.telegrambot.model.MessageEntity + +@Suppress("unused") +class InputChecklist private constructor( + @get:JvmName("title") val title: String, + @get:JvmName("parseMode") var parseMode: String?, + @get:JvmName("titleEntities") var titleEntities: Array?, + @get:JvmName("tasks") val tasks: Array, + @get:JvmName("othersCanAddTasks") var othersCanAddTasks: Boolean?, + @get:JvmName("othersCanMarkTasksAsDone") var othersCanMarkTasksAsDone: Boolean?, +) { + + constructor(title: String, tasks: Array) : this( + title = title, + tasks = tasks, + parseMode = null, + titleEntities = null, + othersCanAddTasks = null, + othersCanMarkTasksAsDone = null + ) + + fun parseMode(parseMode: String) = apply { + this.parseMode = parseMode + } + + fun titleEntities(titleEntities: Array) = apply { + this.titleEntities = titleEntities + } + + fun othersCanAddTasks(othersCanAddTasks: Boolean) = apply { + this.othersCanAddTasks = othersCanAddTasks + } + + fun othersCanMarkTasksAsDone(othersCanMarkTasksAsDone: Boolean) = apply { + this.othersCanMarkTasksAsDone = othersCanMarkTasksAsDone + } + +} \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/model/checklist/InputChecklistTask.kt b/library/src/main/java/com/pengrad/telegrambot/model/checklist/InputChecklistTask.kt new file mode 100644 index 00000000..31ed3407 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/checklist/InputChecklistTask.kt @@ -0,0 +1,28 @@ +package com.pengrad.telegrambot.model.checklist + +import com.pengrad.telegrambot.model.MessageEntity + +@Suppress("unused") +class InputChecklistTask private constructor ( + @get:JvmName("id") val id: Int, + @get:JvmName("text") val text: String, + @get:JvmName("parseMode") var parseMode: String?, + @get:JvmName("textEntities") var textEntities: Array? +){ + + constructor(id: Int, text: String) : this( + id = id, + text = text, + parseMode = null, + textEntities = null + ) + + fun parseMode(parseMode: String) = apply { + this.parseMode = parseMode + } + + fun textEntities(textEntities: Array) = apply { + this.textEntities = textEntities + } + +} \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/model/gift/Gift.kt b/library/src/main/java/com/pengrad/telegrambot/model/gift/Gift.kt index 810f7f2e..fe35e2e5 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/gift/Gift.kt +++ b/library/src/main/java/com/pengrad/telegrambot/model/gift/Gift.kt @@ -1,5 +1,6 @@ package com.pengrad.telegrambot.model.gift +import com.pengrad.telegrambot.model.Chat import com.pengrad.telegrambot.model.Sticker data class Gift( @@ -8,5 +9,6 @@ data class Gift( @get:JvmName("starCount") val starCount: Int, @get:JvmName("upgradeStarCount") val upgradeStarCount: Int? = null, @get:JvmName("totalCount") val totalCount: Int? = null, - @get:JvmName("remainingCount") val remainingCount: Int? = null + @get:JvmName("remainingCount") val remainingCount: Int? = null, + @get:JvmName("publisherChat") val publisherChat: Chat? = null ) diff --git a/library/src/main/java/com/pengrad/telegrambot/model/gift/owned/OwnedGiftUnique.kt b/library/src/main/java/com/pengrad/telegrambot/model/gift/owned/OwnedGiftUnique.kt index 6ed4a04c..74888022 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/gift/owned/OwnedGiftUnique.kt +++ b/library/src/main/java/com/pengrad/telegrambot/model/gift/owned/OwnedGiftUnique.kt @@ -11,7 +11,8 @@ class OwnedGiftUnique( @get:JvmName("sendDate") var sendDate: Long, @get:JvmName("isSaved") var isSaved: Boolean?, @get:JvmName("canBeTransferred") var canBeTransferred: Boolean?, - @get:JvmName("transferStarCount") var prepaidUpgradeStarCount: Int? + @get:JvmName("transferStarCount") var prepaidUpgradeStarCount: Int?, + @get:JvmName("nextTransferDate") var nextTransferDate: Long? ) : OwnedGift(type = TYPE) { companion object { diff --git a/library/src/main/java/com/pengrad/telegrambot/model/gift/unique/UniqueGift.kt b/library/src/main/java/com/pengrad/telegrambot/model/gift/unique/UniqueGift.kt index 0416a67d..a80c9ebd 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/gift/unique/UniqueGift.kt +++ b/library/src/main/java/com/pengrad/telegrambot/model/gift/unique/UniqueGift.kt @@ -1,5 +1,7 @@ package com.pengrad.telegrambot.model.gift.unique +import com.pengrad.telegrambot.model.Chat + @Suppress("unused") data class UniqueGift( @get:JvmName("baseName") val baseName: String, @@ -7,5 +9,6 @@ data class UniqueGift( @get:JvmName("number") val number: Int, @get:JvmName("model") val model: UniqueGiftModel, @get:JvmName("symbol") val symbol: UniqueGiftSymbol, - @get:JvmName("backdrop") val backdrop: UniqueGiftBackdrop + @get:JvmName("backdrop") val backdrop: UniqueGiftBackdrop, + @get:JvmName("publisherChat") val publisherChat: Chat? = null ) \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/model/gift/unique/UniqueGiftInfo.kt b/library/src/main/java/com/pengrad/telegrambot/model/gift/unique/UniqueGiftInfo.kt index f07f49c5..bf60fa6a 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/gift/unique/UniqueGiftInfo.kt +++ b/library/src/main/java/com/pengrad/telegrambot/model/gift/unique/UniqueGiftInfo.kt @@ -5,5 +5,7 @@ data class UniqueGiftInfo( @get:JvmName("gift") val gift: UniqueGift, @get:JvmName("origin") val origin: String, @get:JvmName("ownedGiftId") val ownedGiftId: String?, - @get:JvmName("transferStarCount") val transferStarCount: Int? + @get:JvmName("transferStarCount") val transferStarCount: Int?, + @get:JvmName("nextTransferDate") var nextTransferDate: Long?, + @get:JvmName("lastResaleStarCount") val lastResaleStarCount: Int? ) \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/model/request/ReplyParameters.java b/library/src/main/java/com/pengrad/telegrambot/model/request/ReplyParameters.java index aa36fad0..691f8139 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/request/ReplyParameters.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/request/ReplyParameters.java @@ -15,6 +15,7 @@ public class ReplyParameters implements Serializable { private String quote_parse_mode; private MessageEntity[] quote_entities; private Integer quote_position; + private Integer checklist_task_id; public ReplyParameters(Integer messageId) { this.message_id = messageId; @@ -49,4 +50,9 @@ public ReplyParameters quotePosition(Integer quotePosition) { this.quote_position = quotePosition; return this; } + + public ReplyParameters checklistTaskId(Integer checklistTaskId) { + this.checklist_task_id = checklistTaskId; + return this; + } } diff --git a/library/src/main/java/com/pengrad/telegrambot/model/stars/DirectMessagePriceChanged.kt b/library/src/main/java/com/pengrad/telegrambot/model/stars/DirectMessagePriceChanged.kt new file mode 100644 index 00000000..8119a577 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/stars/DirectMessagePriceChanged.kt @@ -0,0 +1,7 @@ +package com.pengrad.telegrambot.model.stars + +data class DirectMessagePriceChanged ( + @get:JvmName("areDirectMessagesEnabled") val areDirectMessagesEnabled: Boolean, + @get:JvmName("directMessageStarCount") val directMessageStarCount: Int? +) { +} \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/model/PaidMessagePriceChanged.kt b/library/src/main/java/com/pengrad/telegrambot/model/stars/PaidMessagePriceChanged.kt similarity index 68% rename from library/src/main/java/com/pengrad/telegrambot/model/PaidMessagePriceChanged.kt rename to library/src/main/java/com/pengrad/telegrambot/model/stars/PaidMessagePriceChanged.kt index 6547d2a9..617e4639 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/PaidMessagePriceChanged.kt +++ b/library/src/main/java/com/pengrad/telegrambot/model/stars/PaidMessagePriceChanged.kt @@ -1,4 +1,4 @@ -package com.pengrad.telegrambot.model +package com.pengrad.telegrambot.model.stars data class PaidMessagePriceChanged( @get:JvmName("prizeStarCount") val prizeStarCount: Int diff --git a/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostApprovalFailed.kt b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostApprovalFailed.kt new file mode 100644 index 00000000..7799def3 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostApprovalFailed.kt @@ -0,0 +1,10 @@ +package com.pengrad.telegrambot.model.suggestedposts + +import com.pengrad.telegrambot.model.Message + +@Suppress("unused") +data class SuggestedPostApprovalFailed ( + @get:JvmName("suggestedPostMessage") val suggestedPostMessage: Message?, + @get:JvmName("price") val price: SuggestedPostPrice +){ +} \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostApproved.kt b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostApproved.kt new file mode 100644 index 00000000..841fa67d --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostApproved.kt @@ -0,0 +1,11 @@ +package com.pengrad.telegrambot.model.suggestedposts + +import com.pengrad.telegrambot.model.Message + +@Suppress("unused") +data class SuggestedPostApproved ( + @get:JvmName("suggestedPostMessage") val suggestedPostMessage: Message?, + @get:JvmName("price") val price: SuggestedPostPrice?, + @get:JvmName("sendDate") val sendDate: Long +){ +} \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostDeclined.kt b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostDeclined.kt new file mode 100644 index 00000000..2fdc4f88 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostDeclined.kt @@ -0,0 +1,10 @@ +package com.pengrad.telegrambot.model.suggestedposts + +import com.pengrad.telegrambot.model.Message + +@Suppress("unused") +data class SuggestedPostDeclined ( + @get:JvmName("suggestedPostMessage") val suggestedPostMessage: Message?, + @get:JvmName("comment") val comment: String? +){ +} \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostInfo.kt b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostInfo.kt new file mode 100644 index 00000000..f4542646 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostInfo.kt @@ -0,0 +1,9 @@ +package com.pengrad.telegrambot.model.suggestedposts + +@Suppress("unused") +data class SuggestedPostInfo ( + @get:JvmName("state") val state: String, + @get:JvmName("price") val price: SuggestedPostPrice?, + @get:JvmName("sendDate") val sendDate: Long? +){ +} \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostPaid.kt b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostPaid.kt new file mode 100644 index 00000000..65a9c557 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostPaid.kt @@ -0,0 +1,13 @@ +package com.pengrad.telegrambot.model.suggestedposts + +import com.pengrad.telegrambot.model.Message +import com.pengrad.telegrambot.model.stars.StarAmount + +@Suppress("unused") +data class SuggestedPostPaid ( + @get:JvmName("suggestedPostMessage") val suggestedPostMessage: Message?, + @get:JvmName("currency") val currency: String, + @get:JvmName("amount") val amount: Long?, + @get:JvmName("starAmount") val starAmount: StarAmount? +){ +} \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostParameters.kt b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostParameters.kt new file mode 100644 index 00000000..6bfd3cf7 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostParameters.kt @@ -0,0 +1,9 @@ +package com.pengrad.telegrambot.model.suggestedposts + +@Suppress("unused") +data class SuggestedPostParameters ( + @get:JvmName("price") val price: SuggestedPostPrice?, + @get:JvmName("sendDate") val sendDate: Long? +){ + +} \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostPrice.kt b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostPrice.kt new file mode 100644 index 00000000..163416aa --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostPrice.kt @@ -0,0 +1,8 @@ +package com.pengrad.telegrambot.model.suggestedposts + +@Suppress("unused") +data class SuggestedPostPrice ( + @get:JvmName("currency") val currency: String, + @get:JvmName("amount") val amount: Long +){ +} \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostRefunded.kt b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostRefunded.kt new file mode 100644 index 00000000..158739b9 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/suggestedposts/SuggestedPostRefunded.kt @@ -0,0 +1,10 @@ +package com.pengrad.telegrambot.model.suggestedposts + +import com.pengrad.telegrambot.model.Message + +@Suppress("unused") +data class SuggestedPostRefunded ( + @get:JvmName("suggestedPostMessage") val suggestedPostMessage: Message?, + @get:JvmName("reason") val reason: String +){ +} \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/request/AbstractSendRequest.kt b/library/src/main/java/com/pengrad/telegrambot/request/AbstractSendRequest.kt index d4fa6784..5cb10e15 100644 --- a/library/src/main/java/com/pengrad/telegrambot/request/AbstractSendRequest.kt +++ b/library/src/main/java/com/pengrad/telegrambot/request/AbstractSendRequest.kt @@ -2,6 +2,7 @@ package com.pengrad.telegrambot.request import com.pengrad.telegrambot.model.request.Keyboard import com.pengrad.telegrambot.model.request.ReplyParameters +import com.pengrad.telegrambot.model.suggestedposts.SuggestedPostParameters import com.pengrad.telegrambot.response.SendResponse import com.pengrad.telegrambot.utility.kotlin.optionalRequestParameter @@ -15,17 +16,21 @@ abstract class AbstractSendRequest>( var businessConnectionId: String? by optionalRequestParameter() var messageThreadId: Int? by optionalRequestParameter() + var directMessagesTopicId: Int? by optionalRequestParameter() var disableNotification: Boolean? by optionalRequestParameter() var protectContent: Boolean? by optionalRequestParameter() var allowPaidBroadcast: Boolean? by optionalRequestParameter() var messageEffectId: String? by optionalRequestParameter() var replyParameters: ReplyParameters? by optionalRequestParameter() var replyMarkup: Keyboard? by optionalRequestParameter() + var suggestedPostParameters: SuggestedPostParameters? by optionalRequestParameter() fun businessConnectionId(businessConnectionId: String) = applySelf { this.businessConnectionId = businessConnectionId } fun messageThreadId(messageThreadId: Int) = applySelf { this.messageThreadId = messageThreadId } + fun directMessagesTopicId(directMessagesTopicId: Int) = applySelf { this.directMessagesTopicId = directMessagesTopicId } + fun disableNotification(disableNotification: Boolean) = applySelf { this.disableNotification = disableNotification } fun protectContent(protectContent: Boolean) = applySelf { this.protectContent = protectContent } @@ -38,4 +43,6 @@ abstract class AbstractSendRequest>( fun replyMarkup(replyMarkup: Keyboard) = applySelf { this.replyMarkup = replyMarkup } + fun suggestedPostParameters(suggestedPostParameters: SuggestedPostParameters) = applySelf { this.suggestedPostParameters = suggestedPostParameters } + } \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/request/CopyMessage.kt b/library/src/main/java/com/pengrad/telegrambot/request/CopyMessage.kt index 425cc66a..20febfbd 100644 --- a/library/src/main/java/com/pengrad/telegrambot/request/CopyMessage.kt +++ b/library/src/main/java/com/pengrad/telegrambot/request/CopyMessage.kt @@ -31,7 +31,7 @@ class CopyMessage private constructor( ) /** - * Backwards-compatability for Java code + * Backwards-compatibility for Java code */ constructor(chatId: JavaLong, fromChatId: JavaLong, messageId: JavaInteger) : this( chatId = chatId.toLong(), @@ -51,7 +51,7 @@ class CopyMessage private constructor( ) /** - * Backwards-compatability for Java code + * Backwards-compatibility for Java code */ constructor(channelUsername: String, fromChatId: JavaLong, messageId: JavaInteger) : this( channelUsername = channelUsername, @@ -71,7 +71,7 @@ class CopyMessage private constructor( ) /** - * Backwards-compatability for Java code + * Backwards-compatibility for Java code */ constructor(chatId: JavaLong, fromChannelUsername: String, messageId: JavaInteger) : this( chatId = chatId.toLong(), @@ -91,7 +91,7 @@ class CopyMessage private constructor( ) /** - * Backwards-compatability for Java code + * Backwards-compatibility for Java code */ constructor(channelUsername: String, fromChannelUsername: String, messageId: JavaInteger) : this( channelUsername = channelUsername, @@ -118,7 +118,7 @@ class CopyMessage private constructor( } /** - * Backwards-compatability for Java code + * Backwards-compatibility for Java code */ @Suppress("DEPRECATION") @Deprecated("Use constructor with chatId and fromChatId or channelUsername and fromChannelUsername instead", ReplaceWith("ForwardMessage(chatId, fromChatId, messageId)")) diff --git a/library/src/main/java/com/pengrad/telegrambot/request/ForwardMessage.kt b/library/src/main/java/com/pengrad/telegrambot/request/ForwardMessage.kt index 58c071c7..535f0a34 100644 --- a/library/src/main/java/com/pengrad/telegrambot/request/ForwardMessage.kt +++ b/library/src/main/java/com/pengrad/telegrambot/request/ForwardMessage.kt @@ -29,7 +29,7 @@ class ForwardMessage private constructor( ) /** - * Backwards-compatability for Java code + * Backwards-compatibility for Java code */ constructor(chatId: JavaLong, fromChatId: JavaLong, messageId: JavaInteger) : this( chatId = chatId.toLong(), @@ -49,7 +49,7 @@ class ForwardMessage private constructor( ) /** - * Backwards-compatability for Java code + * Backwards-compatibility for Java code */ constructor(channelUsername: String, fromChatId: JavaLong, messageId: JavaInteger) : this( channelUsername = channelUsername, @@ -69,7 +69,7 @@ class ForwardMessage private constructor( ) /** - * Backwards-compatability for Java code + * Backwards-compatibility for Java code */ constructor(chatId: JavaLong, fromChannelUsername: String, messageId: JavaInteger) : this( chatId = chatId.toLong(), @@ -89,7 +89,7 @@ class ForwardMessage private constructor( ) /** - * Backwards-compatability for Java code + * Backwards-compatibility for Java code */ constructor(channelUsername: String, fromChannelUsername: String, messageId: JavaInteger) : this( channelUsername = channelUsername, @@ -116,7 +116,7 @@ class ForwardMessage private constructor( } /** - * Backwards-compatability for Java code + * Backwards-compatibility for Java code */ @Suppress("DEPRECATION") @Deprecated("Use constructor with chatId and fromChatId or channelUsername and fromChannelUsername instead", ReplaceWith("ForwardMessage(chatId, fromChatId, messageId)")) diff --git a/library/src/main/java/com/pengrad/telegrambot/request/GetMyStarBalance.kt b/library/src/main/java/com/pengrad/telegrambot/request/GetMyStarBalance.kt new file mode 100644 index 00000000..0895bdbd --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/request/GetMyStarBalance.kt @@ -0,0 +1,7 @@ +package com.pengrad.telegrambot.request + +import com.pengrad.telegrambot.response.GetMyStarBalanceResponse + +class GetMyStarBalance : KBaseRequest( + GetMyStarBalanceResponse::class +) \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/request/PromoteChatMember.java b/library/src/main/java/com/pengrad/telegrambot/request/PromoteChatMember.java index 027373b5..297e65af 100644 --- a/library/src/main/java/com/pengrad/telegrambot/request/PromoteChatMember.java +++ b/library/src/main/java/com/pengrad/telegrambot/request/PromoteChatMember.java @@ -69,6 +69,10 @@ public PromoteChatMember canManageTopics(boolean canManageTopics) { return add("can_manage_topics", canManageTopics); } + public PromoteChatMember canManageDirectMessages(boolean canManageDirectMessages) { + return add("can_manage_direct_messages", canManageDirectMessages); + } + public PromoteChatMember canPromoteMembers(boolean canPromoteMembers) { return add("can_promote_members", canPromoteMembers); } diff --git a/library/src/main/java/com/pengrad/telegrambot/request/SendGift.kt b/library/src/main/java/com/pengrad/telegrambot/request/SendGift.kt index a8e0b14f..ec8cdc91 100644 --- a/library/src/main/java/com/pengrad/telegrambot/request/SendGift.kt +++ b/library/src/main/java/com/pengrad/telegrambot/request/SendGift.kt @@ -36,7 +36,7 @@ class SendGift private constructor( ) /** - * Backwards compatability to constructor with userId + * Backwards compatibility to constructor with userId */ @Deprecated("Use constructor(chatId, giftId) instead", ReplaceWith("SendGift(userId, giftId)")) operator fun invoke(userId: Long, giftId: String) = diff --git a/library/src/main/java/com/pengrad/telegrambot/request/business/EditMessageChecklist.kt b/library/src/main/java/com/pengrad/telegrambot/request/business/EditMessageChecklist.kt new file mode 100644 index 00000000..e90fb94e --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/request/business/EditMessageChecklist.kt @@ -0,0 +1,36 @@ +package com.pengrad.telegrambot.request.business + +import com.pengrad.telegrambot.model.checklist.InputChecklist +import com.pengrad.telegrambot.model.request.InlineKeyboardMarkup +import com.pengrad.telegrambot.request.KBaseRequest +import com.pengrad.telegrambot.response.EditMessageChecklistResponse +import com.pengrad.telegrambot.utility.kotlin.optionalRequestParameter +import com.pengrad.telegrambot.utility.kotlin.requestParameter + +@Suppress("unused") +class EditMessageChecklist ( + businessConnectionId: String, + chatId: Long, + messageId: Int, + checklist: InputChecklist, + replyMarkup: InlineKeyboardMarkup? + +): KBaseRequest(EditMessageChecklistResponse::class) { + + constructor(businessConnectionId: String, chatId: Long, messageId: Int, checklist: InputChecklist) : this( + businessConnectionId = businessConnectionId, + chatId = chatId, + messageId = messageId, + checklist = checklist, + replyMarkup = null + ) + + val businessConnectionId: String by requestParameter(businessConnectionId, customParameterName = "business_connection_id") + val chatId: Long by requestParameter(chatId, customParameterName = "chat_id") + val messageId: Int by requestParameter(messageId, customParameterName = "message_id") + val checklist: InputChecklist by requestParameter(checklist, customParameterName = "checklist") + + var replyMarkup: InlineKeyboardMarkup? by optionalRequestParameter(replyMarkup, customParameterName = "reply_markup") + fun replyMarkup(replyMarkup: InlineKeyboardMarkup) = applySelf { this.replyMarkup = replyMarkup } + +} \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/request/business/SendChecklist.kt b/library/src/main/java/com/pengrad/telegrambot/request/business/SendChecklist.kt new file mode 100644 index 00000000..988b4fac --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/request/business/SendChecklist.kt @@ -0,0 +1,54 @@ +package com.pengrad.telegrambot.request.business + +import com.pengrad.telegrambot.model.checklist.InputChecklist +import com.pengrad.telegrambot.model.request.InlineKeyboardMarkup +import com.pengrad.telegrambot.model.request.ReplyParameters +import com.pengrad.telegrambot.request.KBaseRequest +import com.pengrad.telegrambot.response.SendChecklistResponse +import com.pengrad.telegrambot.utility.kotlin.optionalRequestParameter +import com.pengrad.telegrambot.utility.kotlin.requestParameter + +@Suppress("unused") +class SendChecklist ( + businessConnectionId: String, + chatId: Long, + checklist: InputChecklist, + disableNotification: Boolean?, + protectContent: Boolean?, + messageEffectId: String?, + replyParameters: ReplyParameters?, + replyMarkup: InlineKeyboardMarkup? + +): KBaseRequest(SendChecklistResponse::class) { + + constructor(businessConnectionId: String, chatId: Long, checklist: InputChecklist) : this( + businessConnectionId = businessConnectionId, + chatId = chatId, + checklist = checklist, + disableNotification = null, + protectContent = null, + messageEffectId = null, + replyParameters = null, + replyMarkup = null + ) + + val businessConnectionId: String by requestParameter(businessConnectionId, customParameterName = "business_connection_id") + val chatId: Long by requestParameter(chatId, customParameterName = "chat_id") + val checklist: InputChecklist by requestParameter(checklist, customParameterName = "checklist") + + var disableNotification: Boolean? by optionalRequestParameter(disableNotification, customParameterName = "disable_notification") + fun disableNotification(disableNotification: Boolean) = applySelf { this.disableNotification = disableNotification } + + var protectContent: Boolean? by optionalRequestParameter(protectContent, customParameterName = "protect_content") + fun protectContent(protectContent: Boolean) = applySelf { this.protectContent = protectContent } + + var messageEffectId: String? by optionalRequestParameter(messageEffectId, customParameterName = "message_effect_id") + fun messageEffectId(messageEffectId: String) = applySelf { this.messageEffectId = messageEffectId } + + var replyParameters: ReplyParameters? by optionalRequestParameter(replyParameters, customParameterName = "reply_parameters") + fun replyParameters(replyParameters: ReplyParameters) = applySelf { this.replyParameters = replyParameters } + + var replyMarkup: InlineKeyboardMarkup? by optionalRequestParameter(replyMarkup, customParameterName = "reply_markup") + fun replyMarkup(replyMarkup: InlineKeyboardMarkup) = applySelf { this.replyMarkup = replyMarkup } + +} \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/request/suggestedposts/ApproveSuggestedPost.kt b/library/src/main/java/com/pengrad/telegrambot/request/suggestedposts/ApproveSuggestedPost.kt new file mode 100644 index 00000000..2dcf68d6 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/request/suggestedposts/ApproveSuggestedPost.kt @@ -0,0 +1,20 @@ +package com.pengrad.telegrambot.request.suggestedposts + +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 + +class ApproveSuggestedPost ( + chatId: Long, + messageId: Int, + sendDate: Long? +): KBaseRequest(BaseResponse::class) { + + val chatId: Long by requestParameter(chatId) + val messageId: Int by requestParameter(messageId) + + var sendDate: Long? by optionalRequestParameter(sendDate) + + fun sendDate(sendDate: Long) = applySelf { this.sendDate = sendDate } +} \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/request/suggestedposts/DeclineSuggestedPost.kt b/library/src/main/java/com/pengrad/telegrambot/request/suggestedposts/DeclineSuggestedPost.kt new file mode 100644 index 00000000..3d79568b --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/request/suggestedposts/DeclineSuggestedPost.kt @@ -0,0 +1,20 @@ +package com.pengrad.telegrambot.request.suggestedposts + +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 + +class DeclineSuggestedPost ( + chatId: Long, + messageId: Int, + comment: String? +): KBaseRequest(BaseResponse::class) { + + val chatId: Long by requestParameter(chatId) + val messageId: Int by requestParameter(messageId) + + var comment: String? by optionalRequestParameter(comment) + + fun comment(comment: String) = applySelf { this.comment = comment } +} \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/response/EditMessageChecklistResponse.kt b/library/src/main/java/com/pengrad/telegrambot/response/EditMessageChecklistResponse.kt new file mode 100644 index 00000000..3788f032 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/response/EditMessageChecklistResponse.kt @@ -0,0 +1,6 @@ +package com.pengrad.telegrambot.response + +import com.pengrad.telegrambot.model.Message + + +data class EditMessageChecklistResponse (val result: Message) : BaseResponse() \ No newline at end of file diff --git a/library/src/main/java/com/pengrad/telegrambot/response/GetMyStarBalanceResponse.kt b/library/src/main/java/com/pengrad/telegrambot/response/GetMyStarBalanceResponse.kt new file mode 100644 index 00000000..3a0d715d --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/response/GetMyStarBalanceResponse.kt @@ -0,0 +1,5 @@ +package com.pengrad.telegrambot.response + +import com.pengrad.telegrambot.model.stars.StarAmount + +data class GetMyStarBalanceResponse(val result: StarAmount) : BaseResponse() diff --git a/library/src/main/java/com/pengrad/telegrambot/response/SendChecklistResponse.kt b/library/src/main/java/com/pengrad/telegrambot/response/SendChecklistResponse.kt new file mode 100644 index 00000000..7f66eb75 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/response/SendChecklistResponse.kt @@ -0,0 +1,6 @@ +package com.pengrad.telegrambot.response + +import com.pengrad.telegrambot.model.Message + + +data class SendChecklistResponse (val result: Message) : BaseResponse() \ No newline at end of file diff --git a/pom.xml b/pom.xml index 70627d4d..88f091c9 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ 4.0.0 com.github.pengrad java-telegram-bot-api - 9.0.0 + 9.2.0 JavaTelegramBotApi Java API for Telegram Bot API https://github.com/pengrad/java-telegram-bot-api/