aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.LocalMetadata
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.LocalMetadata')
-rw-r--r--MediaBrowser.LocalMetadata/Images/CollectionFolderImageProvider.cs4
-rw-r--r--MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs4
-rw-r--r--MediaBrowser.LocalMetadata/Images/ImagesByNameImageProvider.cs58
-rw-r--r--MediaBrowser.LocalMetadata/Images/InternalMetadataFolderImageProvider.cs4
-rw-r--r--MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs36
-rw-r--r--MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj1
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs83
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs3
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs3
-rw-r--r--MediaBrowser.LocalMetadata/Savers/BaseXmlSaver.cs31
-rw-r--r--MediaBrowser.LocalMetadata/Savers/GameXmlSaver.cs2
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");
}