X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FSoneInserter.java;h=c15b1d09562eb4947b56bfda04c6e14be073ebdd;hb=0001614e7188967fabe8597d4c5663952ab19197;hp=b79e620d83c7873f88b5ceae12d2566c0837f450;hpb=fb951c5d1c4a274739c0a002286937baa817232e;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/core/SoneInserter.java b/src/main/java/net/pterodactylus/sone/core/SoneInserter.java index b79e620..c15b1d0 100644 --- a/src/main/java/net/pterodactylus/sone/core/SoneInserter.java +++ b/src/main/java/net/pterodactylus/sone/core/SoneInserter.java @@ -163,6 +163,9 @@ public class SoneInserter extends AbstractService { /* don’t insert locked Sones. */ if (core.isLocked(sone)) { /* trigger redetection when the Sone is unlocked. */ + synchronized (sone) { + modified = !sone.getFingerprint().equals(lastInsertFingerprint); + } lastFingerprint = ""; lastModificationTime = 0; continue; @@ -179,7 +182,6 @@ public class SoneInserter extends AbstractService { } else { lastModificationTime = System.currentTimeMillis(); modified = true; - sone.setTime(lastModificationTime); logger.log(Level.FINE, "Sone %s has been modified, waiting %d seconds before inserting.", new Object[] { sone.getName(), insertionDelay }); } lastFingerprint = fingerprint; @@ -196,12 +198,15 @@ public class SoneInserter extends AbstractService { boolean success = false; try { core.setSoneStatus(sone, SoneStatus.inserting); + long insertTime = System.currentTimeMillis(); + insertInformation.setTime(insertTime); FreenetURI finalUri = freenetInterface.insertDirectory(insertInformation.getInsertUri().setKeyType("USK").setSuggestedEdition(0), insertInformation.generateManifestEntries(), "index.html"); /* at this point we might already be stopped. */ if (shouldStop()) { /* if so, bail out, don’t change anything. */ break; } + sone.setTime(insertTime); sone.setLatestEdition(finalUri.getEdition()); success = true; logger.log(Level.INFO, "Inserted Sone “%s” at %s.", new Object[] { sone.getName(), finalUri }); @@ -257,7 +262,7 @@ public class SoneInserter extends AbstractService { soneProperties.put("posts", new ArrayList(sone.getPosts())); soneProperties.put("replies", new HashSet(sone.getReplies())); soneProperties.put("likedPostIds", new HashSet(sone.getLikedPostIds())); - soneProperties.put("likeReplyIds", new HashSet(sone.getLikedReplyIds())); + soneProperties.put("likedReplyIds", new HashSet(sone.getLikedReplyIds())); } // @@ -273,6 +278,16 @@ public class SoneInserter extends AbstractService { return (FreenetURI) soneProperties.get("insertUri"); } + /** + * Sets the time of the Sone at the time of the insert. + * + * @param time + * The time of the Sone + */ + public void setTime(long time) { + soneProperties.put("time", time); + } + // // ACTIONS //