Use a supplier to generate insert tokens for images.
[Sone.git] / src / main / java / net / pterodactylus / sone / core / FreenetInterface.java
index 914e9a7..9ccf5fc 100644 (file)
@@ -35,6 +35,8 @@ import net.pterodactylus.sone.data.TemporaryImage;
 import net.pterodactylus.util.logging.Logging;
 
 import com.db4o.ObjectContainer;
+
+import com.google.common.base.Function;
 import com.google.common.eventbus.EventBus;
 import com.google.inject.Inject;
 
@@ -42,7 +44,6 @@ import freenet.client.ClientMetadata;
 import freenet.client.FetchException;
 import freenet.client.FetchResult;
 import freenet.client.HighLevelSimpleClient;
-import freenet.client.HighLevelSimpleClientImpl;
 import freenet.client.InsertBlock;
 import freenet.client.InsertContext;
 import freenet.client.InsertException;
@@ -55,6 +56,7 @@ import freenet.keys.FreenetURI;
 import freenet.keys.InsertableClientSSK;
 import freenet.keys.USK;
 import freenet.node.Node;
+import freenet.node.RequestClient;
 import freenet.node.RequestStarter;
 import freenet.support.api.Bucket;
 import freenet.support.io.ArrayBucket;
@@ -128,16 +130,6 @@ public class FreenetInterface {
        }
 
        /**
-        * Creates a key pair.
-        *
-        * @return The request key at index 0, the insert key at index 1
-        */
-       public String[] generateKeyPair() {
-               FreenetURI[] keyPair = client.generateKeyPair("");
-               return new String[] { keyPair[1].toString(), keyPair[0].toString() };
-       }
-
-       /**
         * Inserts the image data of the given {@link TemporaryImage} and returns
         * the given insert token that can be used to add listeners or cancel the
         * insert.
@@ -230,7 +222,7 @@ public class FreenetInterface {
                        };
                        soneUskCallbacks.put(sone.getId(), uskCallback);
                        boolean runBackgroundFetch = (System.currentTimeMillis() - sone.getTime()) < TimeUnit.DAYS.toMillis(7);
-                       node.clientCore.uskManager.subscribe(USK.create(sone.getRequestUri()), uskCallback, runBackgroundFetch, (HighLevelSimpleClientImpl) client);
+                       node.clientCore.uskManager.subscribe(USK.create(sone.getRequestUri()), uskCallback, runBackgroundFetch, (RequestClient) client);
                } catch (MalformedURLException mue1) {
                        logger.log(Level.WARNING, String.format("Could not subscribe USK ā€œ%sā€!", sone.getRequestUri()), mue1);
                }
@@ -284,7 +276,7 @@ public class FreenetInterface {
 
                };
                try {
-                       node.clientCore.uskManager.subscribe(USK.create(uri), uskCallback, true, (HighLevelSimpleClientImpl) client);
+                       node.clientCore.uskManager.subscribe(USK.create(uri), uskCallback, true, (RequestClient) client);
                        uriUskCallbacks.put(uri, uskCallback);
                } catch (MalformedURLException mue1) {
                        logger.log(Level.WARNING, String.format("Could not subscribe to USK: %s", uri), mue1);
@@ -504,4 +496,13 @@ public class FreenetInterface {
 
        }
 
+       public class InsertTokenSupplier implements Function<Image, InsertToken> {
+
+               @Override
+               public InsertToken apply(Image image) {
+                       return new InsertToken(image);
+               }
+
+       }
+
 }