From a1058eeef3963634853f8470d1957ecf58c4481a Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Thu, 29 Nov 2018 13:08:02 +0300 Subject: ActivityPub likes refactoring --- .../java/com/juick/server/ActivityPubManager.java | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'src/main/java/com/juick/server/ActivityPubManager.java') 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; @@ -132,6 +135,34 @@ public class ActivityPubManager implements ActivityListener, NotificationListene }); } + @Override + public void processAnnounceEvent(AnnounceEvent event) { + UriComponents uriComponents = UriComponentsBuilder.fromUriString(event.getMessageUri()).build(); + List 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 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(); -- cgit v1.2.3