New: Only scan files that are new or updated (#760)

* New: Only scan files that are new or updated

Pass through filter correctly

Add more tests

Add tests for migration 30

* Fix windows disk provider

* Don't publish deleted event for unmapped file

* Fix test on windows
This commit is contained in:
ta264
2019-06-08 20:13:58 +01:00
committed by Qstick
parent 8fe8aec97c
commit 166fc90454
95 changed files with 1590 additions and 723 deletions
@@ -37,7 +37,7 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Roksbox
public override string GetFilenameAfterMove(Artist artist, TrackFile trackFile, MetadataFile metadataFile)
{
var trackFilePath = Path.Combine(artist.Path, trackFile.RelativePath);
var trackFilePath = trackFile.Path;
if (metadataFile.Type == MetadataType.TrackMetadata)
{
@@ -122,7 +122,7 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Roksbox
return null;
}
_logger.Debug("Generating Track Metadata for: {0}", trackFile.RelativePath);
_logger.Debug("Generating Track Metadata for: {0}", trackFile.Path);
var xmlResult = string.Empty;
foreach (var track in trackFile.Tracks.Value)
@@ -148,7 +148,7 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Roksbox
}
}
return new MetadataFileResult(GetTrackMetadataFilename(trackFile.RelativePath), xmlResult.Trim(Environment.NewLine.ToCharArray()));
return new MetadataFileResult(GetTrackMetadataFilename(artist.Path.GetRelativePath(trackFile.Path)), xmlResult.Trim(Environment.NewLine.ToCharArray()));
}
public override List<ImageFileResult> ArtistImages(Artist artist)
@@ -35,7 +35,7 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Wdtv
public override string GetFilenameAfterMove(Artist artist, TrackFile trackFile, MetadataFile metadataFile)
{
var trackFilePath = Path.Combine(artist.Path, trackFile.RelativePath);
var trackFilePath = trackFile.Path;
if (metadataFile.Type == MetadataType.TrackMetadata)
{
@@ -94,7 +94,7 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Wdtv
return null;
}
_logger.Debug("Generating Track Metadata for: {0}", Path.Combine(artist.Path, trackFile.RelativePath));
_logger.Debug("Generating Track Metadata for: {0}", trackFile.Path);
var xmlResult = string.Empty;
foreach (var track in trackFile.Tracks.Value)
@@ -124,7 +124,7 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Wdtv
}
}
var filename = GetTrackMetadataFilename(trackFile.RelativePath);
var filename = GetTrackMetadataFilename(artist.Path.GetRelativePath(trackFile.Path));
return new MetadataFileResult(filename, xmlResult.Trim(Environment.NewLine.ToCharArray()));
}
@@ -37,7 +37,7 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Xbmc
public override string GetFilenameAfterMove(Artist artist, TrackFile trackFile, MetadataFile metadataFile)
{
var trackFilePath = Path.Combine(artist.Path, trackFile.RelativePath);
var trackFilePath = trackFile.Path;
if (metadataFile.Type == MetadataType.TrackMetadata)
{
@@ -30,7 +30,7 @@ namespace NzbDrone.Core.Extras.Metadata
{
var existingFilename = Path.Combine(artist.Path, metadataFile.RelativePath);
var extension = Path.GetExtension(existingFilename).TrimStart('.');
var newFileName = Path.ChangeExtension(Path.Combine(artist.Path, trackFile.RelativePath), extension);
var newFileName = Path.ChangeExtension(trackFile.Path, extension);
return newFileName;
}
@@ -80,7 +80,7 @@ namespace NzbDrone.Core.Extras.Metadata
files.AddIfNotNull(ProcessArtistMetadata(consumer, artist, consumerFiles));
files.AddRange(ProcessArtistImages(consumer, artist, consumerFiles));
var albumGroups = trackFiles.GroupBy(s => Path.GetDirectoryName(s.RelativePath)).ToList();
var albumGroups = trackFiles.GroupBy(s => Path.GetDirectoryName(s.Path)).ToList();
foreach (var group in albumGroups)
{
@@ -146,7 +146,7 @@ namespace NzbDrone.Core.Extras.Metadata
{
var metadataFiles = _metadataFileService.GetFilesByArtist(artist.Id);
var movedFiles = new List<MetadataFile>();
var distinctTrackFilePaths = trackFiles.DistinctBy(s => Path.GetDirectoryName(s.RelativePath)).ToList();
var distinctTrackFilePaths = trackFiles.DistinctBy(s => Path.GetDirectoryName(s.Path)).ToList();
// TODO: Move EpisodeImage and EpisodeMetadata metadata files, instead of relying on consumers to do it
// (Xbmc's EpisodeImage is more than just the extension)
@@ -162,7 +162,7 @@ namespace NzbDrone.Core.Extras.Metadata
foreach (var metadataFile in metadataFilesForConsumer)
{
var newFileName = consumer.GetFilenameAfterMove(artist, Path.GetDirectoryName(filePath.RelativePath), metadataFile);
var newFileName = consumer.GetFilenameAfterMove(artist, Path.GetDirectoryName(filePath.Path), metadataFile);
var existingFileName = Path.Combine(artist.Path, metadataFile.RelativePath);
if (newFileName.PathNotEquals(existingFileName))