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/