aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/juick/server/ActivityPubManager.java
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2018-11-29 13:08:02 +0300
committerGravatar Vitaly Takmazov2018-11-29 13:08:02 +0300
commita1058eeef3963634853f8470d1957ecf58c4481a (patch)
treea0d003f117516f5c9e6b7cbb49a355ff48150de5 /src/main/java/com/juick/server/ActivityPubManager.java
parent7647ea6728e9203787dff4f640acb4d6ce3a704f (diff)
ActivityPub likes refactoring
Diffstat (limited to 'src/main/java/com/juick/server/ActivityPubManager.java')
-rw-r--r--src/main/java/com/juick/server/ActivityPubManager.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/main/java/com/juick/server/ActivityPubManager.java b/src/main/java/com/juick/server/ActivityPubManager.java
index dddb4344..9829760f 100644
--- a/src/main/java/com/juick/server/ActivityPubManager.java
+++ b/src/main/java/com/juick/server/ActivityPubManager.java
@@ -14,6 +14,7 @@ import com.juick.server.api.activity.model.objects.Mention;
import com.juick.server.api.activity.model.objects.Note;
import com.juick.server.api.activity.model.objects.Person;
import com.juick.server.util.HttpUtils;
+import com.juick.service.MessagesService;
import com.juick.service.SocialService;
import com.juick.service.UserService;
import com.juick.service.activities.*;
@@ -56,6 +57,8 @@ public class ActivityPubManager implements ActivityListener, NotificationListene
@Inject
private UserService userService;
@Inject
+ private MessagesService messagesService;
+ @Inject
private PebbleEngine pebbleEngine;
@Value("${ap_base_uri:http://localhost:8080/}")
private String baseUri;
@@ -133,6 +136,34 @@ public class ActivityPubManager implements ActivityListener, NotificationListene
}
@Override
+ public void processAnnounceEvent(AnnounceEvent event) {
+ UriComponents uriComponents = UriComponentsBuilder.fromUriString(event.getMessageUri()).build();
+ List<String> segments = uriComponents.getPathSegments();
+ if (segments.get(0).equals("m")) {
+ String[] ids = segments.get(1).split("-", 2);
+ if (ids.length == 1) {
+ // only messages
+ logger.info("{} recommends {}", event.getActorUri(), Integer.valueOf(ids[0]));
+ messagesService.recommendMessage(Integer.valueOf(ids[0]), 0, event.getActorUri());
+ }
+ }
+ }
+
+ @Override
+ public void undoAnnounceEvent(UndoAnnounceEvent event) {
+ UriComponents uriComponents = UriComponentsBuilder.fromUriString(event.getMessageUri()).build();
+ List<String> segments = uriComponents.getPathSegments();
+ if (segments.get(0).equals("m")) {
+ String[] ids = segments.get(1).split("-", 2);
+ if (ids.length == 1) {
+ // only messages
+ logger.info("{} stop recommending {}", event.getActorUri(), Integer.valueOf(ids[0]));
+ messagesService.recommendMessage(Integer.valueOf(ids[0]), 0, event.getActorUri());
+ }
+ }
+ }
+
+ @Override
public void processMessageEvent(MessageEvent messageEvent) {
Message msg = messageEvent.getMessage();
if (MessageUtils.isPM(msg)) {