diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-03-24 02:04:58 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-03-24 02:04:58 -0400 |
| commit | 5d0abc280dc84598574515ba203388c0e22d3acf (patch) | |
| tree | e6490241708854b681e042db5ed598d426c34d29 | |
| parent | 32b5ef7b802237db03af3bb17f21b1efc579a7cd (diff) | |
fixes #1404 - [BUG] Emby recreating old folder name after renaming/moving folder
8 files changed, 23 insertions, 10 deletions
diff --git a/MediaBrowser.Api/StartupWizardService.cs b/MediaBrowser.Api/StartupWizardService.cs index 10f9ec022..14bd6b61f 100644 --- a/MediaBrowser.Api/StartupWizardService.cs +++ b/MediaBrowser.Api/StartupWizardService.cs @@ -69,6 +69,7 @@ namespace MediaBrowser.Api _config.Configuration.EnableCustomPathSubFolders = true; _config.Configuration.EnableDateLastRefresh = true; _config.Configuration.EnableStandaloneMusicKeys = true; + _config.Configuration.EnableCaseSensitiveItemIds = true; _config.SaveConfiguration(); } diff --git a/MediaBrowser.Model/Configuration/ServerConfiguration.cs b/MediaBrowser.Model/Configuration/ServerConfiguration.cs index bbc6195ff..041f51a89 100644 --- a/MediaBrowser.Model/Configuration/ServerConfiguration.cs +++ b/MediaBrowser.Model/Configuration/ServerConfiguration.cs @@ -63,6 +63,12 @@ namespace MediaBrowser.Model.Configuration public bool IsPortAuthorized { get; set; } /// <summary> + /// Gets or sets a value indicating whether [enable case sensitive item ids]. + /// </summary> + /// <value><c>true</c> if [enable case sensitive item ids]; otherwise, <c>false</c>.</value> + public bool EnableCaseSensitiveItemIds { get; set; } + + /// <summary> /// Gets or sets the metadata path. /// </summary> /// <value>The metadata path.</value> diff --git a/MediaBrowser.Providers/TV/DummySeasonProvider.cs b/MediaBrowser.Providers/TV/DummySeasonProvider.cs index d4e4b4844..3a1e05704 100644 --- a/MediaBrowser.Providers/TV/DummySeasonProvider.cs +++ b/MediaBrowser.Providers/TV/DummySeasonProvider.cs @@ -115,7 +115,7 @@ namespace MediaBrowser.Providers.TV { Name = seasonName, IndexNumber = seasonNumber, - Id = (series.Id + (seasonNumber ?? -1).ToString(_usCulture) + seasonName).GetMBId(typeof(Season)) + Id = _libraryManager.GetNewItemId((series.Id + (seasonNumber ?? -1).ToString(_usCulture) + seasonName), typeof(Season)) }; season.SetParent(series); diff --git a/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs b/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs index ff31dbc92..248be675d 100644 --- a/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs +++ b/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs @@ -422,7 +422,7 @@ namespace MediaBrowser.Providers.TV Name = name, IndexNumber = episodeNumber, ParentIndexNumber = seasonNumber, - Id = (series.Id + seasonNumber.ToString(_usCulture) + name).GetMBId(typeof(Episode)) + Id = _libraryManager.GetNewItemId((series.Id + seasonNumber.ToString(_usCulture) + name), typeof(Episode)) }; episode.SetParent(season); diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs index 240037597..d849ce7bd 100644 --- a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs +++ b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs @@ -561,8 +561,7 @@ namespace MediaBrowser.Server.Implementations.Channels { throw new ArgumentNullException("name"); } - - return ("Channel " + name).GetMBId(typeof(Channel)); + return _libraryManager.GetNewItemId("Channel " + name, typeof(Channel)); } public async Task<QueryResult<BaseItemDto>> GetLatestChannelItems(AllChannelMediaQuery query, CancellationToken cancellationToken) diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index ad3cd2576..0e61f2969 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -508,7 +508,12 @@ namespace MediaBrowser.Server.Implementations.Library .Replace("/", "\\"); } - key = type.FullName + key.ToLower(); + if (!ConfigurationManager.Configuration.EnableCaseSensitiveItemIds) + { + key = key.ToLower(); + } + + key = type.FullName + key; return key.GetMD5(); } diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs index 3da0d15d3..7fe486de7 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvDtoService.cs @@ -25,14 +25,16 @@ namespace MediaBrowser.Server.Implementations.LiveTv private readonly IUserDataManager _userDataManager; private readonly IDtoService _dtoService; private readonly IApplicationHost _appHost; + private readonly ILibraryManager _libraryManager; - public LiveTvDtoService(IDtoService dtoService, IUserDataManager userDataManager, IImageProcessor imageProcessor, ILogger logger, IApplicationHost appHost) + public LiveTvDtoService(IDtoService dtoService, IUserDataManager userDataManager, IImageProcessor imageProcessor, ILogger logger, IApplicationHost appHost, ILibraryManager libraryManager) { _dtoService = dtoService; _userDataManager = userDataManager; _imageProcessor = imageProcessor; _logger = logger; _appHost = appHost; + _libraryManager = libraryManager; } public TimerInfoDto GetTimerInfoDto(TimerInfo info, ILiveTvService service, LiveTvProgram program, LiveTvChannel channel) @@ -200,7 +202,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv { var name = serviceName + externalId + InternalVersionNumber; - return name.ToLower().GetMBId(typeof(LiveTvChannel)); + return _libraryManager.GetNewItemId(name.ToLower(), typeof(LiveTvChannel)); } public Guid GetInternalTimerId(string serviceName, string externalId) @@ -221,14 +223,14 @@ namespace MediaBrowser.Server.Implementations.LiveTv { var name = serviceName + externalId + InternalVersionNumber; - return name.ToLower().GetMBId(typeof(LiveTvProgram)); + return _libraryManager.GetNewItemId(name.ToLower(), typeof(LiveTvProgram)); } public Guid GetInternalRecordingId(string serviceName, string externalId) { var name = serviceName + externalId + InternalVersionNumber + "0"; - return name.ToLower().GetMBId(typeof(ILiveTvRecording)); + return _libraryManager.GetNewItemId(name.ToLower(), typeof(ILiveTvRecording)); } public async Task<TimerInfo> GetTimerInfo(TimerInfoDto dto, bool isNew, LiveTvManager liveTv, CancellationToken cancellationToken) diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs index 08b0256b2..526de62c8 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs @@ -81,7 +81,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv _dtoService = dtoService; _userDataManager = userDataManager; - _tvDtoService = new LiveTvDtoService(dtoService, userDataManager, imageProcessor, logger, appHost); + _tvDtoService = new LiveTvDtoService(dtoService, userDataManager, imageProcessor, logger, appHost, _libraryManager); } /// <summary> |
