diff options
Diffstat (limited to 'MediaBrowser.Controller/Providers/BaseItemXmlParser.cs')
| -rw-r--r-- | MediaBrowser.Controller/Providers/BaseItemXmlParser.cs | 86 |
1 files changed, 84 insertions, 2 deletions
diff --git a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs index 04d92f3a6..00b85a0a6 100644 --- a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs +++ b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs @@ -252,7 +252,7 @@ namespace MediaBrowser.Controller.Providers } break; } - + case "CustomRating": { var val = reader.ReadElementContentAsString(); @@ -476,7 +476,7 @@ namespace MediaBrowser.Controller.Providers item.SetProviderId(MetadataProviders.Tmdb, tmdb); } break; - + case "CollectionNumber": var tmdbCollection = reader.ReadElementContentAsString(); if (!string.IsNullOrWhiteSpace(tmdbCollection)) @@ -523,6 +523,10 @@ namespace MediaBrowser.Controller.Providers FetchFromStudiosNode(reader.ReadSubtree(), item); break; + case "MediaInfo": + FetchFromMediaInfoNode(reader.ReadSubtree(), item); + break; + default: reader.Skip(); break; @@ -530,6 +534,84 @@ namespace MediaBrowser.Controller.Providers } /// <summary> + /// Fetches from media info node. + /// </summary> + /// <param name="reader">The reader.</param> + /// <param name="item">The item.</param> + private void FetchFromMediaInfoNode(XmlReader reader, T item) + { + reader.MoveToContent(); + + while (reader.Read()) + { + if (reader.NodeType == XmlNodeType.Element) + { + switch (reader.Name) + { + case "Video": + FetchFromMediaInfoVideoNode(reader.ReadSubtree(), item); + break; + + default: + reader.Skip(); + break; + } + } + } + } + + /// <summary> + /// Fetches from media info video node. + /// </summary> + /// <param name="reader">The reader.</param> + /// <param name="item">The item.</param> + private void FetchFromMediaInfoVideoNode(XmlReader reader, T item) + { + reader.MoveToContent(); + + while (reader.Read()) + { + if (reader.NodeType == XmlNodeType.Element) + { + switch (reader.Name) + { + case "3DFormat": + { + var video = item as Video; + + if (video != null) + { + var val = reader.ReadElementContentAsString(); + + if (string.Equals("HSBS", val)) + { + video.Video3DFormat = Video3DFormat.HalfSideBySide; + } + else if (string.Equals("HTAB", val)) + { + video.Video3DFormat = Video3DFormat.HalfTopAndBottom; + } + else if (string.Equals("FTAB", val)) + { + video.Video3DFormat = Video3DFormat.FullTopAndBottom; + } + else if (string.Equals("FSBS", val)) + { + video.Video3DFormat = Video3DFormat.FullSideBySide; + } + } + break; + } + + default: + reader.Skip(); + break; + } + } + } + } + + /// <summary> /// Fetches from taglines node. /// </summary> /// <param name="reader">The reader.</param> |
