X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FSoneDownloader.java;h=a406f1b4ff44417cb35e821861a984fc2e5bc84b;hb=4d49ba7b5f6ebed20a91678ebdcda1388d470dc0;hp=d0f905522d8d5c346fa2d14844262d3f2a4b14df;hpb=115487bc44d755f1ae836bafc610fb49a04d9d02;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java b/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java index d0f9055..a406f1b 100644 --- a/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java +++ b/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java @@ -17,6 +17,9 @@ package net.pterodactylus.sone.core; +import static java.util.logging.Level.FINER; +import static net.pterodactylus.sone.data.Sone.TO_FREENET_URI; + import java.io.InputStream; import java.util.HashSet; import java.util.Set; @@ -107,7 +110,7 @@ public class SoneDownloader extends AbstractService { * The Sone to fetch */ public void fetchSone(Sone sone) { - fetchSone(sone, sone.getRequestUri().sskForUSK()); + fetchSone(sone, TO_FREENET_URI.apply(sone).sskForUSK()); } /** @@ -146,6 +149,10 @@ public class SoneDownloader extends AbstractService { /* TODO - mark Sone as bad. */ return null; } + if (shouldStop()) { + logger.log(FINER, "Sone was stopped, won’t process download."); + return null; + } logger.log(Level.FINEST, String.format("Got %d bytes back.", fetchResults.getFetchResult().size())); Sone parsedSone = parseSone(sone, fetchResults.getFetchResult(), fetchResults.getFreenetUri()); if (parsedSone != null) { @@ -180,12 +187,7 @@ public class SoneDownloader extends AbstractService { soneInputStream = soneBucket.getInputStream(); Sone parsedSone = parseSone(originalSone, soneInputStream); if (parsedSone != null) { - parsedSone.setLatestEdition(requestUri.getEdition()); - if (requestUri.getKeyType().equals("USK")) { - parsedSone.setRequestUri(requestUri.setMetaString(new String[0])); - } else { - parsedSone.setRequestUri(requestUri.setKeyType("USK").setDocName("Sone").setMetaString(new String[0])); - } + parsedSone.modify().setLatestEdition(requestUri.getEdition()).update(); } return parsedSone; } catch (Exception e1) { @@ -206,11 +208,9 @@ public class SoneDownloader extends AbstractService { * @param soneInputStream * The input stream to parse the Sone from * @return The parsed Sone - * @throws SoneException - * if a parse error occurs, or the protocol is invalid */ - public Sone parseSone(Sone originalSone, InputStream soneInputStream) throws SoneException { - return new SoneParser(core).parseSone(originalSone, soneInputStream); + public Sone parseSone(Sone originalSone, InputStream soneInputStream) { + return new SoneParser().parseSone(core.getDatabase(), originalSone, soneInputStream); } //