1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2024-10-31 07:52:37 +01:00

fixed disk not being scanned during series refresh.

This commit is contained in:
kay.one 2013-07-13 13:21:34 -07:00
parent 4a324cc31a
commit 4456d3cbe0
3 changed files with 6 additions and 50 deletions

View File

@ -1,17 +0,0 @@
using NzbDrone.Common.Messaging;
namespace NzbDrone.Core.MediaFiles.Commands
{
public class DiskScanCommand : ICommand
{
public int? SeriesId { get; private set; }
public DiskScanCommand(int seriesId = 0)
{
if (seriesId != 0)
{
SeriesId = seriesId;
}
}
}
}

View File

@ -7,8 +7,6 @@ using NzbDrone.Common;
using NzbDrone.Common.Messaging; using NzbDrone.Common.Messaging;
using NzbDrone.Core.MediaFiles.Commands; using NzbDrone.Core.MediaFiles.Commands;
using NzbDrone.Core.MediaFiles.EpisodeImport; using NzbDrone.Core.MediaFiles.EpisodeImport;
using NzbDrone.Core.Parser;
using NzbDrone.Core.Providers;
using NzbDrone.Core.Tv; using NzbDrone.Core.Tv;
using NzbDrone.Core.Tv.Events; using NzbDrone.Core.Tv.Events;
@ -19,7 +17,9 @@ namespace NzbDrone.Core.MediaFiles
string[] GetVideoFiles(string path, bool allDirectories = true); string[] GetVideoFiles(string path, bool allDirectories = true);
} }
public class DiskScanService : IDiskScanService, IExecute<DiskScanCommand>, IHandle<EpisodeInfoAddedEvent> public class DiskScanService :
IDiskScanService,
IHandle<SeriesUpdatedEvent>
{ {
private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private static readonly string[] MediaExtensions = new[] { ".mkv", ".avi", ".wmv", ".mp4", ".mpg", ".mpeg", ".xvid", ".flv", ".mov", ".rm", ".rmvb", ".divx", ".dvr-ms", ".ts", ".ogm", ".m4v", ".strm" }; private static readonly string[] MediaExtensions = new[] { ".mkv", ".avi", ".wmv", ".mp4", ".mpg", ".mpeg", ".xvid", ".flv", ".mov", ".rm", ".rmvb", ".divx", ".dvr-ms", ".ts", ".ogm", ".m4v", ".strm" };
@ -31,7 +31,7 @@ namespace NzbDrone.Core.MediaFiles
public DiskScanService(IDiskProvider diskProvider, public DiskScanService(IDiskProvider diskProvider,
ISeriesService seriesService, ISeriesService seriesService,
IMakeImportDecision importDecisionMaker, IMakeImportDecision importDecisionMaker,
IImportApprovedEpisodes importApprovedEpisodes, IImportApprovedEpisodes importApprovedEpisodes,
IMessageAggregator messageAggregator) IMessageAggregator messageAggregator)
{ {
@ -45,7 +45,7 @@ namespace NzbDrone.Core.MediaFiles
private void Scan(Series series) private void Scan(Series series)
{ {
_messageAggregator.PublishCommand(new CleanMediaFileDb(series.Id)); _messageAggregator.PublishCommand(new CleanMediaFileDb(series.Id));
if (!_diskProvider.FolderExists(series.Path)) if (!_diskProvider.FolderExists(series.Path))
{ {
Logger.Debug("Series folder doesn't exist: {0}", series.Path); Logger.Debug("Series folder doesn't exist: {0}", series.Path);
@ -71,33 +71,7 @@ namespace NzbDrone.Core.MediaFiles
return mediaFileList.ToArray(); return mediaFileList.ToArray();
} }
public void Execute(DiskScanCommand message) public void Handle(SeriesUpdatedEvent message)
{
var seriesToScan = new List<Series>();
if (message.SeriesId.HasValue)
{
seriesToScan.Add(_seriesService.GetSeries(message.SeriesId.Value));
}
else
{
seriesToScan.AddRange(_seriesService.GetAllSeries());
}
foreach (var series in seriesToScan)
{
try
{
Scan(series);
}
catch (Exception e)
{
Logger.ErrorException("Disk scan failed for " + series, e);
}
}
}
public void Handle(EpisodeInfoAddedEvent message)
{ {
Scan(message.Series); Scan(message.Series);
} }

View File

@ -275,7 +275,6 @@
<Compile Include="MediaFiles\Commands\CleanMediaFileDb.cs" /> <Compile Include="MediaFiles\Commands\CleanMediaFileDb.cs" />
<Compile Include="MediaFiles\Commands\CleanUpRecycleBinCommand.cs" /> <Compile Include="MediaFiles\Commands\CleanUpRecycleBinCommand.cs" />
<Compile Include="MediaFiles\Commands\DownloadedEpisodesScanCommand.cs" /> <Compile Include="MediaFiles\Commands\DownloadedEpisodesScanCommand.cs" />
<Compile Include="MediaFiles\Commands\DiskScanCommand.cs" />
<Compile Include="MediaFiles\EpisodeImport\ImportDecision.cs" /> <Compile Include="MediaFiles\EpisodeImport\ImportDecision.cs" />
<Compile Include="MediaFiles\EpisodeImport\IImportDecisionEngineSpecification.cs" /> <Compile Include="MediaFiles\EpisodeImport\IImportDecisionEngineSpecification.cs" />
<Compile Include="MediaFiles\EpisodeImport\ImportDecisionMaker.cs" /> <Compile Include="MediaFiles\EpisodeImport\ImportDecisionMaker.cs" />