X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fxdcc%2Fui%2Fstdin%2FCommandReader.java;h=ad6cde1fbab9abf118b83286d10d2583f78193b1;hb=9b7afa0998062127271320893951dfded32cc22a;hp=059d63d65eec54db62bb8e042fcd854a2bb19bd7;hpb=d2f154dff1ee55b23fab7576a9c50063065d40d4;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 059d63d..ad6cde1 100644 --- a/src/main/java/net/pterodactylus/xdcc/ui/stdin/CommandReader.java +++ b/src/main/java/net/pterodactylus/xdcc/ui/stdin/CommandReader.java @@ -20,8 +20,10 @@ package net.pterodactylus.xdcc.ui.stdin; import java.io.BufferedReader; import java.io.Reader; import java.io.Writer; +import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Set; import net.pterodactylus.irc.DccReceiver; import net.pterodactylus.xdcc.core.Core; @@ -29,6 +31,8 @@ import net.pterodactylus.xdcc.data.Bot; import net.pterodactylus.xdcc.data.Pack; import com.google.common.collect.Lists; +import com.google.common.collect.Sets; +import com.google.common.primitives.Ints; import com.google.common.util.concurrent.AbstractExecutionThreadService; /** @@ -109,6 +113,26 @@ public class CommandReader extends AbstractExecutionThreadService { writer.write(String.format("[%d] %s (%s, %d%%%s)\n", counter++, dccReceiver.filename(), dccReceiver.size(), dccReceiver.progress() * 100 / dccReceiver.size(), dccReceiver.isRunning() ? "" : ", finished")); } writer.write("End of DCCs.\n"); + } else if (words[0].equalsIgnoreCase("get")) { + Integer index = Ints.tryParse(words[1]); + if ((index != null) && (index < lastResult.size())) { + core.fetch(lastResult.get(index).bot(), lastResult.get(index).pack()); + } + } else if (words[0].equalsIgnoreCase("stats")) { + int configuredChannelsCount = core.channels().size(); + int joinedChannelsCount = core.joinedChannels().size(); + int extraChannelsCount = core.extraChannels().size(); + Collection bots = core.bots(); + Set packNames = Sets.newHashSet(); + int packsCount = 0; + for (Bot bot : bots) { + packsCount += bot.packs().size(); + for (Pack pack : bot) { + packNames.add(pack.name()); + } + } + + writer.write(String.format("%d channels (%d joined, %d extra), %d bots offering %d packs (%d unique).\n", configuredChannelsCount, joinedChannelsCount, extraChannelsCount, bots.size(), packsCount, packNames.size())); } lastLine = line;