From 9a2cb67980a323d8f26e2af77f84723cac27dab9 Mon Sep 17 00:00:00 2001 From: Qstick Date: Sat, 28 Oct 2017 17:11:41 -0400 Subject: [PATCH] Fixed: Subtitle extensions should be case-insensitive. --- .../Extras/Lyrics/LyricFileExtensions.cs | 3 ++- .../Extras/Metadata/Consumers/Xbmc/XbmcMetadata.cs | 6 +++--- .../Extras/Others/OtherExtraService.cs | 13 +++++++------ src/NzbDrone.Core/MediaFiles/DiskScanService.cs | 4 ++-- .../MediaFiles/DownloadedTracksImportService.cs | 7 ++++--- src/NzbDrone.Core/MediaFiles/MediaFileExtensions.cs | 7 ++++--- 6 files changed, 22 insertions(+), 18 deletions(-) diff --git a/src/NzbDrone.Core/Extras/Lyrics/LyricFileExtensions.cs b/src/NzbDrone.Core/Extras/Lyrics/LyricFileExtensions.cs index a9b8772a5..1d47fc0b1 100644 --- a/src/NzbDrone.Core/Extras/Lyrics/LyricFileExtensions.cs +++ b/src/NzbDrone.Core/Extras/Lyrics/LyricFileExtensions.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; namespace NzbDrone.Core.Extras.Lyrics @@ -8,7 +9,7 @@ namespace NzbDrone.Core.Extras.Lyrics static LyricFileExtensions() { - _fileExtensions = new HashSet + _fileExtensions = new HashSet(StringComparer.OrdinalIgnoreCase) { ".lrc", ".txt", diff --git a/src/NzbDrone.Core/Extras/Metadata/Consumers/Xbmc/XbmcMetadata.cs b/src/NzbDrone.Core/Extras/Metadata/Consumers/Xbmc/XbmcMetadata.cs index f3f91bda4..983754fa7 100644 --- a/src/NzbDrone.Core/Extras/Metadata/Consumers/Xbmc/XbmcMetadata.cs +++ b/src/NzbDrone.Core/Extras/Metadata/Consumers/Xbmc/XbmcMetadata.cs @@ -103,13 +103,13 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Xbmc return metadata; } - if (filename.Equals("artist.nfo", StringComparison.InvariantCultureIgnoreCase)) + if (filename.Equals("artist.nfo", StringComparison.OrdinalIgnoreCase)) { metadata.Type = MetadataType.ArtistMetadata; return metadata; } - if (filename.Equals("album.nfo", StringComparison.InvariantCultureIgnoreCase)) + if (filename.Equals("album.nfo", StringComparison.OrdinalIgnoreCase)) { metadata.Type = MetadataType.AlbumMetadata; return metadata; @@ -118,7 +118,7 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Xbmc var parseResult = Parser.Parser.ParseMusicTitle(filename); if (parseResult != null && - Path.GetExtension(filename) == ".nfo") + Path.GetExtension(filename).Equals(".nfo", StringComparison.OrdinalIgnoreCase)) { metadata.Type = MetadataType.TrackMetadata; return metadata; diff --git a/src/NzbDrone.Core/Extras/Others/OtherExtraService.cs b/src/NzbDrone.Core/Extras/Others/OtherExtraService.cs index 08d356425..664d212d5 100644 --- a/src/NzbDrone.Core/Extras/Others/OtherExtraService.cs +++ b/src/NzbDrone.Core/Extras/Others/OtherExtraService.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -42,18 +43,18 @@ namespace NzbDrone.Core.Extras.Others return Enumerable.Empty(); } - public override IEnumerable MoveFilesAfterRename(Artist artist, List episodeFiles) + public override IEnumerable MoveFilesAfterRename(Artist artist, List trackFiles) { var extraFiles = _otherExtraFileService.GetFilesByArtist(artist.Id); var movedFiles = new List(); - foreach (var episodeFile in episodeFiles) + foreach (var trackFile in trackFiles) { - var extraFilesForEpisodeFile = extraFiles.Where(m => m.TrackFileId == episodeFile.Id).ToList(); + var extraFilesForTrackFile = extraFiles.Where(m => m.TrackFileId == trackFile.Id).ToList(); - foreach (var extraFile in extraFilesForEpisodeFile) + foreach (var extraFile in extraFilesForTrackFile) { - movedFiles.AddIfNotNull(MoveFile(artist, episodeFile, extraFile)); + movedFiles.AddIfNotNull(MoveFile(artist, trackFile, extraFile)); } } @@ -65,7 +66,7 @@ namespace NzbDrone.Core.Extras.Others public override ExtraFile Import(Artist artist, TrackFile trackFile, string path, string extension, bool readOnly) { // If the extension is .nfo we need to change it to .nfo-orig - if (Path.GetExtension(path).Equals(".nfo")) + if (Path.GetExtension(path).Equals(".nfo", StringComparison.OrdinalIgnoreCase)) { extension += "-orig"; } diff --git a/src/NzbDrone.Core/MediaFiles/DiskScanService.cs b/src/NzbDrone.Core/MediaFiles/DiskScanService.cs index 92c566904..bb7d40143 100644 --- a/src/NzbDrone.Core/MediaFiles/DiskScanService.cs +++ b/src/NzbDrone.Core/MediaFiles/DiskScanService.cs @@ -135,7 +135,7 @@ namespace NzbDrone.Core.MediaFiles var searchOption = allDirectories ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly; var filesOnDisk = _diskProvider.GetFiles(path, searchOption).ToList(); - var mediaFileList = filesOnDisk.Where(file => MediaFileExtensions.Extensions.Contains(Path.GetExtension(file).ToLower())) + var mediaFileList = filesOnDisk.Where(file => MediaFileExtensions.Extensions.Contains(Path.GetExtension(file))) .ToList(); _logger.Trace("{0} files were found in {1}", filesOnDisk.Count, path); @@ -150,7 +150,7 @@ namespace NzbDrone.Core.MediaFiles var searchOption = allDirectories ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly; var filesOnDisk = _diskProvider.GetFiles(path, searchOption).ToList(); - var mediaFileList = filesOnDisk.Where(file => !MediaFileExtensions.Extensions.Contains(Path.GetExtension(file).ToLower())) + var mediaFileList = filesOnDisk.Where(file => !MediaFileExtensions.Extensions.Contains(Path.GetExtension(file))) .ToList(); _logger.Trace("{0} files were found in {1}", filesOnDisk.Count, path); diff --git a/src/NzbDrone.Core/MediaFiles/DownloadedTracksImportService.cs b/src/NzbDrone.Core/MediaFiles/DownloadedTracksImportService.cs index 44eac2baf..dea14b31c 100644 --- a/src/NzbDrone.Core/MediaFiles/DownloadedTracksImportService.cs +++ b/src/NzbDrone.Core/MediaFiles/DownloadedTracksImportService.cs @@ -1,13 +1,14 @@ +using System; using System.Collections.Generic; using System.IO; using System.Linq; using NLog; using NzbDrone.Common.Disk; using NzbDrone.Core.DecisionEngine; +using NzbDrone.Core.Download; using NzbDrone.Core.MediaFiles.TrackImport; -using NzbDrone.Core.Parser; using NzbDrone.Core.Music; -using NzbDrone.Core.Download; +using NzbDrone.Core.Parser; using NzbDrone.Core.Parser.Model; namespace NzbDrone.Core.MediaFiles @@ -98,7 +99,7 @@ namespace NzbDrone.Core.MediaFiles public bool ShouldDeleteFolder(DirectoryInfo directoryInfo, Artist artist) { var audioFiles = _diskScanService.GetNonAudioFiles(directoryInfo.FullName); - var rarFiles = _diskProvider.GetFiles(directoryInfo.FullName, SearchOption.AllDirectories).Where(f => Path.GetExtension(f) == ".rar"); + var rarFiles = _diskProvider.GetFiles(directoryInfo.FullName, SearchOption.AllDirectories).Where(f => Path.GetExtension(f).Equals(".rar", StringComparison.OrdinalIgnoreCase)); foreach (var audioFile in audioFiles) { diff --git a/src/NzbDrone.Core/MediaFiles/MediaFileExtensions.cs b/src/NzbDrone.Core/MediaFiles/MediaFileExtensions.cs index 20944d36d..a2ec33ef1 100644 --- a/src/NzbDrone.Core/MediaFiles/MediaFileExtensions.cs +++ b/src/NzbDrone.Core/MediaFiles/MediaFileExtensions.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using NzbDrone.Core.Qualities; @@ -10,7 +11,7 @@ namespace NzbDrone.Core.MediaFiles static MediaFileExtensions() { - _fileExtensions = new Dictionary + _fileExtensions = new Dictionary(StringComparer.OrdinalIgnoreCase) { { ".mp3", Quality.Unknown }, { ".m4a", Quality.Unknown }, @@ -19,7 +20,7 @@ namespace NzbDrone.Core.MediaFiles }; } - public static HashSet Extensions => new HashSet(_fileExtensions.Keys); + public static HashSet Extensions => new HashSet(_fileExtensions.Keys, StringComparer.OrdinalIgnoreCase); public static Quality GetQualityForExtension(string extension) {