private PhotoInstance?GetPhotoInstance(newsItem ni, enumeratedTypes.enumPhotoInstanceType[] photoTypes) { IEnumerator <photo> phEn = ni.photos.GetEnumerator(); if (!phEn.MoveNext()) { return(null); } PhotoInstance phIns = new PhotoInstance(); bool found = false; photo ph = phEn.Current; IEnumerator <photo.Instance> phIEn = ph.Instances.GetEnumerator(); while (phIEn.MoveNext()) { foreach (enumeratedTypes.enumPhotoInstanceType phType in photoTypes) { if (phIEn.Current.type == phType) { phIns.Width = phIEn.Current.width; phIns.Height = phIEn.Current.height; phIns.Url = phIEn.Current.url; phIns.Type = phIEn.Current.type; phIns.Type = phType; string cleanedUrl = phIns.Url; if (cleanedUrl.IndexOf('?') >= 0) { cleanedUrl = cleanedUrl.Substring(0, cleanedUrl.IndexOf('?')); } string phTypeSlug = Slugify(phType); phIns.DestinationFileName = Slugify(ni.headline) + (phTypeSlug == "" ? "" : "-" + phTypeSlug) + Path.GetExtension(cleanedUrl); found = true; break; } } if (found) { phIns.AltText = phEn.Current.htmlAlt; phIns.Caption = phEn.Current.caption; phIns.Id = phEn.Current.id; phIns.Orientation = phEn.Current.orientation; break; } } if (!found) { return(null); } return(phIns); }
private PhotoInstance?GetPhotoInstance(AdferoVideoDotNet.AdferoArticles.Articles.AdferoArticle article, AdferoVideoDotNet.AdferoArticles.ArticlePhotos.AdferoArticlePhotosClient photos, AdferoVideoDotNet.AdferoPhotos.AdferoPhotoClient photoClient, string scaleAxis, int scale) { PhotoInstance?inst = null; AdferoVideoDotNet.AdferoArticles.ArticlePhotos.AdferoArticlePhotoList photoList = photos.ListForArticle(article.Id, 0, 100); if (photoList.TotalCount > 0) { AdferoVideoDotNet.AdferoArticles.ArticlePhotos.AdferoArticlePhoto apho = photos.Get(photoList.Items[0].Id); int photoId = apho.SourcePhotoId; AdferoVideoDotNet.AdferoPhotos.Photos.AdferoPhoto pho = photoClient.Photos().GetScaleLocationUrl(photoId, scaleAxis, scale); string photoUrl = pho.LocationUri; string photoCaption = photos.Get(photoList.Items[0].Id).Fields["caption"]; enumeratedTypes.enumPhotoOrientation ori = enumeratedTypes.enumPhotoOrientation.Landscape; if (scaleAxis == AdferoVideoDotNet.AdferoPhotos.Photos.AdferoScaleAxis.Y) { ori = enumeratedTypes.enumPhotoOrientation.Portrait; } string cleanedUrl = photoUrl; if (cleanedUrl.IndexOf('?') >= 0) { cleanedUrl = cleanedUrl.Substring(0, cleanedUrl.IndexOf('?')); } inst = new PhotoInstance() { AltText = photoCaption, Caption = photoCaption, DestinationFileName = Slugify(article.Fields["title"]) + "-" + scale + Path.GetExtension(cleanedUrl), Height = 0, Id = apho.Id, Orientation = ori, Type = enumeratedTypes.enumPhotoInstanceType.Custom, Url = photoUrl, Width = 0 }; } return(inst); }
private string AppendImageToContent(PhotoInstance photoInstance, string virtualPath, string content, string cssClass, string imageLink, bool useCaption) { StringBuilder sb = new StringBuilder(); sb.Append(string.Format("<div class=\"{0}\">", cssClass)); if (!string.IsNullOrEmpty(imageLink)) { sb.Append(string.Format("<a href=\"{0}\">", imageLink)); } sb.Append(string.Format("<img src=\"{0}\" alt=\"{1}\" />", virtualPath, photoInstance.AltText)); if (!string.IsNullOrEmpty(imageLink)) { sb.Append("</a>"); } if (useCaption) { sb.Append(string.Format("<span class=\"caption\">{0}</span>", photoInstance.Caption)); } sb.Append("</div>"); sb.Append(content); return(sb.ToString()); }
private string AppendImageToContent(PhotoInstance photoInstance, string virtualPath, string content, string cssClass) { return(AppendImageToContent(photoInstance, virtualPath, content, cssClass, "", false)); }
private void ImportPhotos(Post p, PhotoInstance? thumbnail, PhotoInstance? fullSizePhoto) { if (thumbnail != null || fullSizePhoto != null) { string thumbnailPath = string.Empty; string fullSizePhotoPath = string.Empty; int photoImportCount = 0; string physicalPicsPath = HttpContext.Current.Server.MapPath(Path.Combine(Blog.CurrentInstance.VirtualPath, "pics")); string fullSizePhysicalPath = string.Empty; string thumbnailPhysicalPath = string.Empty; string webrootUri = global::BlogEngine.Core.Blog.CurrentInstance.AbsoluteWebRoot.ToString(); string webrootAuthorityUri = global::BlogEngine.Core.Blog.CurrentInstance.AbsoluteWebRootAuthority.ToString(); string picsUri = webrootUri.Substring(webrootUri.IndexOf(webrootAuthorityUri) + webrootAuthorityUri.Length) + "pics/"; if (fullSizePhoto != null && ImportPhoto(fullSizePhoto, physicalPicsPath, out fullSizePhysicalPath, out fullSizePhotoPath)) { photoImportCount++; p.Content = AppendImageToContent(fullSizePhoto.Value, picsUri + fullSizePhotoPath, p.Content, "article-img-frame", "", true); } if (thumbnail != null && ImportPhoto(thumbnail, physicalPicsPath, out thumbnailPhysicalPath, out thumbnailPath)) { photoImportCount++; p.Description = AppendImageToContent(thumbnail.Value, picsUri + thumbnailPath, p.Description, "article-thumbnail-frame"); } if (photoImportCount > 0) Log(string.Format("Imported {0} photo{1}.", photoImportCount, (photoImportCount != 1 ? "s" : "")), LogLevel.Info); else Log("Warning: could not import any photos.", LogLevel.Warning); } }
private bool ImportPhoto(PhotoInstance? photoInstance, string picsPath, out string physicalPhotoPath, out string photoPath) { string filename = photoInstance.Value.DestinationFileName; string physicalPath = Path.Combine(picsPath, filename); using (WebClient wc = new WebClient()) { try { wc.DownloadFile(photoInstance.Value.Url, physicalPath); } catch (Exception ex) { Log(string.Format("Error: Could not import photo '{0}': {1}", photoInstance.Value.Url, ex.Message), LogLevel.Error); physicalPhotoPath = string.Empty; photoPath = string.Empty; return false; } } physicalPhotoPath = physicalPath; photoPath = filename; return true; }
private PhotoInstance? GetPhotoInstance(newsItem ni, enumeratedTypes.enumPhotoInstanceType[] photoTypes) { IEnumerator<photo> phEn = ni.photos.GetEnumerator(); if (!phEn.MoveNext()) return null; PhotoInstance phIns = new PhotoInstance(); bool found = false; photo ph = phEn.Current; IEnumerator<photo.Instance> phIEn = ph.Instances.GetEnumerator(); while (phIEn.MoveNext()) { foreach (enumeratedTypes.enumPhotoInstanceType phType in photoTypes) { if (phIEn.Current.type == phType) { phIns.Width = phIEn.Current.width; phIns.Height = phIEn.Current.height; phIns.Url = phIEn.Current.url; phIns.Type = phIEn.Current.type; phIns.Type = phType; string cleanedUrl = phIns.Url; if (cleanedUrl.IndexOf('?') >= 0) cleanedUrl = cleanedUrl.Substring(0, cleanedUrl.IndexOf('?')); string phTypeSlug = Slugify(phType); phIns.DestinationFileName = Slugify(ni.headline) + (phTypeSlug == "" ? "" : "-" + phTypeSlug) + Path.GetExtension(cleanedUrl); found = true; break; } } if (found) { phIns.AltText = phEn.Current.htmlAlt; phIns.Caption = phEn.Current.caption; phIns.Id = phEn.Current.id; phIns.Orientation = phEn.Current.orientation; break; } } if (!found) return null; return phIns; }
private PhotoInstance? GetPhotoInstance(AdferoVideoDotNet.AdferoArticles.Articles.AdferoArticle article, AdferoVideoDotNet.AdferoArticles.ArticlePhotos.AdferoArticlePhotosClient photos, AdferoVideoDotNet.AdferoPhotos.AdferoPhotoClient photoClient, string scaleAxis, int scale) { PhotoInstance? inst = null; AdferoVideoDotNet.AdferoArticles.ArticlePhotos.AdferoArticlePhotoList photoList = photos.ListForArticle(article.Id, 0, 100); if (photoList.TotalCount > 0) { AdferoVideoDotNet.AdferoArticles.ArticlePhotos.AdferoArticlePhoto apho = photos.Get(photoList.Items[0].Id); int photoId = apho.SourcePhotoId; AdferoVideoDotNet.AdferoPhotos.Photos.AdferoPhoto pho = photoClient.Photos().GetScaleLocationUrl(photoId, scaleAxis, scale); string photoUrl = pho.LocationUri; string photoCaption = photos.Get(photoList.Items[0].Id).Fields["caption"]; enumeratedTypes.enumPhotoOrientation ori = enumeratedTypes.enumPhotoOrientation.Landscape; if (scaleAxis == AdferoVideoDotNet.AdferoPhotos.Photos.AdferoScaleAxis.Y) ori = enumeratedTypes.enumPhotoOrientation.Portrait; string cleanedUrl = photoUrl; if (cleanedUrl.IndexOf('?') >= 0) cleanedUrl = cleanedUrl.Substring(0, cleanedUrl.IndexOf('?')); inst = new PhotoInstance() { AltText = photoCaption, Caption = photoCaption, DestinationFileName = Slugify(article.Fields["title"]) + "-" + scale + Path.GetExtension(cleanedUrl), Height = 0, Id = apho.Id, Orientation = ori, Type = enumeratedTypes.enumPhotoInstanceType.Custom, Url = photoUrl, Width = 0 }; } return inst; }
private string AppendImageToContent(PhotoInstance photoInstance, string virtualPath, string content, string cssClass) { return AppendImageToContent(photoInstance, virtualPath, content, cssClass, "", false); }
private string AppendImageToContent(PhotoInstance photoInstance, string virtualPath, string content, string cssClass, string imageLink, bool useCaption) { StringBuilder sb = new StringBuilder(); sb.Append(string.Format("<div class=\"{0}\">", cssClass)); if (!string.IsNullOrEmpty(imageLink)) sb.Append(string.Format("<a href=\"{0}\">", imageLink)); sb.Append(string.Format("<img src=\"{0}\" alt=\"{1}\" />", virtualPath, photoInstance.AltText)); if (!string.IsNullOrEmpty(imageLink)) sb.Append("</a>"); if (useCaption) sb.Append(string.Format("<span class=\"caption\">{0}</span>", photoInstance.Caption)); sb.Append("</div>"); sb.Append(content); return sb.ToString(); }