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.java16
1 files changed, 6 insertions, 10 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 77f96347..46b7177f 100644
--- a/juick-server/src/main/java/com/juick/server/ActivityPubManager.java
+++ b/juick-server/src/main/java/com/juick/server/ActivityPubManager.java
@@ -22,6 +22,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
+import org.springframework.util.Base64Utils;
import org.springframework.web.util.UriComponentsBuilder;
import javax.annotation.Nonnull;
@@ -167,19 +168,14 @@ public class ActivityPubManager implements ActivityListener, NotificationListene
return uri.replacePath(String.format("/u/%s/following/toc", user.getName())).toUriString();
}
public String messageUri(Message msg) {
- UriComponentsBuilder uri = UriComponentsBuilder.fromUriString(baseUri);
- uri.replacePath(String.format("/n/%d", msg.getMid()));
- if (MessageUtils.isReply(msg)) {
- uri.fragment(String.valueOf(msg.getRid()));
- }
- return uri.toUriString();
+ return messageUri(msg.getMid(), msg.getRid());
}
public String messageUri(int mid, int rid) {
UriComponentsBuilder uri = UriComponentsBuilder.fromUriString(baseUri);
- uri.replacePath(String.format("/n/%d", mid));
- if (rid > 0) {
- uri.fragment(String.valueOf(rid));
- }
+ String postId = rid > 0 ?
+ String.format("%d#%d", mid, rid)
+ : String.valueOf(mid);
+ uri.replacePath(String.format("/n/%s", Base64Utils.encodeToUrlSafeString(postId.getBytes())));
return uri.toUriString();
}