Exemple #1
0
            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);
                }
            }
Exemple #2
0
        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);
        }
Exemple #3
0
 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);
     }
 }