X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fxdcc%2Fui%2Fstdin%2FCommandReader.java;h=83c98023d8aa9d50f2c7ed06a3f20bd57d6b018c;hb=f76ee64d2cd93a0439c6306e1fcf6230c633590c;hp=381c519948e10b130fd0bb29bf221e2fc9e4cbd3;hpb=ae91c1d80ef6b6e4cb9b8417301b4f057375b3b1;p=xudocci.git diff --git a/src/main/java/net/pterodactylus/xdcc/ui/stdin/CommandReader.java b/src/main/java/net/pterodactylus/xdcc/ui/stdin/CommandReader.java index 381c519..83c9802 100644 --- a/src/main/java/net/pterodactylus/xdcc/ui/stdin/CommandReader.java +++ b/src/main/java/net/pterodactylus/xdcc/ui/stdin/CommandReader.java @@ -62,6 +62,7 @@ public class CommandReader extends AbstractExecutionThreadService { /** The writer to write the results to. */ private final Writer writer; + private final DownloadFailures downloadFailures; /** * Creates a new command reader. @@ -73,9 +74,10 @@ public class CommandReader extends AbstractExecutionThreadService { * @param writer * The write to write results to */ - public CommandReader(Core core, Reader reader, Writer writer) { + public CommandReader(Core core, Reader reader, Writer writer, DownloadFailures downloadFailures) { this.reader = new BufferedReader(reader); this.writer = writer; + this.downloadFailures = downloadFailures; /* initialize commands. */ ImmutableList.Builder commandBuilder = ImmutableList.builder(); @@ -86,6 +88,9 @@ public class CommandReader extends AbstractExecutionThreadService { commandBuilder.add(new ListConnectionsCommand(core)); commandBuilder.add(new AbortDownloadCommand(core)); commandBuilder.add(new DisconnectCommand(core)); + commandBuilder.add(new FailedDownloadsCommand(downloadFailures)); + commandBuilder.add(new RestartCommand(core, downloadFailures)); + commandBuilder.add(new ResearchCommand(core)); commands = commandBuilder.build(); } @@ -165,6 +170,7 @@ public class CommandReader extends AbstractExecutionThreadService { @Subscribe public void downloadFailed(DownloadFailed downloadFailed) { Download download = downloadFailed.download(); + downloadFailures.addFailedDownload(download, System.currentTimeMillis()); try { writeLine(red(String.format("Download of %s (from %s, %s) has failed at %.1f%% and %s/s.", download.filename(), download.bot().name(), download.bot().network().name(), download.dccReceiver().progress() * 100.0 / download.dccReceiver().size(), f(download.dccReceiver().overallRate())))); } catch (IOException ioe1) {