X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FSoneDownloader.java;h=ac3929191828c2775223da1b768723ea4b8fc695;hb=bf6da11210fb439f2cdc8fcb8755589d04b4db3b;hp=34f48d9087c9f5242a661ea64dfe522ad0c12239;hpb=21504ae986215cd0371801a2d30b1b5d2a756238;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java b/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java index 34f48d9..ac39291 100644 --- a/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java +++ b/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java @@ -276,38 +276,47 @@ public class SoneDownloader extends AbstractService { } } - /* parse friends. */ - SimpleXML friendsXml = soneXml.getNode("friends"); - if (friendsXml == null) { + /* parse liked post IDs. */ + SimpleXML likePostIdsXml = soneXml.getNode("post-likes"); + if (likePostIdsXml == null) { /* TODO - mark Sone as bad. */ - logger.log(Level.WARNING, "Downloaded Sone %s has no friends!", new Object[] { sone }); + logger.log(Level.WARNING, "Downloaded Sone %s has no known Sones!", new Object[] { sone }); return null; } - Set friends = new HashSet(); - for (SimpleXML friendXml : friendsXml.getNodes("friend")) { - String friendId = friendXml.getValue("sone-id", null); - String friendKey = friendXml.getValue("sone-key", null); - String friendName = friendXml.getValue("sone-name", null); - if ((friendId == null) || (friendKey == null) || (friendName == null)) { - /* TODO - mark Sone as bad. */ - logger.log(Level.WARNING, "Downloaded friend for Sone %s with missing data! ID: %s, Key: %s, Name: %s", new Object[] { sone, friendId, friendKey, friendName }); - return null; - } - try { - friends.add(core.getSone(friendId).setRequestUri(new FreenetURI(friendKey)).setName(friendName)); - } catch (MalformedURLException mue1) { - /* TODO - mark Sone as bad. */ - logger.log(Level.WARNING, "Downloaded friend for Sone %s with invalid key: %s", new Object[] { sone, friendKey }); - return null; - } + Set likedPostIds = new HashSet(); + for (SimpleXML likedPostIdXml : likePostIdsXml.getNodes("post-like")) { + String postId = likedPostIdXml.getValue(); + likedPostIds.add(postId); + } + + /* parse liked reply IDs. */ + SimpleXML likeReplyIdsXml = soneXml.getNode("reply-likes"); + if (likeReplyIdsXml == null) { + /* TODO - mark Sone as bad. */ + logger.log(Level.WARNING, "Downloaded Sone %s has no reply likes!", new Object[] { sone }); + return null; + } + + Set likedReplyIds = new HashSet(); + for (SimpleXML likedReplyIdXml : likeReplyIdsXml.getNodes("reply-like")) { + String replyId = likedReplyIdXml.getValue(); + likedReplyIds.add(replyId); + } + + /* parse known Sones. */ + SimpleXML knownSonesXml = soneXml.getNode("known-sones"); + if (knownSonesXml == null) { + /* TODO - mark Sone as bad. */ + logger.log(Level.WARNING, "Downloaded Sone %s has no known Sones!", new Object[] { sone }); + return null; } Set knownSones = new HashSet(); - for (SimpleXML friendXml : friendsXml.getNodes("friend")) { - String knownSoneId = friendXml.getValue("sone-id", null); - String knownSoneKey = friendXml.getValue("sone-key", null); - String knownSoneName = friendXml.getValue("sone-name", null); + for (SimpleXML knownSoneXml : knownSonesXml.getNodes("known-sone")) { + String knownSoneId = knownSoneXml.getValue("sone-id", null); + String knownSoneKey = knownSoneXml.getValue("sone-key", null); + String knownSoneName = knownSoneXml.getValue("sone-name", null); if ((knownSoneId == null) || (knownSoneKey == null) || (knownSoneName == null)) { /* TODO - mark Sone as bad. */ logger.log(Level.WARNING, "Downloaded known Sone for Sone %s with missing data! ID: %s, Key: %s, Name: %s", new Object[] { sone, knownSoneId, knownSoneKey, knownSoneName }); @@ -328,7 +337,7 @@ public class SoneDownloader extends AbstractService { sone.setProfile(profile); sone.setPosts(posts); sone.setReplies(replies); - sone.setFriends(friends); + sone.setLikePostIds(likedPostIds); sone.setModificationCounter(0); }