📄 consoleinput.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: ConsoleInput.java
package org.gudy.azureus2.ui.console;
import com.aelitis.azureus.core.AzureusCore;
import com.aelitis.azureus.core.AzureusCoreLifecycleAdapter;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.io.Reader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.Vector;
import org.apache.log4j.Appender;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.varia.DenyAllFilter;
import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.download.DownloadManager;
import org.gudy.azureus2.core3.download.DownloadManagerState;
import org.gudy.azureus2.core3.global.GlobalManager;
import org.gudy.azureus2.core3.logging.ILogAlertListener;
import org.gudy.azureus2.core3.logging.LogAlert;
import org.gudy.azureus2.core3.torrentdownloader.TorrentDownloader;
import org.gudy.azureus2.core3.torrentdownloader.TorrentDownloaderCallBackInterface;
import org.gudy.azureus2.core3.torrentdownloader.TorrentDownloaderFactory;
import org.gudy.azureus2.core3.torrentdownloader.impl.TorrentDownloaderManager;
import org.gudy.azureus2.core3.util.Constants;
import org.gudy.azureus2.core3.util.Debug;
import org.gudy.azureus2.core3.util.SystemProperties;
import org.gudy.azureus2.plugins.PluginException;
import org.gudy.azureus2.plugins.PluginInterface;
import org.gudy.azureus2.plugins.PluginManager;
import org.gudy.azureus2.plugins.PluginState;
import org.gudy.azureus2.plugins.installer.InstallablePlugin;
import org.gudy.azureus2.plugins.installer.PluginInstaller;
import org.gudy.azureus2.plugins.installer.PluginInstallerListener;
import org.gudy.azureus2.plugins.update.Update;
import org.gudy.azureus2.plugins.update.UpdateCheckInstance;
import org.gudy.azureus2.plugins.update.UpdateCheckInstanceListener;
import org.gudy.azureus2.plugins.update.UpdateManager;
import org.gudy.azureus2.plugins.utils.Utilities;
import org.gudy.azureus2.ui.common.UIConst;
import org.gudy.azureus2.ui.console.commands.AddFind;
import org.gudy.azureus2.ui.console.commands.Alias;
import org.gudy.azureus2.ui.console.commands.Hack;
import org.gudy.azureus2.ui.console.commands.IConsoleCommand;
import org.gudy.azureus2.ui.console.commands.Log;
import org.gudy.azureus2.ui.console.commands.Move;
import org.gudy.azureus2.ui.console.commands.Plugin;
import org.gudy.azureus2.ui.console.commands.Priority;
import org.gudy.azureus2.ui.console.commands.Share;
import org.gudy.azureus2.ui.console.commands.Show;
import org.gudy.azureus2.ui.console.commands.TorrentCheck;
import org.gudy.azureus2.ui.console.commands.TorrentForceStart;
import org.gudy.azureus2.ui.console.commands.TorrentHost;
import org.gudy.azureus2.ui.console.commands.TorrentLog;
import org.gudy.azureus2.ui.console.commands.TorrentPublish;
import org.gudy.azureus2.ui.console.commands.TorrentQueue;
import org.gudy.azureus2.ui.console.commands.TorrentRemove;
import org.gudy.azureus2.ui.console.commands.TorrentStart;
import org.gudy.azureus2.ui.console.commands.TorrentStop;
import org.gudy.azureus2.ui.console.commands.XML;
import org.gudy.azureus2.ui.console.util.TextWrap;
import org.gudy.azureus2.update.CorePatchChecker;
import org.gudy.azureus2.update.UpdaterUpdateChecker;
// Referenced classes of package org.gudy.azureus2.ui.console:
// CommandReader, UserProfile
public class ConsoleInput extends Thread
{
private class CommandHelp extends IConsoleCommand
{
final ConsoleInput this$0;
public String getCommandDescriptions()
{
return "help [torrents]\t\t\t?\tShow this help. 'torrents' shows info about the show torrents display.";
}
public void execute(String commandName, ConsoleInput ci, List args)
{
if (args.isEmpty())
{
printconsolehelp(ci.out);
} else
{
String subcommand = (String)args.get(0);
IConsoleCommand cmd = (IConsoleCommand)commands.get(subcommand);
if (cmd != null)
{
List newargs = new ArrayList(args);
newargs.remove(0);
cmd.printHelp(ci.out, newargs);
} else
if (subcommand.equalsIgnoreCase("torrents") || subcommand.equalsIgnoreCase("t"))
{
ci.out.println("> -----");
ci.out.println("# [state] PercentDone Name (Filesize) ETA\r\n\tDownSpeed / UpSpeed\tDownloaded/Uploaded\tConnectedSeeds(total) / ConnectedPeers(total)");
ci.out.println();
ci.out.println("States:");
ci.out.println(" > Downloading");
ci.out.println(" * Seeding");
ci.out.println(" ! Stopped");
ci.out.println(" . Waiting (for allocation/checking)");
ci.out.println(" : Ready");
ci.out.println(" - Queued");
ci.out.println(" A Allocating");
ci.out.println(" C Checking");
ci.out.println(" E Error");
ci.out.println(" I Initializing");
ci.out.println(" ? Unknown");
ci.out.println("> -----");
} else
{
printconsolehelp(ci.out);
}
}
}
public CommandHelp()
{
this$0 = ConsoleInput.this;
super("help", "?");
}
}
private static class CommandLogout extends IConsoleCommand
{
public String getCommandDescriptions()
{
return "logout\t\t\t\t\tLog out of the CLI";
}
public void execute(String commandName, ConsoleInput ci, List args)
{
label0:
{
try
{
if (!ci.controlling)
{
if (ci.out != System.out)
{
ci.out.println("Logged out");
ci.out.close();
}
ci.br.close();
}
}
catch (IOException ignored)
{
ci.running = false;
break label0;
}
finally
{
ci.running = false;
throw exception;
}
ci.running = false;
break label0;
}
}
public CommandLogout()
{
super("logout");
}
}
private static class CommandQuit extends IConsoleCommand
{
public String getCommandDescriptions()
{
return "quit\t\t\t\t\tShutdown Azureus";
}
public void execute(String commandName, ConsoleInput ci, List args)
{
if (ci.controlling)
{
ci.running = false;
ci.out.print("Exiting.....");
ConsoleInput.quit(true);
ci.out.println("OK");
} else
if (args.isEmpty() || !args.get(0).toString().equalsIgnoreCase("IAMSURE"))
{
ci.out.println("> The 'quit' command exits azureus. Since this is a non-controlling shell thats probably not what you wanted. Use 'logout' to quit it or 'quit iamsure' to really exit azureus.");
} else
{
ci.out.print("Exiting.....");
ConsoleInput.quit(true);
ci.out.println("OK");
}
}
public CommandQuit()
{
super("quit");
}
}
private static class CommandUI extends IConsoleCommand
{
public String getCommandDescriptions()
{
return "ui <interface>\t\t\tu\tStart additional user interface.";
}
public void execute(String commandName, ConsoleInput ci, List args)
{
if (!args.isEmpty())
UIConst.startUI(args.get(0).toString(), null);
else
ci.out.println("> Missing subcommand for 'ui'\r\n> ui syntax: ui <interface>");
}
public CommandUI()
{
super("ui", "u");
}
}
private static final String ALIASES_CONFIG_FILE = "console.aliases.properties";
public final AzureusCore azureus_core;
public final PrintStream out;
public final List torrents;
public File adds[];
private final CommandReader br;
private final boolean controlling;
private boolean running;
private final Vector oldcommand;
private static final List pluginCommands = new ArrayList();
public final Properties aliases;
private final Map commands;
private final List helpItems;
private final UserProfile userProfile;
public static void registerPluginCommand(Class clazz)
{
if (!clazz.isInstance(org/gudy/azureus2/ui/console/commands/IConsoleCommand))
{
throw new IllegalArgumentException("Class must be extend IConsoleCommand");
} else
{
pluginCommands.add(clazz);
return;
}
}
public static void unregisterPluginCommand(Class clazz)
{
pluginCommands.remove(clazz);
}
public ConsoleInput(String con, AzureusCore _azureus_core, Reader _in, PrintStream _out, Boolean _controlling)
{
this(con, _azureus_core, _in, _out, _controlling, UserProfile.DEFAULT_USER_PROFILE);
}
public ConsoleInput(String con, AzureusCore _azureus_core, Reader _in, PrintStream _out, Boolean _controlling, UserProfile profile)
{
super((new StringBuilder()).append("Console Input: ").append(con).toString());
torrents = new ArrayList();
adds = null;
oldcommand = new Vector();
aliases = new Properties();
commands = new LinkedHashMap();
helpItems = new ArrayList();
out = _out;
azureus_core = _azureus_core;
userProfile = profile;
controlling = _controlling.booleanValue();
br = new CommandReader(_in);
System.out.println("ConsoleInput: initializing...");
initialise();
System.out.println("ConsoleInput: initialized OK");
System.out.println("ConsoleInput: starting...");
start();
System.out.println("ConsoleInput: started OK");
}
public ConsoleInput(AzureusCore _azureus_core, PrintStream _out)
{
super("");
torrents = new ArrayList();
adds = null;
oldcommand = new Vector();
aliases = new Properties();
commands = new LinkedHashMap();
helpItems = new ArrayList();
out = _out;
azureus_core = _azureus_core;
userProfile = UserProfile.DEFAULT_USER_PROFILE;
controlling = false;
br = new CommandReader(new InputStreamReader(new ByteArrayInputStream(new byte[0])));
if (Logger.getRootLogger().getAppender("ConsoleAppender") == null)
{
Appender app = new ConsoleAppender(new PatternLayout("%r [%t] %p %c %x - %m%n"));
app.setName("ConsoleAppender");
app.addFilter(new DenyAllFilter());
Logger.getRootLogger().addAppender(app);
}
initialise();
}
protected void initialise()
{
registerAlertHandler();
registerCommands();
registerPluginCommands();
azureus_core.addLifecycleListener(new AzureusCoreLifecycleAdapter() {
final ConsoleInput this$0;
public void started(AzureusCore core)
{
registerUpdateChecker();
}
{
this$0 = ConsoleInput.this;
super();
}
});
try
{
loadAliases();
}
catch (IOException e)
{
out.println((new StringBuilder()).append("Error while loading aliases: ").append(e.getMessage()).toString());
}
oldcommand.add("sh");
oldcommand.add("t");
}
public void downloadTorrent(String filename, String outputDir)
{
DownloadManager manager = azureus_core.getGlobalManager().addDownloadManager(filename, outputDir);
manager.getDownloadState().setAttribute("user", getUserProfile().getUsername());
}
public void downloadRemoteTorrent(String url, final String outputDir)
{
TorrentDownloader downloader = TorrentDownloaderFactory.create(new TorrentDownloaderCallBackInterface() {
final String val$outputDir;
final ConsoleInput this$0;
public void TorrentDownloaderEvent(int state, TorrentDownloader inf)
{
if (state == 3)
{
out.println("torrent file download complete. starting torrent");
TorrentDownloaderManager.getInstance().remove(inf);
downloadTorrent(inf.getFile().getAbsolutePath(), outputDir);
} else
{
TorrentDownloaderManager.getInstance().TorrentDownloaderEvent(state, inf);
}
}
{
this$0 = ConsoleInput.this;
outputDir = s;
super();
}
}, url, null, null, true);
TorrentDownloaderManager.getInstance().add(downloader);
}
public void downloadTorrent(String fileName)
{
downloadTorrent(fileName, getDefaultSaveDirectory());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -