浏览代码

Merge pull request #1724 from MediaBrowser/dev

Dev
Luke 9 年之前
父节点
当前提交
2a49fa631a

+ 1 - 1
MediaBrowser.Dlna/Ssdp/SsdpHandler.cs

@@ -479,7 +479,7 @@ namespace MediaBrowser.Dlna.Ssdp
 
             var msg = new SsdpMessageBuilder().BuildMessage(header, values);
 
-            SendDatagram(msg, _ssdpEndp, new IPEndPoint(dev.Address, 0), true, 1);
+            SendDatagram(msg, _ssdpEndp, new IPEndPoint(dev.Address, 0), true, 2);
             //SendUnicastRequest(msg, 1);
         }
 

+ 5 - 0
MediaBrowser.Server.Implementations/LiveTv/EmbyTV/DirectRecorder.cs

@@ -23,6 +23,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
             _fileSystem = fileSystem;
         }
 
+        public string GetOutputPath(MediaSourceInfo mediaSource, string targetFile)
+        {
+            return targetFile;
+        }
+
         public async Task Record(MediaSourceInfo mediaSource, string targetFile, TimeSpan duration, Action onStarted, CancellationToken cancellationToken)
         {
             var httpRequestOptions = new HttpRequestOptions()

+ 5 - 6
MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs

@@ -898,10 +898,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
 
                     var recorder = await GetRecorder().ConfigureAwait(false);
 
-                    if (recorder is EncodedRecorder)
-                    {
-                        recordPath = Path.ChangeExtension(recordPath, ".mp4");
-                    }
+                    recordPath = recorder.GetOutputPath(mediaStreamInfo, recordPath);
                     recordPath = EnsureFileUnique(recordPath, timer.Id);
                     _fileSystem.CreateDirectory(Path.GetDirectoryName(recordPath));
                     activeRecordingInfo.Path = recordPath;
@@ -1154,7 +1151,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
                         IncludeItemTypes = new[] { typeof(Episode).Name },
                         ParentIndexNumber = program.SeasonNumber.Value,
                         IndexNumber = program.EpisodeNumber.Value,
-                        AncestorIds = seriesIds
+                        AncestorIds = seriesIds,
+                        ExcludeLocationTypes = new[] { LocationType.Virtual }
                     });
 
                     if (result.TotalRecordCount > 0)
@@ -1169,7 +1167,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
                     {
                         IncludeItemTypes = new[] { typeof(Episode).Name },
                         Name = program.EpisodeTitle,
-                        AncestorIds = seriesIds
+                        AncestorIds = seriesIds,
+                        ExcludeLocationTypes = new[] { LocationType.Virtual }
                     });
 
                     if (result.TotalRecordCount > 0)

+ 10 - 0
MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs

@@ -42,6 +42,16 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
             _liveTvOptions = liveTvOptions;
         }
 
+        public string GetOutputPath(MediaSourceInfo mediaSource, string targetFile)
+        {
+            if (_liveTvOptions.EnableOriginalAudioWithEncodedRecordings)
+            {
+                return Path.ChangeExtension(targetFile, ".mkv");
+            }
+
+            return Path.ChangeExtension(targetFile, ".mp4");
+        }
+
         public async Task Record(MediaSourceInfo mediaSource, string targetFile, TimeSpan duration, Action onStarted, CancellationToken cancellationToken)
         {
             if (mediaSource.RunTimeTicks.HasValue)

+ 2 - 0
MediaBrowser.Server.Implementations/LiveTv/EmbyTV/IRecorder.cs

@@ -17,5 +17,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
         /// <param name="cancellationToken">The cancellation token.</param>
         /// <returns>Task.</returns>
         Task Record(MediaSourceInfo mediaSource, string targetFile, TimeSpan duration, Action onStarted, CancellationToken cancellationToken);
+
+        string GetOutputPath(MediaSourceInfo mediaSource, string targetFile);
     }
 }

+ 20 - 9
MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs

@@ -2058,7 +2058,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
 
             if (EnableJoinUserData(query))
             {
-                whereClauses.Add("UserId=@UserId");
+                whereClauses.Add("(UserId is null or UserId=@UserId)");
             }
             if (query.IsCurrentSchema.HasValue)
             {
@@ -2363,27 +2363,38 @@ namespace MediaBrowser.Server.Implementations.Persistence
             {
                 if (query.IsFavoriteOrLiked.Value)
                 {
-                    whereClauses.Add("(IsFavorite=@IsFavoriteOrLiked or rating>=@UserRatingIsFavoriteOrLiked)");
-                    cmd.Parameters.Add(cmd, "@IsFavoriteOrLiked", DbType.Boolean).Value = true;
-                    cmd.Parameters.Add(cmd, "@UserRatingIsFavoriteOrLiked", DbType.Double).Value = UserItemData.MinLikeValue;
+                    whereClauses.Add("IsFavorite=@IsFavoriteOrLiked");
                 }
                 else
                 {
-                    whereClauses.Add("(IsFavorite=@IsFavoriteOrLiked or rating is null or rating<@UserRatingIsFavoriteOrLiked)");
-                    cmd.Parameters.Add(cmd, "@IsFavoriteOrLiked", DbType.Boolean).Value = false;
-                    cmd.Parameters.Add(cmd, "@UserRatingIsFavoriteOrLiked", DbType.Double).Value = UserItemData.MinLikeValue;
+                    whereClauses.Add("(IsFavorite is null or IsFavorite=@IsFavoriteOrLiked)");
                 }
+                cmd.Parameters.Add(cmd, "@IsFavoriteOrLiked", DbType.Boolean).Value = query.IsFavoriteOrLiked.Value;
             }
 
             if (query.IsFavorite.HasValue)
             {
-                whereClauses.Add("IsFavorite=@IsFavorite");
+                if (query.IsFavorite.Value)
+                {
+                    whereClauses.Add("IsFavorite=@IsFavorite");
+                }
+                else
+                {
+                    whereClauses.Add("(IsFavorite is null or IsFavorite=@IsFavorite)");
+                }
                 cmd.Parameters.Add(cmd, "@IsFavorite", DbType.Boolean).Value = query.IsFavorite.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;
             }
 

+ 6 - 6
MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj

@@ -146,6 +146,12 @@
     <Content Include="dashboard-ui\components\recordingcreator\recordingcreator.template.html">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
+    <Content Include="dashboard-ui\components\recordingeditor\recordingeditor.js">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="dashboard-ui\components\recordingeditor\recordingeditor.template.html">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
     <Content Include="dashboard-ui\components\remotecontrol.js">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
@@ -959,9 +965,6 @@
     <Content Include="dashboard-ui\scripts\livetvchannel.js">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="dashboard-ui\livetvtimer.html">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
     <Content Include="dashboard-ui\scripts\livetvrecordinglist.js">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
@@ -974,9 +977,6 @@
     <Content Include="dashboard-ui\scripts\livetvstatus.js">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="dashboard-ui\scripts\livetvtimer.js">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
     <Content Include="dashboard-ui\scripts\editorsidebar.js">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>