diff options
| author | Tavares André <tavares_and@hotmail.com> | 2015-05-07 19:12:56 +0200 |
|---|---|---|
| committer | Tavares André <tavares_and@hotmail.com> | 2015-05-07 19:12:56 +0200 |
| commit | 48e7ca87254969f98abbedcfc46985fc1ea955c0 (patch) | |
| tree | c1084f29f6529d4bf5524fdab7a723686a379b2d /MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs | |
| parent | f2b800181252b6fd0bb3b51925d1dcb0623f21d2 (diff) | |
| parent | 63dc2512c5d272dbc3cb1515beb175e9b3572440 (diff) | |
Merge branch 'dev' of https://github.com/MediaBrowser/MediaBrowser into dev
Conflicts:
MediaBrowser.Server.Implementations/Localization/Server/server.json
Diffstat (limited to 'MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs b/MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs index be71a6408..bd22a8a70 100644 --- a/MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs +++ b/MediaBrowser.Server.Implementations/Photos/BaseDynamicImageProvider.cs @@ -191,6 +191,8 @@ namespace MediaBrowser.Server.Implementations.Photos throw new ArgumentException("Unexpected image type"); } + private const int MaxImageAgeDays = 7; + public bool HasChanged(IHasMetadata item, IDirectoryService directoryService, DateTime date) { if (!Supports(item)) @@ -198,6 +200,11 @@ namespace MediaBrowser.Server.Implementations.Photos return false; } + if (item is UserView) + { + return HasChanged(item, ImageType.Primary) || HasChanged(item, ImageType.Thumb); + } + var items = GetItemsWithImages(item).Result; var cacheKey = GetConfigurationCacheKey(items, item.Name); @@ -216,7 +223,6 @@ namespace MediaBrowser.Server.Implementations.Photos } var currentPathCacheKey = (Path.GetFileNameWithoutExtension(image.Path) ?? string.Empty).Split('_').LastOrDefault(); - if (string.Equals(cacheKey, currentPathCacheKey, StringComparison.OrdinalIgnoreCase)) { return false; @@ -226,6 +232,27 @@ namespace MediaBrowser.Server.Implementations.Photos return true; } + protected bool HasChanged(IHasImages item, ImageType type) + { + var image = item.GetImageInfo(type, 0); + + if (image != null) + { + if (!FileSystem.ContainsSubPath(item.GetInternalMetadataPath(), image.Path)) + { + return false; + } + + var age = DateTime.UtcNow - image.DateModified; + if (age.TotalDays <= MaxImageAgeDays) + { + return false; + } + } + + return true; + } + protected List<BaseItem> GetFinalItems(List<BaseItem> items) { return GetFinalItems(items, 4); @@ -234,7 +261,7 @@ namespace MediaBrowser.Server.Implementations.Photos protected virtual List<BaseItem> GetFinalItems(List<BaseItem> items, int limit) { // Rotate the images once every x days - var random = DateTime.Now.DayOfYear % 7; + var random = DateTime.Now.DayOfYear % MaxImageAgeDays; return items .OrderBy(i => (random + "" + items.IndexOf(i)).GetMD5()) |
