private async Task <IEnumerable <RssFeedItem> > GetItemsFromFeed() { // Retrieve RSS feed var result = await RequestWithCookiesAndRetryAsync(RssFeedUri); // Parse as XML document var xmlDocument = new XmlDocument(); xmlDocument.LoadXml(result.ContentString); // Parse to RssFeedItems var xmlNodes = xmlDocument.GetElementsByTagName("item"); List <RssFeedItem> feedItems = new List <RssFeedItem>(); foreach (var n in xmlNodes) { var node = (XmlNode)n; if (RssFeedItem.TryParse(node, out RssFeedItem item)) { feedItems.Add(item); } else { logger.Warn($"Could not parse {DisplayName} RSS item '{node.InnerText}'"); } } return(feedItems); }
private async Task <IEnumerable <RssFeedItem> > GetItemsFromFeed() { // Retrieve RSS feed var result = await RequestWithCookiesAndRetryAsync(RssFeedUri); if (result.IsRedirect) { await FollowIfRedirect(result); } // Parse as XML document var xmlDocument = new XmlDocument(); xmlDocument.LoadXml(result.ContentString); var nsm = new XmlNamespaceManager(xmlDocument.NameTable); nsm.AddNamespace("erai", "https://www.erai-raws.info/rss-page/"); // Parse to RssFeedItems var xmlNodes = xmlDocument.GetElementsByTagName("item"); List <RssFeedItem> feedItems = new List <RssFeedItem>(); foreach (var n in xmlNodes) { var node = (XmlNode)n; if (RssFeedItem.TryParse(nsm, node, out RssFeedItem item)) { feedItems.Add(item); } else { logger.Warn($"Could not parse {DisplayName} RSS item '{node.OuterXml}'"); } } return(feedItems); }