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); }
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); }