diff --git a/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj b/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj index 8da1beb687..70489d7142 100644 --- a/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj +++ b/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj @@ -55,7 +55,7 @@ ..\packages\morelinq.1.4.0\lib\net35\MoreLinq.dll - ..\packages\NLog.4.3.1\lib\net45\NLog.dll + ..\packages\NLog.4.3.4\lib\net45\NLog.dll True @@ -65,8 +65,8 @@ False ..\ThirdParty\SharpCompress\SharpCompress.dll - - ..\packages\SimpleInjector.3.1.3\lib\net45\SimpleInjector.dll + + ..\packages\SimpleInjector.3.1.4\lib\net45\SimpleInjector.dll True diff --git a/MediaBrowser.Common.Implementations/packages.config b/MediaBrowser.Common.Implementations/packages.config index 6d7d861823..d1d135b20c 100644 --- a/MediaBrowser.Common.Implementations/packages.config +++ b/MediaBrowser.Common.Implementations/packages.config @@ -2,7 +2,7 @@ - + - + \ No newline at end of file diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs index b88e8493d2..b9f6babfde 100644 --- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs +++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs @@ -251,7 +251,6 @@ namespace MediaBrowser.Controller.Entities if (query.Recursive) { query.Recursive = true; - query.ParentId = parent.Id; query.SetUser(user); if (query.IncludeItemTypes.Length == 0) @@ -259,7 +258,7 @@ namespace MediaBrowser.Controller.Entities query.IncludeItemTypes = new[] { typeof(MusicArtist).Name, typeof(MusicAlbum).Name, typeof(Audio.Audio).Name, typeof(MusicVideo).Name }; } - return _libraryManager.GetItemsResult(query); + return parent.QueryRecursive(query); } var list = new List(); @@ -448,7 +447,6 @@ namespace MediaBrowser.Controller.Entities if (query.Recursive) { query.Recursive = true; - query.ParentId = parent.Id; query.SetUser(user); if (query.IncludeItemTypes.Length == 0) @@ -456,7 +454,7 @@ namespace MediaBrowser.Controller.Entities query.IncludeItemTypes = new[] { typeof(Movie).Name, typeof(BoxSet).Name }; } - return _libraryManager.GetItemsResult(query); + return parent.QueryRecursive(query); } var list = new List(); @@ -613,7 +611,6 @@ namespace MediaBrowser.Controller.Entities if (query.Recursive) { query.Recursive = true; - query.ParentId = parent.Id; query.SetUser(user); if (query.IncludeItemTypes.Length == 0) @@ -621,7 +618,7 @@ namespace MediaBrowser.Controller.Entities query.IncludeItemTypes = new[] { typeof(Series).Name, typeof(Season).Name, typeof(Episode).Name }; } - return _libraryManager.GetItemsResult(query); + return parent.QueryRecursive(query); } var list = new List(); diff --git a/MediaBrowser.Model/Querying/ItemQuery.cs b/MediaBrowser.Model/Querying/ItemQuery.cs index 5a88c0d43e..11c0464522 100644 --- a/MediaBrowser.Model/Querying/ItemQuery.cs +++ b/MediaBrowser.Model/Querying/ItemQuery.cs @@ -288,6 +288,8 @@ namespace MediaBrowser.Model.Querying [Obsolete] public string Person { get; set; } + public bool EnableTotalRecordCount { get; set; } + /// /// Initializes a new instance of the class. /// @@ -306,6 +308,8 @@ namespace MediaBrowser.Model.Querying VideoTypes = new VideoType[] { }; + EnableTotalRecordCount = true; + Artists = new string[] { }; Studios = new string[] { }; diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs index 9251ccb9ee..dc347c1dc8 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs @@ -527,6 +527,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv private async Task GetChannel(ChannelInfo channelInfo, string serviceName, Guid parentFolderId, CancellationToken cancellationToken) { var isNew = false; + var forceUpdate = false; var id = _tvDtoService.GetInternalChannelId(serviceName, channelInfo.Id); @@ -576,10 +577,12 @@ namespace MediaBrowser.Server.Implementations.LiveTv if (!string.IsNullOrWhiteSpace(channelInfo.ImagePath)) { item.SetImagePath(ImageType.Primary, channelInfo.ImagePath); + forceUpdate = true; } else if (!string.IsNullOrWhiteSpace(channelInfo.ImageUrl)) { item.SetImagePath(ImageType.Primary, channelInfo.ImageUrl); + forceUpdate = true; } } @@ -588,9 +591,18 @@ namespace MediaBrowser.Server.Implementations.LiveTv item.Name = channelInfo.Name; } + if (isNew) + { + await _libraryManager.CreateItem(item, cancellationToken).ConfigureAwait(false); + } + else if (forceUpdate) + { + await _libraryManager.UpdateItem(item, ItemUpdateType.MetadataImport, cancellationToken).ConfigureAwait(false); + } + await item.RefreshMetadata(new MetadataRefreshOptions(_fileSystem) { - ForceSave = isNew + ForceSave = isNew || forceUpdate }, cancellationToken); diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj index aff3a5e160..0aa499f696 100644 --- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj +++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj @@ -55,9 +55,9 @@ ..\packages\Interfaces.IO.1.0.0.5\lib\portable-net45+sl4+wp71+win8+wpa81\Interfaces.IO.dll - - False - ..\packages\MediaBrowser.Naming.1.0.0.49\lib\portable-net45+sl4+wp71+win8+wpa81\MediaBrowser.Naming.dll + + ..\packages\MediaBrowser.Naming.1.0.0.50\lib\portable-net45+sl4+wp71+win8+wpa81\MediaBrowser.Naming.dll + True ..\packages\morelinq.1.4.0\lib\net35\MoreLinq.dll @@ -68,8 +68,8 @@ ..\ThirdParty\ServiceStack\ServiceStack.Api.Swagger.dll - - ..\packages\SimpleInjector.3.1.3\lib\net45\SimpleInjector.dll + + ..\packages\SimpleInjector.3.1.4\lib\net45\SimpleInjector.dll True diff --git a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs index e04c879171..78e0bce172 100644 --- a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs +++ b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs @@ -2405,17 +2405,20 @@ namespace MediaBrowser.Server.Implementations.Persistence cmd.Parameters.Add(cmd, "@IsFavorite", DbType.Boolean).Value = query.IsFavorite.Value; } - if (query.IsPlayed.HasValue) + if (EnableJoinUserData(query)) { - if (query.IsPlayed.Value) + if (query.IsPlayed.HasValue) { - whereClauses.Add("(played=@IsPlayed)"); + if (query.IsPlayed.Value) + { + whereClauses.Add("(played=@IsPlayed)"); + } + else + { + whereClauses.Add("(played is null or played=@IsPlayed)"); + } + cmd.Parameters.Add(cmd, "@IsPlayed", DbType.Boolean).Value = query.IsPlayed.Value; } - else - { - whereClauses.Add("(played is null or played=@IsPlayed)"); - } - cmd.Parameters.Add(cmd, "@IsPlayed", DbType.Boolean).Value = query.IsPlayed.Value; } if (query.IsResumable.HasValue) diff --git a/MediaBrowser.Server.Implementations/packages.config b/MediaBrowser.Server.Implementations/packages.config index dce839b572..b877d41a87 100644 --- a/MediaBrowser.Server.Implementations/packages.config +++ b/MediaBrowser.Server.Implementations/packages.config @@ -4,10 +4,10 @@ - + - + \ No newline at end of file diff --git a/Nuget/MediaBrowser.Common.Internal.nuspec b/Nuget/MediaBrowser.Common.Internal.nuspec index d17fab368d..bfb4bcc80d 100644 --- a/Nuget/MediaBrowser.Common.Internal.nuspec +++ b/Nuget/MediaBrowser.Common.Internal.nuspec @@ -13,8 +13,8 @@ Copyright © Emby 2013 - - + +