mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-22 01:54:42 +01:00
preserve manual recording overrides
This commit is contained in:
@@ -635,6 +635,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
|
||||
existingTimer.Status == RecordingStatus.Completed)
|
||||
{
|
||||
existingTimer.Status = RecordingStatus.New;
|
||||
existingTimer.IsManual = true;
|
||||
_timerProvider.Update(existingTimer);
|
||||
return Task.FromResult(existingTimer.Id);
|
||||
}
|
||||
@@ -663,6 +664,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
|
||||
RecordingHelper.CopyProgramInfoToTimerInfo(programInfo, timer);
|
||||
}
|
||||
|
||||
timer.IsManual = true;
|
||||
_timerProvider.Add(timer);
|
||||
return Task.FromResult(timer.Id);
|
||||
}
|
||||
@@ -758,6 +760,8 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
|
||||
existingTimer.PostPaddingSeconds = updatedTimer.PostPaddingSeconds;
|
||||
existingTimer.IsPostPaddingRequired = updatedTimer.IsPostPaddingRequired;
|
||||
existingTimer.IsPrePaddingRequired = updatedTimer.IsPrePaddingRequired;
|
||||
|
||||
_timerProvider.Update(existingTimer);
|
||||
}
|
||||
|
||||
return Task.FromResult(true);
|
||||
@@ -2203,6 +2207,11 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
|
||||
|
||||
private bool ShouldCancelTimerForSeriesTimer(SeriesTimerInfo seriesTimer, TimerInfo timer)
|
||||
{
|
||||
if (timer.IsManual)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!seriesTimer.RecordAnyTime)
|
||||
{
|
||||
if (Math.Abs(seriesTimer.StartDate.TimeOfDay.Ticks - timer.StartDate.TimeOfDay.Ticks) >= TimeSpan.FromMinutes(5).Ticks)
|
||||
|
||||
@@ -954,8 +954,11 @@ namespace Emby.Server.Implementations.Session
|
||||
{
|
||||
var session = GetSessionToRemoteControl(sessionId);
|
||||
|
||||
var controllingSession = GetSession(controllingSessionId);
|
||||
AssertCanControl(session, controllingSession);
|
||||
if (!string.IsNullOrWhiteSpace(controllingSessionId))
|
||||
{
|
||||
var controllingSession = GetSession(controllingSessionId);
|
||||
AssertCanControl(session, controllingSession);
|
||||
}
|
||||
|
||||
return session.SessionController.SendGeneralCommand(command, cancellationToken);
|
||||
}
|
||||
@@ -1042,11 +1045,14 @@ namespace Emby.Server.Implementations.Session
|
||||
}
|
||||
}
|
||||
|
||||
var controllingSession = GetSession(controllingSessionId);
|
||||
AssertCanControl(session, controllingSession);
|
||||
if (controllingSession.UserId.HasValue)
|
||||
if (!string.IsNullOrWhiteSpace(controllingSessionId))
|
||||
{
|
||||
command.ControllingUserId = controllingSession.UserId.Value.ToString("N");
|
||||
var controllingSession = GetSession(controllingSessionId);
|
||||
AssertCanControl(session, controllingSession);
|
||||
if (controllingSession.UserId.HasValue)
|
||||
{
|
||||
command.ControllingUserId = controllingSession.UserId.Value.ToString("N");
|
||||
}
|
||||
}
|
||||
|
||||
await session.SessionController.SendPlayCommand(command, cancellationToken).ConfigureAwait(false);
|
||||
@@ -1136,11 +1142,14 @@ namespace Emby.Server.Implementations.Session
|
||||
{
|
||||
var session = GetSessionToRemoteControl(sessionId);
|
||||
|
||||
var controllingSession = GetSession(controllingSessionId);
|
||||
AssertCanControl(session, controllingSession);
|
||||
if (controllingSession.UserId.HasValue)
|
||||
if (!string.IsNullOrWhiteSpace(controllingSessionId))
|
||||
{
|
||||
command.ControllingUserId = controllingSession.UserId.Value.ToString("N");
|
||||
var controllingSession = GetSession(controllingSessionId);
|
||||
AssertCanControl(session, controllingSession);
|
||||
if (controllingSession.UserId.HasValue)
|
||||
{
|
||||
command.ControllingUserId = controllingSession.UserId.Value.ToString("N");
|
||||
}
|
||||
}
|
||||
|
||||
return session.SessionController.SendPlaystateCommand(command, cancellationToken);
|
||||
|
||||
Reference in New Issue
Block a user