浏览代码

Merge pull request #1744 from MediaBrowser/dev

Dev
Luke 9 年之前
父节点
当前提交
6465f1f699

+ 3 - 3
MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj

@@ -55,7 +55,7 @@
       <HintPath>..\packages\morelinq.1.4.0\lib\net35\MoreLinq.dll</HintPath>
       <HintPath>..\packages\morelinq.1.4.0\lib\net35\MoreLinq.dll</HintPath>
     </Reference>
     </Reference>
     <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
     <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
-      <HintPath>..\packages\NLog.4.3.1\lib\net45\NLog.dll</HintPath>
+      <HintPath>..\packages\NLog.4.3.4\lib\net45\NLog.dll</HintPath>
       <Private>True</Private>
       <Private>True</Private>
     </Reference>
     </Reference>
     <Reference Include="Patterns.Logging">
     <Reference Include="Patterns.Logging">
@@ -65,8 +65,8 @@
       <SpecificVersion>False</SpecificVersion>
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\ThirdParty\SharpCompress\SharpCompress.dll</HintPath>
       <HintPath>..\ThirdParty\SharpCompress\SharpCompress.dll</HintPath>
     </Reference>
     </Reference>
-    <Reference Include="SimpleInjector, Version=3.1.3.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
-      <HintPath>..\packages\SimpleInjector.3.1.3\lib\net45\SimpleInjector.dll</HintPath>
+    <Reference Include="SimpleInjector, Version=3.1.4.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
+      <HintPath>..\packages\SimpleInjector.3.1.4\lib\net45\SimpleInjector.dll</HintPath>
       <Private>True</Private>
       <Private>True</Private>
     </Reference>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System" />

+ 2 - 2
MediaBrowser.Common.Implementations/packages.config

@@ -2,7 +2,7 @@
 <packages>
 <packages>
   <package id="CommonIO" version="1.0.0.9" targetFramework="net45" />
   <package id="CommonIO" version="1.0.0.9" targetFramework="net45" />
   <package id="morelinq" version="1.4.0" targetFramework="net45" />
   <package id="morelinq" version="1.4.0" targetFramework="net45" />
-  <package id="NLog" version="4.3.1" targetFramework="net45" />
+  <package id="NLog" version="4.3.4" targetFramework="net45" />
   <package id="Patterns.Logging" version="1.0.0.2" targetFramework="net45" />
   <package id="Patterns.Logging" version="1.0.0.2" targetFramework="net45" />
-  <package id="SimpleInjector" version="3.1.3" targetFramework="net45" />
+  <package id="SimpleInjector" version="3.1.4" targetFramework="net45" />
 </packages>
 </packages>

+ 3 - 6
MediaBrowser.Controller/Entities/UserViewBuilder.cs

@@ -251,7 +251,6 @@ namespace MediaBrowser.Controller.Entities
             if (query.Recursive)
             if (query.Recursive)
             {
             {
                 query.Recursive = true;
                 query.Recursive = true;
-                query.ParentId = parent.Id;
                 query.SetUser(user);
                 query.SetUser(user);
 
 
                 if (query.IncludeItemTypes.Length == 0)
                 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 };
                     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<BaseItem>();
             var list = new List<BaseItem>();
@@ -448,7 +447,6 @@ namespace MediaBrowser.Controller.Entities
             if (query.Recursive)
             if (query.Recursive)
             {
             {
                 query.Recursive = true;
                 query.Recursive = true;
-                query.ParentId = parent.Id;
                 query.SetUser(user);
                 query.SetUser(user);
 
 
                 if (query.IncludeItemTypes.Length == 0)
                 if (query.IncludeItemTypes.Length == 0)
@@ -456,7 +454,7 @@ namespace MediaBrowser.Controller.Entities
                     query.IncludeItemTypes = new[] { typeof(Movie).Name, typeof(BoxSet).Name };
                     query.IncludeItemTypes = new[] { typeof(Movie).Name, typeof(BoxSet).Name };
                 }
                 }
 
 
-                return _libraryManager.GetItemsResult(query);
+                return parent.QueryRecursive(query);
             }
             }
 
 
             var list = new List<BaseItem>();
             var list = new List<BaseItem>();
@@ -613,7 +611,6 @@ namespace MediaBrowser.Controller.Entities
             if (query.Recursive)
             if (query.Recursive)
             {
             {
                 query.Recursive = true;
                 query.Recursive = true;
-                query.ParentId = parent.Id;
                 query.SetUser(user);
                 query.SetUser(user);
 
 
                 if (query.IncludeItemTypes.Length == 0)
                 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 };
                     query.IncludeItemTypes = new[] { typeof(Series).Name, typeof(Season).Name, typeof(Episode).Name };
                 }
                 }
 
 
-                return _libraryManager.GetItemsResult(query);
+                return parent.QueryRecursive(query);
             }
             }
 
 
             var list = new List<BaseItem>();
             var list = new List<BaseItem>();

+ 4 - 0
MediaBrowser.Model/Querying/ItemQuery.cs

@@ -288,6 +288,8 @@ namespace MediaBrowser.Model.Querying
         [Obsolete]
         [Obsolete]
         public string Person { get; set; }
         public string Person { get; set; }
 
 
+        public bool EnableTotalRecordCount { get; set; }
+
         /// <summary>
         /// <summary>
         /// Initializes a new instance of the <see cref="ItemQuery" /> class.
         /// Initializes a new instance of the <see cref="ItemQuery" /> class.
         /// </summary>
         /// </summary>
@@ -306,6 +308,8 @@ namespace MediaBrowser.Model.Querying
 
 
             VideoTypes = new VideoType[] { };
             VideoTypes = new VideoType[] { };
 
 
+            EnableTotalRecordCount = true;
+
             Artists = new string[] { };
             Artists = new string[] { };
             Studios = new string[] { };
             Studios = new string[] { };
             
             

+ 13 - 1
MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs

@@ -527,6 +527,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
         private async Task<LiveTvChannel> GetChannel(ChannelInfo channelInfo, string serviceName, Guid parentFolderId, CancellationToken cancellationToken)
         private async Task<LiveTvChannel> GetChannel(ChannelInfo channelInfo, string serviceName, Guid parentFolderId, CancellationToken cancellationToken)
         {
         {
             var isNew = false;
             var isNew = false;
+            var forceUpdate = false;
 
 
             var id = _tvDtoService.GetInternalChannelId(serviceName, channelInfo.Id);
             var id = _tvDtoService.GetInternalChannelId(serviceName, channelInfo.Id);
 
 
@@ -576,10 +577,12 @@ namespace MediaBrowser.Server.Implementations.LiveTv
                 if (!string.IsNullOrWhiteSpace(channelInfo.ImagePath))
                 if (!string.IsNullOrWhiteSpace(channelInfo.ImagePath))
                 {
                 {
                     item.SetImagePath(ImageType.Primary, channelInfo.ImagePath);
                     item.SetImagePath(ImageType.Primary, channelInfo.ImagePath);
+                    forceUpdate = true;
                 }
                 }
                 else if (!string.IsNullOrWhiteSpace(channelInfo.ImageUrl))
                 else if (!string.IsNullOrWhiteSpace(channelInfo.ImageUrl))
                 {
                 {
                     item.SetImagePath(ImageType.Primary, channelInfo.ImageUrl);
                     item.SetImagePath(ImageType.Primary, channelInfo.ImageUrl);
+                    forceUpdate = true;
                 }
                 }
             }
             }
 
 
@@ -588,9 +591,18 @@ namespace MediaBrowser.Server.Implementations.LiveTv
                 item.Name = channelInfo.Name;
                 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)
             await item.RefreshMetadata(new MetadataRefreshOptions(_fileSystem)
             {
             {
-                ForceSave = isNew
+                ForceSave = isNew || forceUpdate
 
 
             }, cancellationToken);
             }, cancellationToken);
 
 

+ 5 - 5
MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj

@@ -55,9 +55,9 @@
     <Reference Include="Interfaces.IO">
     <Reference Include="Interfaces.IO">
       <HintPath>..\packages\Interfaces.IO.1.0.0.5\lib\portable-net45+sl4+wp71+win8+wpa81\Interfaces.IO.dll</HintPath>
       <HintPath>..\packages\Interfaces.IO.1.0.0.5\lib\portable-net45+sl4+wp71+win8+wpa81\Interfaces.IO.dll</HintPath>
     </Reference>
     </Reference>
-    <Reference Include="MediaBrowser.Naming, Version=1.0.5917.1514, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\MediaBrowser.Naming.1.0.0.49\lib\portable-net45+sl4+wp71+win8+wpa81\MediaBrowser.Naming.dll</HintPath>
+    <Reference Include="MediaBrowser.Naming, Version=1.0.5981.21615, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\MediaBrowser.Naming.1.0.0.50\lib\portable-net45+sl4+wp71+win8+wpa81\MediaBrowser.Naming.dll</HintPath>
+      <Private>True</Private>
     </Reference>
     </Reference>
     <Reference Include="MoreLinq">
     <Reference Include="MoreLinq">
       <HintPath>..\packages\morelinq.1.4.0\lib\net35\MoreLinq.dll</HintPath>
       <HintPath>..\packages\morelinq.1.4.0\lib\net35\MoreLinq.dll</HintPath>
@@ -68,8 +68,8 @@
     <Reference Include="ServiceStack.Api.Swagger">
     <Reference Include="ServiceStack.Api.Swagger">
       <HintPath>..\ThirdParty\ServiceStack\ServiceStack.Api.Swagger.dll</HintPath>
       <HintPath>..\ThirdParty\ServiceStack\ServiceStack.Api.Swagger.dll</HintPath>
     </Reference>
     </Reference>
-    <Reference Include="SimpleInjector, Version=3.1.3.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
-      <HintPath>..\packages\SimpleInjector.3.1.3\lib\net45\SimpleInjector.dll</HintPath>
+    <Reference Include="SimpleInjector, Version=3.1.4.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
+      <HintPath>..\packages\SimpleInjector.3.1.4\lib\net45\SimpleInjector.dll</HintPath>
       <Private>True</Private>
       <Private>True</Private>
     </Reference>
     </Reference>
     <Reference Include="SocketHttpListener, Version=1.0.5955.1537, Culture=neutral, processorArchitecture=MSIL">
     <Reference Include="SocketHttpListener, Version=1.0.5955.1537, Culture=neutral, processorArchitecture=MSIL">

+ 11 - 8
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;
                 cmd.Parameters.Add(cmd, "@IsFavorite", DbType.Boolean).Value = query.IsFavorite.Value;
             }
             }
 
 
-            if (query.IsPlayed.HasValue)
+            if (EnableJoinUserData(query))
             {
             {
-                if (query.IsPlayed.Value)
-                {
-                    whereClauses.Add("(played=@IsPlayed)");
-                }
-                else
+                if (query.IsPlayed.HasValue)
                 {
                 {
-                    whereClauses.Add("(played is null or 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;
                 }
                 }
-                cmd.Parameters.Add(cmd, "@IsPlayed", DbType.Boolean).Value = query.IsPlayed.Value;
             }
             }
 
 
             if (query.IsResumable.HasValue)
             if (query.IsResumable.HasValue)

+ 2 - 2
MediaBrowser.Server.Implementations/packages.config

@@ -4,10 +4,10 @@
   <package id="Emby.XmlTv" version="1.0.0.48" targetFramework="net45" />
   <package id="Emby.XmlTv" version="1.0.0.48" targetFramework="net45" />
   <package id="ini-parser" version="2.2.4" targetFramework="net45" />
   <package id="ini-parser" version="2.2.4" targetFramework="net45" />
   <package id="Interfaces.IO" version="1.0.0.5" targetFramework="net45" />
   <package id="Interfaces.IO" version="1.0.0.5" targetFramework="net45" />
-  <package id="MediaBrowser.Naming" version="1.0.0.49" targetFramework="net45" />
+  <package id="MediaBrowser.Naming" version="1.0.0.50" targetFramework="net45" />
   <package id="Mono.Nat" version="1.2.24.0" targetFramework="net45" />
   <package id="Mono.Nat" version="1.2.24.0" targetFramework="net45" />
   <package id="morelinq" version="1.4.0" targetFramework="net45" />
   <package id="morelinq" version="1.4.0" targetFramework="net45" />
   <package id="Patterns.Logging" version="1.0.0.2" targetFramework="net45" />
   <package id="Patterns.Logging" version="1.0.0.2" targetFramework="net45" />
-  <package id="SimpleInjector" version="3.1.3" targetFramework="net45" />
+  <package id="SimpleInjector" version="3.1.4" targetFramework="net45" />
   <package id="SocketHttpListener" version="1.0.0.30" targetFramework="net45" />
   <package id="SocketHttpListener" version="1.0.0.30" targetFramework="net45" />
 </packages>
 </packages>

+ 2 - 2
Nuget/MediaBrowser.Common.Internal.nuspec

@@ -13,8 +13,8 @@
         <copyright>Copyright © Emby 2013</copyright>
         <copyright>Copyright © Emby 2013</copyright>
         <dependencies>
         <dependencies>
             <dependency id="MediaBrowser.Common" version="3.0.647" />
             <dependency id="MediaBrowser.Common" version="3.0.647" />
-            <dependency id="NLog" version="4.3.1" />
-            <dependency id="SimpleInjector" version="3.1.3" />
+            <dependency id="NLog" version="4.3.4" />
+            <dependency id="SimpleInjector" version="3.1.4" />
         </dependencies>
         </dependencies>
     </metadata>
     </metadata>
     <files>
     <files>