X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FCore.java;h=5563bf6e8c2f614a055b46942b9e564669b9e838;hb=b9380f348777ac62b12a0b0bf2990f2271f642d8;hp=1faca354e97fd875f9d56c926cbc6b4165507a61;hpb=9db5d67a18552b4aa6b3e374bc4b928f89f0bfef;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 1faca35..5563bf6 100644 --- a/src/main/java/net/pterodactylus/sone/core/Core.java +++ b/src/main/java/net/pterodactylus/sone/core/Core.java @@ -84,7 +84,7 @@ public class Core implements IdentityListener { private final CoreListenerManager coreListenerManager = new CoreListenerManager(this); /** The configuration. */ - private final Configuration configuration; + private Configuration configuration; /** The identity manager. */ private final IdentityManager identityManager; @@ -190,6 +190,18 @@ public class Core implements IdentityListener { // /** + * Sets the configuration to use. This will automatically save the current + * configuration to the given configuration. + * + * @param configuration + * The new configuration to use + */ + public void setConfiguration(Configuration configuration) { + this.configuration = configuration; + saveConfiguration(); + } + + /** * Returns the options used by the core. * * @return The options of the core @@ -735,6 +747,7 @@ public class Core implements IdentityListener { --edition; } logger.log(Level.INFO, "Finished restoring Sone from Freenet, starting Inserter…"); + saveSone(sone); coreListenerManager.fireRescuedSone(sone); soneInserter.start(); } @@ -823,8 +836,8 @@ public class Core implements IdentityListener { } synchronized (newPosts) { for (Post post : sone.getPosts()) { + post.setSone(getSone(post.getSone().getId())); if (!storedSone.getPosts().contains(post) && !knownPosts.contains(post.getId())) { - post.setSone(getSone(post.getSone().getId())); newPosts.add(post.getId()); coreListenerManager.fireNewPostFound(post); } @@ -840,8 +853,8 @@ public class Core implements IdentityListener { } synchronized (newReplies) { for (Reply reply : sone.getReplies()) { + reply.setSone(getSone(reply.getSone().getId())); if (!storedSone.getReplies().contains(reply) && !knownReplies.contains(reply.getId())) { - reply.setSone(getSone(reply.getSone().getId())); newReplies.add(reply.getId()); coreListenerManager.fireNewReplyFound(reply); } @@ -850,7 +863,9 @@ public class Core implements IdentityListener { } } synchronized (storedSone) { - storedSone.setTime(sone.getTime()); + if (!soneRescueMode || (sone.getTime() > storedSone.getTime())) { + storedSone.setTime(sone.getTime()); + } storedSone.setClient(sone.getClient()); storedSone.setProfile(sone.getProfile()); if (soneRescueMode) { @@ -872,7 +887,7 @@ public class Core implements IdentityListener { storedSone.setLikePostIds(sone.getLikedPostIds()); storedSone.setLikeReplyIds(sone.getLikedReplyIds()); } - storedSone.setLatestEdition(sone.getRequestUri().getEdition()); + storedSone.setLatestEdition(sone.getLatestEdition()); } } }