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=5d40881457d9b4b9a3150607b705e2e164c76171;hpb=5176fec23f420e0ebfe3c94d2b40afcb43d29841;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 5d40881..ac39291 100644 --- a/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java +++ b/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java @@ -276,6 +276,34 @@ public class SoneDownloader extends AbstractService { } } + /* 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 known Sones!", new Object[] { sone }); + 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) { @@ -309,6 +337,7 @@ public class SoneDownloader extends AbstractService { sone.setProfile(profile); sone.setPosts(posts); sone.setReplies(replies); + sone.setLikePostIds(likedPostIds); sone.setModificationCounter(0); }