diff options
author | 2018-10-05 13:45:14 +0300 | |
---|---|---|
committer | 2018-10-05 13:45:14 +0300 | |
commit | f85d0eb9e26b9ffae574b21a263b83c079342e6e (patch) | |
tree | 17aacec8c72cfb6689e2e34ee427b7a51dd94f2e | |
parent | d6e4aa12983c466ecff0a6fdc32e1a5c415baa68 (diff) |
ActivityPub: change message uri to human readable
-rw-r--r-- | juick-server/src/main/java/com/juick/server/ActivityPubManager.java | 7 | ||||
-rw-r--r-- | juick-server/src/main/java/com/juick/server/api/activity/Profile.java | 14 |
2 files changed, 6 insertions, 15 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 46b7177f..2d6d06bc 100644 --- a/juick-server/src/main/java/com/juick/server/ActivityPubManager.java +++ b/juick-server/src/main/java/com/juick/server/ActivityPubManager.java @@ -4,7 +4,6 @@ import com.juick.Message; import com.juick.User; import com.juick.formatters.PlainTextFormatter; import com.juick.server.api.activity.model.Image; -import com.juick.server.api.activity.model.Link; import com.juick.server.api.activity.model.Note; import com.juick.server.api.activity.model.Person; import com.juick.server.api.activity.model.activities.Accept; @@ -22,7 +21,6 @@ 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; @@ -172,10 +170,7 @@ public class ActivityPubManager implements ActivityListener, NotificationListene } public String messageUri(int mid, int rid) { UriComponentsBuilder uri = UriComponentsBuilder.fromUriString(baseUri); - String postId = rid > 0 ? - String.format("%d#%d", mid, rid) - : String.valueOf(mid); - uri.replacePath(String.format("/n/%s", Base64Utils.encodeToUrlSafeString(postId.getBytes()))); + uri.replacePath(String.format("/n/%d-%d", mid, rid)); return uri.toUriString(); } diff --git a/juick-server/src/main/java/com/juick/server/api/activity/Profile.java b/juick-server/src/main/java/com/juick/server/api/activity/Profile.java index 4186539d..f2beaa53 100644 --- a/juick-server/src/main/java/com/juick/server/api/activity/Profile.java +++ b/juick-server/src/main/java/com/juick/server/api/activity/Profile.java @@ -2,7 +2,6 @@ package com.juick.server.api.activity; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import com.juick.Message; import com.juick.User; import com.juick.server.ActivityPubManager; import com.juick.server.KeystoreManager; @@ -25,7 +24,6 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationEventPublisher; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.util.Base64Utils; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.support.ServletUriComponentsBuilder; import org.springframework.web.util.UriComponents; @@ -223,17 +221,15 @@ public class Profile { throw new HttpNotFoundException(); } - @GetMapping(value = "/n/{base64id}", produces = {Context.LD_JSON_MEDIA_TYPE, Context.ACTIVITY_JSON_MEDIA_TYPE}) - public Context showNote(@PathVariable String base64id) { - String postId = new String(Base64Utils.decodeFromUrlSafeString(base64id)); - String[] ids = postId.split("#", 2); - if (ids.length > 1) { + @GetMapping(value = "/n/{mid}-{rid}", produces = {Context.LD_JSON_MEDIA_TYPE, Context.ACTIVITY_JSON_MEDIA_TYPE}) + public Context showNote(@PathVariable int mid, @PathVariable int rid) { + if (rid > 0) { // reply return Context.build(activityPubManager.makeNote( - messagesService.getReply(Integer.valueOf(ids[0]), Integer.valueOf(ids[1])))); + messagesService.getReply(mid, rid))); } return Context.build(activityPubManager.makeNote( - messagesService.getMessage(Integer.valueOf(ids[0])))); + messagesService.getMessage(mid))); } @PostMapping(value = "/api/inbox", consumes = {Context.LD_JSON_MEDIA_TYPE, Context.ACTIVITY_JSON_MEDIA_TYPE}) |