Downlad SSKs instead of USKs to prevent triggering another search.
[Sone.git] / src / main / java / net / pterodactylus / sone / core / SoneDownloader.java
index 933191f..56c1e4a 100644 (file)
@@ -93,10 +93,10 @@ public class SoneDownloader extends AbstractService {
         *            The Sone to add
         */
        public void addSone(Sone sone) {
-               if (sones.add(sone)) {
+               if (!sones.add(sone)) {
                        freenetInterface.unregisterUsk(sone);
-                       freenetInterface.registerUsk(sone, this);
                }
+               freenetInterface.registerUsk(sone, this);
        }
 
        /**
@@ -119,7 +119,7 @@ public class SoneDownloader extends AbstractService {
         *            The Sone to fetch
         */
        public void fetchSone(Sone sone) {
-               fetchSone(sone, sone.getRequestUri());
+               fetchSone(sone, sone.getRequestUri().sskForUSK());
        }
 
        /**
@@ -133,9 +133,6 @@ public class SoneDownloader extends AbstractService {
         *            The URI to fetch the Sone from
         */
        public void fetchSone(Sone sone, FreenetURI soneUri) {
-               if (core.getSoneStatus(sone) == SoneStatus.downloading) {
-                       return;
-               }
                logger.log(Level.FINE, "Starting fetch for Sone ā€œ%sā€ from %sā€¦", new Object[] { sone, soneUri });
                FreenetURI requestUri = soneUri.setMetaString(new String[] { "sone.xml" });
                core.setSoneStatus(sone, SoneStatus.downloading);