Добавил InlineKeyBoards
This commit is contained in:
parent
1a07d88dd9
commit
ffc5b63508
12
pom.xml
12
pom.xml
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
<groupId>dev.struchkov.godfather</groupId>
|
<groupId>dev.struchkov.godfather</groupId>
|
||||||
<artifactId>telegram-bot</artifactId>
|
<artifactId>telegram-bot</artifactId>
|
||||||
<version>0.0.6</version>
|
<version>0.0.7</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
@ -33,7 +33,7 @@
|
|||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
|
|
||||||
<godfather.core.ver>0.0.5</godfather.core.ver>
|
<godfather.core.ver>0.0.6</godfather.core.ver>
|
||||||
<telegrambots.ver>6.0.1</telegrambots.ver>
|
<telegrambots.ver>6.0.1</telegrambots.ver>
|
||||||
|
|
||||||
<plugin.maven.compiler.ver>3.10.1</plugin.maven.compiler.ver>
|
<plugin.maven.compiler.ver>3.10.1</plugin.maven.compiler.ver>
|
||||||
@ -142,10 +142,10 @@
|
|||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<!-- <plugin>-->
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<!-- <groupId>org.apache.maven.plugins</groupId>-->
|
||||||
<artifactId>maven-javadoc-plugin</artifactId>
|
<!-- <artifactId>maven-javadoc-plugin</artifactId>-->
|
||||||
</plugin>
|
<!-- </plugin>-->
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-source-plugin</artifactId>
|
<artifactId>maven-source-plugin</artifactId>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>dev.struchkov.godfather</groupId>
|
<groupId>dev.struchkov.godfather</groupId>
|
||||||
<artifactId>telegram-bot</artifactId>
|
<artifactId>telegram-bot</artifactId>
|
||||||
<version>0.0.6</version>
|
<version>0.0.7</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>telegram-core</artifactId>
|
<artifactId>telegram-core</artifactId>
|
||||||
|
@ -9,8 +9,8 @@ import dev.struchkov.godfather.telegram.ProxyConfig;
|
|||||||
*/
|
*/
|
||||||
public class TelegramPollingConfig {
|
public class TelegramPollingConfig {
|
||||||
|
|
||||||
private final String botUsername;
|
private String botUsername;
|
||||||
private final String botToken;
|
private String botToken;
|
||||||
|
|
||||||
private ProxyConfig proxyConfig;
|
private ProxyConfig proxyConfig;
|
||||||
|
|
||||||
@ -19,6 +19,17 @@ public class TelegramPollingConfig {
|
|||||||
this.botToken = botToken;
|
this.botToken = botToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TelegramPollingConfig() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBotUsername(String botUsername) {
|
||||||
|
this.botUsername = botUsername;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBotToken(String botToken) {
|
||||||
|
this.botToken = botToken;
|
||||||
|
}
|
||||||
|
|
||||||
public String getBotUsername() {
|
public String getBotUsername() {
|
||||||
return botUsername;
|
return botUsername;
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,10 @@ public class InlineKeyBoard extends SimpleKeyBoard {
|
|||||||
return new Builder();
|
return new Builder();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static InlineKeyBoard inlineKeyBoard(KeyBoardLine keyBoardLine) {
|
||||||
|
return builder().line(keyBoardLine).build();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getType() {
|
public String getType() {
|
||||||
return TYPE;
|
return TYPE;
|
||||||
|
@ -0,0 +1,133 @@
|
|||||||
|
package dev.struchkov.godfather.telegram.utils;
|
||||||
|
|
||||||
|
import dev.struchkov.godfather.context.domain.keyboard.KeyBoardButton;
|
||||||
|
import dev.struchkov.godfather.context.domain.keyboard.button.SimpleButton;
|
||||||
|
import dev.struchkov.godfather.context.domain.keyboard.simple.SimpleKeyBoard;
|
||||||
|
import dev.struchkov.godfather.context.domain.keyboard.simple.SimpleKeyBoardLine;
|
||||||
|
import dev.struchkov.godfather.telegram.domain.keyboard.InlineKeyBoard;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static dev.struchkov.godfather.context.domain.keyboard.button.SimpleButton.simpleButton;
|
||||||
|
import static dev.struchkov.godfather.context.domain.keyboard.simple.SimpleKeyBoardLine.simpleLine;
|
||||||
|
import static dev.struchkov.haiti.utils.Exceptions.utilityClass;
|
||||||
|
|
||||||
|
public final class InlineKeyBoards {
|
||||||
|
|
||||||
|
public static final SimpleButton YES_BUTTON = simpleButton("Да", "{\"button\": \"yes\"}");
|
||||||
|
public static final SimpleButton NO_BUTTON = simpleButton("Нет", "{\"button\": \"no\"}");
|
||||||
|
|
||||||
|
public InlineKeyBoards() {
|
||||||
|
utilityClass();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Возвращает клавиатуру формата 1х2, с кнопками "Да | Нет"
|
||||||
|
*
|
||||||
|
* @return {@link SimpleKeyBoard}
|
||||||
|
*/
|
||||||
|
public static InlineKeyBoard keyBoardYesNo() {
|
||||||
|
return InlineKeyBoard.inlineKeyBoard(
|
||||||
|
SimpleKeyBoardLine.builder().button(YES_BUTTON).button(NO_BUTTON).build()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Возвращает клавиатуру формата 1хN, где N - это количество элементов в переданном списке
|
||||||
|
*
|
||||||
|
* @param labelButtons Список названий для кнопок
|
||||||
|
* @return {@link SimpleKeyBoard}
|
||||||
|
*/
|
||||||
|
public static InlineKeyBoard verticalMenuString(List<String> labelButtons) {
|
||||||
|
final InlineKeyBoard.Builder keyBoard = InlineKeyBoard.builder();
|
||||||
|
for (String labelButton : labelButtons) {
|
||||||
|
keyBoard.line(simpleLine(simpleButton(labelButton, labelButton)));
|
||||||
|
}
|
||||||
|
return keyBoard.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Возвращает клавиатуру формата 1хN, где N - это количество элементов в переданном списке
|
||||||
|
*
|
||||||
|
* @param labelButton Список названий для кнопок
|
||||||
|
* @return {@link SimpleKeyBoard}
|
||||||
|
*/
|
||||||
|
public static InlineKeyBoard verticalMenuString(String... labelButton) {
|
||||||
|
return verticalMenuString(Arrays.asList(labelButton));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Возвращает клавиатуру формата 2х(N/2), где N - это количество элементов в переданном списке
|
||||||
|
*
|
||||||
|
* @param labelButton Список названий для кнопок
|
||||||
|
* @return {@link SimpleKeyBoard}
|
||||||
|
*/
|
||||||
|
public static InlineKeyBoard verticalDuoMenuString(String... labelButton) {
|
||||||
|
return verticalDuoMenuString(Arrays.asList(labelButton));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Возвращает клавиатуру формата 2х(N/2), где N - это количество элементов в переданном списке
|
||||||
|
*
|
||||||
|
* @param labelButton Список названий для кнопок
|
||||||
|
* @return {@link SimpleKeyBoard}
|
||||||
|
*/
|
||||||
|
public static InlineKeyBoard verticalDuoMenuString(List<String> labelButton) {
|
||||||
|
final InlineKeyBoard.Builder keyBoard = InlineKeyBoard.builder();
|
||||||
|
boolean flag = true;
|
||||||
|
SimpleKeyBoardLine.Builder keyBoardLine = SimpleKeyBoardLine.builder();
|
||||||
|
for (int i = 0; i <= labelButton.size() - 1; i++) {
|
||||||
|
String label = labelButton.get(i);
|
||||||
|
keyBoardLine.button(simpleButton(label));
|
||||||
|
if (flag) {
|
||||||
|
if (i == labelButton.size() - 1) {
|
||||||
|
keyBoard.line(keyBoardLine.build());
|
||||||
|
} else {
|
||||||
|
flag = false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
keyBoard.line(keyBoardLine.build());
|
||||||
|
keyBoardLine = SimpleKeyBoardLine.builder();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return keyBoard.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static InlineKeyBoard verticalDuoMenu(KeyBoardButton... buttons) {
|
||||||
|
final InlineKeyBoard.Builder keyBoard = InlineKeyBoard.builder();
|
||||||
|
boolean flag = true;
|
||||||
|
SimpleKeyBoardLine.Builder keyBoardLine = SimpleKeyBoardLine.builder();
|
||||||
|
for (int i = 0; i <= buttons.length - 1; i++) {
|
||||||
|
keyBoardLine.button(buttons[i]);
|
||||||
|
if (flag) {
|
||||||
|
if (i == buttons.length - 1) {
|
||||||
|
keyBoard.line(keyBoardLine.build());
|
||||||
|
} else {
|
||||||
|
flag = false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
keyBoard.line(keyBoardLine.build());
|
||||||
|
keyBoardLine = SimpleKeyBoardLine.builder();
|
||||||
|
flag = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return keyBoard.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Возвращает клавиатуру формата 1xN сформированную из списка кнопок, где N - количество кнопок в списке
|
||||||
|
*
|
||||||
|
* @param simpleButtons Список кнопок
|
||||||
|
* @return {@link SimpleKeyBoard}
|
||||||
|
*/
|
||||||
|
public static InlineKeyBoard verticalMenuButton(List<KeyBoardButton> buttons) {
|
||||||
|
final InlineKeyBoard.Builder keyBoard = InlineKeyBoard.builder();
|
||||||
|
for (KeyBoardButton simpleButton : buttons) {
|
||||||
|
keyBoard.line(simpleLine(simpleButton));
|
||||||
|
}
|
||||||
|
return keyBoard.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user