diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-11-10 22:41:55 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-11-10 22:41:55 -0500 |
| commit | 1fea9ad926801c85f436e34a8756bfdc41a43a0d (patch) | |
| tree | c7c9487320cfdccbf210d9d01b28685d9bf110db /MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs | |
| parent | 4d0a47e5555e4b04967c679dd4e54e937a0bd7ca (diff) | |
fixes #945 - Add genre views to dlna
Diffstat (limited to 'MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs')
| -rw-r--r-- | MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs | 29 |
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 |
