2013-10-22 23:36:31 -07:00
|
|
|
using System;
|
|
|
|
using NzbDrone.Core.Download;
|
|
|
|
using NzbDrone.Core.Messaging.Events;
|
|
|
|
|
|
|
|
namespace NzbDrone.Core.Blacklisting
|
|
|
|
{
|
|
|
|
public interface IBlacklistService
|
|
|
|
{
|
|
|
|
bool Blacklisted(string sourceTitle);
|
|
|
|
}
|
|
|
|
|
|
|
|
public class BlacklistService : IBlacklistService, IHandle<DownloadFailedEvent>
|
|
|
|
{
|
|
|
|
private readonly IBlacklistRepository _blacklistRepository;
|
2013-10-23 22:13:04 -07:00
|
|
|
private readonly IRedownloadFailedDownloads _redownloadFailedDownloadService;
|
2013-10-22 23:36:31 -07:00
|
|
|
|
2013-10-23 22:13:04 -07:00
|
|
|
public BlacklistService(IBlacklistRepository blacklistRepository, IRedownloadFailedDownloads redownloadFailedDownloadService)
|
2013-10-22 23:36:31 -07:00
|
|
|
{
|
|
|
|
_blacklistRepository = blacklistRepository;
|
2013-10-23 22:13:04 -07:00
|
|
|
_redownloadFailedDownloadService = redownloadFailedDownloadService;
|
2013-10-22 23:36:31 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
public bool Blacklisted(string sourceTitle)
|
|
|
|
{
|
|
|
|
return _blacklistRepository.Blacklisted(sourceTitle);
|
|
|
|
}
|
|
|
|
|
|
|
|
public void Handle(DownloadFailedEvent message)
|
|
|
|
{
|
|
|
|
var blacklist = new Blacklist
|
|
|
|
{
|
2013-10-23 22:13:04 -07:00
|
|
|
SeriesId = message.SeriesId,
|
|
|
|
EpisodeIds = message.EpisodeIds,
|
2013-10-22 23:36:31 -07:00
|
|
|
SourceTitle = message.SourceTitle,
|
|
|
|
Quality = message.Quality,
|
|
|
|
Date = DateTime.UtcNow
|
|
|
|
};
|
|
|
|
|
|
|
|
_blacklistRepository.Insert(blacklist);
|
2013-10-23 22:13:04 -07:00
|
|
|
|
|
|
|
_redownloadFailedDownloadService.Redownload(message.SeriesId, message.EpisodeIds);
|
2013-10-22 23:36:31 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|