X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FSoneDownloader.java;h=e0ee3637a730fdeda087d6e524a25fc4b5cb0743;hp=36b672c285a3899584d2ee466238bcb9ca11e91e;hb=6e9a43ccd93ae125720547c0fe421dc81a54ba90;hpb=b04f97f923dcae625ee2aaa15491c75864936b82 diff --git a/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java b/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java index 36b672c..e0ee363 100644 --- a/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java +++ b/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java @@ -31,11 +31,12 @@ import net.pterodactylus.sone.data.Album; import net.pterodactylus.sone.data.Client; import net.pterodactylus.sone.data.Image; import net.pterodactylus.sone.data.Post; -import net.pterodactylus.sone.data.PostBuilder; import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Profile; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.data.Sone.SoneStatus; +import net.pterodactylus.sone.database.PostBuilder; +import net.pterodactylus.sone.database.PostReplyBuilder; import net.pterodactylus.util.io.Closer; import net.pterodactylus.util.logging.Logging; import net.pterodactylus.util.number.Numbers; @@ -96,10 +97,9 @@ public class SoneDownloader extends AbstractService { * The Sone to add */ public void addSone(Sone sone) { - if (!sones.add(sone)) { - freenetInterface.unregisterUsk(sone); + if (sones.add(sone)) { + freenetInterface.registerUsk(sone, this); } - freenetInterface.registerUsk(sone, this); } /** @@ -165,6 +165,7 @@ public class SoneDownloader extends AbstractService { Sone parsedSone = parseSone(sone, fetchResults.getFetchResult(), fetchResults.getFreenetUri()); if (parsedSone != null) { if (!fetchOnly) { + parsedSone.setStatus((parsedSone.getTime() == 0) ? SoneStatus.unknown : SoneStatus.idle); core.updateSone(parsedSone); addSone(parsedSone); } @@ -375,9 +376,9 @@ public class SoneDownloader extends AbstractService { try { PostBuilder postBuilder = core.postBuilder(); /* TODO - parse time correctly. */ - postBuilder.withId(postId).from(sone).withTime(Long.parseLong(postTime)).withText(postText); + postBuilder.withId(postId).from(sone.getId()).withTime(Long.parseLong(postTime)).withText(postText); if ((postRecipientId != null) && (postRecipientId.length() == 43)) { - postBuilder.to(core.getSone(postRecipientId)); + postBuilder.to(postRecipientId); } posts.add(postBuilder.build()); } catch (NumberFormatException nfe1) { @@ -406,7 +407,10 @@ public class SoneDownloader extends AbstractService { return null; } try { - replies.add(core.getPostReply(replyId, true).setSone(sone).setPost(core.getPost(replyPostId)).setTime(Long.parseLong(replyTime)).setText(replyText)); + PostReplyBuilder postReplyBuilder = core.postReplyBuilder(); + /* TODO - parse time correctly. */ + postReplyBuilder.withId(replyId).from(sone.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));