Skip to content

Commit d714010

Browse files
authored
Add kTelegram for Kotlin Support (#53)
* Add kTelegram as a Kotlin extension * Add appropriate dependency scopes * Add typealias for ease of use
1 parent 1c8a087 commit d714010

File tree

21 files changed

+359
-11
lines changed

21 files changed

+359
-11
lines changed

jtelegrambotapi-core/src/main/java/com/jtelegram/api/TelegramBot.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public class TelegramBot {
2727
@Setter
2828
private User botInfo;
2929

30-
TelegramBot(TelegramBotRegistry registry, String apiKey) {
30+
protected TelegramBot(TelegramBotRegistry registry, String apiKey) {
3131
this.registry = registry;
3232
this.apiKey = apiKey;
3333
this.eventRegistry = new EventRegistry(this);

jtelegrambotapi-core/src/main/java/com/jtelegram/api/commands/CommandRegistry.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@
99
import com.jtelegram.api.message.entity.MessageEntity;
1010
import com.jtelegram.api.message.entity.MessageEntityType;
1111
import com.jtelegram.api.message.impl.TextMessage;
12+
import lombok.Getter;
1213

1314
import java.util.*;
1415
import java.util.stream.Collectors;
1516

1617
public class CommandRegistry implements EventHandler<TextMessageEvent> {
18+
@Getter
1719
private final TelegramBot bot;
1820
private final List<CommandFilter> listeners = new ArrayList<>();
1921

@@ -61,9 +63,7 @@ public void onEvent(TextMessageEvent event) {
6163
);
6264

6365
Command command = new Command(baseCommand, mentioned, argsList, message);
64-
long handled = listeners.stream()
65-
.filter(e -> e.test(event, command))
66-
.count();
66+
listeners.forEach(e -> e.test(event, command));
6767
// Log number of handlers that used the command?
6868
}
6969
}
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.jtelegram.api.events;
22

33
public interface EventHandler<E extends Event> {
4-
54
void onEvent(E event);
65
}

jtelegrambotapi-core/src/main/java/com/jtelegram/api/events/EventRegistry.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.jtelegram.api.events.inline.ChosenInlineResultEvent;
55
import com.jtelegram.api.requests.inline.AnswerInlineQuery;
66
import com.jtelegram.api.util.ExceptionThreadFactory;
7+
import lombok.Getter;
78

89
import java.util.ArrayList;
910
import java.util.List;
@@ -20,7 +21,9 @@
2021
*/
2122
public class EventRegistry {
2223
private final ThreadFactory factory = new ExceptionThreadFactory();
24+
@Getter
2325
private final TelegramBot bot;
26+
@Getter
2427
private final ExecutorService threadPool;
2528

2629
private Map<Class<? extends Event>, List<EventHandler<? extends Event>>> handlers = new ConcurrentHashMap<>();

jtelegrambotapi-core/src/main/java/com/jtelegram/api/requests/framework/AbstractTelegramRequest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import lombok.AccessLevel;
1010
import lombok.AllArgsConstructor;
1111
import lombok.EqualsAndHashCode;
12+
import lombok.Setter;
1213
import okhttp3.Response;
1314

1415
import java.io.IOException;
@@ -20,7 +21,8 @@ public abstract class AbstractTelegramRequest implements TelegramRequest {
2021
// utility field
2122
protected transient static Gson gson = TelegramBotRegistry.GSON;
2223
private transient final String endPoint;
23-
protected transient final Consumer<TelegramException> errorHandler;
24+
@Setter
25+
protected transient Consumer<TelegramException> errorHandler;
2426

2527
protected void handleError(TelegramException ex) {
2628
if (errorHandler == null) {

jtelegrambotapi-core/src/main/java/com/jtelegram/api/requests/framework/QueryTelegramRequest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.google.gson.JsonElement;
44
import com.jtelegram.api.ex.TelegramException;
55
import lombok.EqualsAndHashCode;
6+
import lombok.Setter;
67
import okhttp3.Response;
78

89
import java.io.IOException;
@@ -14,7 +15,8 @@
1415
*/
1516
@EqualsAndHashCode(callSuper = true)
1617
public abstract class QueryTelegramRequest<T> extends AbstractTelegramRequest {
17-
private transient final Consumer<T> callback;
18+
@Setter
19+
private Consumer<T> callback;
1820
private transient final Class<T> callbackType;
1921

2022
protected QueryTelegramRequest(String endPoint, Class<T> callbackType, Consumer<T> callback, Consumer<TelegramException> errorHandler) {

jtelegrambotapi-core/src/main/java/com/jtelegram/api/requests/framework/UpdateTelegramRequest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.jtelegram.api.requests.framework;
22

33
import com.jtelegram.api.ex.TelegramException;
4+
import lombok.Setter;
45
import okhttp3.Response;
56

67
import java.io.IOException;
@@ -14,6 +15,7 @@
1415
*
1516
*/
1617
public abstract class UpdateTelegramRequest extends AbstractTelegramRequest {
18+
@Setter
1719
protected transient Runnable callback;
1820

1921
protected UpdateTelegramRequest(String endPoint, Consumer<TelegramException> errorHandler, Runnable callback) {

jtelegrambotapi-core/src/main/java/com/jtelegram/api/requests/message/framework/req/SendableChatRequest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@
55
import com.jtelegram.api.requests.framework.QueryTelegramRequest;
66
import lombok.EqualsAndHashCode;
77
import lombok.Getter;
8+
import lombok.Setter;
89

910
import java.util.function.Consumer;
1011

1112
@Getter
1213
@EqualsAndHashCode(callSuper = true)
1314
public class SendableChatRequest<T> extends QueryTelegramRequest<T> {
14-
private final ChatId chatId;
15+
@Setter
16+
private ChatId chatId;
1517

1618
protected SendableChatRequest(String endPoint, Class<T> callbackType, Consumer<T> callback, Consumer<TelegramException> errorHandler, ChatId chatId) {
1719
super(endPoint, callbackType, callback, errorHandler);

jtelegrambotapi-core/src/main/java/com/jtelegram/api/requests/message/framework/req/SendableMessageRequest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@
44
import com.jtelegram.api.ex.TelegramException;
55
import com.jtelegram.api.requests.message.framework.ReplyMarkup;
66
import lombok.Getter;
7+
import lombok.Setter;
78

89
import java.util.function.Consumer;
910

1011
@Getter
1112
public abstract class SendableMessageRequest<T> extends SendableChatRequest<T> {
12-
private final Integer replyToMessageId;
13+
@Setter
14+
private Integer replyToMessageId;
1315
private final Boolean disableNotification;
1416
private final ReplyMarkup replyMarkup;
1517

@@ -20,7 +22,6 @@ protected SendableMessageRequest(String endPoint, Class<T> callbackType, Consume
2022
this.replyMarkup = replyMarkup;
2123
}
2224

23-
2425
@Override
2526
protected boolean isValid() {
2627
return super.isValid();

jtelegrambotapi-core/src/main/java/com/jtelegram/api/util/TextBuilder.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public static TextBuilder create() {
2828
return new TextBuilder();
2929
}
3030

31-
private TextBuilder() {
31+
protected TextBuilder() {
3232
}
3333

3434
private String htmlEscaped(String text) {
@@ -85,6 +85,14 @@ public TextBuilder newLine() {
8585
return this;
8686
}
8787

88+
public TextBuilder newLines(int n) {
89+
for (int i = 0; i < n; i++) {
90+
newLine();
91+
}
92+
93+
return this;
94+
}
95+
8896
public TextBuilder nextLine() {
8997
return newLine();
9098
}

0 commit comments

Comments
 (0)