X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fxdcc%2Fui%2Fstdin%2FCommandReader.java;h=c362a9b60e8ba96536e8264bb8c76942d1548b2f;hb=12ab30478ba379ed9009a1277ba16d2a2019d52f;hp=522145690c1a5664664c87de0e9fe6e5f9a322e8;hpb=9178703442854a85af20031e86245c41d63b902f;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 5221456..c362a9b 100644 --- a/src/main/java/net/pterodactylus/xdcc/ui/stdin/CommandReader.java +++ b/src/main/java/net/pterodactylus/xdcc/ui/stdin/CommandReader.java @@ -18,6 +18,7 @@ package net.pterodactylus.xdcc.ui.stdin; import java.io.BufferedReader; +import java.io.IOException; import java.io.Reader; import java.io.Writer; import java.util.Collection; @@ -27,11 +28,15 @@ import java.util.Set; import net.pterodactylus.irc.DccReceiver; import net.pterodactylus.xdcc.core.Core; +import net.pterodactylus.xdcc.core.event.DownloadFinished; +import net.pterodactylus.xdcc.core.event.DownloadStarted; import net.pterodactylus.xdcc.data.Bot; +import net.pterodactylus.xdcc.data.Download; import net.pterodactylus.xdcc.data.Pack; import com.google.common.collect.Lists; import com.google.common.collect.Sets; +import com.google.common.eventbus.Subscribe; import com.google.common.primitives.Ints; import com.google.common.util.concurrent.AbstractExecutionThreadService; @@ -112,12 +117,12 @@ public class CommandReader extends AbstractExecutionThreadService { for (DccReceiver dccReceiver : core.dccReceivers()) { writer.write(String.format("[%d] %s (%s, ", counter++, dccReceiver.filename(), dccReceiver.size())); if (dccReceiver.isRunning()) { - writer.write(String.format("%.1f%%, %s", dccReceiver.progress() * 100.0 / dccReceiver.size(), f(dccReceiver.getCurrentRate()))); + writer.write(String.format("%.1f%%, %s", dccReceiver.progress() * 100.0 / dccReceiver.size(), f(dccReceiver.currentRate()))); } else { if (dccReceiver.progress() >= dccReceiver.size()) { - writer.write(String.format("complete, %s", f(dccReceiver.getOverallRate()))); + writer.write(String.format("complete, %s", f(dccReceiver.overallRate()))); } else { - writer.write(String.format("aborted at %.1f%%, %s", dccReceiver.progress() * 100.0 / dccReceiver.size(), f(dccReceiver.getCurrentRate()))); + writer.write(String.format("aborted at %.1f%%, %s", dccReceiver.progress() * 100.0 / dccReceiver.size(), f(dccReceiver.currentRate()))); } } writer.write("/s)\n"); @@ -151,6 +156,44 @@ public class CommandReader extends AbstractExecutionThreadService { } // + // EVENT HANDLERS + // + + /** + * Called when a download was started. + * + * @param downloadStarted + * The download started event + */ + @Subscribe + public void downloadStarted(DownloadStarted downloadStarted) { + Download download = downloadStarted.download(); + try { + writer.write(String.format("Download of %s (from %s, %s) has started.\n", download.filename(), download.bot().name(), download.bot().network().name())); + writer.flush(); + } catch (IOException ioe1) { + /* ignore. */ + } + } + + /** + * Called when a download is finished. + * + * @param downloadFinished + * The download finished event + */ + @Subscribe + public void downloadFinished(DownloadFinished downloadFinished) { + Download download = downloadFinished.download(); + try { + writer.write(String.format("Download of %s (from %s, %s) has finished, at %s/s.\n", download.filename(), download.bot().name(), download.bot().network().name(), f(download.dccReceiver().overallRate()))); + writer.flush(); + } catch (IOException ioe1) { + /* ignore. */ + } + } + + // // PRIVATE METHODS //