mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-21 05:53:33 -07:00
Wired-up drop folder move
This commit is contained in:
parent
f0fb5aa158
commit
63adb6b566
10 changed files with 429 additions and 304 deletions
|
@ -13,7 +13,7 @@ namespace NzbDrone.Core.Providers
|
|||
public class DiskScanProvider
|
||||
{
|
||||
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
||||
private static readonly string[] MediaExtentions = new[] {".mkv", ".avi", ".wmv", ".mp4"};
|
||||
private static readonly string[] MediaExtentions = new[] { ".mkv", ".avi", ".wmv", ".mp4" };
|
||||
private readonly IDatabase _database;
|
||||
private readonly DiskProvider _diskProvider;
|
||||
private readonly EpisodeProvider _episodeProvider;
|
||||
|
@ -60,19 +60,19 @@ namespace NzbDrone.Core.Providers
|
|||
}
|
||||
|
||||
var mediaFileList = GetVideoFiles(path);
|
||||
var fileList = new List<EpisodeFile>();
|
||||
var importedFiles = new List<EpisodeFile>();
|
||||
|
||||
foreach (var filePath in mediaFileList)
|
||||
{
|
||||
var file = ImportFile(series, filePath);
|
||||
if (file != null)
|
||||
fileList.Add(file);
|
||||
importedFiles.Add(file);
|
||||
}
|
||||
|
||||
series.LastDiskSync = DateTime.Now;
|
||||
_seriesProvider.UpdateSeries(series);
|
||||
|
||||
return fileList;
|
||||
return importedFiles;
|
||||
}
|
||||
|
||||
|
||||
|
@ -88,7 +88,7 @@ namespace NzbDrone.Core.Providers
|
|||
|
||||
long size = _diskProvider.GetSize(filePath);
|
||||
|
||||
//If Size is less than 50MB and contains sample. Check for Size to ensure its not an episode with sample in the title
|
||||
//If Size is less than 40MB and contains sample. Check for Size to ensure its not an episode with sample in the title
|
||||
if (size < 40000000 && filePath.ToLower().Contains("sample"))
|
||||
{
|
||||
Logger.Trace("[{0}] appears to be a sample. skipping.", filePath);
|
||||
|
@ -141,6 +141,13 @@ namespace NzbDrone.Core.Providers
|
|||
if (episodes.Count <= 0)
|
||||
return null;
|
||||
|
||||
|
||||
if (episodes.Any(e => e.EpisodeFile != null && e.EpisodeFile.QualityWrapper > parseResult.Quality))
|
||||
{
|
||||
Logger.Info("File with better quality is already attached. skipping {0}", filePath);
|
||||
return null;
|
||||
}
|
||||
|
||||
var episodeFile = new EpisodeFile();
|
||||
episodeFile.DateAdded = DateTime.Now;
|
||||
episodeFile.SeriesId = series.SeriesId;
|
||||
|
@ -172,20 +179,18 @@ namespace NzbDrone.Core.Providers
|
|||
throw new ArgumentNullException("episodeFile");
|
||||
|
||||
var series = _seriesProvider.GetSeries(episodeFile.SeriesId);
|
||||
string ext = _diskProvider.GetExtension(episodeFile.Path);
|
||||
var episodes = _episodeProvider.GetEpisodesByFileId(episodeFile.EpisodeFileId);
|
||||
string newFileName = _mediaFileProvider.GetNewFilename(episodes, series.Title, episodeFile.Quality);
|
||||
|
||||
var newFile = _mediaFileProvider.CalculateFilePath(series, episodes.First().SeasonNumber, newFileName, ext);
|
||||
var newFile = _mediaFileProvider.CalculateFilePath(series, episodes.First().SeasonNumber, newFileName, Path.GetExtension(episodeFile.Path));
|
||||
|
||||
//Do the rename
|
||||
Logger.Trace("Attempting to rename {0} to {1}", episodeFile.Path, newFile.FullName);
|
||||
_diskProvider.RenameFile(episodeFile.Path, newFile.FullName);
|
||||
|
||||
//Update the filename in the DB
|
||||
episodeFile.Path = newFile.FullName;
|
||||
_mediaFileProvider.Update(episodeFile);
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue