diff options
| author | Luke <luke.pulverenti@gmail.com> | 2017-08-09 15:59:26 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-08-09 15:59:26 -0400 |
| commit | c2996935c8a873662e6d301f139c88df8a542ed2 (patch) | |
| tree | cf405f91e893fe6a3fc20dfa1622f027666d4848 /MediaBrowser.LocalMetadata | |
| parent | ab834f8fdffb64b562ece0512a53f361c62f7f6f (diff) | |
| parent | 7a74c705e584774534b74e11c1ab86144cb454c6 (diff) | |
Merge pull request #2800 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.LocalMetadata')
8 files changed, 28 insertions, 105 deletions
diff --git a/MediaBrowser.LocalMetadata/Images/CollectionFolderImageProvider.cs b/MediaBrowser.LocalMetadata/Images/CollectionFolderImageProvider.cs index 954e0c322..4ec2eeeb1 100644 --- a/MediaBrowser.LocalMetadata/Images/CollectionFolderImageProvider.cs +++ b/MediaBrowser.LocalMetadata/Images/CollectionFolderImageProvider.cs @@ -21,7 +21,7 @@ namespace MediaBrowser.LocalMetadata.Images get { return "Collection Folder Images"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is CollectionFolder && item.SupportsLocalMetadata; } @@ -35,7 +35,7 @@ namespace MediaBrowser.LocalMetadata.Images } } - public List<LocalImageInfo> GetImages(IHasImages item, IDirectoryService directoryService) + public List<LocalImageInfo> GetImages(IHasMetadata item, IDirectoryService directoryService) { var collectionFolder = (CollectionFolder)item; diff --git a/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs b/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs index 2b5858aec..881d2a85a 100644 --- a/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs +++ b/MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs @@ -31,12 +31,12 @@ namespace MediaBrowser.LocalMetadata.Images get { return 0; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { return item is Episode && item.SupportsLocalMetadata; } - public List<LocalImageInfo> GetImages(IHasImages item, IDirectoryService directoryService) + public List<LocalImageInfo> GetImages(IHasMetadata item, IDirectoryService directoryService) { var parentPath = _fileSystem.GetDirectoryName(item.Path); diff --git a/MediaBrowser.LocalMetadata/Images/ImagesByNameImageProvider.cs b/MediaBrowser.LocalMetadata/Images/ImagesByNameImageProvider.cs deleted file mode 100644 index 83554f044..000000000 --- a/MediaBrowser.LocalMetadata/Images/ImagesByNameImageProvider.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System.Collections.Generic; -using System.IO; - -using MediaBrowser.Model.IO; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.IO; -using MediaBrowser.Controller.Providers; - -namespace MediaBrowser.LocalMetadata.Images -{ - public class ImagesByNameImageProvider : ILocalImageFileProvider, IHasOrder - { - private readonly IFileSystem _fileSystem; - private readonly IServerConfigurationManager _config; - - public ImagesByNameImageProvider(IFileSystem fileSystem, IServerConfigurationManager config) - { - _fileSystem = fileSystem; - _config = config; - } - - public string Name - { - get { return "Images By Name"; } - } - - public bool Supports(IHasImages item) - { - return item is CollectionFolder; - } - - public int Order - { - get - { - // Run after LocalImageProvider, and after CollectionFolderImageProvider - return 2; - } - } - - public List<LocalImageInfo> GetImages(IHasImages item, IDirectoryService directoryService) - { - var name = _fileSystem.GetValidFilename(item.Name); - - var path = Path.Combine(_config.ApplicationPaths.GeneralPath, name); - - try - { - return new LocalImageProvider(_fileSystem).GetImages(item, path, false, directoryService); - } - catch (IOException) - { - return new List<LocalImageInfo>(); - } - } - } -} diff --git a/MediaBrowser.LocalMetadata/Images/InternalMetadataFolderImageProvider.cs b/MediaBrowser.LocalMetadata/Images/InternalMetadataFolderImageProvider.cs index 47579f870..469a31442 100644 --- a/MediaBrowser.LocalMetadata/Images/InternalMetadataFolderImageProvider.cs +++ b/MediaBrowser.LocalMetadata/Images/InternalMetadataFolderImageProvider.cs @@ -26,7 +26,7 @@ namespace MediaBrowser.LocalMetadata.Images get { return "Internal Images"; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { if (item is Photo) { @@ -61,7 +61,7 @@ namespace MediaBrowser.LocalMetadata.Images } } - public List<LocalImageInfo> GetImages(IHasImages item, IDirectoryService directoryService) + public List<LocalImageInfo> GetImages(IHasMetadata item, IDirectoryService directoryService) { var path = item.GetInternalMetadataPath(); diff --git a/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs b/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs index 51572d20c..1b61f079e 100644 --- a/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs +++ b/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs @@ -32,7 +32,7 @@ namespace MediaBrowser.LocalMetadata.Images get { return 0; } } - public bool Supports(IHasImages item) + public bool Supports(IHasMetadata item) { if (item.SupportsLocalMetadata) { @@ -63,7 +63,7 @@ namespace MediaBrowser.LocalMetadata.Images return false; } - private IEnumerable<FileSystemMetadata> GetFiles(IHasImages item, bool includeDirectories, IDirectoryService directoryService) + private IEnumerable<FileSystemMetadata> GetFiles(IHasMetadata item, bool includeDirectories, IDirectoryService directoryService) { if (item.LocationType != LocationType.FileSystem) { @@ -85,7 +85,7 @@ namespace MediaBrowser.LocalMetadata.Images .OrderBy(i => BaseItem.SupportedImageExtensionsList.IndexOf(i.Extension ?? string.Empty)); } - public List<LocalImageInfo> GetImages(IHasImages item, IDirectoryService directoryService) + public List<LocalImageInfo> GetImages(IHasMetadata item, IDirectoryService directoryService) { var files = GetFiles(item, true, directoryService).ToList(); @@ -96,30 +96,14 @@ namespace MediaBrowser.LocalMetadata.Images return list; } - public List<LocalImageInfo> GetImages(IHasImages item, string path, bool isPathInMediaFolder, IDirectoryService directoryService) + public List<LocalImageInfo> GetImages(IHasMetadata item, string path, bool isPathInMediaFolder, IDirectoryService directoryService) { return GetImages(item, new[] { path }, isPathInMediaFolder, directoryService); } - public List<LocalImageInfo> GetImages(IHasImages item, IEnumerable<string> paths, bool arePathsInMediaFolders, IDirectoryService directoryService) + public List<LocalImageInfo> GetImages(IHasMetadata item, IEnumerable<string> paths, bool arePathsInMediaFolders, IDirectoryService directoryService) { - IEnumerable<FileSystemMetadata> files; - - if (arePathsInMediaFolders) - { - files = paths.SelectMany(i => _fileSystem.GetFiles(i, BaseItem.SupportedImageExtensions, true, false)); - } - else - { - files = paths.SelectMany(directoryService.GetFiles) - .Where(i => - { - var ext = i.Extension; - - return !string.IsNullOrEmpty(ext) && - BaseItem.SupportedImageExtensions.Contains(ext, StringComparer.OrdinalIgnoreCase); - }); - } + IEnumerable<FileSystemMetadata> files = paths.SelectMany(i => _fileSystem.GetFiles(i, BaseItem.SupportedImageExtensions, true, false)); files = files .OrderBy(i => BaseItem.SupportedImageExtensionsList.IndexOf(i.Extension ?? string.Empty)); @@ -131,7 +115,7 @@ namespace MediaBrowser.LocalMetadata.Images return list; } - private void PopulateImages(IHasImages item, List<LocalImageInfo> images, List<FileSystemMetadata> files, bool supportParentSeriesFiles, IDirectoryService directoryService) + private void PopulateImages(IHasMetadata item, List<LocalImageInfo> images, List<FileSystemMetadata> files, bool supportParentSeriesFiles, IDirectoryService directoryService) { if (supportParentSeriesFiles) { @@ -179,7 +163,7 @@ namespace MediaBrowser.LocalMetadata.Images PopulateScreenshots(images, files, imagePrefix, isInMixedFolder); } - private void PopulatePrimaryImages(IHasImages item, List<LocalImageInfo> images, List<FileSystemMetadata> files, string imagePrefix, bool isInMixedFolder) + private void PopulatePrimaryImages(IHasMetadata item, List<LocalImageInfo> images, List<FileSystemMetadata> files, string imagePrefix, bool isInMixedFolder) { var names = new List<string> { @@ -231,7 +215,7 @@ namespace MediaBrowser.LocalMetadata.Images } } - private void PopulateBackdrops(IHasImages item, List<LocalImageInfo> images, List<FileSystemMetadata> files, string imagePrefix, bool isInMixedFolder, IDirectoryService directoryService) + private void PopulateBackdrops(IHasMetadata item, List<LocalImageInfo> images, List<FileSystemMetadata> files, string imagePrefix, bool isInMixedFolder, IDirectoryService directoryService) { if (!string.IsNullOrEmpty(item.Path)) { diff --git a/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj b/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj index 9a7371a66..0986ffdc2 100644 --- a/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj +++ b/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj @@ -39,7 +39,6 @@ <Compile Include="BaseXmlProvider.cs" /> <Compile Include="Images\CollectionFolderImageProvider.cs" /> <Compile Include="Images\EpisodeLocalImageProvider.cs" /> - <Compile Include="Images\ImagesByNameImageProvider.cs" /> <Compile Include="Images\InternalMetadataFolderImageProvider.cs" /> <Compile Include="Images\LocalImageProvider.cs" /> <Compile Include="Parsers\BaseItemXmlParser.cs" /> diff --git a/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs index c728e2ce2..d9bc35822 100644 --- a/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs +++ b/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs @@ -246,7 +246,7 @@ namespace MediaBrowser.LocalMetadata.Parsers var person = item as Person; if (person != null) { - person.ProductionLocations = new List<string> { val }; + person.ProductionLocations = new string[] { val }; } } @@ -267,13 +267,11 @@ namespace MediaBrowser.LocalMetadata.Parsers case "LockedFields": { - var fields = new List<MetadataFields>(); - var val = reader.ReadElementContentAsString(); if (!string.IsNullOrWhiteSpace(val)) { - var list = val.Split('|').Select(i => + item.LockedFields = val.Split('|').Select(i => { MetadataFields field; @@ -284,13 +282,9 @@ namespace MediaBrowser.LocalMetadata.Parsers return null; - }).Where(i => i.HasValue).Select(i => i.Value); - - fields.AddRange(list); + }).Where(i => i.HasValue).Select(i => i.Value).ToArray(); } - item.LockedFields = fields; - break; } @@ -933,6 +927,8 @@ namespace MediaBrowser.LocalMetadata.Parsers reader.MoveToContent(); reader.Read(); + var tags = new List<string>(); + // Loop through each element while (!reader.EOF && reader.ReadState == ReadState.Interactive) { @@ -946,7 +942,7 @@ namespace MediaBrowser.LocalMetadata.Parsers if (!string.IsNullOrWhiteSpace(tag)) { - item.AddTag(tag); + tags.Add(tag); } break; } @@ -961,6 +957,8 @@ namespace MediaBrowser.LocalMetadata.Parsers reader.Read(); } } + + item.Tags = tags.Distinct(StringComparer.Ordinal).ToArray(); } /// <summary> diff --git a/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs b/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs index 0112d4efa..dbfd9a40c 100644 --- a/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs +++ b/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs @@ -302,9 +302,9 @@ namespace MediaBrowser.LocalMetadata.Savers writer.WriteElementString("LockData", item.IsLocked.ToString().ToLower()); - if (item.LockedFields.Count > 0) + if (item.LockedFields.Length > 0) { - writer.WriteElementString("LockedFields", string.Join("|", item.LockedFields.Select(i => i.ToString()).ToArray())); + writer.WriteElementString("LockedFields", string.Join("|", item.LockedFields)); } if (item.CriticRating.HasValue) @@ -377,7 +377,7 @@ namespace MediaBrowser.LocalMetadata.Savers } } - if (item.ProductionLocations.Count > 0) + if (item.ProductionLocations.Length > 0) { writer.WriteStartElement("Countries"); @@ -469,7 +469,7 @@ namespace MediaBrowser.LocalMetadata.Savers writer.WriteEndElement(); } - if (item.Studios.Count > 0) + if (item.Studios.Length > 0) { writer.WriteStartElement("Studios"); @@ -481,7 +481,7 @@ namespace MediaBrowser.LocalMetadata.Savers writer.WriteEndElement(); } - if (item.Tags.Count > 0) + if (item.Tags.Length > 0) { writer.WriteStartElement("Tags"); |
