aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-11-02 13:29:06 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-11-02 13:29:06 -0400
commit8f64a5555b055f42d4c3814725a4e961c2fc980d (patch)
tree2f61e242605969f80dbcc8e6bb96e1dbc0147ff4
parent7cf0f79f85e386a4346a74046ee36f0d30c0dcdd (diff)
update xml parsing
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs19
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs19
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs38
-rw-r--r--MediaBrowser.Providers/TV/MissingEpisodeProvider.cs14
-rw-r--r--MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs128
5 files changed, 129 insertions, 89 deletions
diff --git a/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs
index 0c9226cf0..31b13056c 100644
--- a/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs
+++ b/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs
@@ -1329,11 +1329,13 @@ namespace MediaBrowser.LocalMetadata.Parsers
protected Share GetShare(XmlReader reader)
{
- reader.MoveToContent();
-
var item = new Share();
- while (reader.Read())
+ reader.MoveToContent();
+ reader.Read();
+
+ // Loop through each element
+ while (!reader.EOF)
{
if (reader.NodeType == XmlNodeType.Element)
{
@@ -1350,12 +1352,17 @@ namespace MediaBrowser.LocalMetadata.Parsers
item.CanEdit = string.Equals(reader.ReadElementContentAsString(), "true", StringComparison.OrdinalIgnoreCase);
break;
}
-
default:
- reader.Skip();
- break;
+ {
+ reader.Skip();
+ break;
+ }
}
}
+ else
+ {
+ reader.Read();
+ }
}
// This is valid
diff --git a/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs
index d792373bf..c42b44f9e 100644
--- a/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs
+++ b/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs
@@ -31,11 +31,13 @@ namespace MediaBrowser.LocalMetadata.Parsers
private void FetchFromCollectionItemsNode(XmlReader reader, MetadataResult<BoxSet> item)
{
- reader.MoveToContent();
-
var list = new List<LinkedChild>();
- while (reader.Read())
+ reader.MoveToContent();
+ reader.Read();
+
+ // Loop through each element
+ while (!reader.EOF)
{
if (reader.NodeType == XmlNodeType.Element)
{
@@ -55,12 +57,17 @@ namespace MediaBrowser.LocalMetadata.Parsers
break;
}
-
default:
- reader.Skip();
- break;
+ {
+ reader.Skip();
+ break;
+ }
}
}
+ else
+ {
+ reader.Read();
+ }
}
item.Item.LinkedChildren = list;
diff --git a/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs
index 4c45545fc..ee986ae2d 100644
--- a/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs
+++ b/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs
@@ -65,11 +65,13 @@ namespace MediaBrowser.LocalMetadata.Parsers
private void FetchFromCollectionItemsNode(XmlReader reader, Playlist item)
{
- reader.MoveToContent();
-
var list = new List<LinkedChild>();
- while (reader.Read())
+ reader.MoveToContent();
+ reader.Read();
+
+ // Loop through each element
+ while (!reader.EOF)
{
if (reader.NodeType == XmlNodeType.Element)
{
@@ -89,12 +91,17 @@ namespace MediaBrowser.LocalMetadata.Parsers
break;
}
-
default:
- reader.Skip();
- break;
+ {
+ reader.Skip();
+ break;
+ }
}
}
+ else
+ {
+ reader.Read();
+ }
}
item.LinkedChildren = list;
@@ -102,11 +109,13 @@ namespace MediaBrowser.LocalMetadata.Parsers
private void FetchFromSharesNode(XmlReader reader, Playlist item)
{
- reader.MoveToContent();
-
var list = new List<Share>();
- while (reader.Read())
+ reader.MoveToContent();
+ reader.Read();
+
+ // Loop through each element
+ while (!reader.EOF)
{
if (reader.NodeType == XmlNodeType.Element)
{
@@ -126,12 +135,17 @@ namespace MediaBrowser.LocalMetadata.Parsers
break;
}
-
default:
- reader.Skip();
- break;
+ {
+ reader.Skip();
+ break;
+ }
}
}
+ else
+ {
+ reader.Read();
+ }
}
item.Shares = list;
diff --git a/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs b/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs
index 74a968062..3c1bc2118 100644
--- a/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs
+++ b/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs
@@ -513,9 +513,10 @@ namespace MediaBrowser.Providers.TV
using (var reader = XmlReader.Create(streamReader, settings))
{
reader.MoveToContent();
+ reader.Read();
// Loop through each element
- while (reader.Read())
+ while (!reader.EOF)
{
if (reader.NodeType == XmlNodeType.Element)
{
@@ -546,12 +547,17 @@ namespace MediaBrowser.Providers.TV
break;
}
-
default:
- reader.Skip();
- break;
+ {
+ reader.Skip();
+ break;
+ }
}
}
+ else
+ {
+ reader.Read();
+ }
}
}
}
diff --git a/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs b/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs
index 649fec824..5bbcc9d15 100644
--- a/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs
+++ b/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs
@@ -82,67 +82,73 @@ namespace MediaBrowser.Providers.TV
// Use XmlReader for best performance
using (reader)
{
- reader.MoveToContent();
-
- // Loop through each element
- while (reader.Read())
- {
- cancellationToken.ThrowIfCancellationRequested();
-
- if (reader.NodeType == XmlNodeType.Element)
- {
- switch (reader.Name)
- {
- case "thumb_width":
- {
- var val = reader.ReadElementContentAsString();
-
- if (!string.IsNullOrWhiteSpace(val))
- {
- int rval;
-
- // int.TryParse is local aware, so it can be probamatic, force us culture
- if (int.TryParse(val, NumberStyles.Integer, _usCulture, out rval))
- {
- width = rval;
- }
- }
- break;
- }
-
- case "thumb_height":
- {
- var val = reader.ReadElementContentAsString();
-
- if (!string.IsNullOrWhiteSpace(val))
- {
- int rval;
-
- // int.TryParse is local aware, so it can be probamatic, force us culture
- if (int.TryParse(val, NumberStyles.Integer, _usCulture, out rval))
- {
- height = rval;
- }
- }
- break;
- }
-
- case "filename":
- {
- var val = reader.ReadElementContentAsString();
- if (!string.IsNullOrWhiteSpace(val))
- {
- url = TVUtils.BannerUrl + val;
- }
- break;
- }
-
- default:
- reader.Skip();
- break;
- }
- }
- }
+ reader.MoveToContent();
+ reader.Read();
+
+ // Loop through each element
+ while (!reader.EOF)
+ {
+ if (reader.NodeType == XmlNodeType.Element)
+ {
+ cancellationToken.ThrowIfCancellationRequested();
+
+ switch (reader.Name)
+ {
+ case "thumb_width":
+ {
+ var val = reader.ReadElementContentAsString();
+
+ if (!string.IsNullOrWhiteSpace(val))
+ {
+ int rval;
+
+ // int.TryParse is local aware, so it can be probamatic, force us culture
+ if (int.TryParse(val, NumberStyles.Integer, _usCulture, out rval))
+ {
+ width = rval;
+ }
+ }
+ break;
+ }
+
+ case "thumb_height":
+ {
+ var val = reader.ReadElementContentAsString();
+
+ if (!string.IsNullOrWhiteSpace(val))
+ {
+ int rval;
+
+ // int.TryParse is local aware, so it can be probamatic, force us culture
+ if (int.TryParse(val, NumberStyles.Integer, _usCulture, out rval))
+ {
+ height = rval;
+ }
+ }
+ break;
+ }
+
+ case "filename":
+ {
+ var val = reader.ReadElementContentAsString();
+ if (!string.IsNullOrWhiteSpace(val))
+ {
+ url = TVUtils.BannerUrl + val;
+ }
+ break;
+ }
+ default:
+ {
+ reader.Skip();
+ break;
+ }
+ }
+ }
+ else
+ {
+ reader.Read();
+ }
+ }
}
if (string.IsNullOrEmpty(url))