Pneumatic will set the download client ID for strm files

This commit is contained in:
Mark McDowall 2014-09-01 11:14:54 -07:00
parent 57448fd29a
commit bf1547a524
3 changed files with 36 additions and 10 deletions

View File

@ -70,6 +70,16 @@ namespace NzbDrone.Core.Test.MediaFiles.EpisodeImport
Mocker.GetMock<IVideoFileInfoReader>().Verify(c => c.GetRunTime(It.IsAny<string>()), Times.Never()); Mocker.GetMock<IVideoFileInfoReader>().Verify(c => c.GetRunTime(It.IsAny<string>()), Times.Never());
} }
[Test]
public void should_return_false_for_strm()
{
_localEpisode.Path = @"C:\Test\some.show.s01e01.strm";
ShouldBeFalse();
Mocker.GetMock<IVideoFileInfoReader>().Verify(c => c.GetRunTime(It.IsAny<string>()), Times.Never());
}
[Test] [Test]
public void should_use_runtime() public void should_use_runtime()
{ {

View File

@ -56,7 +56,8 @@ namespace NzbDrone.Core.Download.Clients.Pneumatic
_logger.Debug("NZB Download succeeded, saved to: {0}", nzbFile); _logger.Debug("NZB Download succeeded, saved to: {0}", nzbFile);
WriteStrmFile(title, nzbFile); var strmFile = WriteStrmFile(title, nzbFile);
return GetDownloadClientId(strmFile);
return null; return null;
} }
@ -71,27 +72,27 @@ namespace NzbDrone.Core.Download.Clients.Pneumatic
public override IEnumerable<DownloadClientItem> GetItems() public override IEnumerable<DownloadClientItem> GetItems()
{ {
foreach (var videoFile in _diskProvider.GetFiles(Settings.StrmFolder, SearchOption.TopDirectoryOnly)) foreach (var file in _diskProvider.GetFiles(Settings.StrmFolder, SearchOption.TopDirectoryOnly))
{ {
if (Path.GetExtension(videoFile) != ".strm") if (Path.GetExtension(file) != ".strm")
{ {
continue; continue;
} }
var title = FileNameBuilder.CleanFileName(Path.GetFileName(videoFile)); var title = FileNameBuilder.CleanFileName(Path.GetFileName(file));
var historyItem = new DownloadClientItem var historyItem = new DownloadClientItem
{ {
DownloadClient = Definition.Name, DownloadClient = Definition.Name,
DownloadClientId = Definition.Name + "_" + Path.GetFileName(videoFile) + "_" + _diskProvider.FileGetLastWriteUtc(videoFile).Ticks, DownloadClientId = GetDownloadClientId(file),
Title = title, Title = title,
TotalSize = _diskProvider.GetFileSize(videoFile), TotalSize = _diskProvider.GetFileSize(file),
OutputPath = videoFile OutputPath = file
}; };
if (_diskProvider.IsFileLocked(videoFile)) if (_diskProvider.IsFileLocked(file))
{ {
historyItem.Status = DownloadItemStatus.Downloading; historyItem.Status = DownloadItemStatus.Downloading;
} }
@ -155,7 +156,7 @@ namespace NzbDrone.Core.Download.Clients.Pneumatic
return null; return null;
} }
private void WriteStrmFile(String title, String nzbFile) private String WriteStrmFile(String title, String nzbFile)
{ {
String folder; String folder;
@ -175,7 +176,16 @@ namespace NzbDrone.Core.Download.Clients.Pneumatic
} }
var contents = String.Format("plugin://plugin.program.pneumatic/?mode=strm&type=add_file&nzb={0}&nzbname={1}", nzbFile, title); var contents = String.Format("plugin://plugin.program.pneumatic/?mode=strm&type=add_file&nzb={0}&nzbname={1}", nzbFile, title);
_diskProvider.WriteAllText(Path.Combine(folder, title + ".strm"), contents); var filename = Path.Combine(folder, title + ".strm");
_diskProvider.WriteAllText(filename, contents);
return filename;
}
private String GetDownloadClientId(String filename)
{
return Definition.Name + "_" + Path.GetFileName(filename) + "_" + _diskProvider.FileGetLastWriteUtc(filename).Ticks;
} }
} }
} }

View File

@ -50,6 +50,12 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport
return false; return false;
} }
if (extension != null && extension.Equals(".strm", StringComparison.InvariantCultureIgnoreCase))
{
_logger.Debug("Skipping sample check for .strm file");
return false;
}
try try
{ {
var runTime = _videoFileInfoReader.GetRunTime(path); var runTime = _videoFileInfoReader.GetRunTime(path);