diff --git a/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs b/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs index 86df798d0e..0e68389da0 100644 --- a/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs +++ b/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs @@ -579,7 +579,13 @@ namespace Emby.Server.Implementations.HttpServer catch (Exception ex) { - ErrorHandler(ex, httpReq, !string.Equals(ex.GetType().Name, "SocketException", StringComparison.OrdinalIgnoreCase)); + var logException = !string.Equals(ex.GetType().Name, "SocketException", StringComparison.OrdinalIgnoreCase); + +#if DEBUG + logException = true; +#endif + + ErrorHandler(ex, httpReq, logException); } finally { diff --git a/Emby.Server.Implementations/HttpServer/HttpResultFactory.cs b/Emby.Server.Implementations/HttpServer/HttpResultFactory.cs index b06a6a8875..a70aad14e9 100644 --- a/Emby.Server.Implementations/HttpServer/HttpResultFactory.cs +++ b/Emby.Server.Implementations/HttpServer/HttpResultFactory.cs @@ -424,16 +424,6 @@ namespace Emby.Server.Implementations.HttpServer options.ResponseHeaders = options.ResponseHeaders ?? new Dictionary(StringComparer.OrdinalIgnoreCase); - if (!options.ResponseHeaders.ContainsKey("Content-Disposition")) - { - // Quotes are valid in linux. They'll possibly cause issues here - var filename = (Path.GetFileName(path) ?? string.Empty).Replace("\"", string.Empty); - if (!string.IsNullOrWhiteSpace(filename)) - { - options.ResponseHeaders["Content-Disposition"] = "inline; filename=\"" + filename + "\""; - } - } - return GetStaticResult(requestContext, options); } @@ -490,7 +480,8 @@ namespace Emby.Server.Implementations.HttpServer return result; } - var isHeadRequest = options.IsHeadRequest; + // TODO: We don't really need the option value + var isHeadRequest = options.IsHeadRequest || string.Equals(requestContext.Verb, "HEAD", StringComparison.OrdinalIgnoreCase); var factoryFn = options.ContentFactory; var responseHeaders = options.ResponseHeaders; diff --git a/Emby.Server.Implementations/Library/LibraryManager.cs b/Emby.Server.Implementations/Library/LibraryManager.cs index 5871e180ee..85b91ac25a 100644 --- a/Emby.Server.Implementations/Library/LibraryManager.cs +++ b/Emby.Server.Implementations/Library/LibraryManager.cs @@ -247,11 +247,6 @@ namespace Emby.Server.Implementations.Library } } - /// - /// The _season zero display name - /// - private string _seasonZeroDisplayName; - private bool _wizardCompleted; /// /// Records the configuration values. @@ -259,7 +254,6 @@ namespace Emby.Server.Implementations.Library /// The configuration. private void RecordConfigurationValues(ServerConfiguration configuration) { - _seasonZeroDisplayName = configuration.SeasonZeroDisplayName; _wizardCompleted = configuration.IsStartupWizardCompleted; } @@ -272,59 +266,14 @@ namespace Emby.Server.Implementations.Library { var config = ConfigurationManager.Configuration; - var newSeasonZeroName = ConfigurationManager.Configuration.SeasonZeroDisplayName; - var seasonZeroNameChanged = !string.Equals(_seasonZeroDisplayName, newSeasonZeroName, StringComparison.Ordinal); var wizardChanged = config.IsStartupWizardCompleted != _wizardCompleted; RecordConfigurationValues(config); - if (seasonZeroNameChanged || wizardChanged) + if (wizardChanged) { _taskManager.CancelIfRunningAndQueue(); } - - if (seasonZeroNameChanged) - { - Task.Run(async () => - { - await UpdateSeasonZeroNames(newSeasonZeroName, CancellationToken.None).ConfigureAwait(false); - - }); - } - } - - /// - /// Updates the season zero names. - /// - /// The new name. - /// The cancellation token. - /// Task. - private async Task UpdateSeasonZeroNames(string newName, CancellationToken cancellationToken) - { - var seasons = GetItemList(new InternalItemsQuery - { - IncludeItemTypes = new[] { typeof(Season).Name }, - Recursive = true, - IndexNumber = 0, - DtoOptions = new DtoOptions(true) - - }).Cast() - .Where(i => !string.Equals(i.Name, newName, StringComparison.Ordinal)) - .ToList(); - - foreach (var season in seasons) - { - season.Name = newName; - - try - { - await UpdateItem(season, ItemUpdateType.MetadataDownload, cancellationToken).ConfigureAwait(false); - } - catch (Exception ex) - { - _logger.ErrorException("Error saving {0}", ex, season.Path); - } - } } public void RegisterItem(BaseItem item) diff --git a/Emby.Server.Implementations/Library/Resolvers/TV/SeasonResolver.cs b/Emby.Server.Implementations/Library/Resolvers/TV/SeasonResolver.cs index bbe1bba852..a859d8ec82 100644 --- a/Emby.Server.Implementations/Library/Resolvers/TV/SeasonResolver.cs +++ b/Emby.Server.Implementations/Library/Resolvers/TV/SeasonResolver.cs @@ -55,9 +55,9 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV if (season.IndexNumber.HasValue) { var seasonNumber = season.IndexNumber.Value; - + season.Name = seasonNumber == 0 ? - _config.Configuration.SeasonZeroDisplayName : + args.LibraryOptions.SeasonZeroDisplayName : string.Format(_localization.GetLocalizedString("NameSeasonNumber"), seasonNumber.ToString(UsCulture)); } diff --git a/MediaBrowser.Model/Configuration/LibraryOptions.cs b/MediaBrowser.Model/Configuration/LibraryOptions.cs index 9cd656fa7e..07a821baf8 100644 --- a/MediaBrowser.Model/Configuration/LibraryOptions.cs +++ b/MediaBrowser.Model/Configuration/LibraryOptions.cs @@ -30,6 +30,8 @@ /// The metadata country code. public string MetadataCountryCode { get; set; } + public string SeasonZeroDisplayName { get; set; } + public LibraryOptions() { EnablePhotos = true; @@ -37,6 +39,7 @@ PathInfos = new MediaPathInfo[] { }; EnableInternetProviders = true; EnableAutomaticSeriesGrouping = true; + SeasonZeroDisplayName = "Specials"; } } diff --git a/MediaBrowser.Model/Configuration/ServerConfiguration.cs b/MediaBrowser.Model/Configuration/ServerConfiguration.cs index ae04bbaab6..7c7358845b 100644 --- a/MediaBrowser.Model/Configuration/ServerConfiguration.cs +++ b/MediaBrowser.Model/Configuration/ServerConfiguration.cs @@ -77,12 +77,6 @@ namespace MediaBrowser.Model.Configuration public string MetadataPath { get; set; } public string MetadataNetworkPath { get; set; } - /// - /// Gets or sets the display name of the season zero. - /// - /// The display name of the season zero. - public string SeasonZeroDisplayName { get; set; } - /// /// Gets or sets the preferred metadata language. /// @@ -239,8 +233,6 @@ namespace MediaBrowser.Model.Configuration SortRemoveCharacters = new[] { ",", "&", "-", "{", "}", "'" }; SortRemoveWords = new[] { "the", "a", "an" }; - SeasonZeroDisplayName = "Specials"; - UICulture = "en-us"; MetadataOptions = new[] diff --git a/MediaBrowser.Model/Dlna/StreamBuilder.cs b/MediaBrowser.Model/Dlna/StreamBuilder.cs index be0dd8e8df..3b68db8023 100644 --- a/MediaBrowser.Model/Dlna/StreamBuilder.cs +++ b/MediaBrowser.Model/Dlna/StreamBuilder.cs @@ -794,7 +794,8 @@ namespace MediaBrowser.Model.Dlna if (applyConditions) { - foreach (var transcodingVideoCodec in ContainerProfile.SplitValue(transcodingProfile.VideoCodec)) + var transcodingVideoCodecs = ContainerProfile.SplitValue(transcodingProfile.VideoCodec); + foreach (var transcodingVideoCodec in transcodingVideoCodecs) { if (i.ContainsCodec(transcodingVideoCodec, transcodingProfile.Container)) { diff --git a/MediaBrowser.Providers/TV/DummySeasonProvider.cs b/MediaBrowser.Providers/TV/DummySeasonProvider.cs index 791d14b60c..de51126eec 100644 --- a/MediaBrowser.Providers/TV/DummySeasonProvider.cs +++ b/MediaBrowser.Providers/TV/DummySeasonProvider.cs @@ -113,7 +113,7 @@ namespace MediaBrowser.Providers.TV CancellationToken cancellationToken) { var seasonName = seasonNumber == 0 ? - _config.Configuration.SeasonZeroDisplayName : + _libraryManager.GetLibraryOptions(series).SeasonZeroDisplayName : (seasonNumber.HasValue ? string.Format(_localization.GetLocalizedString("NameSeasonNumber"), seasonNumber.Value.ToString(_usCulture)) : _localization.GetLocalizedString("NameSeasonUnknown")); _logger.Info("Creating Season {0} entry for {1}", seasonName, series.Name); diff --git a/MediaBrowser.Providers/TV/SeasonMetadataService.cs b/MediaBrowser.Providers/TV/SeasonMetadataService.cs index 4e712d3e36..5e3dc3c627 100644 --- a/MediaBrowser.Providers/TV/SeasonMetadataService.cs +++ b/MediaBrowser.Providers/TV/SeasonMetadataService.cs @@ -8,9 +8,7 @@ using MediaBrowser.Providers.Manager; using System; using System.Collections.Generic; using System.Linq; -using System.Threading.Tasks; using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; namespace MediaBrowser.Providers.TV @@ -23,9 +21,11 @@ namespace MediaBrowser.Providers.TV if (item.IndexNumber.HasValue && item.IndexNumber.Value == 0) { - if (!string.Equals(item.Name, ServerConfigurationManager.Configuration.SeasonZeroDisplayName, StringComparison.OrdinalIgnoreCase)) + var seasonZeroDisplayName = LibraryManager.GetLibraryOptions(item).SeasonZeroDisplayName; + + if (!string.Equals(item.Name, seasonZeroDisplayName, StringComparison.OrdinalIgnoreCase)) { - item.Name = ServerConfigurationManager.Configuration.SeasonZeroDisplayName; + item.Name = seasonZeroDisplayName; updateType = updateType | ItemUpdateType.MetadataEdit; } } diff --git a/SharedVersion.cs b/SharedVersion.cs index 82a72685b2..1093bcd4cf 100644 --- a/SharedVersion.cs +++ b/SharedVersion.cs @@ -1,3 +1,3 @@ using System.Reflection; -[assembly: AssemblyVersion("3.2.32.4")] +[assembly: AssemblyVersion("3.2.32.5")]