Актуализация с socail-utils

Рефакторинг lombok
Добавил вложенные сообщения
This commit is contained in:
Mark Struchkov 2019-08-17 11:39:06 +03:00
parent 9207713665
commit 8f5242c48f
9 changed files with 95 additions and 43 deletions

View File

@ -26,7 +26,6 @@
<social.core.ver>0.6.3-SNAPSHOT</social.core.ver> <social.core.ver>0.6.3-SNAPSHOT</social.core.ver>
<vksdk.ver>0.5.13-FORK</vksdk.ver> <vksdk.ver>0.5.13-FORK</vksdk.ver>
<log4j.ver>1.2.17</log4j.ver>
</properties> </properties>
<dependencies> <dependencies>
@ -36,12 +35,6 @@
<version>${vksdk.ver}</version> <version>${vksdk.ver}</version>
</dependency> </dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.ver}</version>
</dependency>
<dependency> <dependency>
<groupId>org.sadtech.social</groupId> <groupId>org.sadtech.social</groupId>
<artifactId>social-core</artifactId> <artifactId>social-core</artifactId>

View File

@ -1,5 +1,6 @@
package org.sadtech.vkbot.core.convert; package org.sadtech.vkbot.core.convert;
import com.vk.api.sdk.objects.messages.ForeignMessage;
import com.vk.api.sdk.objects.messages.Message; import com.vk.api.sdk.objects.messages.Message;
import com.vk.api.sdk.objects.messages.MessageAttachment; import com.vk.api.sdk.objects.messages.MessageAttachment;
import org.sadtech.social.core.domain.content.Mail; import org.sadtech.social.core.domain.content.Mail;
@ -9,6 +10,7 @@ import org.sadtech.social.core.domain.content.attachment.Geo;
import java.time.Instant; import java.time.Instant;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
import java.util.TimeZone; import java.util.TimeZone;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -21,13 +23,62 @@ public class MessageMailConvert implements Convert<Message, Mail> {
mail.setCreateDate(LocalDateTime.ofInstant(Instant.ofEpochSecond(message.getDate()), TimeZone.getDefault().toZoneId())); mail.setCreateDate(LocalDateTime.ofInstant(Instant.ofEpochSecond(message.getDate()), TimeZone.getDefault().toZoneId()));
mail.setId(message.getId()); mail.setId(message.getId());
mail.setPersonId(message.getPeerId()); mail.setPersonId(message.getPeerId());
mail.setAttachments(message.getAttachments() List<MessageAttachment> attachments = message.getAttachments();
.stream()
.map(this::convertAttachment) if (attachments != null && !attachments.isEmpty()) {
.collect(Collectors.toList())); mail.setAttachments(
if (message.getGeo() != null) { attachments.stream()
mail.getAttachments().add(convertGeo(message.getGeo())); .map(this::convertAttachment)
.collect(Collectors.toList())
);
} }
com.vk.api.sdk.objects.base.Geo messageGeo = message.getGeo();
if (messageGeo != null) {
mail.getAttachments().add(convertGeo(messageGeo));
}
List<ForeignMessage> fwdMessages = message.getFwdMessages();
if (fwdMessages != null && !fwdMessages.isEmpty()) {
mail.setForwardMail(
fwdMessages.stream()
.map(this::convertFwdMessage)
.collect(Collectors.toList())
);
}
mail.setAddDate(LocalDateTime.now());
return mail;
}
private Mail convertFwdMessage(ForeignMessage foreignMessage) {
Mail mail = new Mail();
mail.setText(foreignMessage.getText());
mail.setCreateDate(LocalDateTime.ofInstant(Instant.ofEpochSecond(foreignMessage.getDate()), TimeZone.getDefault().toZoneId()));
mail.setId(foreignMessage.getId());
mail.setPersonId(foreignMessage.getPeerId());
List<MessageAttachment> attachments = foreignMessage.getAttachments();
if (attachments != null && !attachments.isEmpty()) {
mail.setAttachments(
attachments.stream()
.map(this::convertAttachment)
.collect(Collectors.toList())
);
}
com.vk.api.sdk.objects.base.Geo messageGeo = foreignMessage.getGeo();
if (messageGeo != null) {
mail.getAttachments().add(convertGeo(messageGeo));
}
List<ForeignMessage> fwdMessages = foreignMessage.getFwdMessages();
if (fwdMessages != null && !fwdMessages.isEmpty())
mail.setForwardMail(
fwdMessages.stream()
.map(this::convertFwdMessage)
.collect(Collectors.toList())
);
mail.setAddDate(LocalDateTime.now());
return mail; return mail;
} }

View File

@ -2,26 +2,21 @@ package org.sadtech.vkbot.core.distribution.subscriber;
import com.vk.api.sdk.objects.messages.Message; import com.vk.api.sdk.objects.messages.Message;
import com.vk.api.sdk.objects.messages.MessageAttachmentType; import com.vk.api.sdk.objects.messages.MessageAttachmentType;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.sadtech.social.core.domain.BoxAnswer; import org.sadtech.social.core.domain.BoxAnswer;
import org.sadtech.social.core.exception.PaymentException; import org.sadtech.social.core.exception.PaymentException;
import org.sadtech.social.core.service.AccountService; import org.sadtech.social.core.service.AccountService;
import org.sadtech.social.core.service.sender.Sent; import org.sadtech.social.core.service.sender.Sending;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Slf4j
@RequiredArgsConstructor
public class AccountSubscribe extends AbstractBasketSubscribe<Message, Message> { public class AccountSubscribe extends AbstractBasketSubscribe<Message, Message> {
private static final Logger log = LoggerFactory.getLogger(AccountSubscribe.class);
private final AccountService accountService; private final AccountService accountService;
private final Sent sent; private final Sending sending;
private BoxAnswer answerSuccessfulPayment; private BoxAnswer answerSuccessfulPayment;
public AccountSubscribe(AccountService accountService, Sent sent) {
this.accountService = accountService;
this.sent = sent;
}
@Override @Override
public boolean check(Message userMessage) { public boolean check(Message userMessage) {
return userMessage.getAttachments().size() > 0 return userMessage.getAttachments().size() > 0
@ -35,11 +30,11 @@ public class AccountSubscribe extends AbstractBasketSubscribe<Message, Message>
try { try {
Integer valueSum = Integer.valueOf(message.getAttachments().get(0).getLink().getTitle().split(" ")[0]); Integer valueSum = Integer.valueOf(message.getAttachments().get(0).getLink().getTitle().split(" ")[0]);
if (accountService.pay(Integer.valueOf(message.getText()), message.getPeerId(), valueSum) && answerSuccessfulPayment != null) { if (accountService.pay(Integer.valueOf(message.getText()), message.getPeerId(), valueSum) && answerSuccessfulPayment != null) {
sent.send(message.getPeerId(), answerSuccessfulPayment); sending.send(message.getPeerId(), answerSuccessfulPayment);
} }
} catch (PaymentException e) { } catch (PaymentException e) {
log.error(e.getMessage()); log.error(e.getMessage());
sent.send(message.getPeerId(), BoxAnswer.builder().message(e.getDescription()).build()); sending.send(message.getPeerId(), BoxAnswer.builder().message(e.getDescription()).build());
} }
} }
} }

View File

@ -21,7 +21,7 @@ import javax.persistence.Table;
@NoArgsConstructor @NoArgsConstructor
public class JsonObjectId extends BasicEntity { public class JsonObjectId extends BasicEntity {
@Column(name = "json", length = 500) @Column(name = "json", length = 3000)
private String json; private String json;
public JsonObjectId(String json) { public JsonObjectId(String json) {

View File

@ -50,7 +50,7 @@ public class EventListenerVk implements Runnable {
} }
private LongPollServer getLongPollServer() throws ClientException, ApiException { private LongPollServer getLongPollServer() throws ClientException, ApiException {
log.info("LongPoll сервер инициализирован"); log.debug("LongPoll сервер инициализирован");
if (actor != null) { if (actor != null) {
return vk.groups().getLongPollServer(actor, actor.getGroupId()).execute(); return vk.groups().getLongPollServer(actor, actor.getGroupId()).execute();
} else { } else {

View File

@ -20,7 +20,10 @@ public class RawEventRepositorySet implements RawEventRepository {
jsonObjects.clear(); jsonObjects.clear();
} }
@Override
public Set<JsonObject> findNewEvent() { public Set<JsonObject> findNewEvent() {
return jsonObjects; Set<JsonObject> copy = new HashSet<>(jsonObjects);
jsonObjects.removeAll(copy);
return copy;
} }
} }

View File

@ -10,11 +10,12 @@ import org.sadtech.social.core.domain.keyboard.KeyBoardButton;
import org.sadtech.social.core.domain.keyboard.KeyBoardLine; import org.sadtech.social.core.domain.keyboard.KeyBoardLine;
import org.sadtech.social.core.domain.keyboard.button.KeyBoardButtonText; import org.sadtech.social.core.domain.keyboard.button.KeyBoardButtonText;
import org.sadtech.social.core.exception.MailSendException; import org.sadtech.social.core.exception.MailSendException;
import org.sadtech.social.core.service.sender.Sent; import org.sadtech.social.core.service.sender.SendType;
import org.sadtech.social.core.service.sender.Sending;
import org.sadtech.vkbot.core.config.VkConnect; import org.sadtech.vkbot.core.config.VkConnect;
import org.sadtech.vkbot.core.utils.VkInsertData; import org.sadtech.vkbot.core.utils.VkInsertData;
public class BoardCommentSenderVk implements Sent { public class BoardCommentSenderVk implements Sending {
private final VkApiClient vkApiClient; private final VkApiClient vkApiClient;
private final GroupActor groupActor; private final GroupActor groupActor;
@ -56,4 +57,9 @@ public class BoardCommentSenderVk implements Sent {
e.printStackTrace(); e.printStackTrace();
} }
} }
@Override
public SendType getType() {
return SendType.PUBLIC;
}
} }

View File

@ -6,10 +6,11 @@ import com.vk.api.sdk.exceptions.ApiException;
import com.vk.api.sdk.exceptions.ClientException; import com.vk.api.sdk.exceptions.ClientException;
import com.vk.api.sdk.objects.messages.Keyboard; import com.vk.api.sdk.objects.messages.Keyboard;
import com.vk.api.sdk.queries.messages.MessagesSendQuery; import com.vk.api.sdk.queries.messages.MessagesSendQuery;
import org.apache.log4j.Logger; import lombok.extern.slf4j.Slf4j;
import org.sadtech.social.core.domain.BoxAnswer; import org.sadtech.social.core.domain.BoxAnswer;
import org.sadtech.social.core.domain.keyboard.KeyBoard; import org.sadtech.social.core.domain.keyboard.KeyBoard;
import org.sadtech.social.core.service.sender.Sent; import org.sadtech.social.core.service.sender.SendType;
import org.sadtech.social.core.service.sender.Sending;
import org.sadtech.vkbot.core.config.VkConnect; import org.sadtech.vkbot.core.config.VkConnect;
import org.sadtech.vkbot.core.convert.KeyBoardConvert; import org.sadtech.vkbot.core.convert.KeyBoardConvert;
import org.sadtech.vkbot.core.utils.VkInsertData; import org.sadtech.vkbot.core.utils.VkInsertData;
@ -17,9 +18,8 @@ import org.sadtech.vkbot.core.utils.VkInsertData;
import java.util.Collections; import java.util.Collections;
import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.ThreadLocalRandom;
public class MailSenderVk implements Sent { @Slf4j
public class MailSenderVk implements Sending {
private static final Logger log = Logger.getLogger(MailSenderVk.class);
private final VkApiClient vkApiClient; private final VkApiClient vkApiClient;
private final GroupActor groupActor; private final GroupActor groupActor;
@ -75,7 +75,7 @@ public class MailSenderVk implements Sent {
try { try {
messages.execute(); messages.execute();
} catch (ApiException | ClientException e) { } catch (ApiException | ClientException e) {
log.error(e); log.error(e.getMessage());
} }
} }
@ -84,4 +84,9 @@ public class MailSenderVk implements Sent {
} }
@Override
public SendType getType() {
return SendType.PRIVATE;
}
} }

View File

@ -10,15 +10,14 @@ import com.vk.api.sdk.exceptions.ClientException;
import com.vk.api.sdk.objects.users.Fields; import com.vk.api.sdk.objects.users.Fields;
import com.vk.api.sdk.objects.users.UserMin; import com.vk.api.sdk.objects.users.UserMin;
import com.vk.api.sdk.objects.users.UserXtrCounters; import com.vk.api.sdk.objects.users.UserXtrCounters;
import org.apache.log4j.Logger; import lombok.extern.slf4j.Slf4j;
import org.sadtech.vkbot.core.config.VkConnect; import org.sadtech.vkbot.core.config.VkConnect;
import java.util.List; import java.util.List;
@Slf4j
public class VkApi { public class VkApi {
private static final Logger log = Logger.getLogger(String.valueOf(VkApi.class));
private final VkApiClient vk; private final VkApiClient vk;
private final ServiceActor actor; private final ServiceActor actor;
@ -36,7 +35,7 @@ public class VkApi {
JsonObject object = parser.parse(temp.get(0).toString()).getAsJsonObject(); JsonObject object = parser.parse(temp.get(0).toString()).getAsJsonObject();
userMin = gson.fromJson(object, UserMin.class); userMin = gson.fromJson(object, UserMin.class);
} catch (ApiException | ClientException e) { } catch (ApiException | ClientException e) {
log.error(e); log.error(e.getMessage());
} }
return userMin; return userMin;
} }
@ -46,7 +45,7 @@ public class VkApi {
try { try {
temp = vk.users().get(actor).userIds(String.valueOf(id)).fields(Fields.UNIVERSITIES).execute(); temp = vk.users().get(actor).userIds(String.valueOf(id)).fields(Fields.UNIVERSITIES).execute();
} catch (ApiException | ClientException e) { } catch (ApiException | ClientException e) {
log.error(e); log.error(e.getMessage());
} }
return temp != null ? temp.get(0).getUniversities().get(0).getName() : null; return temp != null ? temp.get(0).getUniversities().get(0).getName() : null;
} }
@ -56,7 +55,7 @@ public class VkApi {
try { try {
temp = vk.users().get(actor).userIds(String.valueOf(id)).fields(Fields.CITY).execute(); temp = vk.users().get(actor).userIds(String.valueOf(id)).fields(Fields.CITY).execute();
} catch (ApiException | ClientException e) { } catch (ApiException | ClientException e) {
log.error(e); log.error(e.getMessage());
} }
if (temp != null && checkCity(temp)) { if (temp != null && checkCity(temp)) {
return temp.get(0).getCity().getTitle(); return temp.get(0).getCity().getTitle();