Merge pull request #1724 from MediaBrowser/dev

Dev
This commit is contained in:
Luke 2016-05-10 01:16:13 -04:00
commit 2a49fa631a
7 changed files with 49 additions and 22 deletions

View file

@ -479,7 +479,7 @@ namespace MediaBrowser.Dlna.Ssdp
var msg = new SsdpMessageBuilder().BuildMessage(header, values); 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); //SendUnicastRequest(msg, 1);
} }

View file

@ -23,6 +23,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
_fileSystem = fileSystem; _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) public async Task Record(MediaSourceInfo mediaSource, string targetFile, TimeSpan duration, Action onStarted, CancellationToken cancellationToken)
{ {
var httpRequestOptions = new HttpRequestOptions() var httpRequestOptions = new HttpRequestOptions()

View file

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

View file

@ -42,6 +42,16 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
_liveTvOptions = liveTvOptions; _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) public async Task Record(MediaSourceInfo mediaSource, string targetFile, TimeSpan duration, Action onStarted, CancellationToken cancellationToken)
{ {
if (mediaSource.RunTimeTicks.HasValue) if (mediaSource.RunTimeTicks.HasValue)

View file

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

View file

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

View file

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