Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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("&quot;", "\""),
                            Timestamp   = item.Published,
                            OriginalUrl = item.Links.FirstOrDefault(f => string.Equals(f.RelationshipType, "alternate", StringComparison.OrdinalIgnoreCase))?.Uri.AbsoluteUri
                        };

                        items.Add(card);
                        break;
                    }
                }
            }

            return(items);
        }
Esempio n. 3
0
        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));
 }
Esempio n. 5
0
        public ActionResult Index()
        {
            List <DBCard> cards = DBCard.GetAll();

            return(View(cards));
        }