Only store the failed downloads.
[xudocci.git] / src / main / java / net / pterodactylus / xdcc / ui / stdin / CommandReader.java
index 83c9802..fc1a48f 100644 (file)
@@ -62,7 +62,7 @@ public class CommandReader extends AbstractExecutionThreadService {
 
        /** The writer to write the results to. */
        private final Writer writer;
-       private final DownloadFailures downloadFailures;
+       private final Collection<Download> failedDownloads;
 
        /**
         * Creates a new command reader.
@@ -74,10 +74,10 @@ public class CommandReader extends AbstractExecutionThreadService {
         * @param writer
         *              The write to write results to
         */
-       public CommandReader(Core core, Reader reader, Writer writer, DownloadFailures downloadFailures) {
+       public CommandReader(Core core, Reader reader, Writer writer, Collection<Download> failedDownloads) {
                this.reader = new BufferedReader(reader);
                this.writer = writer;
-               this.downloadFailures = downloadFailures;
+               this.failedDownloads = failedDownloads;
 
                /* initialize commands. */
                ImmutableList.Builder<Command> commandBuilder = ImmutableList.builder();
@@ -88,8 +88,8 @@ 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 FailedDownloadsCommand(failedDownloads));
+               commandBuilder.add(new RestartCommand(core, failedDownloads));
                commandBuilder.add(new ResearchCommand(core));
                commands = commandBuilder.build();
        }
@@ -170,7 +170,7 @@ public class CommandReader extends AbstractExecutionThreadService {
        @Subscribe
        public void downloadFailed(DownloadFailed downloadFailed) {
                Download download = downloadFailed.download();
-               downloadFailures.addFailedDownload(download, System.currentTimeMillis());
+               failedDownloads.add(download);
                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) {