aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Providers
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-01-14 10:50:39 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-01-14 10:50:39 -0500
commitce13ff95ad92fb2ee9448ac0a8d4054a6d043b14 (patch)
treef16e1fa71256847fb23e17c86c31679b0e57dbb7 /MediaBrowser.Controller/Providers
parenteb42293901e15ef2f334390681ef71a84e247886 (diff)
support plot keywords
Diffstat (limited to 'MediaBrowser.Controller/Providers')
-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 ea21e18b00..72cb0d73e2 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>