X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ffcp%2FAbstractSoneCommand.java;h=5b146c8fb55d8cdbf0881fc7f611bdbf7def9b20;hb=4e3ad16ce022e5842ef8e00e71583299445b5069;hp=ed5aca8de3ce16dc735a9d9fe0cf4d1f3e6e4be1;hpb=53aca71a0f7aa4d7b645e9715c94f29ea5ce580f;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java b/src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java index ed5aca8..5b146c8 100644 --- a/src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java +++ b/src/main/java/net/pterodactylus/sone/fcp/AbstractSoneCommand.java @@ -99,6 +99,19 @@ public abstract class AbstractSoneCommand extends AbstractCommand { // /** + * Encodes text in a way that makes it possible for the text to be stored in + * a {@link SimpleFieldSet}. Backslashes, CR, and LF are prepended with a + * backslash. + * + * @param text + * The text to encode + * @return The encoded text + */ + protected String encodeString(String text) { + return text.replaceAll("\\\\", "\\\\").replaceAll("\n", "\\\\n").replaceAll("\r", "\\\\r"); + } + + /** * Returns a Sone whose ID is a parameter in the given simple field set. * * @param simpleFieldSet @@ -227,7 +240,7 @@ public abstract class AbstractSoneCommand extends AbstractCommand { postBuilder.put(prefix + "Recipient", post.getRecipient().getId()); } postBuilder.put(prefix + "Time", post.getTime()); - postBuilder.put(prefix + "Text", post.getText()); + postBuilder.put(prefix + "Text", encodeString(post.getText())); postBuilder.put(encodeLikes(core.getLikes(post), prefix + "Likes.")); if (includeReplies) { @@ -287,7 +300,7 @@ public abstract class AbstractSoneCommand extends AbstractCommand { replyBuilder.put(replyPrefix + "ID", reply.getId()); replyBuilder.put(replyPrefix + "Sone", reply.getSone().getId()); replyBuilder.put(replyPrefix + "Time", reply.getTime()); - replyBuilder.put(replyPrefix + "Text", reply.getText()); + replyBuilder.put(replyPrefix + "Text", encodeString(reply.getText())); } return replyBuilder.get(); @@ -317,4 +330,16 @@ public abstract class AbstractSoneCommand extends AbstractCommand { return likesBuilder.get(); } + // + // OBJECT METHODS + // + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return getClass().getName() + "[writeAccess=" + writeAccess + "]"; + } + }