public string GetImage(string description, string root) { if (mImagesShown++ >= mItemsCollapseAfter) { return(string.Empty); } if (string.IsNullOrEmpty(description)) { return(string.Empty); } List <HtmlImage> list = HtmlImageExtractor.Extract(description); if (list.Count == 0) { return(string.Empty); } Uri rooturi = null; Uri uri = null; Uri.TryCreate(root, UriKind.Absolute, out rooturi); Uri.TryCreate(rooturi, list[0].Src, out uri); Uri imgrewriteuri = new Uri(SessionManager.WebsiteUri, "AccountFeedItemPicture.aspx?src="); return(string.Format("<img class='sncore_blog_image' border='0' src='{0}{1}'>", imgrewriteuri, Renderer.UrlEncode(uri.ToString()))); }
public void linkSummarize_Click(object sender, EventArgs e) { List <HtmlImage> list = HtmlImageExtractor.Extract(inputSummary.Content); string imageuri = string.Empty; if (list.Count > 0) { imageuri = list[0].Src; imageuri = imageuri.Replace("AccountStoryPicture.aspx", "AccountStoryPictureThumbnail.aspx"); } else { TransitAccountStory ts = SessionManager.StoryService.GetAccountStoryById( SessionManager.Ticket, RequestId); imageuri = string.Format("AccountStoryPictureThumbnail.aspx?id={0}", ts.AccountStoryPictureId); } labelSummary.Text = string.Format( "<table cellpadding='4' cellspacing='4'>\n" + "<tr>\n" + "<td valign='middle'>\n" + "<a href='{2}'><img border='0' src='{0}'></a>\n" + "</td>\n" + "<td valign='middle'>\n" + "<p><a href='{2}'>{3}</a></p>\n" + "<p>{1}</p>\n" + "</td>\n" + "</tr>\n" + "</table>", imageuri, Renderer.GetSummary(inputSummary.Content), string.Format("AccountStoryView.aspx?id={0}", RequestId), Renderer.Render(inputName.Text)); }
public void ExtractMultipleImages() { string html = "<html><img src='http://www.server.com/image.gif' alt='altvalue' width=10 height=20>" + "<img src='http://www.server.com/anotherimage.gif'></html>"; List <HtmlImage> images = HtmlImageExtractor.Extract(html); Assert.AreEqual(images.Count, 2); }
public void ExtractRelativeImages() { string html = "<html><img src='image.gif' alt='altvalue' width=10 height=20>" + "<img src='http://www.two.com/image.gif'></html>"; List <HtmlImage> images = HtmlImageExtractor.Extract(html, new Uri("http://www.one.com")); Assert.AreEqual(images.Count, 2); Assert.AreEqual("http://www.one.com/image.gif", images[0].Src); Assert.AreEqual("http://www.two.com/image.gif", images[1].Src); }
public void ExtractAllProperties() { string html = "<html><img src='http://www.server.com/image.gif' alt='altvalue' width=10 height=20></html>"; List <HtmlImage> images = HtmlImageExtractor.Extract(html); Assert.AreEqual(images.Count, 1); Assert.AreEqual("http://www.server.com/image.gif", images[0].Src); Assert.AreEqual("altvalue", images[0].Alt); Assert.AreEqual(10, images[0].Width); Assert.AreEqual(20, images[0].Height); }
public void ExtractBasic() { string html = "<html><img src='http://www.server.com/image.gif'></html>"; List <HtmlImage> images = HtmlImageExtractor.Extract(html); Assert.AreEqual(images.Count, 1); Assert.AreEqual("http://www.server.com/image.gif", images[0].Src); Assert.IsTrue(string.IsNullOrEmpty(images[0].Alt)); Assert.AreEqual(-1, images[0].Width); Assert.AreEqual(-1, images[0].Height); }
public string GetImage(string description) { if (mImagesShown++ >= mItemsCollapseAfter) { return(string.Empty); } if (string.IsNullOrEmpty(description)) { return(string.Empty); } List <HtmlImage> list = HtmlImageExtractor.Extract(description); if (list.Count == 0) { return(string.Empty); } return(string.Format("<img class='sncore_blog_image' border='0' src='{0}'>", list[0].Src)); }
public int UpdateImages(ManagedSecurityContext sec) { GetACL().Check(sec, DataOperation.Update); int result = 0; Uri basehref = null; Uri.TryCreate(mInstance.LinkUrl, UriKind.Absolute, out basehref); IList items = Session.CreateCriteria(typeof(AccountFeedItem)) .Add(Expression.Eq("AccountFeed.Id", mInstance.Id)) .List(); foreach (AccountFeedItem item in items) { IList <HtmlImage> images = null; try { images = HtmlImageExtractor.Extract(item.Description, basehref); } catch { continue; } TimeSpan tsDistribution = new TimeSpan(0, 30, 0); foreach (HtmlImage image in images) { AccountFeedItemImg x_img = null; // images may appear only once, repeating images don't get updated // nor images linked from multiple feeds or feed items x_img = (AccountFeedItemImg)Session.CreateCriteria(typeof(AccountFeedItemImg)) .Add(Expression.Eq("Url", image.Src)).UniqueResult(); if (x_img != null) { // image already exists continue; } x_img = new AccountFeedItemImg(); x_img.Created = item.Created.Subtract(tsDistribution); // shuffle images tsDistribution = tsDistribution.Add(new TimeSpan(0, 30, 0)); x_img.Modified = DateTime.UtcNow; x_img.AccountFeedItem = item; x_img.Description = image.Alt; x_img.Interesting = false; x_img.Url = image.Src; // fetch the image to get its size try { WebClient client = new WebClient(); client.Headers["Accept"] = "*/*"; client.Headers["User-Agent"] = ManagedConfiguration.GetValue(Session, "SnCore.Web.UserAgent", "SnCore/1.0"); byte[] data = client.DownloadData(x_img.Url); if (data == null) { throw new Exception("Missing file data."); } ThumbnailBitmap bitmap = new ThumbnailBitmap(data); x_img.Thumbnail = bitmap.Thumbnail; x_img.Visible = mInstance.PublishImgs; // hide images smaller than the thumbnail size if (bitmap.FullSize.Height < ThumbnailBitmap.s_ThumbnailSize.Height || bitmap.FullSize.Width < ThumbnailBitmap.s_ThumbnailSize.Width) { x_img.Visible = false; } } catch (Exception ex) { x_img.LastError = ex.Message; x_img.Visible = false; } Session.Save(x_img); result++; } } return(result); }