public List <Digest> GetCurrentDigests(Provider provider)
        {
            List <Digest> digests           = new();
            var           stringResult      = htmlContentGetter.GetContent(provider.DigestURL);
            var           digestArchiveHtml = new HtmlDocument();

            digestArchiveHtml.LoadHtml(stringResult);
            var digestsInArchive = digestArchiveHtml.DocumentNode.SelectNodes("//li[contains(@class,'campaign')]").Take(5);

            foreach (var digestNode in digestsInArchive)
            {
                var    dateNode   = digestNode.ChildNodes[0];
                string dateText   = dateNode.InnerText.Split('-')[0].Trim();
                var    digestDate = DateTime.Parse(dateText, new CultureInfo("en-US", false));
                var    hrefNode   = digestNode.SelectSingleNode("./a");
                var    digestHref = hrefNode.GetAttributeValue("href", "Not found");
                var    digestName = hrefNode.InnerText.Trim();
                var    fullHref   = Utils.UnshortenLink(digestHref);

                var currentDigest = new Digest
                {
                    DigestDay         = digestDate,
                    DigestName        = digestName,
                    DigestDescription = "", //Devops Weekly doesn't provide one
                    DigestURL         = fullHref,
                    Provider          = provider
                };
                digests.Add(currentDigest);
            }
            return(digests);
        }
        public List <Digest> GetCurrentDigests(Provider provider)
        {
            List <Digest> digests      = new();
            var           stringResult = htmlContentGetter.GetContent(provider.DigestURL);
            XmlReader     reader       = XmlReader.Create(new StringReader(stringResult));
            var           feed         = SyndicationFeed.Load(reader);

            var digestsInArchive = feed.Items.Take(5);

            foreach (var digestNode in digestsInArchive)
            {
                var digestDate = new DateTime(1900, 1, 1); //we'll fill it later
                var digestName = digestNode.Title.Text;
                var fullHref   = digestNode.Links[0].Uri.AbsoluteUri;

                var currentDigest = new Digest
                {
                    DigestDay         = digestDate,
                    DigestName        = digestName,
                    DigestDescription = "", //We'll fill it later
                    DigestURL         = fullHref,
                    Provider          = provider
                };
                digests.Add(currentDigest);
            }
            return(digests);
        }
        public List <Digest> GetCurrentDigests(Provider provider)
        {
            var digests           = new List <Digest>();
            var stringResult      = htmlContentGetter.GetContent(provider.DigestURL);
            var digestArchiveHtml = new HtmlDocument();

            digestArchiveHtml.LoadHtml(stringResult);
            var digestsInArchive = digestArchiveHtml.DocumentNode.SelectNodes("//article[@class='article']//li")?.Take(50);

            if (digestsInArchive == null)
            {
                Log.Warning("No digests found in archive at {dgstUrl}", provider.DigestURL);
                return(digests);
            }
            foreach (var digest in digestsInArchive)
            {
                var digestUrl     = digest.Descendants("a").FirstOrDefault().GetAttributeValue("href", "Not found");
                var currentDigest = new Digest
                {
                    DigestDay         = DateTime.Parse(HttpUtility.HtmlDecode(digest.InnerText).Split('—')[1].Trim()),
                    DigestName        = digest.InnerText,
                    DigestDescription = "", //changelog doesn't have description for digest itself
                    DigestURL         = digestUrl,
                    Provider          = provider
                };
                digests.Add(currentDigest);
            }
            return(digests);
        }
Exemple #4
0
        public List <Digest> GetCurrentDigests(Provider provider)
        {
            List <Digest> digests = new();

            var       stringResult = htmlContentGetter.GetContent(provider.DigestURL);
            XmlReader reader       = XmlReader.Create(new StringReader(stringResult));
            var       feed         = SyndicationFeed.Load(reader);

            foreach (var feedItem in feed.Items.Take(5))
            {
                Digest currentDigest = new()
                {
                    DigestDay         = feedItem.PublishDate.DateTime,
                    DigestName        = feedItem.Title.Text,
                    DigestDescription = feedItem.Summary.Text,
                    DigestURL         = feedItem.Links[0].Uri.AbsoluteUri,
                    Provider          = provider
                };
                digests.Add(currentDigest);
            }
            return(digests);
        }