Skip to content

Commit 0c0e899

Browse files
committed
Added new methods restrictChatMember and promoteChatMember to manage users and admins, added new parameter until_date to kickChatMember for temporary bans
1 parent b97c7be commit 0c0e899

File tree

4 files changed

+115
-2
lines changed

4 files changed

+115
-2
lines changed

library/src/main/java/com/pengrad/telegrambot/request/KickChatMember.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,8 @@ public KickChatMember(Object chatId, int userId) {
1212
super(BaseResponse.class);
1313
add("chat_id", chatId).add("user_id", userId);
1414
}
15+
16+
public KickChatMember untilDate(int untilDate) {
17+
return add("until_date", untilDate);
18+
}
1519
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.pengrad.telegrambot.request;
2+
3+
import com.pengrad.telegrambot.response.BaseResponse;
4+
5+
/**
6+
* Stas Parshin
7+
* 01 July 2017
8+
*/
9+
public class PromoteChatMember extends BaseRequest<PromoteChatMember, BaseResponse> {
10+
11+
public PromoteChatMember(Object chatId, int userId) {
12+
super(BaseResponse.class);
13+
add("chat_id", chatId).add("user_id", userId);
14+
}
15+
16+
public PromoteChatMember canChangeInfo(boolean canChangeInfo) {
17+
return add("can_change_info", canChangeInfo);
18+
}
19+
20+
public PromoteChatMember canPostMessages(boolean canPostMessages) {
21+
return add("can_post_messages", canPostMessages);
22+
}
23+
24+
public PromoteChatMember canEditMessages(boolean canEditMessages) {
25+
return add("can_edit_messages", canEditMessages);
26+
}
27+
28+
public PromoteChatMember canDeleteMessages(boolean canDeleteMessages) {
29+
return add("can_delete_messages", canDeleteMessages);
30+
}
31+
32+
public PromoteChatMember canRestrictMembers(boolean canRestrictMembers) {
33+
return add("can_restrict_members", canRestrictMembers);
34+
}
35+
36+
public PromoteChatMember canPinMessages(boolean canPinMessages) {
37+
return add("can_pin_messages", canPinMessages);
38+
}
39+
40+
public PromoteChatMember canPromoteMembers(boolean canPromoteMembers) {
41+
return add("can_promote_members", canPromoteMembers);
42+
}
43+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.pengrad.telegrambot.request;
2+
3+
import com.pengrad.telegrambot.response.BaseResponse;
4+
5+
/**
6+
* Stas Parshin
7+
* 01 July 2017
8+
*/
9+
public class RestrictChatMember extends BaseRequest<RestrictChatMember, BaseResponse> {
10+
11+
public RestrictChatMember(Object chatId, int userId) {
12+
super(BaseResponse.class);
13+
add("chat_id", chatId).add("user_id", userId);
14+
}
15+
16+
public RestrictChatMember untilDate(int untilDate) {
17+
return add("until_date", untilDate);
18+
}
19+
20+
public RestrictChatMember canSendMessages(boolean canSendMessages) {
21+
return add("can_send_messages", canSendMessages);
22+
}
23+
24+
public RestrictChatMember canSendMediaMessages(boolean canSendMediaMessages) {
25+
return add("can_send_media_messages", canSendMediaMessages);
26+
}
27+
28+
public RestrictChatMember canSendOtherMessages(boolean canSendOtherMessages) {
29+
return add("can_send_other_messages", canSendOtherMessages);
30+
}
31+
32+
public RestrictChatMember canAddWebPagePreviews(boolean canAddWebPagePreviews) {
33+
return add("can_add_web_page_previews", canAddWebPagePreviews);
34+
}
35+
}

library/src/test/java/com/pengrad/telegrambot/TelegramBotTest.java

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ public class TelegramBotTest {
3030

3131
TelegramBot bot;
3232
Integer chatId, forwardMessageId;
33+
Long groupId;
3334
String channelName = "@bottest";
3435
Long channelId = -1001002720332L;
36+
Integer memberBot = 215003245;
3537
String stickerId;
3638

3739
Path resourcePath = Paths.get("src/test/resources");
@@ -51,26 +53,29 @@ public class TelegramBotTest {
5153
String withSpaceFileId = "BAADAgADZwADkg-4SQI5WM0SPNHrAg";
5254

5355
public TelegramBotTest() throws IOException {
54-
String token, chat, forwardMessage, sticker;
56+
String token, chat, group, forwardMessage, sticker;
5557

5658
try {
5759
Properties properties = new Properties();
5860
properties.load(new FileInputStream("local.properties"));
5961

6062
token = properties.getProperty("TEST_TOKEN");
6163
chat = properties.getProperty("CHAT_ID");
64+
group = properties.getProperty("GROUP_ID");
6265
forwardMessage = properties.getProperty("FORWARD_MESSAGE");
6366
sticker = properties.getProperty("STICKER_FILE_ID");
6467

6568
} catch (Exception e) {
6669
token = System.getenv("TEST_TOKEN");
6770
chat = System.getenv("CHAT_ID");
71+
group = System.getenv("GROUP_ID");
6872
forwardMessage = System.getenv("FORWARD_MESSAGE");
6973
sticker = System.getenv("STICKER_FILE_ID");
7074
}
7175

7276
bot = TelegramBotAdapter.buildDebug(token);
7377
chatId = Integer.parseInt(chat);
78+
groupId = Long.parseLong(group);
7479
forwardMessageId = Integer.parseInt(forwardMessage);
7580
stickerId = sticker;
7681
}
@@ -107,7 +112,7 @@ public void getFile() throws IOException {
107112

108113
@Test
109114
public void kickChatMember() {
110-
BaseResponse response = bot.execute(new KickChatMember(channelName, chatId));
115+
BaseResponse response = bot.execute(new KickChatMember(channelName, chatId).untilDate(123));
111116
assertFalse(response.isOk());
112117
assertEquals(400, response.errorCode());
113118
assertEquals("Bad Request: user is an administrator of the chat", response.description());
@@ -119,6 +124,32 @@ public void unbanChatMember() {
119124
assertTrue(response.isOk());
120125
}
121126

127+
@Test
128+
public void restrictChatMember() {
129+
BaseResponse response = bot.execute(
130+
new RestrictChatMember(groupId, memberBot)
131+
.untilDate(100)
132+
.canSendMessages(false)
133+
.canSendMediaMessages(false)
134+
.canSendOtherMessages(false)
135+
.canAddWebPagePreviews(false));
136+
assertTrue(response.isOk());
137+
}
138+
139+
@Test
140+
public void promoteChatMember() {
141+
BaseResponse response = bot.execute(
142+
new PromoteChatMember(groupId, memberBot)
143+
.canChangeInfo(false)
144+
.canPostMessages(false)
145+
.canEditMessages(false)
146+
.canDeleteMessages(false)
147+
.canRestrictMembers(false)
148+
.canPinMessages(false)
149+
.canPromoteMembers(false));
150+
System.out.println(response);
151+
}
152+
122153
@Test
123154
public void editMessageText() {
124155
String text = "Update " + System.currentTimeMillis();

0 commit comments

Comments
 (0)