private List GetTechnoratiPosts(string technoratiAPI, string technoratiTerm) { int limit = 20; int excerptsize = 200; string url = string.Format("http://api.technorati.com/tag?key={0}&tag={1}&limit={2}excerptsize={3}", technoratiAPI, technoratiTerm, limit, excerptsize); List taggedPosts = new List(); Dictionary webLogs = new Dictionary(); try { XmlDocument xmlResultsSet = new XmlDocument(); xmlResultsSet.Load(new XmlTextReader(url)); XmlNodeList xmlResponse = xmlResultsSet.SelectNodes("/tapi/document/item"); foreach (XmlNode post in xmlResponse) { try { Blog blog = new Blog(); Weblog webLog = null; blog.Title = post["title"].InnerText; blog.Description = post["excerpt"].InnerText; blog.Created = Convert.ToDateTime(post["created"].InnerText); blog.Url = post["permalink"].InnerText; if (!webLogs.ContainsKey(post["weblog"]["url"].InnerText)) { webLog = new Weblog(); webLog.Name = post["weblog"]["name"].InnerText; webLog.Url = post["weblog"]["url"].InnerText; webLog.Rss = post["weblog"]["rssurl"].InnerText; webLog.LastUpdated = Convert.ToDateTime(post["weblog"]["lastupdate"].InnerText); webLogs.Add(webLog.Url, webLog); } else { webLog = webLogs[post["weblog"]["url"].InnerText]; } blog.Weblog = webLog; taggedPosts.Add(blog); } catch { } //eat, only one failed to process... } } catch { DisplayError("Could not connect to Technorati"); } return taggedPosts; }