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

Co-authored-by: Bond-009 <bond.009@outlook.com>
This commit is contained in:
SenorSmartyPants 2022-11-22 15:02:00 -06:00 committed by GitHub
parent 5443708c42
commit 75c96e6e76
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 6 deletions

View File

@ -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);
}

View File

@ -121,12 +121,29 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
var timer = new Timer(TimerCallback, item.Id, dueTime, TimeSpan.Zero);
if (_timers.TryAdd(item.Id, timer))
{
if (item.IsSeries)
{
Logger.LogInformation(
"Creating recording timer for {Id}, {Name}. Timer will fire in {Minutes} minutes",
"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
{