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;
* The Sone to fetch
*/
public void fetchSone(Sone sone) {
- fetchSone(sone, sone.getRequestUri().sskForUSK());
+ fetchSone(sone, TO_FREENET_URI.apply(sone).sskForUSK());
}
/**
/* 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) {
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) {
* @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);
}
//