aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs')
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs45
1 files changed, 45 insertions, 0 deletions
diff --git a/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs
index a12724ff7..02457ee73 100644
--- a/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs
+++ b/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs
@@ -50,6 +50,14 @@ namespace MediaBrowser.LocalMetadata.Parsers
}
break;
+ case "Shares":
+
+ using (var subReader = reader.ReadSubtree())
+ {
+ FetchFromSharesNode(subReader, item);
+ }
+ break;
+
default:
base.FetchDataFromXmlNode(reader, item);
break;
@@ -92,5 +100,42 @@ namespace MediaBrowser.LocalMetadata.Parsers
item.LinkedChildren = list;
}
+
+ private void FetchFromSharesNode(XmlReader reader, Playlist item)
+ {
+ reader.MoveToContent();
+
+ var list = new List<Share>();
+
+ while (reader.Read())
+ {
+ if (reader.NodeType == XmlNodeType.Element)
+ {
+ switch (reader.Name)
+ {
+ case "Share":
+ {
+ using (var subReader = reader.ReadSubtree())
+ {
+ var child = GetShare(subReader);
+
+ if (child != null)
+ {
+ list.Add(child);
+ }
+ }
+
+ break;
+ }
+
+ default:
+ reader.Skip();
+ break;
+ }
+ }
+ }
+
+ item.Shares = list;
+ }
}
}