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)"); - - } }
