aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/juick/server/ActivityPubManager.java
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2019-12-19 13:21:40 +0300
committerGravatar Vitaly Takmazov2019-12-19 13:21:40 +0300
commit3ab17252a7d9f6c5834d85d050a19fa41be0c07d (patch)
treed6eb45b174281abfcee6e280eab7bb0f5bf15987 /src/main/java/com/juick/server/ActivityPubManager.java
parent7b2bad85004179e7898e90e26c8afe34f221dde0 (diff)
Send Update activites on message updates
Diffstat (limited to 'src/main/java/com/juick/server/ActivityPubManager.java')
-rw-r--r--src/main/java/com/juick/server/ActivityPubManager.java26
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)) {