コード例 #1
0
ファイル: MsnCommand.cs プロジェクト: adamedx/shango
        public override int PerformCommand( ICommandArgument[] Arguments, out ICommandResult CommandResult )
        {
            CommandResult = null;

            System.UriBuilder searchBinding = new System.UriBuilder();

            searchBinding.Scheme = "http";
            searchBinding.Host = searchServer;
            searchBinding.Path = searchRoot;

            string searchQuery = searchQueryPrefix;

            for ( int currentArgument = 1; currentArgument < Arguments.Length; currentArgument++ )
            {
                if ( currentArgument > 1 )
                {
                    searchQuery += "%20";
                }

                searchQuery += Arguments[currentArgument].GetArgument();
            }

            searchBinding.Query = searchQuery;

            _Terminal.WriteTo(
                new StringBuilder( searchBinding.ToString() + "\n\n" ),
                ConsoleProcessRedirection.OutputType.StandardOutput );

            PageCommand pageRetriever = new PageCommand(
                _CommandProcessor,
                new NullTerminal() );

            ICommandArgument[] showArguments = new ICommandArgument[2];

            showArguments[0] = Arguments[0];
            showArguments[1] = new CommandArgument( searchBinding.ToString() );

            pageRetriever.PerformCommand(
                showArguments,
                out CommandResult );

            string resultString = ( (StringBuilder) CommandResult.GetArgument() ).ToString();

            string[] links = FindLinks( resultString );

            foreach ( string link in links )
            {
                _Terminal.WriteTo(
                    new StringBuilder( link + "\n\n" ),
                    ConsoleProcessRedirection.OutputType.StandardOutput );
            }

            return 0;
        }
コード例 #2
0
        public ICommand GetCommand( string CommandName, ICommandProcessor CommandProcessor )
        {
            ICommand NewCommand = null;

            switch( CommandName )
            {
                case "cd":
                    NewCommand = new ChangeDirCommand( CommandProcessor, _Terminal );
                    break;
                case "cwd":
                    NewCommand = new CurrentDirCommand( CommandProcessor, _Terminal );
                    break;
                case "exit":
                    NewCommand = new ExitCommand( CommandProcessor, _Terminal );
                    break;
                case "prompt":
                    NewCommand = new PromptCommand( CommandProcessor, _Terminal );
                    break;
                case "set":
                    NewCommand = new SetCommand( CommandProcessor, _Terminal );
                    break;
                case "ver":
                    NewCommand = new VersionCommand( CommandProcessor, _Terminal );
                    break;
                case "msn":
                    NewCommand = new MsnCommand( CommandProcessor, _Terminal );
                    break;
                case "page":
                    NewCommand = new PageCommand( CommandProcessor, _Terminal );
                    break;
                case "showpage":
                    NewCommand = new ShowpageCommand( CommandProcessor, _Terminal );
                    break;
                case "textpage":
                    NewCommand = new TextpageCommand( CommandProcessor, _Terminal );
                    break;
            }

            return NewCommand;
        }