Skip to content

Commit 009bba0

Browse files
committed
Fix send files requests to take String, File or byte[]
1 parent c54cb6e commit 009bba0

File tree

8 files changed

+139
-50
lines changed

8 files changed

+139
-50
lines changed

src/main/java/com/pengrad/telegrambot/OldTelegramBot.java

Lines changed: 24 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -66,21 +66,20 @@ public SendResponse forwardMessage(Object chatId, Object fromChatId, Integer mes
6666

6767
@Deprecated
6868
public SendResponse sendPhoto(Object chatId, String photo, String caption, Integer replyToMessageId, Keyboard replyMarkup) {
69-
return sendPhoto(chatId, photo, caption, replyToMessageId, replyMarkup, false);
69+
return sendPhoto(new SendPhoto(chatId, photo), caption, replyToMessageId, replyMarkup);
7070
}
7171

7272
@Deprecated
7373
public SendResponse sendPhoto(Object chatId, InputFile photo, String caption, Integer replyToMessageId, Keyboard replyMarkup) {
74-
return sendPhoto(chatId, photo.getFile(), caption, replyToMessageId, replyMarkup, true);
74+
return sendPhoto(new SendPhoto(chatId, photo.getFile()), caption, replyToMessageId, replyMarkup);
7575
}
7676

7777
@Deprecated
7878
public SendResponse sendPhoto(Object chatId, InputFileBytes photo, String caption, Integer replyToMessageId, Keyboard replyMarkup) {
79-
return sendPhoto(chatId, photo.getBytes(), caption, replyToMessageId, replyMarkup, true);
79+
return sendPhoto(new SendPhoto(chatId, photo.getBytes()), caption, replyToMessageId, replyMarkup);
8080
}
8181

82-
private SendResponse sendPhoto(Object chatId, Object photo, String caption, Integer replyToMessageId, Keyboard replyMarkup, boolean isMultipart) {
83-
SendPhoto request = new SendPhoto(chatId, photo, isMultipart);
82+
private SendResponse sendPhoto(SendPhoto request, String caption, Integer replyToMessageId, Keyboard replyMarkup) {
8483
if (caption != null) request.caption(caption);
8584
if (replyToMessageId != null) request.replyToMessageId(replyToMessageId);
8685
if (replyMarkup != null) request.replyMarkup(replyMarkup);
@@ -89,21 +88,20 @@ private SendResponse sendPhoto(Object chatId, Object photo, String caption, Inte
8988

9089
@Deprecated
9190
public SendResponse sendAudio(Object chatId, String audio, Integer duration, String performer, String title, Integer replyToMessageId, Keyboard replyMarkup) {
92-
return sendAudio(chatId, audio, duration, performer, title, replyToMessageId, replyMarkup, false);
91+
return sendAudio(new SendAudio(chatId, audio), duration, performer, title, replyToMessageId, replyMarkup, false);
9392
}
9493

9594
@Deprecated
9695
public SendResponse sendAudio(Object chatId, InputFile audio, Integer duration, String performer, String title, Integer replyToMessageId, Keyboard replyMarkup) {
97-
return sendAudio(chatId, audio.getFile(), duration, performer, title, replyToMessageId, replyMarkup, true);
96+
return sendAudio(new SendAudio(chatId, audio.getFile()), duration, performer, title, replyToMessageId, replyMarkup, true);
9897
}
9998

10099
@Deprecated
101100
public SendResponse sendAudio(Object chatId, InputFileBytes audio, Integer duration, String performer, String title, Integer replyToMessageId, Keyboard replyMarkup) {
102-
return sendAudio(chatId, audio.getBytes(), duration, performer, title, replyToMessageId, replyMarkup, true);
101+
return sendAudio(new SendAudio(chatId, audio.getBytes()), duration, performer, title, replyToMessageId, replyMarkup, true);
103102
}
104103

105-
private SendResponse sendAudio(Object chatId, Object audio, Integer duration, String performer, String title, Integer replyToMessageId, Keyboard replyMarkup, boolean isMultipart) {
106-
SendAudio request = new SendAudio(chatId, audio, isMultipart);
104+
private SendResponse sendAudio(SendAudio request, Integer duration, String performer, String title, Integer replyToMessageId, Keyboard replyMarkup, boolean isMultipart) {
107105
if (duration != null) request.duration(duration);
108106
if (performer != null) request.performer(performer);
109107
if (title != null) request.title(title);
@@ -114,65 +112,62 @@ private SendResponse sendAudio(Object chatId, Object audio, Integer duration, St
114112

115113
@Deprecated
116114
public SendResponse sendDocument(Object chatId, String document, Integer replyToMessageId, Keyboard replyMarkup) {
117-
return sendDocument(chatId, document, replyToMessageId, replyMarkup, false);
115+
return sendDocument(new SendDocument(chatId, document), replyToMessageId, replyMarkup, false);
118116
}
119117

120118
@Deprecated
121119
public SendResponse sendDocument(Object chatId, InputFile document, Integer replyToMessageId, Keyboard replyMarkup) {
122-
return sendDocument(chatId, document.getFile(), replyToMessageId, replyMarkup, true);
120+
return sendDocument(new SendDocument(chatId, document.getFile()), replyToMessageId, replyMarkup, true);
123121
}
124122

125123
@Deprecated
126124
public SendResponse sendDocument(Object chatId, InputFileBytes document, Integer replyToMessageId, Keyboard replyMarkup) {
127-
return sendDocument(chatId, document.getBytes(), replyToMessageId, replyMarkup, true);
125+
return sendDocument(new SendDocument(chatId, document.getBytes()), replyToMessageId, replyMarkup, true);
128126
}
129127

130-
private SendResponse sendDocument(Object chatId, Object document, Integer replyToMessageId, Keyboard replyMarkup, boolean isMultipart) {
131-
SendDocument request = new SendDocument(chatId, document, isMultipart);
128+
private SendResponse sendDocument(SendDocument request, Integer replyToMessageId, Keyboard replyMarkup, boolean isMultipart) {
132129
if (replyToMessageId != null) request.replyToMessageId(replyToMessageId);
133130
if (replyMarkup != null) request.replyMarkup(replyMarkup);
134131
return execute(request);
135132
}
136133

137134
@Deprecated
138135
public SendResponse sendSticker(Object chatId, String sticker, Integer replyToMessageId, Keyboard replyMarkup) {
139-
return sendSticker(chatId, sticker, replyToMessageId, replyMarkup, false);
136+
return sendSticker(new SendSticker(chatId, sticker), replyToMessageId, replyMarkup, false);
140137
}
141138

142139
@Deprecated
143140
public SendResponse sendSticker(Object chatId, InputFile sticker, Integer replyToMessageId, Keyboard replyMarkup) {
144-
return sendSticker(chatId, sticker.getFile(), replyToMessageId, replyMarkup, true);
141+
return sendSticker(new SendSticker(chatId, sticker.getFile()), replyToMessageId, replyMarkup, true);
145142
}
146143

147144
@Deprecated
148145
public SendResponse sendSticker(Object chatId, InputFileBytes sticker, Integer replyToMessageId, Keyboard replyMarkup) {
149-
return sendSticker(chatId, sticker.getBytes(), replyToMessageId, replyMarkup, true);
146+
return sendSticker(new SendSticker(chatId, sticker.getBytes()), replyToMessageId, replyMarkup, true);
150147
}
151148

152-
private SendResponse sendSticker(Object chatId, Object sticker, Integer replyToMessageId, Keyboard replyMarkup, boolean isMultipart) {
153-
SendSticker request = new SendSticker(chatId, sticker, isMultipart);
149+
private SendResponse sendSticker(SendSticker request, Integer replyToMessageId, Keyboard replyMarkup, boolean isMultipart) {
154150
if (replyToMessageId != null) request.replyToMessageId(replyToMessageId);
155151
if (replyMarkup != null) request.replyMarkup(replyMarkup);
156152
return execute(request);
157153
}
158154

159155
@Deprecated
160156
public SendResponse sendVideo(Object chatId, String video, Integer duration, String caption, Integer replyToMessageId, Keyboard replyMarkup) {
161-
return sendVideo(chatId, video, duration, caption, replyToMessageId, replyMarkup, false);
157+
return sendVideo(new SendVideo(chatId, video), duration, caption, replyToMessageId, replyMarkup, false);
162158
}
163159

164160
@Deprecated
165161
public SendResponse sendVideo(Object chatId, InputFile video, Integer duration, String caption, Integer replyToMessageId, Keyboard replyMarkup) {
166-
return sendVideo(chatId, video.getFile(), duration, caption, replyToMessageId, replyMarkup, true);
162+
return sendVideo(new SendVideo(chatId, video.getFile()), duration, caption, replyToMessageId, replyMarkup, true);
167163
}
168164

169165
@Deprecated
170166
public SendResponse sendVideo(Object chatId, InputFileBytes video, Integer duration, String caption, Integer replyToMessageId, Keyboard replyMarkup) {
171-
return sendVideo(chatId, video.getBytes(), duration, caption, replyToMessageId, replyMarkup, true);
167+
return sendVideo(new SendVideo(chatId, video.getBytes()), duration, caption, replyToMessageId, replyMarkup, true);
172168
}
173169

174-
private SendResponse sendVideo(Object chatId, Object video, Integer duration, String caption, Integer replyToMessageId, Keyboard replyMarkup, boolean isMultipart) {
175-
SendVideo request = new SendVideo(chatId, video, isMultipart);
170+
private SendResponse sendVideo(SendVideo request, Integer duration, String caption, Integer replyToMessageId, Keyboard replyMarkup, boolean isMultipart) {
176171
if (duration != null) request.duration(duration);
177172
if (caption != null) request.caption(caption);
178173
if (replyToMessageId != null) request.replyToMessageId(replyToMessageId);
@@ -182,21 +177,20 @@ private SendResponse sendVideo(Object chatId, Object video, Integer duration, St
182177

183178
@Deprecated
184179
public SendResponse sendVoice(Object chatId, String voice, Integer duration, Integer replyToMessageId, Keyboard replyMarkup) {
185-
return sendVoice(chatId, voice, duration, replyToMessageId, replyMarkup, false);
180+
return sendVoice(new SendVoice(chatId, voice), duration, replyToMessageId, replyMarkup, false);
186181
}
187182

188183
@Deprecated
189184
public SendResponse sendVoice(Object chatId, InputFile voice, Integer duration, Integer replyToMessageId, Keyboard replyMarkup) {
190-
return sendVoice(chatId, voice.getFile(), duration, replyToMessageId, replyMarkup, true);
185+
return sendVoice(new SendVoice(chatId, voice.getFile()), duration, replyToMessageId, replyMarkup, true);
191186
}
192187

193188
@Deprecated
194189
public SendResponse sendVoice(Object chatId, InputFileBytes voice, Integer duration, Integer replyToMessageId, Keyboard replyMarkup) {
195-
return sendVoice(chatId, voice.getBytes(), duration, replyToMessageId, replyMarkup, true);
190+
return sendVoice(new SendVoice(chatId, voice.getBytes()), duration, replyToMessageId, replyMarkup, true);
196191
}
197192

198-
private SendResponse sendVoice(Object chatId, Object voice, Integer duration, Integer replyToMessageId, Keyboard replyMarkup, boolean isMultipart) {
199-
SendVoice request = new SendVoice(chatId, voice, isMultipart);
193+
private SendResponse sendVoice(SendVoice request, Integer duration, Integer replyToMessageId, Keyboard replyMarkup, boolean isMultipart) {
200194
if (duration != null) request.duration(duration);
201195
if (replyToMessageId != null) request.replyToMessageId(replyToMessageId);
202196
if (replyMarkup != null) request.replyMarkup(replyMarkup);

src/main/java/com/pengrad/telegrambot/request/AbstractMultipartRequest.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.pengrad.telegrambot.request;
22

3+
import java.io.File;
4+
35
/**
46
* stas
57
* 5/1/16.
@@ -8,16 +10,25 @@ abstract public class AbstractMultipartRequest<T extends AbstractMultipartReques
810

911
private final boolean isMultipart;
1012

11-
public AbstractMultipartRequest(Object chatId, boolean isMultipart) {
13+
public AbstractMultipartRequest(Object chatId, Object file) {
1214
super(chatId);
13-
this.isMultipart = isMultipart;
15+
if (file instanceof String) {
16+
isMultipart = false;
17+
} else if (file instanceof File || file instanceof byte[]) {
18+
isMultipart = true;
19+
} else {
20+
throw new IllegalArgumentException("Sending data should be String, File or byte[]");
21+
}
22+
add(getFileParamName(), file);
1423
}
1524

1625
@Override
1726
public boolean isMultipart() {
1827
return isMultipart;
1928
}
2029

30+
abstract protected String getFileParamName();
31+
2132
@Override
2233
abstract public String getFileName();
2334

src/main/java/com/pengrad/telegrambot/request/SendAudio.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
11
package com.pengrad.telegrambot.request;
22

3+
import java.io.File;
4+
35
/**
46
* stas
57
* 5/2/16.
68
*/
79
public class SendAudio extends AbstractMultipartRequest<SendAudio> {
810

9-
public SendAudio(Object chatId, Object audio, boolean isMultipart) {
10-
super(chatId, isMultipart);
11-
add("audio", audio);
11+
public SendAudio(Object chatId, String audio) {
12+
super(chatId, audio);
13+
}
14+
15+
public SendAudio(Object chatId, File audio) {
16+
super(chatId, audio);
17+
}
18+
19+
public SendAudio(Object chatId, byte[] audio) {
20+
super(chatId, audio);
1221
}
1322

1423
public SendAudio duration(int duration) {
@@ -23,6 +32,11 @@ public SendAudio title(String title) {
2332
return add("title", title);
2433
}
2534

35+
@Override
36+
protected String getFileParamName() {
37+
return "audio";
38+
}
39+
2640
@Override
2741
public String getFileName() {
2842
return ContentTypes.AUDIO_FILE_NAME;

src/main/java/com/pengrad/telegrambot/request/SendDocument.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,34 @@
11
package com.pengrad.telegrambot.request;
22

3+
import java.io.File;
4+
35
/**
46
* stas
57
* 5/2/16.
68
*/
79
public class SendDocument extends AbstractMultipartRequest<SendDocument> {
810

9-
public SendDocument(Object chatId, Object document, boolean isMultipart) {
10-
super(chatId, isMultipart);
11-
add("document", document);
11+
public SendDocument(Object chatId, String document) {
12+
super(chatId, document);
13+
}
14+
15+
public SendDocument(Object chatId, File document) {
16+
super(chatId, document);
17+
}
18+
19+
public SendDocument(Object chatId, byte[] document) {
20+
super(chatId, document);
1221
}
1322

1423
public SendDocument caption(String caption) {
1524
return add("caption", caption);
1625
}
1726

27+
@Override
28+
protected String getFileParamName() {
29+
return "document";
30+
}
31+
1832
@Override
1933
public String getFileName() {
2034
return ContentTypes.DOC_FILE_NAME;

src/main/java/com/pengrad/telegrambot/request/SendPhoto.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,34 @@
11
package com.pengrad.telegrambot.request;
22

3+
import java.io.File;
4+
35
/**
46
* stas
57
* 5/1/16.
68
*/
79
public class SendPhoto extends AbstractMultipartRequest<SendPhoto> {
810

9-
public SendPhoto(Object chatId, Object photo, boolean isMultipart) {
10-
super(chatId, isMultipart);
11-
add("photo", photo);
11+
public SendPhoto(Object chatId, String photo) {
12+
super(chatId, photo);
13+
}
14+
15+
public SendPhoto(Object chatId, File photo) {
16+
super(chatId, photo);
17+
}
18+
19+
public SendPhoto(Object chatId, byte[] photo) {
20+
super(chatId, photo);
1221
}
1322

1423
public SendPhoto caption(String caption) {
1524
return add("caption", caption);
1625
}
1726

27+
@Override
28+
protected String getFileParamName() {
29+
return "photo";
30+
}
31+
1832
@Override
1933
public String getFileName() {
2034
return ContentTypes.PHOTO_FILE_NAME;

src/main/java/com/pengrad/telegrambot/request/SendSticker.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,28 @@
11
package com.pengrad.telegrambot.request;
22

3+
import java.io.File;
4+
35
/**
46
* stas
57
* 5/2/16.
68
*/
79
public class SendSticker extends AbstractMultipartRequest<SendSticker> {
810

9-
public SendSticker(Object chatId, Object sticker, boolean isMultipart) {
10-
super(chatId, isMultipart);
11-
add("sticker", sticker);
11+
public SendSticker(Object chatId, String sticker) {
12+
super(chatId, sticker);
13+
}
14+
15+
public SendSticker(Object chatId, File sticker) {
16+
super(chatId, sticker);
17+
}
18+
19+
public SendSticker(Object chatId, byte[] sticker) {
20+
super(chatId, sticker);
21+
}
22+
23+
@Override
24+
protected String getFileParamName() {
25+
return "sticker";
1226
}
1327

1428
@Override

src/main/java/com/pengrad/telegrambot/request/SendVideo.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
11
package com.pengrad.telegrambot.request;
22

3+
import java.io.File;
4+
35
/**
46
* stas
57
* 5/1/16.
68
*/
79
public class SendVideo extends AbstractMultipartRequest<SendVideo> {
810

9-
public SendVideo(Object chatId, Object video, boolean isMultipart) {
10-
super(chatId, isMultipart);
11-
add("video", video);
11+
public SendVideo(Object chatId, String video) {
12+
super(chatId, video);
13+
}
14+
15+
public SendVideo(Object chatId, File video) {
16+
super(chatId, video);
17+
}
18+
19+
public SendVideo(Object chatId, byte[] video) {
20+
super(chatId, video);
1221
}
1322

1423
public SendVideo duration(int duration) {
@@ -27,6 +36,11 @@ public SendVideo caption(String caption) {
2736
return add("caption", caption);
2837
}
2938

39+
@Override
40+
protected String getFileParamName() {
41+
return "video";
42+
}
43+
3044
@Override
3145
public String getFileName() {
3246
return ContentTypes.VIDEO_FILE_NAME;

0 commit comments

Comments
 (0)