DVR: Prefer HD channels then earliest showing when handling duplicate showings. (#8768)

Co-authored-by: Bond-009 <bond.009@outlook.com>
pull/8791/head
SenorSmartyPants 2 years ago committed by GitHub
parent 5443708c42
commit 75c96e6e76
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -2192,10 +2192,9 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
private void HandleDuplicateShowIds(List<TimerInfo> timers)
{
foreach (var timer in timers.Skip(1))
// sort showings by HD channels first, then by startDate, record earliest showing possible
foreach (var timer in timers.OrderByDescending(t => _liveTvManager.GetLiveTvChannel(t, this).IsHD).ThenBy(t => t.StartDate).Skip(1))
{
// TODO: Get smarter, prefer HD, etc
timer.Status = RecordingStatus.Cancelled;
_timerProvider.Update(timer);
}

@ -122,11 +122,28 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
if (_timers.TryAdd(item.Id, timer))
{
Logger.LogInformation(
"Creating recording timer for {Id}, {Name}. Timer will fire in {Minutes} minutes",
if (item.IsSeries)
{
Logger.LogInformation(
"Creating recording timer for {Id}, {Name} {SeasonNumber}x{EpisodeNumber:D2} on channel {ChannelId}. Timer will fire in {Minutes} minutes at {StartDate}",
item.Id,
item.Name,
dueTime.TotalMinutes.ToString(CultureInfo.InvariantCulture));
item.SeasonNumber,
item.EpisodeNumber,
item.ChannelId,
dueTime.TotalMinutes.ToString(CultureInfo.InvariantCulture),
item.StartDate);
}
else
{
Logger.LogInformation(
"Creating recording timer for {Id}, {Name} on channel {ChannelId}. Timer will fire in {Minutes} minutes at {StartDate}",
item.Id,
item.Name,
item.ChannelId,
dueTime.TotalMinutes.ToString(CultureInfo.InvariantCulture),
item.StartDate);
}
}
else
{

Loading…
Cancel
Save