Поправил баги у сабскрайберов, переименовал методы евентсервиса
This commit is contained in:
parent
7b7fb629fa
commit
9207713665
@ -1,41 +1,32 @@
|
|||||||
package org.sadtech.vkbot.core.distribution;
|
package org.sadtech.vkbot.core.distribution;
|
||||||
|
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.sadtech.vkbot.core.distribution.subscriber.AbstractBasketSubscribe;
|
||||||
import org.sadtech.vkbot.core.service.RawEventService;
|
import org.sadtech.vkbot.core.service.RawEventService;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class EventDistributor implements Runnable {
|
public class EventDistributor implements Runnable {
|
||||||
|
|
||||||
private final RawEventService rawEventService;
|
private final RawEventService rawEventService;
|
||||||
private final Set<AbstractBasketSubscribe> basketSubscribes;
|
private final Set<AbstractBasketSubscribe<JsonObject, ?>> basketSubscribes;
|
||||||
|
|
||||||
public EventDistributor(RawEventService rawEventService, Set<AbstractBasketSubscribe> basketSubscribes) {
|
|
||||||
this.rawEventService = rawEventService;
|
|
||||||
this.basketSubscribes = basketSubscribes;
|
|
||||||
log.info("EventDistributor инициализирован");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
while (true) {
|
while (true) {
|
||||||
Optional.ofNullable(rawEventService.getJsonObjects())
|
Optional.ofNullable(rawEventService.getNewEvent())
|
||||||
.ifPresent(events -> events.forEach(this::goNextSubscribe));
|
.ifPresent(events -> events.forEach(this::goNextSubscribe));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean goNextSubscribe(JsonObject object) {
|
private void goNextSubscribe(JsonObject object) {
|
||||||
AtomicBoolean flag = new AtomicBoolean(false);
|
|
||||||
basketSubscribes.stream()
|
basketSubscribes.stream()
|
||||||
.filter(basketSubscribe -> basketSubscribe.check(object))
|
.filter(basketSubscribe -> basketSubscribe.check(object))
|
||||||
.forEach(basketSubscribe -> {
|
.forEach(basketSubscribe -> basketSubscribe.update(object));
|
||||||
basketSubscribe.update(object);
|
|
||||||
flag.set(true);
|
|
||||||
});
|
|
||||||
return flag.get();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package org.sadtech.vkbot.core.distribution;
|
package org.sadtech.vkbot.core.distribution.subscriber;
|
||||||
|
|
||||||
import org.sadtech.vkbot.core.convert.Convert;
|
import org.sadtech.vkbot.core.convert.Convert;
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ public abstract class AbstractBasketSubscribe<S, C> {
|
|||||||
convert = (object) -> (C) object;
|
convert = (object) -> (C) object;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract boolean check(S object);
|
public abstract boolean check(S object);
|
||||||
|
|
||||||
public void update(S object) {
|
public void update(S object) {
|
||||||
C newObject = convert.converting(object);
|
C newObject = convert.converting(object);
|
@ -1,4 +1,4 @@
|
|||||||
package org.sadtech.vkbot.core.distribution;
|
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;
|
||||||
@ -23,7 +23,7 @@ public class AccountSubscribe extends AbstractBasketSubscribe<Message, Message>
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean check(Message userMessage) {
|
public boolean check(Message userMessage) {
|
||||||
return userMessage.getAttachments().size() > 0
|
return userMessage.getAttachments().size() > 0
|
||||||
&& MessageAttachmentType.LINK.equals(userMessage.getAttachments().get(0).getType())
|
&& MessageAttachmentType.LINK.equals(userMessage.getAttachments().get(0).getType())
|
||||||
&& "Payment awaiting acceptance".equals(userMessage.getAttachments().get(0).getLink().getCaption());
|
&& "Payment awaiting acceptance".equals(userMessage.getAttachments().get(0).getLink().getCaption());
|
@ -1,4 +1,4 @@
|
|||||||
package org.sadtech.vkbot.core.distribution;
|
package org.sadtech.vkbot.core.distribution.subscriber;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
@ -53,7 +53,7 @@ public class BoardCommentSubscribe extends AbstractBasketSubscribe<JsonObject, T
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean check(JsonObject object) {
|
public boolean check(JsonObject object) {
|
||||||
String type = object.get("type").getAsString();
|
String type = object.get("type").getAsString();
|
||||||
return "board_post_new".equals(type);
|
return "board_post_new".equals(type);
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package org.sadtech.vkbot.core.distribution;
|
package org.sadtech.vkbot.core.distribution.subscriber;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
@ -22,7 +22,7 @@ public class MailSubscriber extends AbstractBasketSubscribe<JsonObject, Message>
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean check(JsonObject object) {
|
public boolean check(JsonObject object) {
|
||||||
String type = object.get("type").getAsString();
|
String type = object.get("type").getAsString();
|
||||||
return "message_new".equals(type);
|
return "message_new".equals(type);
|
||||||
}
|
}
|
@ -15,6 +15,6 @@ public interface RawEventRepository {
|
|||||||
|
|
||||||
void cleanAll();
|
void cleanAll();
|
||||||
|
|
||||||
Set<JsonObject> getEventQueue();
|
Set<JsonObject> findNewEvent();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
//package org.sadtech.vkbot.core.repository.impl;
|
|
||||||
//
|
|
||||||
//import com.google.gson.JsonObject;
|
|
||||||
//import org.sadtech.vkbot.core.repository.RawEventRepository;
|
|
||||||
//
|
|
||||||
//import java.util.Queue;
|
|
||||||
//import java.util.concurrent.ConcurrentLinkedQueue;
|
|
||||||
//
|
|
||||||
//public class RawEventRepositoryQueue implements RawEventRepository {
|
|
||||||
//
|
|
||||||
// private final Queue<JsonObject> jsonObjects = new ConcurrentLinkedQueue<>();
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void add(JsonObject jsonObject) {
|
|
||||||
// jsonObjects.offer(jsonObject);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void cleanAll() {
|
|
||||||
// jsonObjects.clear();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public Set<JsonObject> getEventQueue() {
|
|
||||||
// return jsonObjects;
|
|
||||||
// }
|
|
||||||
//}
|
|
@ -0,0 +1,26 @@
|
|||||||
|
package org.sadtech.vkbot.core.repository.impl;
|
||||||
|
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
import org.sadtech.vkbot.core.repository.RawEventRepository;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
public class RawEventRepositorySet implements RawEventRepository {
|
||||||
|
|
||||||
|
private final Set<JsonObject> jsonObjects = new HashSet<>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void add(JsonObject jsonObject) {
|
||||||
|
jsonObjects.add(jsonObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cleanAll() {
|
||||||
|
jsonObjects.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<JsonObject> findNewEvent() {
|
||||||
|
return jsonObjects;
|
||||||
|
}
|
||||||
|
}
|
@ -38,7 +38,7 @@ public class RawEventRepositoryJpaImpl implements RawEventRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Set<JsonObject> getEventQueue() {
|
public Set<JsonObject> findNewEvent() {
|
||||||
if (addFlag) {
|
if (addFlag) {
|
||||||
List<JsonObjectId> allEvent = rawEventRepositoryJpa.findAll();
|
List<JsonObjectId> allEvent = rawEventRepositoryJpa.findAll();
|
||||||
rawEventRepositoryJpa.deleteAll(allEvent);
|
rawEventRepositoryJpa.deleteAll(allEvent);
|
||||||
|
@ -15,6 +15,6 @@ public interface RawEventService {
|
|||||||
|
|
||||||
void add(JsonObject jsonObject);
|
void add(JsonObject jsonObject);
|
||||||
|
|
||||||
Set<JsonObject> getJsonObjects();
|
Set<JsonObject> getNewEvent();
|
||||||
|
|
||||||
}
|
}
|
@ -27,8 +27,8 @@ public class RawEventServiceImpl implements RawEventService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Set<JsonObject> getJsonObjects() {
|
public Set<JsonObject> getNewEvent() {
|
||||||
return rawEventRepository.getEventQueue();
|
return rawEventRepository.findNewEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user