Ejemplo n.º 1
0
        ////http://football.ua/handlers/stanfy/authors.ashx
        //public Task<ResponseCategory> LoadAuthorsCategoriesAsync()
        //{
        //    var request = new HttpRequestMessage();
        //    var parser = new XmlParser<ResponseCategory>();
        //    request.RequestUri = new Uri("http://football.ua/handlers/stanfy/authors.ashx");
        //    var settings = new RestSettings<>
        //    return _restClient.SendMessageAsync(request, parser);
        //}

        public Task <List <FeedItem> > LoadAuthorsFeedAsync(FeedItem lastFeedItem = null, string filterCode = "")
        {
            var request           = new HttpRequestMessage();
            var parser            = new RssFeedParser();
            var requestUriBuilder = new ParameterUriBuilder("http://football.ua/handlers/stanfy/news.ashx");

            requestUriBuilder.Add("type", "author");
            if (lastFeedItem != null)
            {
                var dateTimeOffset = lastFeedItem.Date.ToString("dd.MM.yyyy HH:mm:sszzz");
                dateTimeOffset = dateTimeOffset.Remove(dateTimeOffset.LastIndexOf(":"), 1);
                requestUriBuilder.Add("before", dateTimeOffset);
            }

            if (!string.IsNullOrEmpty(filterCode))
            {
                requestUriBuilder.Add("filterCode", filterCode);
            }

            request.RequestUri = requestUriBuilder.BuildParametersUri();

            var restSettings = new RestSettings <List <FeedItem> >()
                               .AddMode(RequestAccessMode.Server)
                               .AddParser(parser)
                               .AddRequestMessage(request);

            return(_restClient.SendAsync(restSettings, null));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Parses the specified reader.
        /// </summary>
        /// <param name="reader">The reader.</param>
        /// <returns></returns>
        public override T Parse <T>(System.Xml.XmlReader reader)
        {
            // Need a specific parser
            IParser subparser = null;
            IFeed   ret       = null;

            string localRootName = reader.LocalName.ToLower().Trim();

            if (localRootName == "rss" || localRootName == "rdf")
            {
                subparser = new RssFeedParser();
            }
            else if (localRootName == "feed")
            {
                subparser = new AtomFeedParser();
            }
            if (subparser != null)
            {
                using (XmlReader subreader = reader.ReadSubtree())
                {
                    ret = (IFeed)subparser.Parse <T>(subreader);
                }
            }
            else
            {
                throw new Exception(string.Format("Unknown feed type '{0}'.", reader.Name));
            }
            reader.Close();
            return((T)ret);
        }
Ejemplo n.º 3
0
        public void XmlFromFile()
        {
            List <Torrent> list = new List <Torrent>();

            XmlDocument xmlDocument = new XmlDocument();

            xmlDocument.Load("Feed.xml");

            list = RssFeedParser.ParseXmlFeedForTorrents(xmlDocument);
        }
 public FeedParserController(RssFeedParser parser)
 {
     _parser = parser;
 }