From 04f165283bb383a9bb7b339444c693a559a57be9 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Fri, 8 Nov 2013 16:22:02 -0500 Subject: [PATCH] try to avoid album year of zero --- .../Drawing/IImageProcessor.cs | 2 +- MediaBrowser.Providers/Music/LastfmHelper.cs | 19 ++++++++++++++----- .../Drawing/ImageProcessor.cs | 14 ++++++++++---- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/MediaBrowser.Controller/Drawing/IImageProcessor.cs b/MediaBrowser.Controller/Drawing/IImageProcessor.cs index e4c68a8aba..1a8583489b 100644 --- a/MediaBrowser.Controller/Drawing/IImageProcessor.cs +++ b/MediaBrowser.Controller/Drawing/IImageProcessor.cs @@ -68,7 +68,7 @@ namespace MediaBrowser.Controller.Drawing /// The image enhancers. /// Guid. Guid GetImageCacheTag(BaseItem item, ImageType imageType, string originalImagePath, DateTime dateModified, - IEnumerable imageEnhancers); + List imageEnhancers); /// /// Processes the image. diff --git a/MediaBrowser.Providers/Music/LastfmHelper.cs b/MediaBrowser.Providers/Music/LastfmHelper.cs index f529fd44a1..d58aa714b0 100644 --- a/MediaBrowser.Providers/Music/LastfmHelper.cs +++ b/MediaBrowser.Providers/Music/LastfmHelper.cs @@ -25,8 +25,13 @@ namespace MediaBrowser.Providers.Music } } - artist.PremiereDate = yearFormed > 0 ? new DateTime(yearFormed, 1, 1, 0, 0, 0, DateTimeKind.Utc) : (DateTime?)null; - artist.ProductionYear = yearFormed; + if (yearFormed > 0) + { + artist.PremiereDate = new DateTime(yearFormed, 1, 1, 0, 0, 0, DateTimeKind.Utc); + + artist.ProductionYear = yearFormed; + } + if (data.tags != null && !artist.LockedFields.Contains(MetadataFields.Tags)) { AddTags(artist, data.tags); @@ -102,10 +107,14 @@ namespace MediaBrowser.Providers.Music DateTime release; - if (DateTime.TryParse(data.releasedate, out release) && release.Year != 1901) + if (DateTime.TryParse(data.releasedate, out release)) { - item.PremiereDate = release; - item.ProductionYear = release.Year; + // Lastfm sends back null as sometimes 1901, other times 0 + if (release.Year > 1901) + { + item.PremiereDate = release; + item.ProductionYear = release.Year; + } } if (data.toptags != null && !item.LockedFields.Contains(MetadataFields.Tags)) diff --git a/MediaBrowser.Server.Implementations/Drawing/ImageProcessor.cs b/MediaBrowser.Server.Implementations/Drawing/ImageProcessor.cs index 78dcf6fd0d..fd980abc87 100644 --- a/MediaBrowser.Server.Implementations/Drawing/ImageProcessor.cs +++ b/MediaBrowser.Server.Implementations/Drawing/ImageProcessor.cs @@ -589,7 +589,7 @@ namespace MediaBrowser.Server.Implementations.Drawing var supportedEnhancers = GetSupportedEnhancers(item, imageType); - return GetImageCacheTag(item, imageType, imagePath, dateModified, supportedEnhancers); + return GetImageCacheTag(item, imageType, imagePath, dateModified, supportedEnhancers.ToList()); } /// @@ -602,7 +602,7 @@ namespace MediaBrowser.Server.Implementations.Drawing /// The image enhancers. /// Guid. /// item - public Guid GetImageCacheTag(BaseItem item, ImageType imageType, string originalImagePath, DateTime dateModified, IEnumerable imageEnhancers) + public Guid GetImageCacheTag(BaseItem item, ImageType imageType, string originalImagePath, DateTime dateModified, List imageEnhancers) { if (item == null) { @@ -619,6 +619,12 @@ namespace MediaBrowser.Server.Implementations.Drawing throw new ArgumentNullException("originalImagePath"); } + // Optimization + if (imageEnhancers.Count == 0) + { + return (originalImagePath + dateModified.Ticks).GetMD5(); + } + // Cache name is created with supported enhancers combined with the last config change so we pick up new config changes var cacheKeys = imageEnhancers.Select(i => i.GetConfigurationCacheKey(item, imageType)).ToList(); cacheKeys.Add(originalImagePath + dateModified.Ticks); @@ -879,7 +885,7 @@ namespace MediaBrowser.Server.Implementations.Drawing { try { - return i.Supports(item as BaseItem, imageType); + return i.Supports(item, imageType); } catch (Exception ex) { @@ -888,7 +894,7 @@ namespace MediaBrowser.Server.Implementations.Drawing return false; } - }).ToList(); + }); } public void Dispose()