@ -625,43 +625,37 @@ namespace Emby.Server.Implementations.Session
private async void CheckForInactiveSteams ( object state )
private async void CheckForInactiveSteams ( object state )
{
{
var paused Sessions = Sessions . Where ( i = >
var inactive Sessions = Sessions . Where ( i = >
i . NowPlayingItem is not null
i . NowPlayingItem is not null
& & i . PlayState . IsPaused
& & i . PlayState . IsPaused
& & i . LastPausedDate is not null )
& & ( DateTime . UtcNow - i . LastPausedDate ) . Value . TotalMinutes > _config . Configuration . InactiveSessionThreshold ) ;
. ToList ( ) ;
if ( pausedSessions . Count > 0 )
foreach ( var session in inactiveSessions )
{
{
var inactiveSessions = pausedSessions . Where ( i = > ( DateTime . UtcNow - i . LastPausedDate ) . Value . TotalMinutes > _config . Configuration . InactiveSessionThreshold ) . ToList ( ) ;
_logger . LogDebug ( "Session {Session} has been inactive for {InactiveTime} minutes. Stopping it." , session . Id , _config . Configuration . InactiveSessionThreshold ) ;
foreach ( var session in inactiveSessions )
try
{
{
_logger . LogDebug ( "Session {Session} has been inactive for {InactiveTime} minutes. Stopping it." , session . Id , _config . Configuration . InactiveSessionThreshold ) ;
await SendPlaystateCommand (
session . Id ,
try
session . Id ,
{
new PlaystateRequest ( )
await SendPlaystateCommand (
{
session . Id ,
Command = PlaystateCommand . Stop ,
session . Id ,
ControllingUserId = session . UserId . ToString ( ) ,
new PlaystateRequest ( )
SeekPositionTicks = session . PlayState ? . PositionTicks
{
} ,
Command = PlaystateCommand . Stop ,
CancellationToken . None ) . ConfigureAwait ( true ) ;
ControllingUserId = session . UserId . ToString ( ) ,
}
SeekPositionTicks = session . PlayState ? . PositionTicks
catch ( Exception ex )
} ,
{
CancellationToken . None ) . ConfigureAwait ( true ) ;
_logger . LogDebug ( ex , "Error calling SendPlaystateCommand for stopping inactive session {Session}." , session . Id ) ;
}
catch ( Exception ex )
{
_logger . LogDebug ( ex , "Error calling SendPlaystateCommand for stopping inactive session {Session}." , session . Id ) ;
}
}
}
}
}
var playingSessions = Sessions . Where ( i = > i . NowPlayingItem is not null )
bool playingSessions = Sessions . Any ( i = > i . NowPlayingItem is not null ) ;
. ToList ( ) ;
if ( playingSessions . Count = = 0 )
if ( ! playingSessions )
{
{
StopInactiveCheckTimer ( ) ;
StopInactiveCheckTimer ( ) ;
}
}