From c9d9c6ff1f882ec43f8a9d0c956e0a603f9a4916 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Fri, 8 Nov 2013 10:35:11 -0500 Subject: add image saver logging --- MediaBrowser.Server.Implementations/Dto/DtoService.cs | 3 ++- MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs | 3 ++- MediaBrowser.Server.Implementations/Providers/ImageSaver.cs | 11 ++++++++++- .../Providers/ProviderManager.cs | 2 +- 4 files changed, 15 insertions(+), 4 deletions(-) (limited to 'MediaBrowser.Server.Implementations') diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs index 0104196e0..a62821a3a 100644 --- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs +++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs @@ -165,7 +165,8 @@ namespace MediaBrowser.Server.Implementations.Dto { var folder = (Folder)item; - dto.ChildCount = folder.GetChildren(user, true).Count(); + dto.ChildCount = folder.GetChildren(user, true) + .Count(); if (!(folder is UserRootFolder)) { diff --git a/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs b/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs index 03739cc8f..ffb351222 100644 --- a/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs +++ b/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs @@ -67,7 +67,8 @@ namespace MediaBrowser.Server.Implementations.IO public async void RemoveTempIgnore(string path) { // This is an arbitraty amount of time, but delay it because file system writes often trigger events after RemoveTempIgnore has been called. - await Task.Delay(2000).ConfigureAwait(false); + // Seeing long delays in some situations, especially over the network. + await Task.Delay(40000).ConfigureAwait(false); string val; _tempIgnoredPaths.TryRemove(path, out val); diff --git a/MediaBrowser.Server.Implementations/Providers/ImageSaver.cs b/MediaBrowser.Server.Implementations/Providers/ImageSaver.cs index b8686800f..ff11b9a2b 100644 --- a/MediaBrowser.Server.Implementations/Providers/ImageSaver.cs +++ b/MediaBrowser.Server.Implementations/Providers/ImageSaver.cs @@ -13,6 +13,7 @@ using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; +using MediaBrowser.Model.Logging; namespace MediaBrowser.Server.Implementations.Providers { @@ -37,17 +38,19 @@ namespace MediaBrowser.Server.Implementations.Providers /// private readonly IDirectoryWatchers _directoryWatchers; private readonly IFileSystem _fileSystem; + private readonly ILogger _logger; /// /// Initializes a new instance of the class. /// /// The config. /// The directory watchers. - public ImageSaver(IServerConfigurationManager config, IDirectoryWatchers directoryWatchers, IFileSystem fileSystem) + public ImageSaver(IServerConfigurationManager config, IDirectoryWatchers directoryWatchers, IFileSystem fileSystem, ILogger logger) { _config = config; _directoryWatchers = directoryWatchers; _fileSystem = fileSystem; + _logger = logger; _remoteImageCache = new FileSystemRepository(config.ApplicationPaths.DownloadedImagesDataPath); } @@ -170,7 +173,12 @@ namespace MediaBrowser.Server.Implementations.Providers /// Task. private async Task SaveImageToLocation(Stream source, string path, CancellationToken cancellationToken) { + _logger.Debug("Saving image to {0}", path); + + var parentFolder = Path.GetDirectoryName(path); + _directoryWatchers.TemporarilyIgnore(path); + _directoryWatchers.TemporarilyIgnore(parentFolder); try { @@ -196,6 +204,7 @@ namespace MediaBrowser.Server.Implementations.Providers finally { _directoryWatchers.RemoveTempIgnore(path); + _directoryWatchers.RemoveTempIgnore(parentFolder); } } diff --git a/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs b/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs index 0252373f0..7b2a038f4 100644 --- a/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs +++ b/MediaBrowser.Server.Implementations/Providers/ProviderManager.cs @@ -349,7 +349,7 @@ namespace MediaBrowser.Server.Implementations.Providers /// Task. public Task SaveImage(BaseItem item, Stream source, string mimeType, ImageType type, int? imageIndex, string sourceUrl, CancellationToken cancellationToken) { - return new ImageSaver(ConfigurationManager, _directoryWatchers, _fileSystem).SaveImage(item, source, mimeType, type, imageIndex, sourceUrl, cancellationToken); + return new ImageSaver(ConfigurationManager, _directoryWatchers, _fileSystem, _logger).SaveImage(item, source, mimeType, type, imageIndex, sourceUrl, cancellationToken); } /// -- cgit v1.2.3 From 04f165283bb383a9bb7b339444c693a559a57be9 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Fri, 8 Nov 2013 16:22:02 -0500 Subject: try to avoid album year of zero --- MediaBrowser.Controller/Drawing/IImageProcessor.cs | 2 +- MediaBrowser.Providers/Music/LastfmHelper.cs | 19 ++++++++++++++----- .../Drawing/ImageProcessor.cs | 14 ++++++++++---- 3 files changed, 25 insertions(+), 10 deletions(-) (limited to 'MediaBrowser.Server.Implementations') diff --git a/MediaBrowser.Controller/Drawing/IImageProcessor.cs b/MediaBrowser.Controller/Drawing/IImageProcessor.cs index e4c68a8ab..1a8583489 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 f529fd44a..d58aa714b 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 78dcf6fd0..fd980abc8 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() -- cgit v1.2.3 From 9d7d8c3c94cc818a154db2853c0dfb2e123a95f7 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 9 Nov 2013 13:43:53 -0500 Subject: Ignore xbmc actors folder --- .../Library/CoreResolutionIgnoreRule.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'MediaBrowser.Server.Implementations') diff --git a/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs b/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs index ae4ae2fa9..95ec416b6 100644 --- a/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs +++ b/MediaBrowser.Server.Implementations/Library/CoreResolutionIgnoreRule.cs @@ -25,7 +25,8 @@ namespace MediaBrowser.Server.Implementations.Library "ps3_vprm", "adv_obj", "extrafanart", - "extrathumbs" + "extrathumbs", + ".actors" }.ToDictionary(i => i, StringComparer.OrdinalIgnoreCase); -- cgit v1.2.3 From b043336977f78ea4b26d9ae3154b037f8879ecd6 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 9 Nov 2013 13:44:09 -0500 Subject: Add SeriesPrimaryImageTag --- MediaBrowser.Server.Implementations/Dto/DtoService.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'MediaBrowser.Server.Implementations') diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs index a62821a3a..d327796f9 100644 --- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs +++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs @@ -1052,6 +1052,13 @@ namespace MediaBrowser.Server.Implementations.Dto { dto.SeriesThumbImageTag = GetImageCacheTag(series, ImageType.Thumb, series.GetImage(ImageType.Thumb)); } + + var imagePath = series.PrimaryImagePath; + + if (!string.IsNullOrEmpty(imagePath)) + { + dto.SeriesPrimaryImageTag = GetImageCacheTag(series, ImageType.Primary, imagePath); + } } // Add SeasonInfo @@ -1065,6 +1072,13 @@ namespace MediaBrowser.Server.Implementations.Dto dto.SeriesName = series.Name; dto.AirTime = series.AirTime; dto.SeriesStudio = series.Studios.FirstOrDefault(); + + var imagePath = series.PrimaryImagePath; + + if (!string.IsNullOrEmpty(imagePath)) + { + dto.SeriesPrimaryImageTag = GetImageCacheTag(series, ImageType.Primary, imagePath); + } } var game = item as Game; -- cgit v1.2.3 From 90e75c05b76a8a8dcb31dded553eae7258eca624 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 9 Nov 2013 14:04:51 -0500 Subject: rename da.txt to dk.txt --- MediaBrowser.Server.Implementations/Localization/Ratings/da.txt | 4 ---- MediaBrowser.Server.Implementations/Localization/Ratings/dk.txt | 4 ++++ .../MediaBrowser.Server.Implementations.csproj | 2 +- MediaBrowser.sln | 3 +++ 4 files changed, 8 insertions(+), 5 deletions(-) delete mode 100644 MediaBrowser.Server.Implementations/Localization/Ratings/da.txt create mode 100644 MediaBrowser.Server.Implementations/Localization/Ratings/dk.txt (limited to 'MediaBrowser.Server.Implementations') diff --git a/MediaBrowser.Server.Implementations/Localization/Ratings/da.txt b/MediaBrowser.Server.Implementations/Localization/Ratings/da.txt deleted file mode 100644 index b9a085e01..000000000 --- a/MediaBrowser.Server.Implementations/Localization/Ratings/da.txt +++ /dev/null @@ -1,4 +0,0 @@ -DA-A,1 -DA-7,5 -DA-11,6 -DA-15,8 \ No newline at end of file diff --git a/MediaBrowser.Server.Implementations/Localization/Ratings/dk.txt b/MediaBrowser.Server.Implementations/Localization/Ratings/dk.txt new file mode 100644 index 000000000..b9a085e01 --- /dev/null +++ b/MediaBrowser.Server.Implementations/Localization/Ratings/dk.txt @@ -0,0 +1,4 @@ +DA-A,1 +DA-7,5 +DA-11,6 +DA-15,8 \ No newline at end of file diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj index 017dc2b54..ac451e1eb 100644 --- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj +++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj @@ -250,7 +250,7 @@ - + diff --git a/MediaBrowser.sln b/MediaBrowser.sln index 744debbcd..0c5360b49 100644 --- a/MediaBrowser.sln +++ b/MediaBrowser.sln @@ -237,4 +237,7 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(Performance) = preSolution + HasPerformanceSessions = true + EndGlobalSection EndGlobal -- cgit v1.2.3