From 8a5c6c0d4d87a80ba77dfd512ed08f20cfaaf1e0 Mon Sep 17 00:00:00 2001 From: Mirco Ianese Date: Thu, 4 Jul 2024 09:19:44 +0200 Subject: [PATCH 01/16] BusinessConnection: use Long for the "user_chat_id" fields --- .../telegrambot/model/business/BusinessConnection.java | 4 ++-- .../com/pengrad/telegrambot/request/GetUserChatBoosts.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) 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/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); } From 96dcc3962df0a9a36b182eb6792e2b1a44460bd2 Mon Sep 17 00:00:00 2001 From: Mirco Ianese Date: Thu, 4 Jul 2024 09:51:54 +0200 Subject: [PATCH 02/16] Fix tests --- .../src/test/java/com/pengrad/telegrambot/TelegramBotTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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); } From e942f8f7fd0b2d7628978fd7b3df01f7d5e4be54 Mon Sep 17 00:00:00 2001 From: Mirco Ianese Date: Thu, 4 Jul 2024 10:36:30 +0200 Subject: [PATCH 03/16] Added missing "@Deprecated" keyword --- .../src/main/java/com/pengrad/telegrambot/model/ChatMember.java | 1 + .../telegrambot/model/request/InputInvoiceMessageContent.java | 1 + .../java/com/pengrad/telegrambot/request/CreateInvoiceLink.java | 1 + .../java/com/pengrad/telegrambot/request/PromoteChatMember.java | 1 + 4 files changed, 4 insertions(+) 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/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/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/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); } From 8610232c73171a006b1436f0270115dd66a81416 Mon Sep 17 00:00:00 2001 From: Mirco Ianese Date: Thu, 4 Jul 2024 10:48:09 +0200 Subject: [PATCH 04/16] Added the classes StarTransactions, StarTransaction, TransactionPartner and RevenueWithdrawalState, containing information about Telegram Star transactions involving the bot --- .../model/stars/StarTransaction.java | 70 +++++++++++++++++++ .../model/stars/StarTransactions.java | 38 ++++++++++ .../stars/partner/TransactionPartner.java | 41 +++++++++++ .../partner/TransactionPartnerFragment.java | 43 ++++++++++++ .../partner/TransactionPartnerOther.java | 34 +++++++++ .../TransactionPartnerTelegramAds.java | 34 +++++++++ .../stars/partner/TransactionPartnerUser.java | 52 ++++++++++++++ .../withdrawal/RevenueWithdrawalState.java | 43 ++++++++++++ .../RevenueWithdrawalStateFailed.java | 19 +++++ .../RevenueWithdrawalStatePending.java | 19 +++++ .../RevenueWithdrawalStateSucceeded.java | 48 +++++++++++++ .../pengrad/telegrambot/utility/BotUtils.java | 11 ++- .../RevenueWithdrawalStateTypeAdapter.java | 28 ++++++++ .../gson/TransactionPartnerTypeAdapter.java | 31 ++++++++ 14 files changed, 505 insertions(+), 6 deletions(-) create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/stars/StarTransaction.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/stars/StarTransactions.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartner.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartnerFragment.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartnerOther.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartnerTelegramAds.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartnerUser.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalState.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalStateFailed.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalStatePending.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalStateSucceeded.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/utility/gson/RevenueWithdrawalStateTypeAdapter.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/utility/gson/TransactionPartnerTypeAdapter.java 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/utility/BotUtils.java b/library/src/main/java/com/pengrad/telegrambot/utility/BotUtils.java index 3d001a39..72ffd45f 100644 --- a/library/src/main/java/com/pengrad/telegrambot/utility/BotUtils.java +++ b/library/src/main/java/com/pengrad/telegrambot/utility/BotUtils.java @@ -10,12 +10,9 @@ import com.pengrad.telegrambot.model.message.MaybeInaccessibleMessage; import com.pengrad.telegrambot.model.message.origin.MessageOrigin; 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 +34,8 @@ 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()) .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES) .create(); 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); + } +} From 346ee24094aefdf7e18d774f6ff75375a6194199 Mon Sep 17 00:00:00 2001 From: Mirco Ianese Date: Thu, 4 Jul 2024 10:51:44 +0200 Subject: [PATCH 05/16] Fix MessageOrigin missing constructor --- .../telegrambot/model/message/origin/MessageOrigin.java | 4 ++++ .../model/message/origin/MessageOriginChannel.java | 4 ++++ .../telegrambot/model/message/origin/MessageOriginChat.java | 3 +++ .../model/message/origin/MessageOriginHiddenUser.java | 4 ++++ .../telegrambot/model/message/origin/MessageOriginUser.java | 3 +++ 5 files changed, 18 insertions(+) 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; } From 9861c31f06f07f52cd40b2913cfc1d8dbededd4d Mon Sep 17 00:00:00 2001 From: Mirco Ianese Date: Thu, 4 Jul 2024 11:03:07 +0200 Subject: [PATCH 06/16] Added the method getStarTransactions --- .../request/GetStarTransactions.java | 25 +++++++++++++++++++ .../response/GetStarTransactionsResponse.java | 21 ++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 library/src/main/java/com/pengrad/telegrambot/request/GetStarTransactions.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/response/GetStarTransactionsResponse.java 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/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) + + '}'; + } +} From 92922a0db1fff0e4b3f45b0cdb4782c9a0731d59 Mon Sep 17 00:00:00 2001 From: Mirco Ianese Date: Thu, 4 Jul 2024 11:08:18 +0200 Subject: [PATCH 07/16] Added the parameter business_connection_id to the methods editMessageText, editMessageMedia, editMessageCaption, editMessageLiveLocation, stopMessageLiveLocation and editMessageReplyMarkup --- .../com/pengrad/telegrambot/request/EditMessageCaption.java | 3 +++ .../pengrad/telegrambot/request/EditMessageLiveLocation.java | 3 +++ .../com/pengrad/telegrambot/request/EditMessageMedia.java | 4 ++++ .../pengrad/telegrambot/request/EditMessageReplyMarkup.java | 4 ++++ .../java/com/pengrad/telegrambot/request/EditMessageText.java | 4 ++++ .../pengrad/telegrambot/request/StopMessageLiveLocation.java | 4 ++++ 6 files changed, 22 insertions(+) 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/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); + } } From 691b0ee496e0da54f2f7e2d72cca33e0b2b18e32 Mon Sep 17 00:00:00 2001 From: Mirco Ianese Date: Thu, 4 Jul 2024 11:08:55 +0200 Subject: [PATCH 08/16] Added the parameter business_connection_id to the method stopPoll --- .../main/java/com/pengrad/telegrambot/request/StopPoll.java | 4 ++++ 1 file changed, 4 insertions(+) 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); + } } From b59782f6f4289702a8088d140d2dc433f2e7d12b Mon Sep 17 00:00:00 2001 From: Mirco Ianese Date: Thu, 4 Jul 2024 14:37:41 +0200 Subject: [PATCH 09/16] Added the classes PaidMedia, PaidMediaInfo, PaidMediaPreview, PaidMediaPhoto and PaidMediaVideo --- .../model/paidmedia/PaidMedia.java | 41 +++++++++++++ .../model/paidmedia/PaidMediaPhoto.java | 44 ++++++++++++++ .../model/paidmedia/PaidMediaPreview.java | 57 +++++++++++++++++++ .../model/paidmedia/PaidMediaVideo.java | 44 ++++++++++++++ .../pengrad/telegrambot/utility/BotUtils.java | 2 + .../utility/gson/PaidMediaTypeAdapter.java | 28 +++++++++ 6 files changed, 216 insertions(+) create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMedia.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMediaPhoto.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMediaPreview.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMediaVideo.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/utility/gson/PaidMediaTypeAdapter.java 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/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/utility/BotUtils.java b/library/src/main/java/com/pengrad/telegrambot/utility/BotUtils.java index 72ffd45f..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,6 +9,7 @@ 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.model.stars.partner.TransactionPartner; import com.pengrad.telegrambot.model.stars.withdrawal.RevenueWithdrawalState; @@ -36,6 +37,7 @@ private BotUtils() {} .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); + } +} From 7fc42965929f19a35014cbcc23f264ed4756365c Mon Sep 17 00:00:00 2001 From: Mirco Ianese Date: Thu, 4 Jul 2024 15:18:18 +0200 Subject: [PATCH 10/16] Added the method sendPaidMedia and the classes InputPaidMedia, InputPaidMediaPhoto and InputPaidMediaVideo --- .../model/request/InputPaidMedia.java | 62 ++++++++++++++ .../model/request/InputPaidMediaPhoto.java | 35 ++++++++ .../model/request/InputPaidMediaVideo.java | 84 +++++++++++++++++++ .../telegrambot/request/SendPaidMedia.java | 63 ++++++++++++++ 4 files changed, 244 insertions(+) create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/request/InputPaidMedia.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/request/InputPaidMediaPhoto.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/request/InputPaidMediaVideo.java create mode 100644 library/src/main/java/com/pengrad/telegrambot/request/SendPaidMedia.java 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/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); + } + +} From 3db9f427dec84df556274c28d19a32de6b2a554d Mon Sep 17 00:00:00 2001 From: Mirco Ianese Date: Thu, 4 Jul 2024 15:20:22 +0200 Subject: [PATCH 11/16] Added the field can_send_paid_media to the class ChatFullInfo --- .../java/com/pengrad/telegrambot/model/ChatFullInfo.java | 6 ++++++ 1 file changed, 6 insertions(+) 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 + From 5654454b4d574da3ccff50ee7f3216e26e3dd32d Mon Sep 17 00:00:00 2001 From: Mirco Ianese Date: Thu, 4 Jul 2024 15:25:55 +0200 Subject: [PATCH 12/16] Added the field paid_media to the classes Message and ExternalReplyInfo --- .../telegrambot/model/ExternalReplyInfo.java | 10 +++- .../pengrad/telegrambot/model/Message.java | 9 ++++ .../model/paidmedia/PaidMediaInfo.java | 46 +++++++++++++++++++ 3 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMediaInfo.java 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..1ce20713 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; @@ -280,6 +283,10 @@ public Audio audio() { return audio; } + public PaidMediaInfo paidMedia() { + return paid_media; + } + public Document document() { return document; } @@ -540,6 +547,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) && @@ -630,6 +638,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 + 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) + "'" + + '}'; + } + +} From d908b0f7676af515c3fe7a43ae1f16e609f85b2f Mon Sep 17 00:00:00 2001 From: Mirco Ianese Date: Thu, 4 Jul 2024 15:34:30 +0200 Subject: [PATCH 13/16] Version bump to 7.6.0 --- README.md | 4 ++-- README_RU.md | 4 ++-- gradle.properties | 2 +- pom.xml | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 83f91b5a..2538533e 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.6.0' ``` Maven: ```xml com.github.pengrad java-telegram-bot-api - 7.4.0 + 7.6.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..100b98ec 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.6.0' ``` Maven: ```xml com.github.pengrad java-telegram-bot-api - 7.4.0 + 7.6.0 ``` Также JAR со всеми зависимостями можно найти [в релизах](https://github.com/pengrad/java-telegram-bot-api/releases). diff --git a/gradle.properties b/gradle.properties index 91d4e14a..43e7f867 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ GROUP=com.github.pengrad -VERSION_NAME=7.4.0 +VERSION_NAME=7.6.0 POM_DESCRIPTION=Java API for Telegram Bot API POM_URL=https://github.com/pengrad/java-telegram-bot-api/ diff --git a/pom.xml b/pom.xml index 791cfbc1..00a83f6c 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.6.0 JavaTelegramBotApi Java API for Telegram Bot API https://github.com/pengrad/java-telegram-bot-api/ From 6278a9d3edf1f25537f38c2adbc910a6de566b7e Mon Sep 17 00:00:00 2001 From: Mirco Ianese Date: Sun, 7 Jul 2024 15:49:04 +0200 Subject: [PATCH 14/16] Added the class RefundedPayment --- .../telegrambot/model/RefundedPayment.java | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 library/src/main/java/com/pengrad/telegrambot/model/RefundedPayment.java 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 + "'" + + '}'; + } + + +} From 6425ad29bca8775c79610303c1f50da0c6640fee Mon Sep 17 00:00:00 2001 From: Mirco Ianese Date: Sun, 7 Jul 2024 15:50:46 +0200 Subject: [PATCH 15/16] Added the field refunded_payment to the class Message --- .../main/java/com/pengrad/telegrambot/model/Message.java | 7 +++++++ 1 file changed, 7 insertions(+) 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 1ce20713..bb1d17c7 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/Message.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/Message.java @@ -77,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; @@ -399,6 +400,10 @@ public SuccessfulPayment successfulPayment() { return successful_payment; } + public RefundedPayment refundedPayment() { + return refunded_payment; + } + public Story story() { return story; } @@ -576,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) && @@ -667,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 + From cade9a7be5ce25eeee63c3ed0cd26b6d2972bf39 Mon Sep 17 00:00:00 2001 From: Mirco Ianese Date: Sun, 7 Jul 2024 15:51:49 +0200 Subject: [PATCH 16/16] Bump version to 7.7 --- README.md | 4 ++-- README_RU.md | 4 ++-- gradle.properties | 2 +- pom.xml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 2538533e..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.6.0' +implementation 'com.github.pengrad:java-telegram-bot-api:7.7.0' ``` Maven: ```xml com.github.pengrad java-telegram-bot-api - 7.6.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 100b98ec..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.6.0' +implementation 'com.github.pengrad:java-telegram-bot-api:7.7.0' ``` Maven: ```xml com.github.pengrad java-telegram-bot-api - 7.6.0 + 7.7.0 ``` Также JAR со всеми зависимостями можно найти [в релизах](https://github.com/pengrad/java-telegram-bot-api/releases). diff --git a/gradle.properties b/gradle.properties index 43e7f867..865d7b10 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ GROUP=com.github.pengrad -VERSION_NAME=7.6.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/pom.xml b/pom.xml index 00a83f6c..9493b2f4 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ 4.0.0 com.github.pengrad java-telegram-bot-api - 7.6.0 + 7.7.0 JavaTelegramBotApi Java API for Telegram Bot API https://github.com/pengrad/java-telegram-bot-api/