diff options
Diffstat (limited to 'MediaBrowser.Controller/Providers/BaseItemXmlParser.cs')
| -rw-r--r-- | MediaBrowser.Controller/Providers/BaseItemXmlParser.cs | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs index ea21e18b0..72cb0d73e 100644 --- a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs +++ b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs @@ -79,6 +79,11 @@ namespace MediaBrowser.Controller.Providers hasTags.Tags.Clear(); } + var hasKeywords = item as IHasKeywords; + if (hasKeywords != null) + { + hasKeywords.Keywords.Clear(); + } var hasTrailers = item as IHasTrailers; if (hasTrailers != null) @@ -747,6 +752,19 @@ namespace MediaBrowser.Controller.Providers break; } + case "PlotKeywords": + { + using (var subtree = reader.ReadSubtree()) + { + var hasTags = item as IHasKeywords; + if (hasTags != null) + { + FetchFromKeywordsNode(subtree, hasTags); + } + } + break; + } + case "Persons": { using (var subtree = reader.ReadSubtree()) @@ -912,6 +930,35 @@ namespace MediaBrowser.Controller.Providers } } + private void FetchFromKeywordsNode(XmlReader reader, IHasKeywords item) + { + reader.MoveToContent(); + + while (reader.Read()) + { + 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; + } + } + } + } + /// <summary> /// Fetches the data from persons node. /// </summary> |
