📄 consoleinput.java
字号:
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 void printconsolehelp()
{
printconsolehelp(out);
}
private void printconsolehelp(PrintStream os) {
os.println("> -----");
os.println("Available console commands:");
os.println("Command\t\t\t\tShort\tDescription");
os.println(".\t\t\t\t\tRepeats last command (Initially 'show torrents').");
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
for (Iterator iter = helpItems.iterator(); iter.hasNext();) {
IConsoleCommand cmd = (IConsoleCommand) iter.next();
String cmddesc = cmd.getCommandDescriptions();
if( cmddesc != null )
os.println(cmddesc);
String extraHelp = cmd.getHelpExtra();
if( extraHelp != null )
{
pw.println();
pw.println(extraHelp);
}
}
os.println(sw.toString());
os.println("> -----");
}
private static class CommandQuit extends IConsoleCommand
{
public CommandQuit()
{
super(new String[] {"quit"});
}
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....." );
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....." );
quit( true );
ci.out.println( "OK" );
}
}
}
}
private static class CommandLogout extends IConsoleCommand
{
public CommandLogout()
{
super(new String[] {"logout"});
}
public String getCommandDescriptions() {
return "logout\t\t\t\t\tLog out of the CLI";
}
public void execute(String commandName, ConsoleInput ci, List args) {
try {
if ( !ci.controlling ){
// we never want to close System.out - could be remote command exec
if ( ci.out != System.out ){
ci.out.println( "Logged out" );
ci.out.close();
}
ci.br.close();
}
}catch (IOException ignored){
}finally{
ci.running = false;
}
}
}
private static class CommandUI extends IConsoleCommand
{
public CommandUI()
{
super( new String[] { "ui", "u" });
}
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 boolean invokeCommand(String command, List cargs) {
if( command.startsWith("\\") )
command = command.substring(1);
else if( aliases.containsKey(command) )
{
List list = br.parseCommandLine(aliases.getProperty(command));
String newCommand = list.remove(0).toString().toLowerCase();
list.addAll( cargs );
return invokeCommand(newCommand, list);
}
if (commands.containsKey(command)) {
IConsoleCommand cmd = (IConsoleCommand) commands.get(command);
try {
if( cargs == null )
cargs = new ArrayList();
cmd.execute(command, this, cargs);
return true;
} catch (Exception e)
{
out.println("> Invoking Command '"+command+"' failed. Exception: "+ Debug.getNestedExceptionMessage(e));
return false;
}
} else
return false;
}
public void run() {
List comargs;
running = true;
while (running) {
try {
String line = br.readLine();
comargs = br.parseCommandLine(line);
} catch (Exception e) {
out.println("Stopping console input reader because of exception: " + e.getMessage());
running = false;
break;
}
if (!comargs.isEmpty()) {
String command = ((String) comargs.get(0)).toLowerCase();
if( ".".equals(command) )
{
if (oldcommand != null) {
comargs.clear();
comargs.addAll(oldcommand);
command = ((String) comargs.get(0)).toLowerCase();
} else {
out.println("No old command. Remove commands are not repeated to prevent errors");
}
}
oldcommand.clear();
oldcommand.addAll(comargs);
comargs.remove(0);
try {
if (!invokeCommand(command, comargs)) {
out.println("> Command '" + command + "' unknown (or . used without prior command)");
}
} catch (Throwable e)
{
out.println("Exception occurred when executing command: '" + command + "'");
e.printStackTrace(out);
}
}
}
}
private File getAliasesFile()
{
PluginInterface pi = azureus_core.getPluginManager().getDefaultPluginInterface();
String azureusUserDir = pi.getUtilities().getAzureusUserDir();
return new File(azureusUserDir, ALIASES_CONFIG_FILE);
}
/**
* read in the aliases from the alias properties file
* @throws IOException
*/
private void loadAliases() throws IOException
{
File aliasesFile = getAliasesFile();
out.println("Attempting to load aliases from: " + aliasesFile.getCanonicalPath());
if ( aliasesFile.exists() )
{
FileInputStream fr = new FileInputStream(aliasesFile);
aliases.clear();
try {
aliases.load(fr);
} finally {
fr.close();
}
}
}
/**
* writes the aliases back out to the alias file
*/
public void saveAliases() {
File aliasesFile = getAliasesFile();
try {
out.println("Saving aliases to: " + aliasesFile.getCanonicalPath());
FileOutputStream fo = new FileOutputStream(aliasesFile);
aliases.store(fo, "This aliases file was automatically written by Azureus");
} catch (IOException e) {
out.println("> Error saving aliases to " + aliasesFile.getPath() + ":" + e.getMessage());
}
}
/**
* @return Returns the userProfile.
*/
public UserProfile getUserProfile() {
return userProfile;
}
/**
* returns the default directory that torrents should be saved to unless otherwise specified
* @return
*/
public String getDefaultSaveDirectory() {
try {
String saveDir = getUserProfile().getDefaultSaveDirectory();
if( saveDir == null )
{
saveDir = COConfigurationManager.getDirectoryParameter("Default save path");
if( saveDir == null || saveDir.length() == 0 )
saveDir = ".";
}
return saveDir;
} catch (Exception e)
{
e.printStackTrace();
return ".";
}
}
protected void
registerUpdateChecker()
{
boolean check_at_start = COConfigurationManager.getBooleanParameter( "update.start", true );
if ( !check_at_start ){
return;
}
// we've got to disable the auto-update components as we're not using them (yet...)
PluginManager pm = azureus_core.getPluginManager();
pm.getPluginInstaller().addListener(
new PluginInstallerListener()
{
public boolean
installRequest(
String reason,
InstallablePlugin plugin )
throws PluginException
{
out.println( "Plugin installation request for '" + plugin.getName() + "' - " + reason );
String desc = plugin.getDescription();
String[] bits = desc.split( "\n" );
for (int i=0;i<bits.length;i++){
out.println( "\t" + bits[i]);
}
return( true );
}
});
PluginInterface pi = pm.getPluginInterfaceByClass( CorePatchChecker.class );
if ( pi != null ){
pi.setDisabled( true );
}
pi = pm.getPluginInterfaceByClass( UpdaterUpdateChecker.class );
if ( pi != null ){
pi.setDisabled( true );
}
UpdateManager update_manager = azureus_core.getPluginManager().getDefaultPluginInterface().getUpdateManager();
UpdateCheckInstance checker = update_manager.createUpdateCheckInstance();
checker.addListener(
new UpdateCheckInstanceListener()
{
public void
cancelled(
UpdateCheckInstance instance )
{
}
public void
complete(
UpdateCheckInstance instance )
{
Update[] updates = instance.getUpdates();
for (int i=0;i<updates.length;i++){
Update update = updates[i];
out.println( "Update available for '" + update.getName() + "', new version = " + update.getNewVersion());
String[] descs = update.getDescription();
for (int j=0;j<descs.length;j++){
out.println( "\t" + descs[j] );
}
}
}
});
checker.start();
}
public AzureusCore
getCore()
{
return( azureus_core );
}
public GlobalManager
getGlobalManager()
{
return( azureus_core.getGlobalManager());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -