From 3ab17252a7d9f6c5834d85d050a19fa41be0c07d Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Thu, 19 Dec 2019 13:21:40 +0300 Subject: Send Update activites on message updates --- .../java/com/juick/server/ActivityPubManager.java | 26 ++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (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 7c66809e..18470b16 100644 --- a/src/main/java/com/juick/server/ActivityPubManager.java +++ b/src/main/java/com/juick/server/ActivityPubManager.java @@ -23,10 +23,7 @@ import com.juick.User; import com.juick.formatters.PlainTextFormatter; import com.juick.server.api.SystemActivity.ActivityType; import com.juick.server.api.activity.model.Context; -import com.juick.server.api.activity.model.activities.Accept; -import com.juick.server.api.activity.model.activities.Announce; -import com.juick.server.api.activity.model.activities.Create; -import com.juick.server.api.activity.model.activities.Delete; +import com.juick.server.api.activity.model.activities.*; import com.juick.server.api.activity.model.objects.Hashtag; import com.juick.server.api.activity.model.objects.Image; import com.juick.server.api.activity.model.objects.Mention; @@ -183,6 +180,27 @@ public class ActivityPubManager implements ActivityListener, NotificationListene } } + @Override + public void processUpdateEvent(UpdateEvent event) { + String objectUri = event.getMessageUri(); + User user = event.getUser(); + String userUri = personUri(user); + Person me = (Person) signatureManager.getContext(URI.create(userUri)).get(); + socialService.getFollowers(user).forEach(acct -> { + Person follower = (Person) signatureManager.getContext(URI.create(acct)).get(); + Update update = new Update(); + update.setId(objectUri + "#update"); + update.setActor(me.getId()); + update.setObject(objectUri); + try { + logger.info("Update to follower {}", follower.getId()); + signatureManager.post(me, follower, update); + } catch (IOException e) { + logger.warn("activitypub exception", e); + } + }); + } + @Override public void processSystemEvent(SystemEvent systemEvent) { ActivityType type = systemEvent.getActivity().getType(); -- cgit v1.2.3