aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-11-10 22:41:55 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-11-10 22:41:55 -0500
commit1fea9ad926801c85f436e34a8756bfdc41a43a0d (patch)
treec7c9487320cfdccbf210d9d01b28685d9bf110db /MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
parent4d0a47e5555e4b04967c679dd4e54e937a0bd7ca (diff)
fixes #945 - Add genre views to dlna
Diffstat (limited to 'MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs')
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs29
1 files changed, 29 insertions, 0 deletions
diff --git a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
index 8b73107bf..b5c4bef90 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
@@ -69,6 +69,11 @@ namespace MediaBrowser.XbmcMetadata.Parsers
Fetch(item, userDataList, metadataFile, settings, cancellationToken);
}
+ protected virtual bool SupportsUrlAfterClosingXmlTag
+ {
+ get { return false; }
+ }
+
/// <summary>
/// Fetches the specified item.
/// </summary>
@@ -79,6 +84,30 @@ namespace MediaBrowser.XbmcMetadata.Parsers
/// <param name="cancellationToken">The cancellation token.</param>
private void Fetch(T item, List<UserItemData> userDataList, string metadataFile, XmlReaderSettings settings, CancellationToken cancellationToken)
{
+ if (!SupportsUrlAfterClosingXmlTag)
+ {
+ using (var streamReader = BaseNfoSaver.GetStreamReader(metadataFile))
+ {
+ // Use XmlReader for best performance
+ using (var reader = XmlReader.Create(streamReader, settings))
+ {
+ reader.MoveToContent();
+
+ // Loop through each element
+ while (reader.Read())
+ {
+ cancellationToken.ThrowIfCancellationRequested();
+
+ if (reader.NodeType == XmlNodeType.Element)
+ {
+ FetchDataFromXmlNode(reader, item, userDataList);
+ }
+ }
+ }
+ }
+ return;
+ }
+
using (var streamReader = BaseNfoSaver.GetStreamReader(metadataFile))
{
// Need to handle a url after the xml data