public static bool TryCreateDefaultNugetPackScraper(ScraperConfig config, out PackSourceChecker packSourceChecker) { NugetPackProvider packProvider = new NugetPackProvider(config.BasePath, config.PageSize, config.RunOnlyOnePage, config.IncludePreviewPacks); List <Func <IInstalledPackInfo, PreFilterResult> > preFilterList = new List <Func <IInstalledPackInfo, PreFilterResult> >(); if (!PreviouslyRejectedPackFilter.TryGetPreviouslySkippedPacks(config.PreviousRunBasePath, out HashSet <string> nonTemplatePacks)) { Console.WriteLine("Unable to read results from the previous run."); packSourceChecker = null; return(false); } preFilterList.Add(PreviouslyRejectedPackFilter.SetupPackFilter(nonTemplatePacks)); if (!config.DontFilterOnTemplateJson) { preFilterList.Add(TemplateJsonExistencePackFilter.SetupPackFilter()); } preFilterList.Add(SkipTemplatePacksFilter.SetupPackFilter()); PackPreFilterer preFilterer = new PackPreFilterer(preFilterList); IReadOnlyList <IAdditionalDataProducer> additionalDataProducers = new List <IAdditionalDataProducer>() { new CliHostDataProducer() }; packSourceChecker = new PackSourceChecker(packProvider, preFilterer, additionalDataProducers, config.SaveCandidatePacks); return(true); }
public Task <PackSourceChecker> CreatePackSourceCheckerAsync(CommandArgs config, CancellationToken cancellationToken) { List <IPackProvider> providers = new List <IPackProvider>() { new TestPackProvider(config.LocalPackagePath ?? throw new ArgumentNullException(nameof(config.LocalPackagePath))) }; List <Func <IDownloadedPackInfo, PreFilterResult> > preFilterList = new List <Func <IDownloadedPackInfo, PreFilterResult> >(); if (!config.DontFilterOnTemplateJson) { preFilterList.Add(TemplateJsonExistencePackFilter.SetupPackFilter()); } preFilterList.Add(SkipTemplatePacksFilter.SetupPackFilter()); preFilterList.Add(FilterNonMicrosoftAuthors.SetupPackFilter()); PackPreFilterer preFilterer = new PackPreFilterer(preFilterList); IReadOnlyList <IAdditionalDataProducer> additionalDataProducers = new List <IAdditionalDataProducer>() { new CliHostDataProducer() }; TemplateSearchCache?existingCache = LoadExistingCache(config); IEnumerable <FilteredPackageInfo>?knownNonTemplatePackages = LoadKnownPackagesList(config); return(Task.FromResult(new PackSourceChecker(providers, preFilterer, additionalDataProducers, config.SaveCandidatePacks, existingCache, knownNonTemplatePackages))); }
public static bool TryCreateDefaultNugetPackScraper(ScraperConfig config, out PackSourceChecker packSourceChecker) { List <IPackProvider> providers = new List <IPackProvider>(); if (!config.Providers.Any()) { providers.AddRange(SupportedProviders.Select(kvp => new NugetPackProvider(kvp.Key, kvp.Value, config.BasePath, config.PageSize, config.RunOnlyOnePage, config.IncludePreviewPacks))); } else { foreach (string provider in config.Providers.Distinct(StringComparer.OrdinalIgnoreCase)) { providers.Add(new NugetPackProvider(provider, SupportedProviders[provider], config.BasePath, config.PageSize, config.RunOnlyOnePage, config.IncludePreviewPacks)); } } List <Func <IDownloadedPackInfo, PreFilterResult> > preFilterList = new List <Func <IDownloadedPackInfo, PreFilterResult> >(); if (!PreviouslyRejectedPackFilter.TryGetPreviouslySkippedPacks(config.PreviousRunBasePath, out HashSet <string> nonTemplatePacks)) { Console.WriteLine("Unable to read results from the previous run."); packSourceChecker = null; return(false); } preFilterList.Add(PreviouslyRejectedPackFilter.SetupPackFilter(nonTemplatePacks)); if (!config.DontFilterOnTemplateJson) { preFilterList.Add(TemplateJsonExistencePackFilter.SetupPackFilter()); } preFilterList.Add(SkipTemplatePacksFilter.SetupPackFilter()); PackPreFilterer preFilterer = new PackPreFilterer(preFilterList); IReadOnlyList <IAdditionalDataProducer> additionalDataProducers = new List <IAdditionalDataProducer>() { new CliHostDataProducer() }; packSourceChecker = new PackSourceChecker(providers, preFilterer, additionalDataProducers, config.SaveCandidatePacks); return(true); }
public async Task <PackSourceChecker> CreatePackSourceCheckerAsync(CommandArgs config, CancellationToken cancellationToken) { List <IPackProvider> providers = new List <IPackProvider>(); if (!config.Queries.Any()) { providers.AddRange(SupportedProviders.Select(kvp => new NuGetPackProvider(kvp.Key.ToString(), kvp.Value, config.OutputPath, config.PageSize, config.RunOnlyOnePage, config.IncludePreviewPacks))); } else { foreach (SupportedQueries provider in config.Queries.Distinct()) { providers.Add(new NuGetPackProvider(provider.ToString(), SupportedProviders[provider], config.OutputPath, config.PageSize, config.RunOnlyOnePage, config.IncludePreviewPacks)); } } List <Func <IDownloadedPackInfo, PreFilterResult> > preFilterList = new List <Func <IDownloadedPackInfo, PreFilterResult> >(); if (!config.DontFilterOnTemplateJson) { preFilterList.Add(TemplateJsonExistencePackFilter.SetupPackFilter()); } preFilterList.Add(SkipTemplatePacksFilter.SetupPackFilter()); preFilterList.Add(FilterNonMicrosoftAuthors.SetupPackFilter()); PackPreFilterer preFilterer = new PackPreFilterer(preFilterList); IReadOnlyList <IAdditionalDataProducer> additionalDataProducers = new List <IAdditionalDataProducer>() { new CliHostDataProducer() }; TemplateSearchCache?existingCache = config.DiffMode ? await LoadExistingCacheAsync(config, cancellationToken).ConfigureAwait(false) : null; IEnumerable <FilteredPackageInfo>?knownPackages = config.DiffMode ? await LoadKnownPackagesListAsync(config, cancellationToken).ConfigureAwait(false) : null; return(new PackSourceChecker(providers, preFilterer, additionalDataProducers, config.SaveCandidatePacks, existingCache, knownPackages)); }