X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FConfigurationSoneParser.java;fp=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FConfigurationSoneParser.java;h=01d32219d18c6e49cd86ab2f65b39f446f3320b5;hb=fdc519da8a4d5c994c3b2233fc049e3be728bb76;hp=8f09b3b5ee5d5c329a56ebba8b79c8d8bdcbc0d7;hpb=11f3457415c9122b5d11840d24186971af28add9;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/core/ConfigurationSoneParser.java b/src/main/java/net/pterodactylus/sone/core/ConfigurationSoneParser.java index 8f09b3b..01d3221 100644 --- a/src/main/java/net/pterodactylus/sone/core/ConfigurationSoneParser.java +++ b/src/main/java/net/pterodactylus/sone/core/ConfigurationSoneParser.java @@ -7,10 +7,13 @@ import java.util.Set; import javax.annotation.Nullable; import net.pterodactylus.sone.data.Post; +import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Profile; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.database.PostBuilder; import net.pterodactylus.sone.database.PostBuilderFactory; +import net.pterodactylus.sone.database.PostReplyBuilder; +import net.pterodactylus.sone.database.PostReplyBuilderFactory; import net.pterodactylus.util.config.Configuration; /** @@ -106,6 +109,35 @@ public class ConfigurationSoneParser { return (postRecipientId != null) && (postRecipientId.length() == 43); } + public Collection parsePostReplies( + PostReplyBuilderFactory postReplyBuilderFactory) { + Set replies = new HashSet(); + while (true) { + String replyPrefix = "/Replies/" + replies.size(); + String replyId = getString(replyPrefix + "/ID", null); + if (replyId == null) { + break; + } + String postId = getString(replyPrefix + "/Post/ID", null); + long replyTime = getLong(replyPrefix + "/Time", 0L); + String replyText = getString(replyPrefix + "/Text", null); + if ((postId == null) || (replyTime == 0) || (replyText == null)) { + throw new InvalidPostReplyFound(); + } + PostReplyBuilder postReplyBuilder = postReplyBuilderFactory + .newPostReplyBuilder() + .withId(replyId) + .from(sone.getId()) + .to(postId) + .withTime(replyTime) + .withText(replyText); + replies.add(postReplyBuilder.build()); + } + return replies; + } + public static class InvalidPostFound extends RuntimeException { } + public static class InvalidPostReplyFound extends RuntimeException { } + }