X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FCore.java;h=5dd1eb6b0fffcca41252392df309c88a54707567;hb=8d257d649b372ca1a240a8e26ce33205c7019d0d;hp=ba12a8daebfa550e479892c887d585fb429db881;hpb=f0bf9ce12950f0a6106f59f105dae69592203f35;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/core/Core.java b/src/main/java/net/pterodactylus/sone/core/Core.java index ba12a8d..5dd1eb6 100644 --- a/src/main/java/net/pterodactylus/sone/core/Core.java +++ b/src/main/java/net/pterodactylus/sone/core/Core.java @@ -38,6 +38,8 @@ import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; +import net.pterodactylus.sone.core.ConfigurationSoneParser.InvalidPostFound; +import net.pterodactylus.sone.core.ConfigurationSoneParser.InvalidPostReplyFound; import net.pterodactylus.sone.core.Options.DefaultOption; import net.pterodactylus.sone.core.SoneInserter.SetInsertionDelay; import net.pterodactylus.sone.core.event.ImageInsertFinishedEvent; @@ -446,22 +448,6 @@ public class Core extends AbstractService implements SoneProvider, PostProvider, } /** - * Returns whether the target Sone is trusted by the origin Sone. - * - * @param origin - * The origin Sone - * @param target - * The target Sone - * @return {@code true} if the target Sone is trusted by the origin Sone - */ - public boolean isSoneTrusted(Sone origin, Sone target) { - checkNotNull(origin, "origin must not be null"); - checkNotNull(target, "target must not be null"); - checkArgument(origin.getIdentity() instanceof OwnIdentity, "origin’s identity must be an OwnIdentity"); - return trustedIdentities.containsEntry(origin.getIdentity(), target.getIdentity()); - } - - /** * Returns a post builder. * * @return A new post builder @@ -1124,75 +1110,30 @@ public class Core extends AbstractService implements SoneProvider, PostProvider, String lastInsertFingerprint = configuration.getStringValue(sonePrefix + "/LastInsertFingerprint").getValue(""); /* load profile. */ - Profile profile = new Profile(sone); - profile.setFirstName(configuration.getStringValue(sonePrefix + "/Profile/FirstName").getValue(null)); - profile.setMiddleName(configuration.getStringValue(sonePrefix + "/Profile/MiddleName").getValue(null)); - profile.setLastName(configuration.getStringValue(sonePrefix + "/Profile/LastName").getValue(null)); - profile.setBirthDay(configuration.getIntValue(sonePrefix + "/Profile/BirthDay").getValue(null)); - profile.setBirthMonth(configuration.getIntValue(sonePrefix + "/Profile/BirthMonth").getValue(null)); - profile.setBirthYear(configuration.getIntValue(sonePrefix + "/Profile/BirthYear").getValue(null)); - - /* load profile fields. */ - while (true) { - String fieldPrefix = sonePrefix + "/Profile/Fields/" + profile.getFields().size(); - String fieldName = configuration.getStringValue(fieldPrefix + "/Name").getValue(null); - if (fieldName == null) { - break; - } - String fieldValue = configuration.getStringValue(fieldPrefix + "/Value").getValue(""); - profile.addField(fieldName).setValue(fieldValue); - } + ConfigurationSoneParser configurationSoneParser = new ConfigurationSoneParser(configuration, sone); + Profile profile = configurationSoneParser.parseProfile(); /* load posts. */ - Set posts = new HashSet(); - while (true) { - String postPrefix = sonePrefix + "/Posts/" + posts.size(); - String postId = configuration.getStringValue(postPrefix + "/ID").getValue(null); - if (postId == null) { - break; - } - String postRecipientId = configuration.getStringValue(postPrefix + "/Recipient").getValue(null); - long postTime = configuration.getLongValue(postPrefix + "/Time").getValue((long) 0); - String postText = configuration.getStringValue(postPrefix + "/Text").getValue(null); - if ((postTime == 0) || (postText == null)) { - logger.log(Level.WARNING, "Invalid post found, aborting load!"); - return; - } - PostBuilder postBuilder = postBuilder().withId(postId).from(sone.getId()).withTime(postTime).withText(postText); - if ((postRecipientId != null) && (postRecipientId.length() == 43)) { - postBuilder.to(postRecipientId); - } - posts.add(postBuilder.build()); + Collection posts; + try { + posts = configurationSoneParser.parsePosts(database); + } catch (InvalidPostFound ipf) { + logger.log(Level.WARNING, "Invalid post found, aborting load!"); + return; } /* load replies. */ - Set replies = new HashSet(); - while (true) { - String replyPrefix = sonePrefix + "/Replies/" + replies.size(); - String replyId = configuration.getStringValue(replyPrefix + "/ID").getValue(null); - if (replyId == null) { - break; - } - String postId = configuration.getStringValue(replyPrefix + "/Post/ID").getValue(null); - long replyTime = configuration.getLongValue(replyPrefix + "/Time").getValue((long) 0); - String replyText = configuration.getStringValue(replyPrefix + "/Text").getValue(null); - if ((postId == null) || (replyTime == 0) || (replyText == null)) { - logger.log(Level.WARNING, "Invalid reply found, aborting load!"); - return; - } - PostReplyBuilder postReplyBuilder = postReplyBuilder().withId(replyId).from(sone.getId()).to(postId).withTime(replyTime).withText(replyText); - replies.add(postReplyBuilder.build()); + Collection replies; + try { + replies = configurationSoneParser.parsePostReplies(database); + } catch (InvalidPostReplyFound iprf) { + logger.log(Level.WARNING, "Invalid reply found, aborting load!"); + return; } /* load post likes. */ - Set likedPostIds = new HashSet(); - while (true) { - String likedPostId = configuration.getStringValue(sonePrefix + "/Likes/Post/" + likedPostIds.size() + "/ID").getValue(null); - if (likedPostId == null) { - break; - } - likedPostIds.add(likedPostId); - } + Set likedPostIds = + configurationSoneParser.parseLikedPostIds(); /* load reply likes. */ Set likedReplyIds = new HashSet(); @@ -1329,34 +1270,6 @@ public class Core extends AbstractService implements SoneProvider, PostProvider, * * @param sone * The Sone that creates the post - * @param text - * The text of the post - * @return The created post - */ - public Post createPost(Sone sone, String text) { - return createPost(sone, System.currentTimeMillis(), text); - } - - /** - * Creates a new post. - * - * @param sone - * The Sone that creates the post - * @param time - * The time of the post - * @param text - * The text of the post - * @return The created post - */ - public Post createPost(Sone sone, long time, String text) { - return createPost(sone, null, time, text); - } - - /** - * Creates a new post. - * - * @param sone - * The Sone that creates the post * @param recipient * The recipient Sone, or {@code null} if this post does not have * a recipient @@ -1437,16 +1350,6 @@ public class Core extends AbstractService implements SoneProvider, PostProvider, } /** - * Bookmarks the given post. - * - * @param post - * The post to bookmark - */ - public void bookmark(Post post) { - bookmarkPost(post.getId()); - } - - /** * Bookmarks the post with the given ID. * * @param id @@ -1544,17 +1447,6 @@ public class Core extends AbstractService implements SoneProvider, PostProvider, } /** - * Creates a new top-level album for the given Sone. - * - * @param sone - * The Sone to create the album for - * @return The new album - */ - public Album createAlbum(Sone sone) { - return createAlbum(sone, sone.getRootAlbum()); - } - - /** * Creates a new album for the given Sone. * * @param sone @@ -1618,7 +1510,7 @@ public class Core extends AbstractService implements SoneProvider, PostProvider, * Deletes the given image. This method will also delete a matching * temporary image. * - * @see #deleteTemporaryImage(TemporaryImage) + * @see #deleteTemporaryImage(String) * @param image * The image to delete */ @@ -1650,17 +1542,6 @@ public class Core extends AbstractService implements SoneProvider, PostProvider, } /** - * Deletes the given temporary image. - * - * @param temporaryImage - * The temporary image to delete - */ - public void deleteTemporaryImage(TemporaryImage temporaryImage) { - checkNotNull(temporaryImage, "temporaryImage must not be null"); - deleteTemporaryImage(temporaryImage.getId()); - } - - /** * Deletes the temporary image with the given ID. * * @param imageId