diff options
| author | Luke <luke.pulverenti@gmail.com> | 2017-08-13 16:21:10 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-08-13 16:21:10 -0400 |
| commit | dc578f3742b474bd85d556299a6b2763f4d9acda (patch) | |
| tree | cc4a8d1de140ece77160349e51a64857656ab373 /MediaBrowser.LocalMetadata | |
| parent | f6ed934a7e32bf10c3a141773d713bf3b19e784f (diff) | |
| parent | 7f200f057d33e3ef52b1b1b1bf1767577295317e (diff) | |
Merge pull request #2815 from MediaBrowser/beta
Beta
Diffstat (limited to 'MediaBrowser.LocalMetadata')
11 files changed, 36 insertions, 193 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 b449ad6e0..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) { @@ -144,7 +128,7 @@ namespace MediaBrowser.LocalMetadata.Images } var imagePrefix = item.FileNameWithoutExtension + "-"; - var isInMixedFolder = item.DetectIsInMixedFolder(); + var isInMixedFolder = item.IsInMixedFolder; PopulatePrimaryImages(item, images, files, imagePrefix, isInMixedFolder); @@ -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 2edccf8c8..9a814213b 100644 --- a/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs +++ b/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs @@ -179,18 +179,6 @@ namespace MediaBrowser.LocalMetadata.Parsers item.Name = reader.ReadElementContentAsString(); break; - case "Type": - { - var type = reader.ReadElementContentAsString(); - - if (!string.IsNullOrWhiteSpace(type) && !type.Equals("none", StringComparison.OrdinalIgnoreCase)) - { - item.DisplayMediaType = type; - } - - break; - } - case "CriticRating": { var text = reader.ReadElementContentAsString(); @@ -258,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 }; } } @@ -279,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; @@ -296,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; } @@ -485,7 +467,7 @@ namespace MediaBrowser.LocalMetadata.Parsers { if (!string.IsNullOrWhiteSpace(val)) { - hasTrailers.AddTrailerUrl(val, false); + hasTrailers.AddTrailerUrl(val); } } break; @@ -638,22 +620,6 @@ namespace MediaBrowser.LocalMetadata.Parsers break; } - case "PlotKeywords": - { - if (!reader.IsEmptyElement) - { - using (var subtree = reader.ReadSubtree()) - { - FetchFromKeywordsNode(subtree, item); - } - } - else - { - reader.Read(); - } - break; - } - case "Persons": { if (!reader.IsEmptyElement) @@ -961,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) { @@ -974,7 +942,7 @@ namespace MediaBrowser.LocalMetadata.Parsers if (!string.IsNullOrWhiteSpace(tag)) { - item.AddTag(tag); + tags.Add(tag); } break; } @@ -989,41 +957,8 @@ namespace MediaBrowser.LocalMetadata.Parsers reader.Read(); } } - } - private void FetchFromKeywordsNode(XmlReader reader, BaseItem item) - { - reader.MoveToContent(); - reader.Read(); - - // Loop through each element - while (!reader.EOF && reader.ReadState == ReadState.Interactive) - { - if (reader.NodeType == XmlNodeType.Element) - { - switch (reader.Name) - { - case "PlotKeyword": - { - var tag = reader.ReadElementContentAsString(); - - if (!string.IsNullOrWhiteSpace(tag)) - { - item.AddKeyword(tag); - } - break; - } - - default: - reader.Skip(); - break; - } - } - else - { - reader.Read(); - } - } + item.Tags = tags.Distinct(StringComparer.Ordinal).ToArray(); } /// <summary> @@ -1095,7 +1030,7 @@ namespace MediaBrowser.LocalMetadata.Parsers if (!string.IsNullOrWhiteSpace(val)) { - item.AddTrailerUrl(val, false); + item.AddTrailerUrl(val); } break; } diff --git a/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs index a0f0e4476..33eb75edb 100644 --- a/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs +++ b/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs @@ -6,6 +6,7 @@ using System.Collections.Generic; using System.Xml; using MediaBrowser.Model.IO; using MediaBrowser.Model.Xml; +using MediaBrowser.Model.Extensions; namespace MediaBrowser.LocalMetadata.Parsers { @@ -84,7 +85,7 @@ namespace MediaBrowser.LocalMetadata.Parsers } } - item.Item.LinkedChildren = list; + item.Item.LinkedChildren = list.ToArray(list.Count); } public BoxSetXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem) diff --git a/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs index 695fe2b12..c6ef85814 100644 --- a/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs +++ b/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs @@ -8,6 +8,7 @@ using System.Linq; using System.Xml; using MediaBrowser.Model.IO; using MediaBrowser.Model.Xml; +using MediaBrowser.Model.Extensions; namespace MediaBrowser.LocalMetadata.Parsers { @@ -124,7 +125,7 @@ namespace MediaBrowser.LocalMetadata.Parsers } } - item.LinkedChildren = list; + item.LinkedChildren = list.ToArray(list.Count); } private void FetchFromSharesNode(XmlReader reader, Playlist item) diff --git a/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs b/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs index 4eec33003..259f42391 100644 --- a/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs +++ b/MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs @@ -80,7 +80,6 @@ namespace MediaBrowser.LocalMetadata.Savers "Overview", "Persons", - "PlotKeywords", "PremiereDate", "ProductionYear", "Rating", @@ -107,7 +106,6 @@ namespace MediaBrowser.LocalMetadata.Savers "Trailers", "TVcomId", "TvDbId", - "Type", "TVRageId", "Website", "Zap2ItId", @@ -304,14 +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())); - } - - if (!string.IsNullOrEmpty(item.DisplayMediaType)) - { - writer.WriteElementString("Type", item.DisplayMediaType); + writer.WriteElementString("LockedFields", string.Join("|", item.LockedFields)); } if (item.CriticRating.HasValue) @@ -371,7 +364,7 @@ namespace MediaBrowser.LocalMetadata.Savers var hasTrailers = item as IHasTrailers; if (hasTrailers != null) { - if (hasTrailers.RemoteTrailers.Count > 0) + if (hasTrailers.RemoteTrailers.Length > 0) { writer.WriteStartElement("Trailers"); @@ -384,7 +377,7 @@ namespace MediaBrowser.LocalMetadata.Savers } } - if (item.ProductionLocations.Count > 0) + if (item.ProductionLocations.Length > 0) { writer.WriteStartElement("Countries"); @@ -476,7 +469,7 @@ namespace MediaBrowser.LocalMetadata.Savers writer.WriteEndElement(); } - if (item.Studios.Count > 0) + if (item.Studios.Length > 0) { writer.WriteStartElement("Studios"); @@ -488,7 +481,7 @@ namespace MediaBrowser.LocalMetadata.Savers writer.WriteEndElement(); } - if (item.Tags.Count > 0) + if (item.Tags.Length > 0) { writer.WriteStartElement("Tags"); @@ -500,18 +493,6 @@ namespace MediaBrowser.LocalMetadata.Savers writer.WriteEndElement(); } - if (item.Keywords.Count > 0) - { - writer.WriteStartElement("PlotKeywords"); - - foreach (var tag in item.Keywords) - { - writer.WriteElementString("PlotKeyword", tag); - } - - writer.WriteEndElement(); - } - var people = libraryManager.GetPeople(item); if (people.Count > 0) diff --git a/MediaBrowser.LocalMetadata/Savers/GameXmlSaver.cs b/MediaBrowser.LocalMetadata/Savers/GameXmlSaver.cs index 26c4b4a93..24c5a4679 100644 --- a/MediaBrowser.LocalMetadata/Savers/GameXmlSaver.cs +++ b/MediaBrowser.LocalMetadata/Savers/GameXmlSaver.cs @@ -65,7 +65,7 @@ namespace MediaBrowser.LocalMetadata.Savers public static string GetGameSavePath(Game item) { - if (item.DetectIsInMixedFolder()) + if (item.IsInMixedFolder) { return Path.ChangeExtension(item.Path, ".xml"); } |
