public static async Task <HomepageDom> GetDomFromUrl(string url) { try { using (var httpClient = new HttpClient()) { var contentsMessage = await httpClient.GetAsync(new Uri(url)); if (!contentsMessage.IsSuccessStatusCode) { return(null); } HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument(); var bodyString = await contentsMessage.Content.ReadAsStringAsync(); htmlDoc.LoadHtml(bodyString); var result = new HomepageDom(); result.Body = bodyString; result.Url = url; result.Title = htmlDoc.DocumentNode.Descendants("title").SingleOrDefault()?.InnerText; return(result); } } catch { return(null); } }
protected async Task <HomepageDom> GetWeblogHomepageDOM(IProgressHost progressHost) { // try download the weblog home page UpdateProgress(progressHost, 25, "Analysing Homepage"); //string responseUri; var weblogDOM = await HomepageDom.GetDomFromUrl(_homepageUrl); // if (responseUri != null && responseUri != _homepageUrl) // { // _homepageUrl = responseUri; // } //if ( weblogDOM != null ) // { // // default the blog name to the title of the document // if (weblogDOM.title != null) // { // _blogName = weblogDOM.title; // // drop anything to the right of a "|", as it usually is a site name // int index = _blogName.IndexOf("|", StringComparison.OrdinalIgnoreCase); // if (index > 0) // { // string newname = _blogName.Substring(0, index).Trim(); // if (newname != String.Empty) // _blogName = newname; // } // } // } return(weblogDOM); }
private async Task <RsdServiceDescription> GetRsdServiceDescription(IProgressHost progressHost, HomepageDom weblogDOM) { if (weblogDOM != null) { // try to download an RSD description UpdateProgress(progressHost, 50, "Analysing interface"); return(await RsdServiceDetector.DetectFromWeblogAsync(_homepageUrl, weblogDOM)); } else { return(null); } }