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
-
-
+
+