X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FSoneParser.java;h=218a3685df35f245e884d8247253ed9f1cc8e9b1;hb=f8672b1385173a103d7f085d8e9cd43bc5762d71;hp=03237964842fa7b0d34177cbcb605e84e783c1cb;hpb=3752ebf20fcb0c71287f2b7fed358b14c7649d7f;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/core/SoneParser.java b/src/main/java/net/pterodactylus/sone/core/SoneParser.java index 0323796..218a368 100644 --- a/src/main/java/net/pterodactylus/sone/core/SoneParser.java +++ b/src/main/java/net/pterodactylus/sone/core/SoneParser.java @@ -59,9 +59,6 @@ public class SoneParser { } SoneBuilder soneBuilder = core.soneBuilder().from(originalSone.getIdentity()); - if (originalSone.isLocal()) { - soneBuilder = soneBuilder.local(); - } SimpleXML soneXml; try { @@ -119,12 +116,11 @@ public class SoneParser { } else { soneBuilder.using(new Client("Unknown Client", "0.0")); } - Sone sone = soneBuilder.build(); SimpleXML profileXml = soneXml.getNode("profile"); if (profileXml == null) { /* TODO - mark Sone as bad. */ - logger.log(Level.WARNING, String.format("Downloaded Sone %s has no profile!", sone)); + logger.log(Level.WARNING, String.format("Downloaded Sone %s has no profile!", originalSone)); return null; } @@ -135,7 +131,7 @@ public class SoneParser { Integer profileBirthDay = parseInt(profileXml.getValue("birth-day", ""), null); Integer profileBirthMonth = parseInt(profileXml.getValue("birth-month", ""), null); Integer profileBirthYear = parseInt(profileXml.getValue("birth-year", ""), null); - Profile profile = new Profile(sone).setFirstName(profileFirstName).setMiddleName(profileMiddleName).setLastName(profileLastName); + Profile profile = new Profile(originalSone).setFirstName(profileFirstName).setMiddleName(profileMiddleName).setLastName(profileLastName); profile.setBirthDay(profileBirthDay).setBirthMonth(profileBirthMonth).setBirthYear(profileBirthYear); /* avatar is processed after images are loaded. */ String avatarId = profileXml.getValue("avatar", null); @@ -147,7 +143,7 @@ public class SoneParser { String fieldName = fieldXml.getValue("field-name", null); String fieldValue = fieldXml.getValue("field-value", ""); if (fieldName == null) { - logger.log(Level.WARNING, String.format("Downloaded profile field for Sone %s with missing data! Name: %s, Value: %s", sone, fieldName, fieldValue)); + logger.log(Level.WARNING, String.format("Downloaded profile field for Sone %s with missing data! Name: %s, Value: %s", originalSone, fieldName, fieldValue)); return null; } try { @@ -161,11 +157,11 @@ public class SoneParser { /* parse posts. */ SimpleXML postsXml = soneXml.getNode("posts"); - Set posts = new HashSet(); if (postsXml == null) { /* TODO - mark Sone as bad. */ - logger.log(Level.WARNING, String.format("Downloaded Sone %s has no posts!", sone)); + logger.log(Level.WARNING, String.format("Downloaded Sone %s has no posts!", originalSone)); } else { + Set posts = new HashSet(); for (SimpleXML postXml : postsXml.getNodes("post")) { String postId = postXml.getValue("id", null); String postRecipientId = postXml.getValue("recipient", null); @@ -173,32 +169,33 @@ public class SoneParser { String postText = postXml.getValue("text", null); if ((postId == null) || (postTime == null) || (postText == null)) { /* TODO - mark Sone as bad. */ - logger.log(Level.WARNING, String.format("Downloaded post for Sone %s with missing data! ID: %s, Time: %s, Text: %s", sone, postId, postTime, postText)); + logger.log(Level.WARNING, String.format("Downloaded post for Sone %s with missing data! ID: %s, Time: %s, Text: %s", originalSone, postId, postTime, postText)); return null; } try { PostBuilder postBuilder = core.postBuilder(); /* TODO - parse time correctly. */ - postBuilder.withId(postId).from(sone.getId()).withTime(Long.parseLong(postTime)).withText(postText); + postBuilder.withId(postId).from(originalSone.getId()).withTime(Long.parseLong(postTime)).withText(postText); if ((postRecipientId != null) && (postRecipientId.length() == 43)) { postBuilder.to(postRecipientId); } posts.add(postBuilder.build()); } catch (NumberFormatException nfe1) { /* TODO - mark Sone as bad. */ - logger.log(Level.WARNING, String.format("Downloaded post for Sone %s with invalid time: %s", sone, postTime)); + logger.log(Level.WARNING, String.format("Downloaded post for Sone %s with invalid time: %s", originalSone, postTime)); return null; } } + soneBuilder.withPosts(posts); } /* parse replies. */ SimpleXML repliesXml = soneXml.getNode("replies"); - Set replies = new HashSet(); if (repliesXml == null) { /* TODO - mark Sone as bad. */ - logger.log(Level.WARNING, String.format("Downloaded Sone %s has no replies!", sone)); + logger.log(Level.WARNING, String.format("Downloaded Sone %s has no replies!", originalSone)); } else { + Set replies = new HashSet(); for (SimpleXML replyXml : repliesXml.getNodes("reply")) { String replyId = replyXml.getValue("id", null); String replyPostId = replyXml.getValue("post-id", null); @@ -206,21 +203,23 @@ public class SoneParser { String replyText = replyXml.getValue("text", null); if ((replyId == null) || (replyPostId == null) || (replyTime == null) || (replyText == null)) { /* TODO - mark Sone as bad. */ - logger.log(Level.WARNING, String.format("Downloaded reply for Sone %s with missing data! ID: %s, Post: %s, Time: %s, Text: %s", sone, replyId, replyPostId, replyTime, replyText)); + logger.log(Level.WARNING, String.format("Downloaded reply for Sone %s with missing data! ID: %s, Post: %s, Time: %s, Text: %s", originalSone, replyId, replyPostId, replyTime, replyText)); return null; } try { PostReplyBuilder postReplyBuilder = core.postReplyBuilder(); /* TODO - parse time correctly. */ - postReplyBuilder.withId(replyId).from(sone.getId()).to(replyPostId).withTime(Long.parseLong(replyTime)).withText(replyText); + postReplyBuilder.withId(replyId).from(originalSone.getId()).to(replyPostId).withTime(Long.parseLong(replyTime)).withText(replyText); replies.add(postReplyBuilder.build()); } catch (NumberFormatException nfe1) { /* TODO - mark Sone as bad. */ - logger.log(Level.WARNING, String.format("Downloaded reply for Sone %s with invalid time: %s", sone, replyTime)); + logger.log(Level.WARNING, String.format("Downloaded reply for Sone %s with invalid time: %s", originalSone, replyTime)); return null; } } + soneBuilder.withPostReplies(replies); } + Sone sone = originalSone.isLocal() ? soneBuilder.buildLocal() : soneBuilder.build(); /* parse liked post IDs. */ SimpleXML likePostIdsXml = soneXml.getNode("post-likes"); @@ -325,8 +324,6 @@ public class SoneParser { /* atomic setter operation on the Sone. */ synchronized (sone) { sone.setProfile(profile); - sone.setPosts(posts); - sone.setReplies(replies); sone.setLikePostIds(likedPostIds); sone.setLikeReplyIds(likedReplyIds); for (Album album : topLevelAlbums) {