public void Succeeded(FileDownloadManagerItem item) { if ((item.Success ?? false) && item.Url.HasValue() && !DownloadedItems.ContainsKey(item.Url)) { DownloadedItems.Add(item.Url, Path.GetFileName(item.Path)); } }
public FileDownloadManagerItem CreateDownloadImage(ImportExecuteContext context, string urlOrPath, int displayOrder) { try { var item = new FileDownloadManagerItem { Id = displayOrder, DisplayOrder = displayOrder }; if (urlOrPath.IsWebUrl()) { // We append quality to avoid importing of image duplicates. item.Url = context.Services.WebHelper.ModifyQueryString(urlOrPath, "q=100", null); if (DownloadedItems.ContainsKey(urlOrPath)) { // URL has already been downloaded. item.Success = true; item.FileName = DownloadedItems[urlOrPath]; } else { var localPath = string.Empty; try { // Exclude query string parts! localPath = new Uri(urlOrPath).LocalPath; } catch { } item.FileName = Path.GetFileName(localPath).ToValidFileName().NullEmpty() ?? Path.GetRandomFileName(); } item.Path = Path.Combine(ImageDownloadFolder, item.FileName); } else { item.Success = true; item.FileName = Path.GetFileName(urlOrPath).ToValidFileName().NullEmpty() ?? Path.GetRandomFileName(); item.Path = Path.IsPathRooted(urlOrPath) ? urlOrPath : Path.Combine(ImageFolder, urlOrPath); } item.MimeType = MimeTypes.MapNameToMimeType(item.FileName); return(item); } catch { context.Result.AddWarning($"Failed to prepare image download for '{urlOrPath.NaIfEmpty()}'. Skipping file."); return(null); } }
public FileDownloadManagerItem CreateDownloadImage(string urlOrPath, string seoName, int displayOrder) { var item = new FileDownloadManagerItem { Id = displayOrder, DisplayOrder = displayOrder, MimeType = MimeTypes.MapNameToMimeType(urlOrPath) }; if (item.MimeType.IsEmpty()) { item.MimeType = MediaTypeNames.Image.Jpeg; } var extension = MimeTypes.MapMimeTypeToExtension(item.MimeType); if (extension.HasValue()) { if (urlOrPath.IsWebUrl()) { item.Url = urlOrPath; item.FileName = "{0}-{1}".FormatInvariant(seoName, item.Id).ToValidFileName(); if (DownloadedItems.ContainsKey(urlOrPath)) { item.Path = Path.Combine(ImageDownloadFolder, DownloadedItems[urlOrPath]); item.Success = true; } else { item.Path = Path.Combine(ImageDownloadFolder, item.FileName + extension.EnsureStartsWith(".")); } } else if (Path.IsPathRooted(urlOrPath)) { item.Path = urlOrPath; item.Success = true; } else { item.Path = Path.Combine(ImageFolder, urlOrPath); item.Success = true; } return(item); } return(null); }
public FileDownloadManagerItem CreateDownloadImage(ImportExecuteContext context, string urlOrPath, string seoName, int displayOrder) { var item = new FileDownloadManagerItem { Id = displayOrder, DisplayOrder = displayOrder, MimeType = MimeTypes.MapNameToMimeType(urlOrPath) }; if (item.MimeType.IsEmpty()) { item.MimeType = MediaTypeNames.Image.Jpeg; } if (urlOrPath.IsWebUrl()) { item.Url = context.Services.WebHelper.ModifyQueryString(urlOrPath, "q=100", null); item.FileName = "{0}-{1}".FormatInvariant(seoName, item.Id).ToValidFileName(); if (DownloadedItems.ContainsKey(urlOrPath)) { item.Path = Path.Combine(ImageDownloadFolder, DownloadedItems[urlOrPath]); item.Success = true; } else { var extension = MimeTypes.MapMimeTypeToExtension(item.MimeType).NullEmpty() ?? ".jpg"; item.Path = Path.Combine(ImageDownloadFolder, item.FileName + extension.EnsureStartsWith(".")); } } else if (Path.IsPathRooted(urlOrPath)) { item.Path = urlOrPath; item.Success = true; } else { item.Path = Path.Combine(ImageFolder, urlOrPath); item.Success = true; } return(item); }
public static FileDownloadManagerItem ToDownloadItem(this XPathNavigator nav, ICommonServices services, string imageDirectory, int displayOrder) { var image = new FileDownloadManagerItem { Id = nav.GetValue <int>("Id"), Url = nav.GetString("FullSizeImageUrl"), MimeType = nav.GetString("MimeType"), DisplayOrder = displayOrder }; if (image.Url.HasValue()) { image.Url = services.WebHelper.ModifyQueryString(image.Url, "q=100", null); var extension = MimeTypes.MapMimeTypeToExtension(image.MimeType); if (extension.HasValue()) { if (image.Id == 0) { image.Id = CommonHelper.GenerateRandomInteger(); } var seoFileName = nav.GetString("SeoFilename"); if (seoFileName.IsEmpty()) { seoFileName = CommonHelper.GenerateRandomInteger().ToString(); } image.FileName = "{0}-{1}".FormatInvariant(image.Id, seoFileName).ToValidFileName(); image.Path = Path.Combine(imageDirectory, image.FileName + extension.EnsureStartsWith(".")); return(image); } } return(null); }
public static void AddDownloadItem(this List <FileDownloadManagerItem> images, FileDownloadManagerItem item) { if (item != null && !images.Any(x => x.Path.IsCaseInsensitiveEqual(item.Path) || x.Id == item.Id)) { images.Add(item); } }