diff options
Diffstat (limited to 'src/main/java/com/juick/server/ActivityPubManager.java')
-rw-r--r-- | src/main/java/com/juick/server/ActivityPubManager.java | 26 |
1 files changed, 22 insertions, 4 deletions
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; @@ -184,6 +181,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(); if (type.equals(ActivityType.message)) { |