Exemple #1
0
        public void GetUngetPackages()
        {
            var worker = WorkerProvider.GetWorker();

            worker.AddHandler(new SiteHandler());
            worker.AddHandler(new ArticleHandler());
            worker.Start();
            foreach (var i in Enumerable.Range(1, 2))
            {
                worker.Publish(new SiteProfile
                {
                    SiteAddress = "https://www.nuget.org/packages?page=" + i
                });
            }

            worker.WaitUntilNoMessage();
            worker.Stop();
        }
Exemple #2
0
        public void Handle(SiteProfile message, CancellationToken cancellationToken)
        {
            var document = new HtmlDocument();

            using (var client = new HttpClient())
            {
                var html = client.GetStringAsync(message.SiteAddress).Result;
                document.LoadHtml(html);
            }
            var articles = document.DocumentNode.QuerySelectorAll(".list-packages .package a.package-title")?.Select(
                a =>
                new ArticleProfile
            {
                NugetLink = "https://www.nuget.org" + a.Attributes["href"]?.Value,
                Title     = a.InnerText
            });

            Console.WriteLine(message.SiteAddress);
            WorkerProvider.GetWorker().Publish(articles);
        }