2017-10-27 03:21:06 +00:00
using System.Linq ;
2017-02-28 19:59:22 +00:00
using NzbDrone.Common.Extensions ;
using NzbDrone.Core.Indexers ;
2017-10-27 03:21:06 +00:00
using NzbDrone.Core.ThingiProvider.Events ;
2017-02-28 19:59:22 +00:00
namespace NzbDrone.Core.HealthCheck.Checks
{
2017-10-27 03:21:06 +00:00
[CheckOn(typeof(ProviderUpdatedEvent<IIndexer>))]
[CheckOn(typeof(ProviderDeletedEvent<IIndexer>))]
[CheckOn(typeof(ProviderStatusChangedEvent<IIndexer>))]
2017-02-28 19:59:22 +00:00
public class IndexerRssCheck : HealthCheckBase
{
private readonly IIndexerFactory _indexerFactory ;
public IndexerRssCheck ( IIndexerFactory indexerFactory )
{
_indexerFactory = indexerFactory ;
}
public override HealthCheck Check ( )
{
var enabled = _indexerFactory . RssEnabled ( false ) ;
if ( enabled . Empty ( ) )
{
2017-03-30 03:49:38 +00:00
return new HealthCheck ( GetType ( ) , HealthCheckResult . Error , "No indexers available with RSS sync enabled, Lidarr will not grab new releases automatically" ) ;
2017-02-28 19:59:22 +00:00
}
var active = _indexerFactory . RssEnabled ( true ) ;
if ( active . Empty ( ) )
{
return new HealthCheck ( GetType ( ) , HealthCheckResult . Warning , "All rss-capable indexers are temporarily unavailable due to recent indexer errors" ) ;
}
return new HealthCheck ( GetType ( ) ) ;
}
}
}