1
0
mirror of https://github.com/Radarr/Radarr.git synced 2026-04-24 22:35:49 -04:00

New: Drone now uses the Download Client API to determine if a download is ready for import. (User configuration is required to replace the drone factory with this feature)

This commit is contained in:
Taloth Saldono
2014-04-19 17:09:22 +02:00
parent dcb586b937
commit 2035fe8578
196 changed files with 3961 additions and 2223 deletions
@@ -19,6 +19,7 @@ namespace NzbDrone.Core.MediaFiles
{
EpisodeFile MoveEpisodeFile(EpisodeFile episodeFile, Series series);
EpisodeFile MoveEpisodeFile(EpisodeFile episodeFile, LocalEpisode localEpisode);
EpisodeFile CopyEpisodeFile(EpisodeFile episodeFile, LocalEpisode localEpisode);
}
public class EpisodeFileMovingService : IMoveEpisodeFiles
@@ -53,7 +54,7 @@ namespace NzbDrone.Core.MediaFiles
_logger.Debug("Renaming episode file: {0} to {1}", episodeFile, filePath);
return MoveFile(episodeFile, series, episodes, filePath);
return TransferFile(episodeFile, series, episodes, filePath, false);
}
public EpisodeFile MoveEpisodeFile(EpisodeFile episodeFile, LocalEpisode localEpisode)
@@ -63,10 +64,20 @@ namespace NzbDrone.Core.MediaFiles
_logger.Debug("Moving episode file: {0} to {1}", episodeFile, filePath);
return MoveFile(episodeFile, localEpisode.Series, localEpisode.Episodes, filePath);
return TransferFile(episodeFile, localEpisode.Series, localEpisode.Episodes, filePath, false);
}
private EpisodeFile MoveFile(EpisodeFile episodeFile, Series series, List<Episode> episodes, string destinationFilename)
public EpisodeFile CopyEpisodeFile(EpisodeFile episodeFile, LocalEpisode localEpisode)
{
var newFileName = _buildFileNames.BuildFilename(localEpisode.Episodes, localEpisode.Series, episodeFile);
var filePath = _buildFileNames.BuildFilePath(localEpisode.Series, localEpisode.SeasonNumber, newFileName, Path.GetExtension(episodeFile.Path));
_logger.Debug("Copying episode file: {0} to {1}", episodeFile, filePath);
return TransferFile(episodeFile, localEpisode.Series, localEpisode.Episodes, filePath, true);
}
private EpisodeFile TransferFile(EpisodeFile episodeFile, Series series, List<Episode> episodes, string destinationFilename, bool copyOnly)
{
Ensure.That(episodeFile, () => episodeFile).IsNotNull();
Ensure.That(series,() => series).IsNotNull();
@@ -103,8 +114,16 @@ namespace NzbDrone.Core.MediaFiles
}
}
_logger.Debug("Moving [{0}] > [{1}]", episodeFile.Path, destinationFilename);
_diskProvider.MoveFile(episodeFile.Path, destinationFilename);
if (copyOnly)
{
_logger.Debug("Copying [{0}] > [{1}]", episodeFile.Path, destinationFilename);
_diskProvider.CopyFile(episodeFile.Path, destinationFilename);
}
else
{
_logger.Debug("Moving [{0}] > [{1}]", episodeFile.Path, destinationFilename);
_diskProvider.MoveFile(episodeFile.Path, destinationFilename);
}
episodeFile.Path = destinationFilename;
_updateEpisodeFileService.ChangeFileDateForFile(episodeFile, series, episodes);