diff --git a/README.md b/README.md index 83f91b5a..d103872c 100644 --- a/README.md +++ b/README.md @@ -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:7.4.0' +implementation 'com.github.pengrad:java-telegram-bot-api:7.7.0' ``` Maven: ```xml com.github.pengrad java-telegram-bot-api - 7.4.0 + 7.7.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 72f250e6..01dfb343 100644 --- a/README_RU.md +++ b/README_RU.md @@ -13,14 +13,14 @@ Java библиотека, созданная для работы с [Telegram B Gradle: ```groovy -implementation 'com.github.pengrad:java-telegram-bot-api:7.4.0' +implementation 'com.github.pengrad:java-telegram-bot-api:7.7.0' ``` Maven: ```xml com.github.pengrad java-telegram-bot-api - 7.4.0 + 7.7.0 ``` Также JAR со всеми зависимостями можно найти [в релизах](https://github.com/pengrad/java-telegram-bot-api/releases). diff --git a/gradle.properties b/gradle.properties index 91d4e14a..865d7b10 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ GROUP=com.github.pengrad -VERSION_NAME=7.4.0 +VERSION_NAME=7.7.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 98006d60..6ddec3e5 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/ChatFullInfo.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/ChatFullInfo.java @@ -59,6 +59,7 @@ public enum Type { private String invite_link; private Message pinned_message; private ChatPermissions permissions; + private Boolean can_send_paid_media; private Integer slow_mode_delay; private Integer unrestrict_boost_count; private Integer message_auto_delete_time; @@ -217,6 +218,9 @@ public Message pinnedMessage() { public ChatPermissions permissions() { return permissions; } + public Boolean canSendPaidMedia() { + return can_send_paid_media; + } public Integer slowModeDelay() { return slow_mode_delay; @@ -296,6 +300,7 @@ public boolean equals(Object o) { Objects.equals(invite_link, chat.invite_link) && Objects.equals(pinned_message, chat.pinned_message) && Objects.equals(permissions, chat.permissions) && + Objects.equals(can_send_paid_media, chat.can_send_paid_media) && Objects.equals(slow_mode_delay, chat.slow_mode_delay) && Objects.equals(unrestrict_boost_count, chat.unrestrict_boost_count) && Objects.equals(message_auto_delete_time, chat.message_auto_delete_time) && @@ -349,6 +354,7 @@ public String toString() { ", invite_link='" + invite_link + '\'' + ", pinned_message=" + pinned_message + ", permissions=" + permissions + + ", can_send_paid_media=" + can_send_paid_media + ", slow_mode_delay=" + slow_mode_delay + ", unrestrict_boost_count=" + unrestrict_boost_count + ", message_auto_delete_time=" + message_auto_delete_time + 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 64d22f49..ed27518e 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/ChatMember.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/ChatMember.java @@ -92,6 +92,7 @@ public Boolean canDeleteMessages() { /** * @deprecated Use canManageVideoChats() instead */ + @Deprecated public Boolean canManageVoiceChats() { return canManageVideoChats(); } 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 5ee55e7d..a4a8939a 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/ExternalReplyInfo.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/ExternalReplyInfo.java @@ -3,6 +3,7 @@ import com.pengrad.telegrambot.model.giveaway.Giveaway; import com.pengrad.telegrambot.model.giveaway.GiveawayWinners; import com.pengrad.telegrambot.model.message.origin.MessageOrigin; +import com.pengrad.telegrambot.model.paidmedia.PaidMediaInfo; import java.io.Serializable; import java.util.Arrays; @@ -18,6 +19,7 @@ public class ExternalReplyInfo implements Serializable { private LinkPreviewOptions link_preview_options; private Animation animation; private Audio audio; + private PaidMediaInfo paid_media; private Document document; private PhotoSize[] photo; private Sticker sticker; @@ -60,6 +62,9 @@ public Audio audio() { return audio; } + public PaidMediaInfo paidMedia() { + return paid_media; + } public Document document() { return document; } @@ -133,12 +138,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(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(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, 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, contact, dice, game, giveaway, giveaway_winners, invoice, location, poll, venue); result = 31 * result + Arrays.hashCode(photo); return result; } @@ -152,6 +157,7 @@ public String toString() { ", link_preview_options=" + link_preview_options + ", animation=" + animation + ", audio=" + audio + + ", paid_media=" + paid_media + ", document=" + document + ", photo=" + Arrays.toString(photo) + ", sticker=" + sticker + 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 b82d7839..bb1d17c7 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/Message.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/Message.java @@ -5,6 +5,8 @@ import com.pengrad.telegrambot.model.chatboost.ChatBoostAdded; import com.pengrad.telegrambot.model.message.MaybeInaccessibleMessage; import com.pengrad.telegrambot.model.message.origin.*; +import com.pengrad.telegrambot.model.paidmedia.PaidMedia; +import com.pengrad.telegrambot.model.paidmedia.PaidMediaInfo; import com.pengrad.telegrambot.model.request.InlineKeyboardMarkup; import com.pengrad.telegrambot.passport.PassportData; @@ -46,6 +48,7 @@ public class Message extends MaybeInaccessibleMessage implements Serializable { private LinkPreviewOptions link_preview_options; private String effect_id; private Audio audio; + private PaidMediaInfo paid_media; private Document document; private Animation animation; private Game game; @@ -74,6 +77,7 @@ public class Message extends MaybeInaccessibleMessage implements Serializable { private MaybeInaccessibleMessage pinned_message; private Invoice invoice; private SuccessfulPayment successful_payment; + private RefundedPayment refunded_payment; private Story story; private UserShared user_shared; //@deprectated private UsersShared users_shared; @@ -280,6 +284,10 @@ public Audio audio() { return audio; } + public PaidMediaInfo paidMedia() { + return paid_media; + } + public Document document() { return document; } @@ -392,6 +400,10 @@ public SuccessfulPayment successfulPayment() { return successful_payment; } + public RefundedPayment refundedPayment() { + return refunded_payment; + } + public Story story() { return story; } @@ -540,6 +552,7 @@ public boolean equals(Object o) { Objects.equals(link_preview_options, message.link_preview_options) && Objects.equals(effect_id, message.effect_id) && Objects.equals(audio, message.audio) && + Objects.equals(paid_media, message.paid_media) && Objects.equals(document, message.document) && Objects.equals(animation, message.animation) && Objects.equals(game, message.game) && @@ -568,6 +581,7 @@ public boolean equals(Object o) { Objects.equals(pinned_message, message.pinned_message) && Objects.equals(invoice, message.invoice) && Objects.equals(successful_payment, message.successful_payment) && + Objects.equals(refunded_payment, message.refunded_payment) && Objects.equals(story, message.story) && Objects.equals(user_shared, message.user_shared) && Objects.equals(users_shared, message.users_shared) && @@ -630,6 +644,7 @@ public String toString() { ", link_preview_options=" + link_preview_options + ", effect_id=" + effect_id + ", audio=" + audio + + ", paid_media=" + paid_media + ", document=" + document + ", animation=" + animation + ", game=" + game + @@ -658,6 +673,7 @@ public String toString() { ", pinned_message=" + pinned_message + ", invoice=" + invoice + ", successful_payment=" + successful_payment + + ", refunded_payment=" + refunded_payment + ", story=" + story + ", user_shared=" + user_shared + ", users_shared=" + users_shared + diff --git a/library/src/main/java/com/pengrad/telegrambot/model/RefundedPayment.java b/library/src/main/java/com/pengrad/telegrambot/model/RefundedPayment.java new file mode 100644 index 00000000..b780fc6e --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/RefundedPayment.java @@ -0,0 +1,73 @@ +package com.pengrad.telegrambot.model; + +import com.pengrad.telegrambot.model.stars.StarTransaction; + +import java.io.Serializable; +import java.util.Objects; + +public class RefundedPayment implements Serializable { + + private final static long serialVersionUID = 0L; + + private String currency; + + private Integer total_amount; + + private String invoice_payload; + + private String telegram_payment_charge_id; + + private String provider_payment_charge_id; + + public String currency() { + return currency; + } + + public Integer totalAmount() { + return total_amount; + } + + public String invoicePayload() { + return invoice_payload; + } + + public String telegramPaymentChargeId() { + return telegram_payment_charge_id; + } + + public String providerPaymentChargeId() { + return provider_payment_charge_id; + } + + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + RefundedPayment that = (RefundedPayment) o; + return Objects.equals(currency, that.currency) && + Objects.equals(total_amount, that.total_amount) && + Objects.equals(invoice_payload, that.invoice_payload) && + Objects.equals(telegram_payment_charge_id, that.telegram_payment_charge_id) && + Objects.equals(provider_payment_charge_id, that.provider_payment_charge_id); + } + + @Override + public int hashCode() { + return Objects.hash(currency, total_amount, invoice_payload, telegram_payment_charge_id, provider_payment_charge_id); + } + + @Override + public String toString() { + return "RefundedPayment{" + + "currency='" + currency + "'," + + "total_amount='" + total_amount + "'," + + "invoice_payload='" + invoice_payload + "'," + + "telegram_payment_charge_id='" + telegram_payment_charge_id + "'," + + "provider_payment_charge_id='" + provider_payment_charge_id + "'" + + '}'; + } + + +} 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 b2a6aa81..94fe9e11 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 @@ -8,7 +8,7 @@ public class BusinessConnection { private String id; private User user; - private Integer user_chat_id; + private Long user_chat_id; private Integer date; private Boolean can_reply; private Boolean is_enabled; @@ -21,7 +21,7 @@ public User user() { return user; } - public Integer userChatId() { + public Long userChatId() { return user_chat_id; } 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 443aabaf..a5c9f253 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 @@ -9,6 +9,10 @@ public class MessageOrigin implements Serializable { protected String type; protected Integer date; + public MessageOrigin(String type) { + this.type = type; + } + public String type() { return type; } diff --git a/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOriginChannel.java b/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOriginChannel.java index 8a08b6b6..0e7cf3e4 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOriginChannel.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOriginChannel.java @@ -13,6 +13,10 @@ public class MessageOriginChannel extends MessageOrigin { private String author_signature; + public MessageOriginChannel() { + super(MESSAGE_ORIGIN_TYPE); + } + public Chat chat() { return chat; } diff --git a/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOriginChat.java b/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOriginChat.java index 63acfe6d..56c89b19 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOriginChat.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOriginChat.java @@ -11,6 +11,9 @@ public class MessageOriginChat extends MessageOrigin { private Chat sender_chat; private String author_signature; + public MessageOriginChat() { + super(MESSAGE_ORIGIN_TYPE); + } public Chat senderChat() { return sender_chat; } diff --git a/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOriginHiddenUser.java b/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOriginHiddenUser.java index 3f205edb..a91f98f7 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOriginHiddenUser.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOriginHiddenUser.java @@ -8,6 +8,10 @@ public class MessageOriginHiddenUser extends MessageOrigin { private String sender_user_name; + public MessageOriginHiddenUser() { + super(MESSAGE_ORIGIN_TYPE); + } + public String senderUserName() { return sender_user_name; } diff --git a/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOriginUser.java b/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOriginUser.java index 8f7f7462..23285773 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOriginUser.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/message/origin/MessageOriginUser.java @@ -10,6 +10,9 @@ public class MessageOriginUser extends MessageOrigin { private User sender_user; + public MessageOriginUser() { + super(MESSAGE_ORIGIN_TYPE); + } public User senderUser() { return sender_user; } diff --git a/library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMedia.java b/library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMedia.java new file mode 100644 index 00000000..5d8a4271 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMedia.java @@ -0,0 +1,41 @@ +package com.pengrad.telegrambot.model.paidmedia; + +import java.io.Serializable; +import java.util.Objects; + +public abstract class PaidMedia implements Serializable { + + private final static long serialVersionUID = 0L; + + private String type; + + public PaidMedia(String type) { + this.type = type; + } + + public String type() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + PaidMedia that = (PaidMedia) o; + return Objects.equals(type, that.type); + } + + @Override + public int hashCode() { + return Objects.hash(type); + } + + @Override + public String toString() { + return "PaidMedia{" + + "type='" + type + "'" + + '}'; + } + +} diff --git a/library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMediaInfo.java b/library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMediaInfo.java new file mode 100644 index 00000000..26024d6f --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMediaInfo.java @@ -0,0 +1,46 @@ +package com.pengrad.telegrambot.model.paidmedia; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.Objects; + +public class PaidMediaInfo implements Serializable { + + private final static long serialVersionUID = 0L; + + private Integer star_count; + + private PaidMedia[] paid_media; + + public Integer starCount() { + return star_count; + } + + public PaidMedia[] paidMedia() { + return paid_media; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + PaidMediaInfo that = (PaidMediaInfo) o; + return Objects.equals(star_count, that.star_count) && + Arrays.equals(paid_media, that.paid_media); + } + + @Override + public int hashCode() { + return Objects.hash(star_count, paid_media); + } + + @Override + public String toString() { + return "PaidMediaInfo{" + + "star_count='" + star_count + "'," + + "paid_media='" + Arrays.toString(paid_media) + "'" + + '}'; + } + +} diff --git a/library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMediaPhoto.java b/library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMediaPhoto.java new file mode 100644 index 00000000..faa045f9 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMediaPhoto.java @@ -0,0 +1,44 @@ +package com.pengrad.telegrambot.model.paidmedia; + +import com.pengrad.telegrambot.model.PhotoSize; + +import java.util.Arrays; +import java.util.Objects; + +public class PaidMediaPhoto extends PaidMedia { + + public final static String TYPE = "photo"; + + private PhotoSize[] photo; + + public PaidMediaPhoto() { + super(TYPE); + } + + public PhotoSize[] getPhoto() { + return photo; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PaidMediaPhoto that = (PaidMediaPhoto) o; + return Objects.equals(type(), that.type()) && + Arrays.equals(photo, that.photo); + } + + @Override + public int hashCode() { + return Objects.hash(type(), photo); + } + + @Override + public String toString() { + return "PaidMediaPhoto{" + + "type='" + type() + "\'," + + ", photo=" + Arrays.toString(photo) + "\'" + + '}'; + } + +} diff --git a/library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMediaPreview.java b/library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMediaPreview.java new file mode 100644 index 00000000..5d2bc7bf --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMediaPreview.java @@ -0,0 +1,57 @@ +package com.pengrad.telegrambot.model.paidmedia; + +import java.util.Objects; + +public class PaidMediaPreview extends PaidMedia { + + public final static String TYPE = "preview"; + + private Integer width; + + private Integer height; + + private Integer duration; + + public PaidMediaPreview() { + super(TYPE); + } + + public Integer getWidth() { + return width; + } + + public Integer getHeight() { + return height; + } + + public Integer getDuration() { + return duration; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PaidMediaPreview that = (PaidMediaPreview) o; + return Objects.equals(type(), that.type()) && + Objects.equals(width, that.width) && + Objects.equals(height, that.height) && + Objects.equals(duration, that.duration); + } + + @Override + public int hashCode() { + return Objects.hash(type(), width, height, duration); + } + + @Override + public String toString() { + return "PaidMediaPreview{" + + "type='" + type() + "\'," + + ", width=" + width + "\'," + + ", height=" + height + "\'," + + ", duration=" + duration + "\'" + + '}'; + } + +} diff --git a/library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMediaVideo.java b/library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMediaVideo.java new file mode 100644 index 00000000..56c34d21 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMediaVideo.java @@ -0,0 +1,44 @@ +package com.pengrad.telegrambot.model.paidmedia; + +import com.pengrad.telegrambot.model.Video; + +import java.util.Arrays; +import java.util.Objects; + +public class PaidMediaVideo extends PaidMedia { + + public final static String TYPE = "video"; + + private Video video; + + public PaidMediaVideo() { + super(TYPE); + } + + public Video getVideo() { + return video; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PaidMediaVideo that = (PaidMediaVideo) o; + return Objects.equals(type(), that.type()) && + Objects.equals(video, that.video); + } + + @Override + public int hashCode() { + return Objects.hash(type(), video); + } + + @Override + public String toString() { + return "PaidMediaVideo{" + + "type='" + type() + "\'," + + ", video=" + video + "\'" + + '}'; + } + +} diff --git a/library/src/main/java/com/pengrad/telegrambot/model/request/InputInvoiceMessageContent.java b/library/src/main/java/com/pengrad/telegrambot/model/request/InputInvoiceMessageContent.java index 9a4cc91b..e54801cf 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/request/InputInvoiceMessageContent.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/request/InputInvoiceMessageContent.java @@ -47,6 +47,7 @@ public InputInvoiceMessageContent(String title, String description, String paylo * Backward compatibility: API 7.4, parameter "provider_token" became optional * @deprecated Use constrcutor without 'provider_token' instead */ + @Deprecated public InputInvoiceMessageContent(String title, String description, String payload, String providerToken, String currency, LabeledPrice[] prices) { this.title = title; this.description = description; diff --git a/library/src/main/java/com/pengrad/telegrambot/model/request/InputPaidMedia.java b/library/src/main/java/com/pengrad/telegrambot/model/request/InputPaidMedia.java new file mode 100644 index 00000000..92ca03f3 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/request/InputPaidMedia.java @@ -0,0 +1,62 @@ +package com.pengrad.telegrambot.model.request; + +import com.pengrad.telegrambot.AttachName; + +import java.io.File; +import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; + +/** + * Stas Parshin + * 23 November 2017 + */ +abstract public class InputPaidMedia implements Serializable { + private final static long serialVersionUID = 0L; + + private final String type; + private final String media; + private String thumbnail; + transient private InputFile inputFile; + transient private String inputFileAttachId; + transient private String fileName; + transient private String contentType; + + InputPaidMedia(String type, Object media) { + this.type = type; + if (media instanceof String) { + this.media = (String) media; + } else { + String attachName = AttachName.next(); + this.media = "attach://" + attachName; + inputFileAttachId = attachName; + if (media instanceof File) { + fileName = ((File) media).getName(); + inputFile = new InputFile((File) media, getFileName(), getContentType()); + } else if (media instanceof byte[]) { + inputFile = new InputFile((byte[]) media, getFileName(), getContentType()); + } + } + } + + + public InputFile inputFile() { + return inputFile; + } + + public String getInputFileId() { + return inputFileAttachId; + } + + public String getFileName() { + return (fileName != null && !fileName.isEmpty()) ? fileName : getDefaultFileName(); + } + + public String getContentType() { + return (contentType != null && !contentType.isEmpty()) ? contentType : getDefaultContentType(); + } + + abstract protected String getDefaultFileName(); + + abstract protected String getDefaultContentType(); +} diff --git a/library/src/main/java/com/pengrad/telegrambot/model/request/InputPaidMediaPhoto.java b/library/src/main/java/com/pengrad/telegrambot/model/request/InputPaidMediaPhoto.java new file mode 100644 index 00000000..7cc53ee4 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/request/InputPaidMediaPhoto.java @@ -0,0 +1,35 @@ +package com.pengrad.telegrambot.model.request; + +import com.pengrad.telegrambot.request.ContentTypes; + +import java.io.File; +import java.io.Serializable; + +public class InputPaidMediaPhoto extends InputPaidMedia implements Serializable { + + private final static long serialVersionUID = 1L; + + public InputPaidMediaPhoto(String media) { + super("photo", media); + } + + public InputPaidMediaPhoto(File media) { + super("photo", media); + } + + public InputPaidMediaPhoto(byte[] media) { + super("photo", media); + } + + + @Override + public String getDefaultFileName() { + return ContentTypes.PHOTO_FILE_NAME; + } + + @Override + public String getDefaultContentType() { + return ContentTypes.PHOTO_MIME_TYPE; + } + +} diff --git a/library/src/main/java/com/pengrad/telegrambot/model/request/InputPaidMediaVideo.java b/library/src/main/java/com/pengrad/telegrambot/model/request/InputPaidMediaVideo.java new file mode 100644 index 00000000..9d51c7f7 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/request/InputPaidMediaVideo.java @@ -0,0 +1,84 @@ +package com.pengrad.telegrambot.model.request; + +import com.pengrad.telegrambot.AttachName; +import com.pengrad.telegrambot.request.ContentTypes; + +import java.io.File; +import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; + +public class InputPaidMediaVideo extends InputPaidMedia implements Serializable { + + private final static long serialVersionUID = 1L; + + private Integer width, height, duration; + private Boolean supports_streaming; + + private String thumbnail; + + transient private Map attachments = new HashMap<>(); + + + public InputPaidMediaVideo(String media) { + super("video", media); + } + + public InputPaidMediaVideo(File media) { + super("video", media); + } + + public InputPaidMediaVideo(byte[] media) { + super("video", media); + } + + public InputPaidMediaVideo width(Integer width) { + this.width = width; + return this; + } + + public InputPaidMediaVideo height(Integer height) { + this.height = height; + return this; + } + + public InputPaidMediaVideo duration(Integer duration) { + this.duration = duration; + return this; + } + + public InputPaidMediaVideo supportsStreaming(boolean supportsStreaming) { + this.supports_streaming = supportsStreaming; + return this; + } + + public InputPaidMediaVideo thumbnail(File thumbnail) { + String attachName = AttachName.next(); + attachments.put(attachName, thumbnail); + this.thumbnail = "attach://" + attachName; + return this; + } + + public InputPaidMediaVideo thumbnail(byte[] thumbnail) { + String attachName = AttachName.next(); + attachments.put(attachName, thumbnail); + this.thumbnail = "attach://" + attachName; + return this; + } + + public Map getAttachments() { + return attachments; + } + + + @Override + public String getDefaultFileName() { + return ContentTypes.VIDEO_FILE_NAME; + } + + @Override + public String getDefaultContentType() { + return ContentTypes.VIDEO_MIME_TYPE; + } + +} diff --git a/library/src/main/java/com/pengrad/telegrambot/model/stars/StarTransaction.java b/library/src/main/java/com/pengrad/telegrambot/model/stars/StarTransaction.java new file mode 100644 index 00000000..e018e3c2 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/stars/StarTransaction.java @@ -0,0 +1,70 @@ +package com.pengrad.telegrambot.model.stars; + +import com.pengrad.telegrambot.model.stars.partner.TransactionPartner; + +import java.io.Serializable; +import java.util.Objects; + +public class StarTransaction implements Serializable { + + private final static long serialVersionUID = 0L; + + private String id; + private Integer amount; + private Integer date; + + private TransactionPartner source; + + private TransactionPartner receiver; + + + public String id() { + return id; + } + + public Integer amount() { + return amount; + } + + public Integer date() { + return date; + } + + public TransactionPartner source() { + return source; + } + + public TransactionPartner receiver() { + return receiver; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + StarTransaction that = (StarTransaction) o; + return Objects.equals(id, that.id) && + Objects.equals(amount, that.amount) && + Objects.equals(date, that.date) && + Objects.equals(source, that.source) && + Objects.equals(receiver, that.receiver); + } + + @Override + public int hashCode() { + return Objects.hash(id, amount, date, source, receiver); + } + + @Override + public String toString() { + return "StarTransaction{" + + "id='" + id + "'," + + "amount='" + amount + "'," + + "date='" + date + "'," + + "source='" + source + "'," + + "receiver='" + receiver + "'" + + '}'; + } + +} diff --git a/library/src/main/java/com/pengrad/telegrambot/model/stars/StarTransactions.java b/library/src/main/java/com/pengrad/telegrambot/model/stars/StarTransactions.java new file mode 100644 index 00000000..5f46eed7 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/stars/StarTransactions.java @@ -0,0 +1,38 @@ +package com.pengrad.telegrambot.model.stars; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.Objects; + +public class StarTransactions implements Serializable { + + private final static long serialVersionUID = 0L; + + private StarTransaction[] transactions; + + public StarTransaction[] transactions() { + return transactions; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + StarTransactions that = (StarTransactions) o; + return Arrays.equals(transactions, that.transactions); + } + + @Override + public int hashCode() { + return Arrays.hashCode(transactions); + } + + @Override + public String toString() { + return "StarTransactions{" + + "transactions='" + Arrays.toString(transactions) + "'" + + '}'; + } + +} diff --git a/library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartner.java b/library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartner.java new file mode 100644 index 00000000..b7628461 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartner.java @@ -0,0 +1,41 @@ +package com.pengrad.telegrambot.model.stars.partner; + +import java.io.Serializable; +import java.util.Objects; + +public abstract class TransactionPartner implements Serializable { + + private final static long serialVersionUID = 0L; + + private String type; + + public TransactionPartner(String type) { + this.type = type; + } + + public String type() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + TransactionPartner that = (TransactionPartner) o; + return Objects.equals(type, that.type); + } + + @Override + public int hashCode() { + return Objects.hash(type); + } + + @Override + public String toString() { + return "TransactionPartner{" + + "type='" + type + "'" + + '}'; + } + +} diff --git a/library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartnerFragment.java b/library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartnerFragment.java new file mode 100644 index 00000000..ca958d00 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartnerFragment.java @@ -0,0 +1,43 @@ +package com.pengrad.telegrambot.model.stars.partner; + +import com.pengrad.telegrambot.model.stars.withdrawal.RevenueWithdrawalState; + +import java.util.Objects; + +public class TransactionPartnerFragment extends TransactionPartner { + + public final static String TYPE = "fragment"; + + private RevenueWithdrawalState withdrawal_state; + + public TransactionPartnerFragment() { + super(TYPE); + } + + public RevenueWithdrawalState withdrawalState() { + return withdrawal_state; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + TransactionPartnerFragment that = (TransactionPartnerFragment) o; + return Objects.equals(type(), that.type()) && + Objects.equals(withdrawal_state, that.withdrawal_state); + } + + @Override + public int hashCode() { + return Objects.hash(type(), withdrawal_state); + } + + @Override + public String toString() { + return "TransactionPartnerFragment{" + + "type='" + type() + "\'," + + ", withdrawal_state=" + withdrawal_state + "\'" + + '}'; + } + +} diff --git a/library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartnerOther.java b/library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartnerOther.java new file mode 100644 index 00000000..3a2e7d37 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartnerOther.java @@ -0,0 +1,34 @@ +package com.pengrad.telegrambot.model.stars.partner; + +import java.util.Objects; + +public class TransactionPartnerOther extends TransactionPartner { + + public final static String TYPE = "other"; + + public TransactionPartnerOther() { + super(TYPE); + } + + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + TransactionPartnerOther that = (TransactionPartnerOther) o; + return Objects.equals(type(), that.type()); + } + + @Override + public int hashCode() { + return Objects.hash(type()); + } + + @Override + public String toString() { + return "TransactionPartnerOther{" + + "type='" + type() + "\'" + + '}'; + } + +} diff --git a/library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartnerTelegramAds.java b/library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartnerTelegramAds.java new file mode 100644 index 00000000..d0eff45e --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartnerTelegramAds.java @@ -0,0 +1,34 @@ +package com.pengrad.telegrambot.model.stars.partner; + +import java.util.Objects; + +public class TransactionPartnerTelegramAds extends TransactionPartner { + + public final static String TYPE = "telegram_ads"; + + public TransactionPartnerTelegramAds() { + super(TYPE); + } + + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + TransactionPartnerTelegramAds that = (TransactionPartnerTelegramAds) o; + return Objects.equals(type(), that.type()); + } + + @Override + public int hashCode() { + return Objects.hash(type()); + } + + @Override + public String toString() { + return "TransactionPartnerTelegramAds{" + + "type='" + type() + "\'" + + '}'; + } + +} diff --git a/library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartnerUser.java b/library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartnerUser.java new file mode 100644 index 00000000..86b931e6 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartnerUser.java @@ -0,0 +1,52 @@ +package com.pengrad.telegrambot.model.stars.partner; + +import com.pengrad.telegrambot.model.User; +import com.pengrad.telegrambot.model.chatbackground.BackgroundFillFreeformGradient; + +import java.util.Arrays; +import java.util.Objects; + +public class TransactionPartnerUser extends TransactionPartner { + + public final static String TYPE = "user"; + + private User user; + private String invoice_payload; + + public TransactionPartnerUser() { + super(TYPE); + } + + public User user() { + return user; + } + + public String invoicePayload() { + return invoice_payload; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + TransactionPartnerUser that = (TransactionPartnerUser) o; + return Objects.equals(type(), that.type()) && + Objects.equals(user, that.user) && + Objects.equals(invoice_payload, that.invoice_payload); + } + + @Override + public int hashCode() { + return Objects.hash(type(), user, invoice_payload); + } + + @Override + public String toString() { + return "TransactionPartnerUser{" + + "type='" + type() + "\'," + + ", user=" + user + "\'," + + ", invoice_payload=" + invoice_payload + "\'" + + '}'; + } + +} diff --git a/library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalState.java b/library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalState.java new file mode 100644 index 00000000..09e0ee71 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalState.java @@ -0,0 +1,43 @@ +package com.pengrad.telegrambot.model.stars.withdrawal; + +import com.pengrad.telegrambot.model.chatbackground.BackgroundFill; + +import java.io.Serializable; +import java.util.Objects; + +public abstract class RevenueWithdrawalState implements Serializable { + + private final static long serialVersionUID = 0L; + + private String type = "unknown"; + + protected RevenueWithdrawalState(String type) { + this.type = type; + } + + public String type() { + return type; + } + + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + RevenueWithdrawalState that = (RevenueWithdrawalState) o; + return Objects.equals(type, that.type); + } + + @Override + public int hashCode() { + return Objects.hash(type); + } + + @Override + public String toString() { + return "RevenueWithdrawalState{" + + "type='" + type + '\'' + + '}'; + } + +} diff --git a/library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalStateFailed.java b/library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalStateFailed.java new file mode 100644 index 00000000..561f4dfc --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalStateFailed.java @@ -0,0 +1,19 @@ +package com.pengrad.telegrambot.model.stars.withdrawal; + +public class RevenueWithdrawalStateFailed extends RevenueWithdrawalState { + + public static final String TYPE = "failed"; + + + public RevenueWithdrawalStateFailed() { + super(TYPE); + } + + @Override + public String toString() { + return "RevenueWithdrawalStateFailed{" + + "type='" + type() + '\'' + + '}'; + } + +} diff --git a/library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalStatePending.java b/library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalStatePending.java new file mode 100644 index 00000000..a6017dec --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalStatePending.java @@ -0,0 +1,19 @@ +package com.pengrad.telegrambot.model.stars.withdrawal; + +public class RevenueWithdrawalStatePending extends RevenueWithdrawalState { + + public static final String TYPE = "pending"; + + + public RevenueWithdrawalStatePending() { + super(TYPE); + } + + @Override + public String toString() { + return "RevenueWithdrawalStatePending{" + + "type='" + type() + '\'' + + '}'; + } + +} 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 new file mode 100644 index 00000000..8ecef7bb --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalStateSucceeded.java @@ -0,0 +1,48 @@ +package com.pengrad.telegrambot.model.stars.withdrawal; + +import java.util.Objects; + +public class RevenueWithdrawalStateSucceeded extends RevenueWithdrawalState { + + public static final String TYPE = "succeeded"; + + private Integer date; + private String url; + + public RevenueWithdrawalStateSucceeded() { + super(TYPE); + } + + public Integer date() { + return date; + } + + public String url() { + return url; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + RevenueWithdrawalStateSucceeded that = (RevenueWithdrawalStateSucceeded) o; + return Objects.equals(type(), that.type()) && + Objects.equals(date, that.date) && + Objects.equals(url, that.url); + } + + @Override + public int hashCode() { + return Objects.hash(type(), date, url); + } + + @Override + public String toString() { + return "RevenueWithdrawalStateSucceeded{" + + "type='" + type() + "\'," + + "date='" + date + "\'," + + "url='" + url + "\'" + + '}'; + } + +} diff --git a/library/src/main/java/com/pengrad/telegrambot/request/CreateInvoiceLink.java b/library/src/main/java/com/pengrad/telegrambot/request/CreateInvoiceLink.java index 08d6451f..5661a63d 100644 --- a/library/src/main/java/com/pengrad/telegrambot/request/CreateInvoiceLink.java +++ b/library/src/main/java/com/pengrad/telegrambot/request/CreateInvoiceLink.java @@ -20,6 +20,7 @@ public CreateInvoiceLink(String title, String description, String payload, Strin * Backward compatibility: API 7.4, parameter "provider_token" became optional * @deprecated Use constrcutor without 'provider_token' instead */ + @Deprecated public CreateInvoiceLink(String title, String description, String payload, String providerToken, String currency, LabeledPrice... prices) { super(StringResponse.class); diff --git a/library/src/main/java/com/pengrad/telegrambot/request/EditMessageCaption.java b/library/src/main/java/com/pengrad/telegrambot/request/EditMessageCaption.java index 199f8c7d..a01739d9 100644 --- a/library/src/main/java/com/pengrad/telegrambot/request/EditMessageCaption.java +++ b/library/src/main/java/com/pengrad/telegrambot/request/EditMessageCaption.java @@ -41,5 +41,8 @@ public EditMessageCaption replyMarkup(InlineKeyboardMarkup replyMarkup) { public EditMessageCaption showCaptionAboveMedia(Boolean showCaptionAboveMedia) { return add("show_caption_above_media", showCaptionAboveMedia); } + public EditMessageCaption businessConnectionId(String businessConnectionId) { + return add("business_connection_id", businessConnectionId); + } } diff --git a/library/src/main/java/com/pengrad/telegrambot/request/EditMessageLiveLocation.java b/library/src/main/java/com/pengrad/telegrambot/request/EditMessageLiveLocation.java index 35cd00f3..00700665 100644 --- a/library/src/main/java/com/pengrad/telegrambot/request/EditMessageLiveLocation.java +++ b/library/src/main/java/com/pengrad/telegrambot/request/EditMessageLiveLocation.java @@ -40,5 +40,8 @@ public EditMessageLiveLocation livePeriod(int livePeriod) { return add("live_period", livePeriod); } + public EditMessageLiveLocation businessConnectionId(String businessConnectionId) { + return add("business_connection_id", businessConnectionId); + } } diff --git a/library/src/main/java/com/pengrad/telegrambot/request/EditMessageMedia.java b/library/src/main/java/com/pengrad/telegrambot/request/EditMessageMedia.java index 3794733f..9bd0f91e 100644 --- a/library/src/main/java/com/pengrad/telegrambot/request/EditMessageMedia.java +++ b/library/src/main/java/com/pengrad/telegrambot/request/EditMessageMedia.java @@ -46,6 +46,10 @@ public EditMessageMedia replyMarkup(InlineKeyboardMarkup replyMarkup) { return add("reply_markup", replyMarkup); } + public EditMessageMedia businessConnectionId(String businessConnectionId) { + return add("business_connection_id", businessConnectionId); + } + @Override public boolean isMultipart() { return isMultipart; diff --git a/library/src/main/java/com/pengrad/telegrambot/request/EditMessageReplyMarkup.java b/library/src/main/java/com/pengrad/telegrambot/request/EditMessageReplyMarkup.java index cab32cfb..3ac338ef 100644 --- a/library/src/main/java/com/pengrad/telegrambot/request/EditMessageReplyMarkup.java +++ b/library/src/main/java/com/pengrad/telegrambot/request/EditMessageReplyMarkup.java @@ -24,4 +24,8 @@ public EditMessageReplyMarkup replyMarkup(InlineKeyboardMarkup replyMarkup) { return add("reply_markup", replyMarkup); } + public EditMessageReplyMarkup businessConnectionId(String businessConnectionId) { + return add("business_connection_id", businessConnectionId); + } + } 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 977210b2..fe3535d7 100644 --- a/library/src/main/java/com/pengrad/telegrambot/request/EditMessageText.java +++ b/library/src/main/java/com/pengrad/telegrambot/request/EditMessageText.java @@ -46,4 +46,8 @@ public EditMessageText replyMarkup(InlineKeyboardMarkup replyMarkup) { return add("reply_markup", replyMarkup); } + public EditMessageText businessConnectionId(String businessConnectionId) { + return add("business_connection_id", businessConnectionId); + } + } diff --git a/library/src/main/java/com/pengrad/telegrambot/request/GetStarTransactions.java b/library/src/main/java/com/pengrad/telegrambot/request/GetStarTransactions.java new file mode 100644 index 00000000..b5951c8a --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/request/GetStarTransactions.java @@ -0,0 +1,25 @@ +package com.pengrad.telegrambot.request; + +import com.pengrad.telegrambot.response.GetStarTransactionsResponse; + +/** + * Stas Parshin + * 28 May 2016 + */ +public class GetStarTransactions extends BaseRequest { + + public GetStarTransactions() { + super(GetStarTransactionsResponse.class); + } + + public GetStarTransactions offset(Integer offset) { + add("offset", offset); + return this; + } + + public GetStarTransactions limit(Integer limit) { + add("limit", limit); + return this; + } + +} diff --git a/library/src/main/java/com/pengrad/telegrambot/request/GetUserChatBoosts.java b/library/src/main/java/com/pengrad/telegrambot/request/GetUserChatBoosts.java index ef80de77..ec370525 100644 --- a/library/src/main/java/com/pengrad/telegrambot/request/GetUserChatBoosts.java +++ b/library/src/main/java/com/pengrad/telegrambot/request/GetUserChatBoosts.java @@ -4,7 +4,7 @@ public class GetUserChatBoosts extends BaseRequest { - public GetUserChatBoosts(Object chatId, Integer userId) { + public GetUserChatBoosts(Object chatId, Long userId) { super(UserChatBoostsResponse.class); add("chat_id", chatId).add("user_id", userId); } 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 32f9239c..cee64d26 100644 --- a/library/src/main/java/com/pengrad/telegrambot/request/PromoteChatMember.java +++ b/library/src/main/java/com/pengrad/telegrambot/request/PromoteChatMember.java @@ -52,6 +52,7 @@ public PromoteChatMember canDeleteStories(boolean canDeleteStories) { /** * @deprecated Use canManageVideoChats(boolean canManageVideoChats) instead */ + @Deprecated public PromoteChatMember canManageVoiceChats(boolean canManageVoiceChats) { return add("can_manage_video_chats", canManageVoiceChats); } diff --git a/library/src/main/java/com/pengrad/telegrambot/request/SendPaidMedia.java b/library/src/main/java/com/pengrad/telegrambot/request/SendPaidMedia.java new file mode 100644 index 00000000..b5804650 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/request/SendPaidMedia.java @@ -0,0 +1,63 @@ +package com.pengrad.telegrambot.request; + +import com.pengrad.telegrambot.model.MessageEntity; +import com.pengrad.telegrambot.model.request.*; +import com.pengrad.telegrambot.response.MessagesResponse; +import com.pengrad.telegrambot.response.SendResponse; + +import java.io.File; +import java.util.Map; + +public class SendPaidMedia extends BaseRequest { + + + public SendPaidMedia(Object chatId, Integer starCount, InputPaidMedia... media) { + super(SendResponse.class); + add("chat_id", chatId).add("star_count", starCount).add("media", media); + } + + public SendPaidMedia caption(String caption) { + return add("caption", caption); + } + + public SendPaidMedia parseMode(ParseMode parseMode) { + return add("parse_mode", parseMode.name()); + } + + public SendPaidMedia captionEntities(MessageEntity... entities) { + return add("caption_entities", entities); + } + + public SendPaidMedia showCaptionAboveMedia(boolean showCaptionAboveMedia) { + return add("show_caption_above_media", showCaptionAboveMedia); + } + + public SendPaidMedia disableNotification(boolean disableNotification) { + return add("disable_notification", disableNotification); + } + + public SendPaidMedia protectContent(boolean protectContent) { + return add("protect_content", protectContent); + } + + public SendPaidMedia replyParameters(ReplyParameters replyParameters) { + return add("reply_parameters", replyParameters); + } + + public SendPaidMedia replyMarkup(InlineKeyboardMarkup replyMarkup) { + return add("reply_markup", replyMarkup); + } + + public SendPaidMedia replyMarkup(ReplyKeyboardMarkup replyMarkup) { + return add("reply_markup", replyMarkup); + } + + public SendPaidMedia replyMarkup(ReplyKeyboardRemove replyMarkup) { + return add("reply_markup", replyMarkup); + } + + public SendPaidMedia replyMarkup(ForceReply replyMarkup) { + return add("reply_markup", replyMarkup); + } + +} diff --git a/library/src/main/java/com/pengrad/telegrambot/request/StopMessageLiveLocation.java b/library/src/main/java/com/pengrad/telegrambot/request/StopMessageLiveLocation.java index 9869471e..ab89466b 100644 --- a/library/src/main/java/com/pengrad/telegrambot/request/StopMessageLiveLocation.java +++ b/library/src/main/java/com/pengrad/telegrambot/request/StopMessageLiveLocation.java @@ -23,4 +23,8 @@ public StopMessageLiveLocation(String inlineMessageId) { public StopMessageLiveLocation replyMarkup(InlineKeyboardMarkup replyMarkup) { return add("reply_markup", replyMarkup); } + + public StopMessageLiveLocation businessConnectionId(String businessConnectionId) { + return add("business_connection_id", businessConnectionId); + } } diff --git a/library/src/main/java/com/pengrad/telegrambot/request/StopPoll.java b/library/src/main/java/com/pengrad/telegrambot/request/StopPoll.java index 2a19e356..53ffe9df 100644 --- a/library/src/main/java/com/pengrad/telegrambot/request/StopPoll.java +++ b/library/src/main/java/com/pengrad/telegrambot/request/StopPoll.java @@ -17,4 +17,8 @@ public StopPoll(Object chatId, int messageId) { public StopPoll replyMarkup(Keyboard replyMarkup) { return add("reply_markup", replyMarkup); } + + public StopPoll businessConnectionId(String businessConnectionId) { + return add("business_connection_id", businessConnectionId); + } } diff --git a/library/src/main/java/com/pengrad/telegrambot/response/GetStarTransactionsResponse.java b/library/src/main/java/com/pengrad/telegrambot/response/GetStarTransactionsResponse.java new file mode 100644 index 00000000..7ae1a282 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/response/GetStarTransactionsResponse.java @@ -0,0 +1,21 @@ +package com.pengrad.telegrambot.response; + +import com.pengrad.telegrambot.model.stars.StarTransactions; + +import java.util.Objects; + +public class GetStarTransactionsResponse extends BaseResponse { + + private StarTransactions result; + + public StarTransactions result() { + return result; + } + + @Override + public String toString() { + return "GetStarTransactionsResponse{" + + "result=" + Objects.toString(result) + + '}'; + } +} 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 3d001a39..4f34db74 100644 --- a/library/src/main/java/com/pengrad/telegrambot/utility/BotUtils.java +++ b/library/src/main/java/com/pengrad/telegrambot/utility/BotUtils.java @@ -9,13 +9,11 @@ import com.pengrad.telegrambot.model.chatboost.source.ChatBoostSource; import com.pengrad.telegrambot.model.message.MaybeInaccessibleMessage; 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.utility.gson.BackgroundFillAdapter; -import com.pengrad.telegrambot.utility.gson.BackgroundTypeAdapter; -import com.pengrad.telegrambot.utility.gson.ChatBoostSourceTypeAdapter; -import com.pengrad.telegrambot.utility.gson.MaybeInaccessibleMessageTypeAdapter; -import com.pengrad.telegrambot.utility.gson.MessageOriginTypeAdapter; -import com.pengrad.telegrambot.utility.gson.ReactionTypeAdapter; +import com.pengrad.telegrambot.model.stars.partner.TransactionPartner; +import com.pengrad.telegrambot.model.stars.withdrawal.RevenueWithdrawalState; +import com.pengrad.telegrambot.utility.gson.*; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -37,6 +35,9 @@ private BotUtils() {} .registerTypeAdapter(MaybeInaccessibleMessage.class, new MaybeInaccessibleMessageTypeAdapter()) .registerTypeAdapter(BackgroundType.class, new BackgroundTypeAdapter()) .registerTypeAdapter(BackgroundFill.class, new BackgroundFillAdapter()) + .registerTypeAdapter(RevenueWithdrawalState.class, new RevenueWithdrawalStateTypeAdapter()) + .registerTypeAdapter(TransactionPartner.class, new TransactionPartnerTypeAdapter()) + .registerTypeAdapter(PaidMedia.class, new PaidMediaTypeAdapter()) .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES) .create(); diff --git a/library/src/main/java/com/pengrad/telegrambot/utility/gson/PaidMediaTypeAdapter.java b/library/src/main/java/com/pengrad/telegrambot/utility/gson/PaidMediaTypeAdapter.java new file mode 100644 index 00000000..c99b39c4 --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/utility/gson/PaidMediaTypeAdapter.java @@ -0,0 +1,28 @@ +package com.pengrad.telegrambot.utility.gson; + +import com.google.gson.*; +import com.pengrad.telegrambot.model.paidmedia.PaidMedia; +import com.pengrad.telegrambot.model.paidmedia.PaidMediaPhoto; +import com.pengrad.telegrambot.model.paidmedia.PaidMediaPreview; +import com.pengrad.telegrambot.model.paidmedia.PaidMediaVideo; + +import java.lang.reflect.Type; + +public class PaidMediaTypeAdapter implements JsonDeserializer { + + @Override + public PaidMedia deserialize(JsonElement element, Type type, JsonDeserializationContext context) throws JsonParseException { + JsonObject object = element.getAsJsonObject(); + String discriminator = object.getAsJsonPrimitive("type").getAsString(); + + if (PaidMediaPreview.TYPE.equals(discriminator)) { + return context.deserialize(object, PaidMediaPreview.class); + } else if (PaidMediaPhoto.TYPE.equals(discriminator)) { + return context.deserialize(object, PaidMediaPhoto.class); + } else if (PaidMediaVideo.TYPE.equals(discriminator)) { + return context.deserialize(object, PaidMediaVideo.class); + } + + return context.deserialize(object, PaidMedia.class); + } +} diff --git a/library/src/main/java/com/pengrad/telegrambot/utility/gson/RevenueWithdrawalStateTypeAdapter.java b/library/src/main/java/com/pengrad/telegrambot/utility/gson/RevenueWithdrawalStateTypeAdapter.java new file mode 100644 index 00000000..a5376fad --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/utility/gson/RevenueWithdrawalStateTypeAdapter.java @@ -0,0 +1,28 @@ +package com.pengrad.telegrambot.utility.gson; + +import com.google.gson.*; +import com.pengrad.telegrambot.model.stars.withdrawal.RevenueWithdrawalState; +import com.pengrad.telegrambot.model.stars.withdrawal.RevenueWithdrawalStateFailed; +import com.pengrad.telegrambot.model.stars.withdrawal.RevenueWithdrawalStatePending; +import com.pengrad.telegrambot.model.stars.withdrawal.RevenueWithdrawalStateSucceeded; + +import java.lang.reflect.Type; + +public class RevenueWithdrawalStateTypeAdapter implements JsonDeserializer { + + @Override + public RevenueWithdrawalState deserialize(JsonElement element, Type type, JsonDeserializationContext context) throws JsonParseException { + JsonObject object = element.getAsJsonObject(); + String discriminator = object.getAsJsonPrimitive("type").getAsString(); + + if (RevenueWithdrawalStatePending.TYPE.equals(discriminator)) { + return context.deserialize(object, RevenueWithdrawalStatePending.class); + } else if (RevenueWithdrawalStateSucceeded.TYPE.equals(discriminator)) { + return context.deserialize(object, RevenueWithdrawalStateSucceeded.class); + } else if (RevenueWithdrawalStateFailed.TYPE.equals(discriminator)) { + return context.deserialize(object, RevenueWithdrawalStateFailed.class); + } + + return context.deserialize(object, RevenueWithdrawalState.class); + } +} diff --git a/library/src/main/java/com/pengrad/telegrambot/utility/gson/TransactionPartnerTypeAdapter.java b/library/src/main/java/com/pengrad/telegrambot/utility/gson/TransactionPartnerTypeAdapter.java new file mode 100644 index 00000000..75bd171b --- /dev/null +++ b/library/src/main/java/com/pengrad/telegrambot/utility/gson/TransactionPartnerTypeAdapter.java @@ -0,0 +1,31 @@ +package com.pengrad.telegrambot.utility.gson; + +import com.google.gson.*; +import com.pengrad.telegrambot.model.stars.partner.*; +import com.pengrad.telegrambot.model.stars.withdrawal.RevenueWithdrawalState; +import com.pengrad.telegrambot.model.stars.withdrawal.RevenueWithdrawalStateFailed; +import com.pengrad.telegrambot.model.stars.withdrawal.RevenueWithdrawalStatePending; +import com.pengrad.telegrambot.model.stars.withdrawal.RevenueWithdrawalStateSucceeded; + +import java.lang.reflect.Type; + +public class TransactionPartnerTypeAdapter implements JsonDeserializer { + + @Override + public TransactionPartner deserialize(JsonElement element, Type type, JsonDeserializationContext context) throws JsonParseException { + JsonObject object = element.getAsJsonObject(); + String discriminator = object.getAsJsonPrimitive("type").getAsString(); + + if (TransactionPartnerUser.TYPE.equals(discriminator)) { + return context.deserialize(object, TransactionPartnerUser.class); + } else if (TransactionPartnerFragment.TYPE.equals(discriminator)) { + return context.deserialize(object, TransactionPartnerFragment.class); + } else if (TransactionPartnerTelegramAds.TYPE.equals(discriminator)) { + return context.deserialize(object, TransactionPartnerTelegramAds.class); + } else if (TransactionPartnerOther.TYPE.equals(discriminator)) { + return context.deserialize(object, TransactionPartnerOther.class); + } + + return context.deserialize(object, TransactionPartner.class); + } +} diff --git a/library/src/test/java/com/pengrad/telegrambot/TelegramBotTest.java b/library/src/test/java/com/pengrad/telegrambot/TelegramBotTest.java index dce86e3b..24e007c4 100644 --- a/library/src/test/java/com/pengrad/telegrambot/TelegramBotTest.java +++ b/library/src/test/java/com/pengrad/telegrambot/TelegramBotTest.java @@ -1220,7 +1220,7 @@ public void setMessageReaction() { @Test public void getUserChatBoosts() { - ChatBoost[] chatBoosts = bot.execute(new GetUserChatBoosts(channelId, chatId.intValue())).boosts(); + ChatBoost[] chatBoosts = bot.execute(new GetUserChatBoosts(channelId, chatId.longValue())).boosts(); assertEquals(chatBoosts.length, 0); } diff --git a/pom.xml b/pom.xml index 791cfbc1..9493b2f4 100644 --- a/pom.xml +++ b/pom.xml @@ -1,5 +1,5 @@ - @@ -9,7 +9,7 @@ 4.0.0 com.github.pengrad java-telegram-bot-api - 7.4.0 + 7.7.0 JavaTelegramBotApi Java API for Telegram Bot API https://github.com/pengrad/java-telegram-bot-api/