12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using BanTur.Core.Entity;
- using CodeHollow.FeedReader;
- using CodeHollow.FeedReader.Feeds;
- namespace BanTur.Core.Rss
- {
- public static class RssParser
- {
- public static BangumiEntry[] Parse(string xml)
- {
- var doc = FeedReader.ReadFromString(xml);
- var isFeed20 = doc.Type == FeedType.Rss_2_0;
- var list = new List<BangumiEntry>();
- foreach (var item in doc.Items)
- {
- string magnet = null;
- if (isFeed20)
- {
- var rss20 = (Rss20FeedItem)item.SpecificItem;
- if (rss20.Enclosure?.MediaType == "application/x-bittorrent") magnet = rss20.Enclosure.Url;
- }
- if (magnet == null) continue;
- var entry = new BangumiEntry
- {
- FetchDate = DateTime.Now,
- PubDate = item.PublishingDate,
- Magnet = magnet,
- Title = item.Title,
- Url = item.Link,
- };
- list.Add(entry);
- }
- return list.ToArray();
- }
- }
- }
|