Ejemplo n.º 1
0
        public async Task <Search> GetSearchResultsAsync(string searchKeyword, string searchUrl)
        {
            SearchEngineSettings settings = new SearchEngineSettings();
            int            pageNums       = 0;
            IList <string> parseHtml      = new List <string>();

            while (pageNums < settings.GoogleTopResults)
            {
                UrlHelper buildUrl = new UrlHelper();
                var       url      = buildUrl.constructUrl(searchKeyword);

                //Downloading html content
                string htmlContent = await _webScraper.DownloadPageAsync(url);

                //Parse html content
                parseHtml = await _parseContent.ParseHtmlPage(htmlContent);

                pageNums = pageNums + 10;
            }

            var occurences = parseHtml.Select((x, y) => new { x, y })
                             .Where(x => x.ToString().Contains(searchKeyword))
                             .Select(x => x.y).ToList();

            Search response = new Search {
                NumberOfResults = occurences
            };

            return(response);
        }
 public Scheduler(ICleaner cleaner, SearchEngineSettings settings)
 {
     _cleaner = cleaner;
     _timer   = new Timer
     {
         Enabled  = false,
         Interval = settings.CleaUpIntervalMs
     };
     _timer.Elapsed += OnElapsed;
 }
Ejemplo n.º 3
0
		public override void Restart()
		{
			_settings = new SearchEngineSettings(MemoryDomains, Settings.UseUndoHistory);
			_searches = new RamSearchEngine(_settings, MemoryDomains);
			MessageLabel.Text = "Search restarted";
			DoDomainSizeCheck();
			_dropdownDontfire = true;
			SetSize(_settings.Size); // Calls NewSearch() automatically
			_dropdownDontfire = false;
			HardSetDisplayTypeDropDown(_settings.Type);
		}
 public IndexCleaner(
     IEventReactor eventReactor,
     IIndex index,
     FilesVersionsRegistry filesVersionsRegistry,
     SearchEngineSettings settings)
 {
     _eventReactor          = eventReactor;
     _index                 = index;
     _filesVersionsRegistry = filesVersionsRegistry;
     _settings              = settings;
 }
Ejemplo n.º 5
0
 public FileIndexer(
     IEventReactor eventReactor,
     FileParserProvider parserProvider,
     IIndex index,
     FilesVersionsRegistry filesVersionsRegistry,
     SearchEngineSettings settings)
 {
     _eventReactor          = eventReactor;
     _parserProvider        = parserProvider;
     _index                 = index;
     _filesVersionsRegistry = filesVersionsRegistry;
     _settings              = settings;
 }
Ejemplo n.º 6
0
		private void RamSearch_Load(object sender, EventArgs e)
		{
			// Hack for previous config settings
			if (Settings.Columns.Any(c => string.IsNullOrWhiteSpace(c.Text)))
			{
				Settings = new RamSearchSettings();
			}

			RamSearchMenu.Items.Add(WatchListView.ToColumnsMenu(ColumnToggleCallback));

			_settings = new SearchEngineSettings(MemoryDomains, Settings.UseUndoHistory);
			_searches = new RamSearchEngine(_settings, MemoryDomains);

			ErrorIconButton.Visible = false;
			_dropdownDontfire = true;
			LoadConfigSettings();
			SpecificValueBox.ByteSize = _settings.Size;
			SpecificValueBox.Type = _settings.Type;
			DifferentByBox.Type = Common.DisplayType.Unsigned;
			DifferenceBox.Type = Common.DisplayType.Unsigned;

			MessageLabel.Text = "";
			SpecificAddressBox.MaxLength = (MemoryDomains.MainMemory.Size - 1).NumHexDigits();
			HardSetSizeDropDown(_settings.Size);
			PopulateTypeDropDown();
			HardSetDisplayTypeDropDown(_settings.Type);
			DoDomainSizeCheck();
			SetReboot(false);

			SpecificAddressBox.SetHexProperties(_settings.Domain.Size);
			SpecificValueBox.ResetText();
			SpecificAddressBox.ResetText();
			NumberOfChangesBox.ResetText();
			DifferenceBox.ResetText();
			DifferentByBox.ResetText();

			_dropdownDontfire = false;

			if (_settings.IsFastMode())
			{
				SetToFastMode();
			}

			NewSearch();
		}
Ejemplo n.º 7
0
        static AbstractSearcherFactory()
        {
            string projectDirectory = Directory.GetParent(HostingEnvironment.ApplicationPhysicalPath).Parent.FullName;
            string configPath       = $"{projectDirectory}/SearcherApplication.SearchEngine/Configs/SearchEnginesConfigDev.json";
            List <SearchEngineSettings> searchSystems =
                JsonConvert.DeserializeObject <List <SearchEngineSettings> >(File.ReadAllText(configPath));

            if (searchSystems == null)
            {
                throw new Exception("There are no search systems in the JSON");
            }

            GoogleSearchSystem = searchSystems.Where(s => s.Name == "Google").FirstOrDefault();
            BingSearchSystem   = searchSystems.Where(s => s.Name == "Bing").FirstOrDefault();

            //TODO: Resolve this problem later
            if (GoogleSearchSystem == null && BingSearchSystem == null)
            {
                throw new Exception("There are no needed search systems in the config");
            }
        }
Ejemplo n.º 8
0
		private void RestoreDefaultsMenuItem()
		{
			var recentFiles = Settings.RecentSearches; // We don't want to wipe recent files when restoring

			Settings = new RamSearchSettings { RecentSearches = recentFiles };

			RamSearchMenu.Items.Remove(
				RamSearchMenu.Items
					.OfType<ToolStripMenuItem>()
					.Single(x => x.Name == "GeneratedColumnsSubMenu"));

			RamSearchMenu.Items.Add(WatchListView.ToColumnsMenu(ColumnToggleCallback));

			_settings = new SearchEngineSettings(MemoryDomains, Settings.UseUndoHistory);
			if (_settings.IsFastMode())
			{
				SetToFastMode();
			}

			WatchListView.AllColumns.Clear();
			SetColumns();
		}
Ejemplo n.º 9
0
 public StandartFileParser(SearchEngineSettings settings)
 {
     _settings = settings;
 }
 public FileParserProvider(SearchEngineSettings settings)
 {
     _settings      = settings;
     _defaultParser = new StandartFileParser(settings);
 }
Ejemplo n.º 11
0
        public Uri constructUrl(string keyword)
        {
            SearchEngineSettings settings = new SearchEngineSettings();

            return new Uri($"{settings.GoogleSearchUrl}/search?q={keyword}");
        }