Author: batosai
Date: 2008-08-09 19:56:48 +0000 (Sat, 09 Aug 2008)
New Revision: 21694

Added:
   trunk/apps/WoT/src/plugins/WoT/IdentityFetcher.java
Modified:
   trunk/apps/WoT/src/plugins/WoT/WoTplugin.java
Log:
Get the fetcher's code in a dedicated class.

Added: trunk/apps/WoT/src/plugins/WoT/IdentityFetcher.java
===================================================================
--- trunk/apps/WoT/src/plugins/WoT/IdentityFetcher.java                         
(rev 0)
+++ trunk/apps/WoT/src/plugins/WoT/IdentityFetcher.java 2008-08-09 19:56:48 UTC 
(rev 21694)
@@ -0,0 +1,97 @@
+/**
+ * This code is part of WoT, a plugin for Freenet. It is distributed 
+ * under the GNU General Public License, version 2 (or at your option
+ * any later version). See http://www.gnu.org/ for details of the GPL.
+ */
+
+package plugins.WoT;
+
+import java.io.InputStream;
+
+import com.db4o.ObjectContainer;
+
+import freenet.client.FetchContext;
+import freenet.client.FetchException;
+import freenet.client.FetchResult;
+import freenet.client.HighLevelSimpleClient;
+import freenet.client.InsertException;
+import freenet.client.async.BaseClientPutter;
+import freenet.client.async.ClientCallback;
+import freenet.client.async.ClientGetter;
+import freenet.keys.FreenetURI;
+
+/**
+ * @author Julien Cornuwel (batosai at freenetproject.org)
+ *
+ */
+public class IdentityFetcher implements ClientCallback {
+
+       private ObjectContainer db;
+       private WoT wot;
+       private HighLevelSimpleClient client;
+       
+       private IdentityParser parser;
+       
+       public IdentityFetcher(ObjectContainer db, WoT wot, 
HighLevelSimpleClient client) {
+
+               this.db = db;
+               this.wot = wot;
+               this.client = client;
+               
+               try {
+                       parser = new IdentityParser(db, wot);
+               } catch (Exception e) {
+                       e.printStackTrace();
+               }
+       }
+       
+       public void fetch(Identity identity) throws FetchException {
+                       FetchContext fetchContext = client.getFetchContext();
+                       fetchContext.maxSplitfileBlockRetries = -1; // retry 
forever
+                       fetchContext.maxNonSplitfileRetries = -1; // retry 
forever
+                       client.fetch(identity.getRequestURI(), -1, this, this, 
fetchContext);
+       }
+
+       @Override
+       public void onFailure(FetchException e, ClientGetter state) {
+               
+       }
+
+       @Override
+       public void onFailure(InsertException e, BaseClientPutter state) {
+               
+       }
+
+       @Override
+       public void onFetchable(BaseClientPutter state) {
+               
+       }
+
+       @Override
+       public void onGeneratedURI(FreenetURI uri, BaseClientPutter state) {
+               
+       }
+
+       @Override
+       public void onMajorProgress() {
+               
+       }
+
+       @Override
+       public void onSuccess(FetchResult result, ClientGetter state) {
+
+               try {
+                       InputStream is = result.asBucket().getInputStream();
+                       parser.parse(is);
+                       
+               } catch (Exception e) {
+                       e.printStackTrace();
+               }
+               
+       }
+
+       @Override
+       public void onSuccess(BaseClientPutter state) {
+               
+       }
+}

Modified: trunk/apps/WoT/src/plugins/WoT/WoTplugin.java
===================================================================
--- trunk/apps/WoT/src/plugins/WoT/WoTplugin.java       2008-08-09 19:30:33 UTC 
(rev 21693)
+++ trunk/apps/WoT/src/plugins/WoT/WoTplugin.java       2008-08-09 19:56:48 UTC 
(rev 21694)
@@ -39,7 +39,7 @@
 /**
  * @author Julien Cornuwel (batosai at freenetproject.org)
  */
-public class WoTplugin implements FredPlugin, FredPluginHTTP, 
FredPluginThreadless, FredPluginVersioned, ClientCallback {
+public class WoTplugin implements FredPlugin, FredPluginHTTP, 
FredPluginThreadless, FredPluginVersioned {

        public static String SELF_URI = "/plugins/plugins.WoT.WoTplugin";
        private PluginRespirator pr;
@@ -48,9 +48,9 @@

        private ObjectContainer db;
        private WoT wot;
-       private IdentityParser parser;
+
        private IdentityInserter inserter;
-       
+       private IdentityFetcher fetcher;

        public void runPlugin(PluginRespirator pr) {

@@ -61,12 +61,8 @@
                wot = new WoT(db);
                client = pr.getHLSimpleClient();

-               try {
-                       parser = new IdentityParser(db, wot);
-               } catch (Exception e) {
-                       e.printStackTrace();
-               }
                inserter = new IdentityInserter(db, client);
+               fetcher = new IdentityFetcher(db, wot, client);

                Config nc = pr.getNode().config;
                SubConfig fc = nc.get("fproxy");
@@ -269,19 +265,16 @@
        }

        private String addIdentity(HTTPRequest request) {
+               
+               FreenetURI uri;
                try {
-                       FreenetURI identity = new 
FreenetURI(request.getPartAsString("identityURI", 1024));
-                       
-                       FetchContext fetchContext = client.getFetchContext();
-                       fetchContext.maxSplitfileBlockRetries = -1; // retry 
forever
-                       fetchContext.maxNonSplitfileRetries = -1; // retry 
forever
-                       client.fetch(identity, -1, this, this, fetchContext);
-               }
-               catch(MalformedURLException e) {
+                       uri = new 
FreenetURI(request.getPartAsString("identityURI", 1024));
+                       Identity identity = new Identity(uri, null, true);
+                       db.store(identity);
+                       db.commit();
+                       fetcher.fetch(identity);
+               } catch (Exception e) {
                        return e.getLocalizedMessage();
-               } 
-               catch (FetchException e) {
-                       return e.toString();
                }

                return makeKnownIdentitiesPage();
@@ -342,52 +335,4 @@
        public String getVersion() {
                return "0.1 r"+Version.getSvnRevision();
        }
-
-       @Override
-       public void onFailure(FetchException e, ClientGetter state) {
-               System.out.println("onFailure(FetchException e, ClientGetter 
state)");
-       }
-
-       @Override
-       public void onFailure(InsertException e, BaseClientPutter state) {
-               System.out.println("onFailure(InsertException e, 
BaseClientPutter state)");
-               
-       }
-
-       @Override
-       public void onFetchable(BaseClientPutter state) {
-               System.out.println("onFetchable(BaseClientPutter state)");
-               
-       }
-
-       @Override
-       public void onGeneratedURI(FreenetURI uri, BaseClientPutter state) {
-               System.out.println("onGeneratedURI(FreenetURI uri, 
BaseClientPutter state)");
-               
-       }
-
-       @Override
-       public void onMajorProgress() {
-               System.out.println("onMajorProgress()");
-               
-       }
-
-       @Override
-       public void onSuccess(FetchResult result, ClientGetter state) {
-
-               try {
-                       InputStream is = result.asBucket().getInputStream();
-                       parser.parse(is);
-                       
-               } catch (Exception e) {
-                       e.printStackTrace();
-               }
-               
-       }
-
-       @Override
-       public void onSuccess(BaseClientPutter state) {
-               System.out.println("onSuccess(BaseClientPutter state)");
-               
-       }
 }


Reply via email to