public override async Task <List <DBCard> > GetCardsAsync(DBSubscription subscription) { var items = new List <DBCard>(); using (var xmlReader = XmlReader.Create(new StringReader(await BaseClient.GetStringAsync(new RestRequest($"https://www.reddit.com{subscription.SourceId}"))), new XmlReaderSettings { Async = true })) { var feedReader = new AtomFeedReader(xmlReader); while (await feedReader.Read()) { switch (feedReader.ElementType) { case SyndicationElementType.Item: var item = await feedReader.ReadItem(); var card = new DBCard { CardId = item.Id, Text = item.Title, Header = item.Categories.First().Label, Timestamp = item.LastUpdated, OriginalUrl = item.Links.First().Uri.AbsoluteUri }; items.Add(card); break; } } } return(items); }
public override async Task <List <DBCard> > GetCardsAsync(DBSubscription subscription) { var items = new List <DBCard>(); using (var xmlReader = XmlReader.Create(new StringReader(await BaseClient.GetStringAsync(new RestRequest(subscription.SourceId))), new XmlReaderSettings { Async = true, IgnoreComments = true, IgnoreWhitespace = true })) { XmlFeedReader feedReader; if (new Atom10FeedFormatter().CanRead(xmlReader)) { feedReader = new AtomFeedReader(xmlReader); } else { feedReader = new RssFeedReader(xmlReader); } while (await feedReader.Read()) { switch (feedReader.ElementType) { case SyndicationElementType.Item: var item = await feedReader.ReadItem(); var card = new DBCard { CardId = item.Id, Header = subscription.Username, Text = item.Title.Trim().Replace(""", "\""), Timestamp = item.Published, OriginalUrl = item.Links.FirstOrDefault(f => string.Equals(f.RelationshipType, "alternate", StringComparison.OrdinalIgnoreCase))?.Uri.AbsoluteUri }; items.Add(card); break; } } } return(items); }
public override async Task <List <DBCard> > GetCardsAsync(DBSubscription subscription) { var items = new List <DBCard>(); using (var xmlReader = XmlReader.Create(new StringReader(await BaseClient.GetStringAsync(new RestRequest($"https://www.youtube.com/feeds/videos.xml?channel_id={subscription.SourceId}"))), new XmlReaderSettings { Async = true })) { var feedReader = new AtomFeedReader(xmlReader); while (await feedReader.Read()) { switch (feedReader.ElementType) { case SyndicationElementType.Item: var item = await feedReader.ReadItem(); var id = item.Id.Split(":").Last(); var card = new DBCard { CardId = item.Id, Text = item.Title, Header = item.Contributors.FirstOrDefault()?.Name, Timestamp = item.Published, OriginalUrl = $"https://www.youtube.com/embed/{id}?autoplay=1&modestbranding=0&rel=0" }; items.Add(card); break; } } } return(items); }
public ActionResult Create(string cardId, int pageNum) { DBCard.SaveCard(cardId); return(RedirectToAction("Show", pageNum)); }
public ActionResult Index() { List <DBCard> cards = DBCard.GetAll(); return(View(cards)); }