⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 consoleinput.java

📁 java 文件下载器。可自定义
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
// 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 + -