aboutsummaryrefslogtreecommitdiff
path: root/juick-server/src/main/java/com/juick/server/ActivityPubManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'juick-server/src/main/java/com/juick/server/ActivityPubManager.java')
-rw-r--r--juick-server/src/main/java/com/juick/server/ActivityPubManager.java27
1 files changed, 16 insertions, 11 deletions
diff --git a/juick-server/src/main/java/com/juick/server/ActivityPubManager.java b/juick-server/src/main/java/com/juick/server/ActivityPubManager.java
index 5aecdd33..d494154c 100644
--- a/juick-server/src/main/java/com/juick/server/ActivityPubManager.java
+++ b/juick-server/src/main/java/com/juick/server/ActivityPubManager.java
@@ -3,6 +3,7 @@ package com.juick.server;
import com.juick.Message;
import com.juick.User;
import com.juick.formatters.PlainTextFormatter;
+import com.juick.server.api.activity.model.Context;
import com.juick.server.api.activity.model.Image;
import com.juick.server.api.activity.model.Note;
import com.juick.server.api.activity.model.Person;
@@ -29,6 +30,7 @@ import javax.inject.Inject;
import java.io.IOException;
import java.net.URI;
import java.util.Collections;
+import java.util.Optional;
@Component
public class ActivityPubManager implements ActivityListener, NotificationListener {
@@ -125,17 +127,20 @@ public class ActivityPubManager implements ActivityListener, NotificationListene
Note note = makeNote(msg);
Person me = (Person) signatureManager.getContext(URI.create(userUri)).get();
socialService.getFollowers(user).forEach(acct -> {
- Person follower = (Person) signatureManager.getContext(URI.create(acct)).get();
- Create create = new Create();
- create.setId(note.getId());
- create.setActor(me.getId());
- create.setPublished(note.getPublished());
- create.setObject(note);
- try {
- logger.info("Posting to follower {}", follower.getId());
- signatureManager.post(me, follower, create);
- } catch (IOException e) {
- logger.warn("activitypub exception", e);
+ Optional<Context> context = signatureManager.getContext(URI.create(acct));
+ if (context.isPresent()) {
+ Person follower = (Person)context.get();
+ Create create = new Create();
+ create.setId(note.getId());
+ create.setActor(me.getId());
+ create.setPublished(note.getPublished());
+ create.setObject(note);
+ try {
+ logger.info("Posting to follower {}", follower.getId());
+ signatureManager.post(me, follower, create);
+ } catch (IOException e) {
+ logger.warn("activitypub exception", e);
+ }
}
});
}