diff options
Diffstat (limited to 'MediaBrowser.LocalMetadata/Parsers')
4 files changed, 29 insertions, 119 deletions
diff --git a/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs index 9a814213b3..05874ec2cf 100644 --- a/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs +++ b/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs @@ -253,18 +253,6 @@ namespace MediaBrowser.LocalMetadata.Parsers break; } - case "Website": - { - var val = reader.ReadElementContentAsString(); - - if (!string.IsNullOrWhiteSpace(val)) - { - item.HomePageUrl = val; - } - - break; - } - case "LockedFields": { var val = reader.ReadElementContentAsString(); @@ -462,13 +450,9 @@ namespace MediaBrowser.LocalMetadata.Parsers { var val = reader.ReadElementContentAsString(); - var hasTrailers = item as IHasTrailers; - if (hasTrailers != null) + if (!string.IsNullOrWhiteSpace(val)) { - if (!string.IsNullOrWhiteSpace(val)) - { - hasTrailers.AddTrailerUrl(val); - } + item.AddTrailerUrl(val); } break; } @@ -494,11 +478,7 @@ namespace MediaBrowser.LocalMetadata.Parsers { using (var subtree = reader.ReadSubtree()) { - var hasTrailers = item as IHasTrailers; - if (hasTrailers != null) - { - FetchDataFromTrailersNode(subtree, hasTrailers); - } + FetchDataFromTrailersNode(subtree, item); } } else @@ -726,9 +706,10 @@ namespace MediaBrowser.LocalMetadata.Parsers } } } - private void FetchFromSharesNode(XmlReader reader, IHasShares item) { + var list = new List<Share>(); + reader.MoveToContent(); reader.Read(); @@ -746,20 +727,24 @@ namespace MediaBrowser.LocalMetadata.Parsers reader.Read(); continue; } - using (var subtree = reader.ReadSubtree()) + + using (var subReader = reader.ReadSubtree()) { - var share = GetShareFromNode(subtree); - if (share != null) + var child = GetShare(subReader); + + if (child != null) { - item.Shares.Add(share); + list.Add(child); } } + break; } - default: - reader.Skip(); - break; + { + reader.Skip(); + break; + } } } else @@ -767,6 +752,8 @@ namespace MediaBrowser.LocalMetadata.Parsers reader.Read(); } } + + item.Shares = list.ToArray(); } private Share GetShareFromNode(XmlReader reader) @@ -1012,7 +999,7 @@ namespace MediaBrowser.LocalMetadata.Parsers } } - private void FetchDataFromTrailersNode(XmlReader reader, IHasTrailers item) + private void FetchDataFromTrailersNode(XmlReader reader, T item) { reader.MoveToContent(); reader.Read(); @@ -1193,6 +1180,11 @@ namespace MediaBrowser.LocalMetadata.Parsers linkedItem.Path = reader.ReadElementContentAsString(); break; } + case "ItemId": + { + linkedItem.LibraryItemId = reader.ReadElementContentAsString(); + break; + } default: reader.Skip(); @@ -1206,7 +1198,7 @@ namespace MediaBrowser.LocalMetadata.Parsers } // This is valid - if (!string.IsNullOrWhiteSpace(linkedItem.Path)) + if (!string.IsNullOrWhiteSpace(linkedItem.Path) || !string.IsNullOrWhiteSpace(linkedItem.LibraryItemId)) { return linkedItem; } @@ -1277,7 +1269,7 @@ namespace MediaBrowser.LocalMetadata.Parsers value = value.Trim().Trim(separator); - return string.IsNullOrWhiteSpace(value) ? new string[] { } : Split(value, separator, StringSplitOptions.RemoveEmptyEntries); + return string.IsNullOrWhiteSpace(value) ? Array.Empty<string>() : Split(value, separator, StringSplitOptions.RemoveEmptyEntries); } /// <summary> @@ -1287,7 +1279,7 @@ namespace MediaBrowser.LocalMetadata.Parsers /// <param name="separators">The separators.</param> /// <param name="options">The options.</param> /// <returns>System.String[][].</returns> - private static string[] Split(string val, char[] separators, StringSplitOptions options) + private string[] Split(string val, char[] separators, StringSplitOptions options) { return val.Split(separators, options); } diff --git a/MediaBrowser.LocalMetadata/Parsers/GameSystemXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/GameSystemXmlParser.cs index 8bf09e5463..3225603bf6 100644 --- a/MediaBrowser.LocalMetadata/Parsers/GameSystemXmlParser.cs +++ b/MediaBrowser.LocalMetadata/Parsers/GameSystemXmlParser.cs @@ -12,14 +12,13 @@ namespace MediaBrowser.LocalMetadata.Parsers { public class GameSystemXmlParser : BaseItemXmlParser<GameSystem> { - private readonly Task _cachedTask = Task.FromResult(true); public Task FetchAsync(MetadataResult<GameSystem> item, string metadataFile, CancellationToken cancellationToken) { Fetch(item, metadataFile, cancellationToken); cancellationToken.ThrowIfCancellationRequested(); - return _cachedTask; + return Task.CompletedTask; } /// <summary> diff --git a/MediaBrowser.LocalMetadata/Parsers/GameXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/GameXmlParser.cs index abce0582c6..f9b3343964 100644 --- a/MediaBrowser.LocalMetadata/Parsers/GameXmlParser.cs +++ b/MediaBrowser.LocalMetadata/Parsers/GameXmlParser.cs @@ -18,14 +18,13 @@ namespace MediaBrowser.LocalMetadata.Parsers { private readonly CultureInfo _usCulture = new CultureInfo("en-US"); - private readonly Task _cachedTask = Task.FromResult(true); public Task FetchAsync(MetadataResult<Game> item, string metadataFile, CancellationToken cancellationToken) { Fetch(item, metadataFile, cancellationToken); cancellationToken.ThrowIfCancellationRequested(); - return _cachedTask; + return Task.CompletedTask; } /// <summary> diff --git a/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs index c6ef858140..10f46e5a4a 100644 --- a/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs +++ b/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs @@ -20,21 +20,6 @@ namespace MediaBrowser.LocalMetadata.Parsers switch (reader.Name) { - case "OwnerUserId": - { - var userId = reader.ReadElementContentAsString(); - if (!item.Shares.Any(i => string.Equals(userId, i.UserId, StringComparison.OrdinalIgnoreCase))) - { - item.Shares.Add(new Share - { - UserId = userId, - CanEdit = true - }); - } - - break; - } - case "PlaylistMediaType": { item.PlaylistMediaType = reader.ReadElementContentAsString(); @@ -57,21 +42,6 @@ namespace MediaBrowser.LocalMetadata.Parsers } break; - case "Shares": - - if (!reader.IsEmptyElement) - { - using (var subReader = reader.ReadSubtree()) - { - FetchFromSharesNode(subReader, item); - } - } - else - { - reader.Read(); - } - break; - default: base.FetchDataFromXmlNode(reader, result); break; @@ -128,56 +98,6 @@ namespace MediaBrowser.LocalMetadata.Parsers item.LinkedChildren = list.ToArray(list.Count); } - private void FetchFromSharesNode(XmlReader reader, Playlist item) - { - var list = new List<Share>(); - - reader.MoveToContent(); - reader.Read(); - - // Loop through each element - while (!reader.EOF && reader.ReadState == ReadState.Interactive) - { - if (reader.NodeType == XmlNodeType.Element) - { - switch (reader.Name) - { - case "Share": - { - if (reader.IsEmptyElement) - { - reader.Read(); - continue; - } - - using (var subReader = reader.ReadSubtree()) - { - var child = GetShare(subReader); - - if (child != null) - { - list.Add(child); - } - } - - break; - } - default: - { - reader.Skip(); - break; - } - } - } - else - { - reader.Read(); - } - } - - item.Shares = list; - } - public PlaylistXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem) { } |
