aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Providers/BaseItemXmlParser.cs')
-rw-r--r--MediaBrowser.Controller/Providers/BaseItemXmlParser.cs47
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>