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.cs86
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>