Пример #1
0
        public FullSearchResult(BaseSearchEngine src, Color color, string name, string url, float?similarity = null)
        {
            SearchEngine = src;
            Url          = url;
            Name         = name;
            Color        = color;

            Similarity      = similarity;
            Metadata        = new Dictionary <string, object>();
            ExtendedResults = new List <FullSearchResult>();
        }
        public async Task <string> CalculateSearchfight(string[] searchValues)
        {
            try
            {
                if (GeneralHelpers.IsDebug())
                {
                    searchValues = new string[]
                    {
                        ".net",
                        "java",
                        "java script"
                    };
                }

                if (searchValues.Length <= 0)
                {
                    Console.Write("\r\nUsage: Cignium.Searchfight.exe search_queries\r\n");
                    return("");
                }

                // Search Engines
                var bing   = new Bing();
                var google = new Google();
                var yahoo  = new Yahoo();

                var baseSearchEngines = new BaseSearchEngine[]
                {
                    bing,
                    google,
                    yahoo
                };

                Result totalTopResult = await GetWinnerSearch(searchValues, bing, google, yahoo, baseSearchEngines);


                return($"winner: {totalTopResult.Text}");
            }
            catch (Exception e)
            {
                Console.BackgroundColor = ConsoleColor.Red;

                Console.WriteLine($"\r\n{e.InnerException?.StackTrace ?? e.StackTrace}\r\n{e.Message}");
                Console.ResetColor();
                return("");
            }
            finally
            {
                Console.WriteLine("\r\nPress any key to continue...");
            }
        }
Пример #3
0
 public FullSearchResult(BaseSearchEngine engine, string url, float?similarity = null)
     : this(engine, engine.Color, engine.Name, url, similarity)
 {
 }
Пример #4
0
        static async Task Main(string[] args)
        {
            //Console.WriteLine("Hello World!");

            string[] searchValues = args;

            try
            {
                if (GeneralHelpers.IsDebug())
                {
                    searchValues = new string[]
                    {
                        ".net",
                        "java",
                        "java script"
                    };
                }

                if (searchValues.Length <= 0)
                {
                    Console.Write("\r\nUsage: Cignium.Searchfight.exe search_queries\r\n");
                    return;
                }

                // Search Engines
                var bing   = new Bing();
                var google = new Google();
                var yahoo  = new Yahoo();

                var baseSearchEngines = new BaseSearchEngine[]
                {
                    bing,
                    google,
                    yahoo
                };

                for (var i = 0; i < searchValues.Length; i++)
                {
                    var searchValue = searchValues[i];

                    Console.Write($"{searchValue}:");

                    await bing.LoadResponseBySearchValue(searchValue);

                    await google.LoadResponseBySearchValue(searchValue);

                    await yahoo.LoadResponseBySearchValue(searchValue);

                    // Bing
                    bing.LoadResultNumber();

                    // Google
                    google.LoadResultNumber();
                    google.LoadResultTime();

                    // Yahoo
                    yahoo.LoadResultNumber();

                    for (var j = 0; j < baseSearchEngines.Length; j++)
                    {
                        var baseSearchEngine = baseSearchEngines[j];
                        var currentResult    = baseSearchEngine.GetCurrentResult();
                        var request          = baseSearchEngine.GetRequest();

                        Console.Write($" {request.Title}: {currentResult.Number} ({currentResult.Time.TotalSeconds}s)");
                    }

                    Console.Write("\r\n");
                }

                Result totalTopResult = null;

                for (var i = 0; i < baseSearchEngines.Length; i++)
                {
                    var baseSearchEngine = baseSearchEngines[i];
                    var topResult        = baseSearchEngine.GetTopResult();
                    var request          = baseSearchEngine.GetRequest();

                    if (totalTopResult == null || totalTopResult.Number < topResult.Number)
                    {
                        totalTopResult = topResult;
                    }

                    Console.Write($"{request.Title} winner: {topResult.Text}");
                    Console.Write("\r\n");
                }

                Console.Write($"Total winner: {totalTopResult.Text}\r\n");
            }
            catch (Exception e)
            {
                Console.BackgroundColor = ConsoleColor.Red;

                Console.WriteLine($"\r\n{e.InnerException?.StackTrace ?? e.StackTrace}\r\n{e.Message}");
                Console.ResetColor();
            }
            finally
            {
                Console.WriteLine("\r\nPress any key to continue...");
                Console.ReadKey();
            }
        }