public override void Execute(IDictionary <string, object> input) { var indexerType = input.Get <IndexerType>(INDEXER_TYPE); var folder = input.Get <string>(FOLDER); var patterns = input.Get <string>(PATTERNS); var patternList = patterns.Split(",").ToList(); var indexer = _indexerFactory.GetInstance(indexerType); IndexingOptions options = new() { Folder = folder, AllowedExtensions = patternList, RecreateIndex = true }; indexer.Index(options); } }
public override void Execute(IDictionary <string, object> input) { var folder = input.Get <string>(FOLDER); var search = input.Get <string>(SEARCH); var indexer = _indexerFactory.GetInstance(IndexerType.Lucene); var options = new SearchingOptions { DataDir = folder, SearchTerm = search, DocCount = 20 }; var result = indexer.Search(options); foreach (var item in result) { _console.WriteLine("{0}\t{1} ({2})", item.Score, item.Path, item.Modified); } }
public void Index(string folder, string target) { if (!Directory.Exists(folder)) { Console.WriteLine("Document directory '" + folder + "' does not exist or is not readable, " + "please check the path"); return; } if (Directory.Exists(target)) { Directory.Delete(target, true); } //Console.WriteLine("Cannot save index to '" + target + "' directory, please delete it first"); //return; var start = DateTime.Now; try { var indexer = _indexerFactory.GetInstance(IndexerType.Manual); var options = new IndexingOptions { Folder = folder }; indexer.Index(options); var end = DateTime.Now; var ts = end - start; Console.WriteLine("Time spent: , {0:dd\\.hh\\:mm\\:ss\\.fffff}", ts); } catch (IOException e) { Console.WriteLine(" caught a " + e.GetType() + "\n with message: " + e.Message); } }
public async Task SendReportToClient(ReleaseInfo release, string source, string host, bool redirect) { var downloadTitle = release.Title; var downloadClient = _downloadClientProvider.GetDownloadClient(release.DownloadProtocol); if (downloadClient == null) { throw new DownloadClientUnavailableException($"{release.DownloadProtocol} Download client isn't configured yet"); } // Get the seed configuration for this release. // remoteMovie.SeedConfiguration = _seedConfigProvider.GetSeedConfiguration(remoteMovie); // Limit grabs to 2 per second. if (release.DownloadUrl.IsNotNullOrWhiteSpace() && !release.DownloadUrl.StartsWith("magnet:")) { var url = new HttpUri(release.DownloadUrl); _rateLimitService.WaitAndPulse(url.Host, TimeSpan.FromSeconds(2)); } var indexer = _indexerFactory.GetInstance(_indexerFactory.Get(release.IndexerId)); string downloadClientId; try { downloadClientId = await downloadClient.Download(release, redirect, indexer); _downloadClientStatusService.RecordSuccess(downloadClient.Definition.Id); _indexerStatusService.RecordSuccess(release.IndexerId); } catch (ReleaseUnavailableException) { _logger.Trace("Release {0} no longer available on indexer.", release); _eventAggregator.PublishEvent(new IndexerDownloadEvent(release.IndexerId, false, source, host, release.Title, release.DownloadUrl, redirect)); throw; } catch (DownloadClientRejectedReleaseException) { _logger.Trace("Release {0} rejected by download client, possible duplicate.", release); _eventAggregator.PublishEvent(new IndexerDownloadEvent(release.IndexerId, false, source, host, release.Title, release.DownloadUrl, redirect)); throw; } catch (ReleaseDownloadException ex) { var http429 = ex.InnerException as TooManyRequestsException; if (http429 != null) { _indexerStatusService.RecordFailure(release.IndexerId, http429.RetryAfter); } else { _indexerStatusService.RecordFailure(release.IndexerId); } _eventAggregator.PublishEvent(new IndexerDownloadEvent(release.IndexerId, false, source, host, release.Title, release.DownloadUrl, redirect)); throw; } _logger.ProgressInfo("Report sent to {0}. {1}", downloadClient.Definition.Name, downloadTitle); _eventAggregator.PublishEvent(new IndexerDownloadEvent(release.IndexerId, true, source, host, release.Title, release.DownloadUrl, redirect)); }