aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/juick/server/ActivityPubManager.java
diff options
context:
space:
mode:
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)) {