////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)); }
/// <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); }
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; }