* Изменилась логика возвращения клавиатуры
* Добавил родителбскую реализацию юнита с клавиатурой, от нее будут наследоваться все остальные * Добавил простую реализацию юнита для тестовых ответов * Добавил новую реализацию юнита для сохранения ответов пользователя * Добавил дефолтную реализацию Saver * Переписал action, теперь для активации юнита еще отправляется Mail (нужно было для юнита, который сохраняет ответы пользователя)
This commit is contained in:
parent
04062ba8b1
commit
e0befdf62a
6
pom.xml
6
pom.xml
@ -33,7 +33,6 @@
|
||||
<vksdk.ver>0.5.13-SNAPSHOT</vksdk.ver>
|
||||
<log4j.ver>1.2.17</log4j.ver>
|
||||
<json.ver>20180813</json.ver>
|
||||
<autoresponder.ver>1.1.2-SNAPHOT</autoresponder.ver>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
@ -57,11 +56,6 @@
|
||||
<artifactId>json</artifactId>
|
||||
<version>${json.ver}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.sadtech.autoresponder</groupId>
|
||||
<artifactId>autoresponder</artifactId>
|
||||
<version>${autoresponder.ver}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
|
@ -9,18 +9,24 @@ import java.util.List;
|
||||
public class KeyBoard {
|
||||
|
||||
private List<LineKeyBoard> lineKeyBoards = new ArrayList<>();
|
||||
private boolean oneTime;
|
||||
|
||||
public KeyBoard() {
|
||||
|
||||
}
|
||||
|
||||
public KeyBoard(List<LineKeyBoard> lineKeyBoards) {
|
||||
public KeyBoard(List<LineKeyBoard> lineKeyBoards, boolean oneTime) {
|
||||
this.lineKeyBoards = lineKeyBoards;
|
||||
this.oneTime = oneTime;
|
||||
}
|
||||
|
||||
public JSONObject getKeyboard(Boolean one_time) {
|
||||
public void setOneTime(boolean oneTime) {
|
||||
this.oneTime = oneTime;
|
||||
}
|
||||
|
||||
public JSONObject getKeyboard() {
|
||||
JSONObject keyboard = new JSONObject();
|
||||
keyboard.put("one_time", one_time);
|
||||
keyboard.put("one_time", oneTime);
|
||||
|
||||
JSONArray menuLine = new JSONArray();
|
||||
for (LineKeyBoard lineKeyboard : lineKeyBoards) {
|
||||
@ -50,6 +56,11 @@ public class KeyBoard {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setOneTime(boolean oneTime) {
|
||||
KeyBoard.this.oneTime = oneTime;
|
||||
return this;
|
||||
}
|
||||
|
||||
public KeyBoard build() {
|
||||
return KeyBoard.this;
|
||||
}
|
||||
|
@ -1,31 +1,29 @@
|
||||
package org.sadtech.vkbot.core.keyboard;
|
||||
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class KeyBoardService {
|
||||
|
||||
private JSONObject keyBoardYesNo = generateKeyBoardYesNo();
|
||||
private KeyBoard keyBoardYesNo = generateKeyBoardYesNo();
|
||||
|
||||
private JSONObject generateKeyBoardYesNo() {
|
||||
private KeyBoard generateKeyBoardYesNo() {
|
||||
ButtonKeyBoard yesButton = ButtonKeyBoard.builder().setColor(ColorButton.POSITIVE).setLabel("Да").setPayload("{\"button\": \"yes\"}").build();
|
||||
ButtonKeyBoard noButton = ButtonKeyBoard.builder().setColor(ColorButton.NEGATIVE).setLabel("Нет").setPayload("{\"button\": \"no\"}").build();
|
||||
LineKeyBoard lineKeyBoard = LineKeyBoard.builder().setButtonKeyBoard(yesButton).setButtonKeyBoard(noButton).build();
|
||||
KeyBoard keyBoard = KeyBoard.builder().setLineKeyBoard(lineKeyBoard).build();
|
||||
return keyBoard.getKeyboard(true);
|
||||
return keyBoard;
|
||||
}
|
||||
|
||||
public static JSONObject verticalMenu(List<String> labelButtons) {
|
||||
public static KeyBoard verticalMenu(List<String> labelButtons) {
|
||||
KeyBoard keyBoard = new KeyBoard();
|
||||
for (String labelButton : labelButtons) {
|
||||
ButtonKeyBoard buttonKeyBoard = ButtonKeyBoard.builder().setLabel(labelButton).setType("text").setPayload("{\"button\": \"" + labelButton + "\"}").build();
|
||||
keyBoard.addLine(LineKeyBoard.builder().setButtonKeyBoard(buttonKeyBoard).build());
|
||||
}
|
||||
return keyBoard.getKeyboard(true);
|
||||
return keyBoard;
|
||||
}
|
||||
|
||||
public JSONObject getKeyBoardYesNo() {
|
||||
public KeyBoard getKeyBoardYesNo() {
|
||||
return keyBoardYesNo;
|
||||
}
|
||||
}
|
||||
|
@ -10,6 +10,8 @@ import org.sadtech.vkbot.core.entity.Person;
|
||||
public class MailSanderVk implements MailSandler {
|
||||
|
||||
private Person person;
|
||||
|
||||
private Integer idRecipient;
|
||||
private VkApiClient vkApiClient;
|
||||
private GroupActor groupActor;
|
||||
|
||||
@ -24,14 +26,27 @@ public class MailSanderVk implements MailSandler {
|
||||
this.groupActor = vkConnect.getGroupActor();
|
||||
}
|
||||
|
||||
public void setIdRecipient(Integer idRecipient) {
|
||||
this.idRecipient = idRecipient;
|
||||
}
|
||||
|
||||
public void setPerson(Person person) {
|
||||
this.person = person;
|
||||
idRecipient = person.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void send(String text, String keyBoard) {
|
||||
try {
|
||||
vkApiClient.messages().send(groupActor).peerId(idRecipient).keyboard(keyBoard).message(text).execute();
|
||||
} catch (ApiException | ClientException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void send(String text) {
|
||||
try {
|
||||
vkApiClient.messages().send(groupActor).userId(person.getId()).message(text).execute();
|
||||
vkApiClient.messages().send(groupActor).userId(idRecipient).message(text).execute();
|
||||
} catch (ApiException | ClientException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
@ -8,4 +8,6 @@ public interface MailSandler {
|
||||
|
||||
void setPerson(Person person);
|
||||
|
||||
void send(String text, String keyBoard);
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user