diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-12-02 15:10:35 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-12-02 15:10:35 -0500 |
| commit | aef79a796dd029849f3d99c4b59d3652bd83b4a9 (patch) | |
| tree | b1de73488da139940a64e153fbc369f2dbf44bec /MediaBrowser.Providers | |
| parent | 12ff39eeafd7bfe81b7d3dd4d3046b5640e33495 (diff) | |
update xml parsing
Diffstat (limited to 'MediaBrowser.Providers')
5 files changed, 145 insertions, 35 deletions
diff --git a/MediaBrowser.Providers/People/TvdbPersonImageProvider.cs b/MediaBrowser.Providers/People/TvdbPersonImageProvider.cs index 0384ddd253..9335fca9f3 100644 --- a/MediaBrowser.Providers/People/TvdbPersonImageProvider.cs +++ b/MediaBrowser.Providers/People/TvdbPersonImageProvider.cs @@ -114,9 +114,10 @@ namespace MediaBrowser.Providers.People using (var reader = XmlReader.Create(streamReader, settings)) { reader.MoveToContent(); + reader.Read(); // Loop through each element - while (reader.Read()) + while (!reader.EOF) { cancellationToken.ThrowIfCancellationRequested(); @@ -142,6 +143,10 @@ namespace MediaBrowser.Providers.People break; } } + else + { + reader.Read(); + } } } } @@ -158,12 +163,14 @@ namespace MediaBrowser.Providers.People /// <returns>System.String.</returns> private RemoteImageInfo FetchImageInfoFromActorNode(string personName, XmlReader reader) { - reader.MoveToContent(); - string name = null; string image = null; - while (reader.Read()) + reader.MoveToContent(); + reader.Read(); + + // Loop through each element + while (!reader.EOF) { if (reader.NodeType == XmlNodeType.Element) { @@ -186,6 +193,10 @@ namespace MediaBrowser.Providers.People break; } } + else + { + reader.Read(); + } } if (!string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(image) && diff --git a/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeProvider.cs b/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeProvider.cs index 139daf9a39..ecc0f6cee6 100644 --- a/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeProvider.cs +++ b/MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeProvider.cs @@ -340,9 +340,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) { @@ -368,6 +369,10 @@ namespace MediaBrowser.Providers.TV break; } } + else + { + reader.Read(); + } } } } @@ -390,16 +395,15 @@ 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) { switch (reader.Name) { - case "FirstAired": { var val = reader.ReadElementContentAsString(); @@ -423,6 +427,10 @@ namespace MediaBrowser.Providers.TV break; } } + else + { + reader.Read(); + } } } } @@ -438,12 +446,13 @@ namespace MediaBrowser.Providers.TV // Use XmlReader for best performance using (reader) { - reader.MoveToContent(); - result.ResetPeople(); + reader.MoveToContent(); + reader.Read(); + // Loop through each element - while (reader.Read()) + while (!reader.EOF) { cancellationToken.ThrowIfCancellationRequested(); @@ -507,10 +516,10 @@ namespace MediaBrowser.Providers.TV case "EpisodeNumber": { + var val = reader.ReadElementContentAsString(); + if (!item.IndexNumber.HasValue) { - var val = reader.ReadElementContentAsString(); - if (!string.IsNullOrWhiteSpace(val)) { int rval; @@ -528,10 +537,10 @@ namespace MediaBrowser.Providers.TV case "SeasonNumber": { + var val = reader.ReadElementContentAsString(); + if (!item.ParentIndexNumber.HasValue) { - var val = reader.ReadElementContentAsString(); - if (!string.IsNullOrWhiteSpace(val)) { int rval; @@ -621,9 +630,9 @@ namespace MediaBrowser.Providers.TV case "EpisodeName": { + var val = reader.ReadElementContentAsString(); if (!item.LockedFields.Contains(MetadataFields.Name)) { - var val = reader.ReadElementContentAsString(); if (!string.IsNullOrWhiteSpace(val)) { item.Name = val; @@ -634,9 +643,9 @@ namespace MediaBrowser.Providers.TV case "Overview": { + var val = reader.ReadElementContentAsString(); if (!item.LockedFields.Contains(MetadataFields.Overview)) { - var val = reader.ReadElementContentAsString(); if (!string.IsNullOrWhiteSpace(val)) { item.Overview = val; @@ -756,6 +765,10 @@ namespace MediaBrowser.Providers.TV break; } } + else + { + reader.Read(); + } } } } @@ -809,9 +822,10 @@ namespace MediaBrowser.Providers.TV using (reader) { reader.MoveToContent(); + reader.Read(); // Loop through each element - while (reader.Read()) + while (!reader.EOF) { cancellationToken.ThrowIfCancellationRequested(); @@ -821,9 +835,9 @@ namespace MediaBrowser.Providers.TV { case "EpisodeName": { + var val = reader.ReadElementContentAsString(); if (!item.LockedFields.Contains(MetadataFields.Name)) { - var val = reader.ReadElementContentAsString(); if (!string.IsNullOrWhiteSpace(val)) { item.Name += ", " + val; @@ -834,9 +848,9 @@ namespace MediaBrowser.Providers.TV case "Overview": { + var val = reader.ReadElementContentAsString(); if (!item.LockedFields.Contains(MetadataFields.Overview)) { - var val = reader.ReadElementContentAsString(); if (!string.IsNullOrWhiteSpace(val)) { item.Overview += Environment.NewLine + Environment.NewLine + val; @@ -892,6 +906,10 @@ namespace MediaBrowser.Providers.TV break; } } + else + { + reader.Read(); + } } } } diff --git a/MediaBrowser.Providers/TV/TheTVDB/TvdbSeasonImageProvider.cs b/MediaBrowser.Providers/TV/TheTVDB/TvdbSeasonImageProvider.cs index 1a611ee9b9..9454277dfc 100644 --- a/MediaBrowser.Providers/TV/TheTVDB/TvdbSeasonImageProvider.cs +++ b/MediaBrowser.Providers/TV/TheTVDB/TvdbSeasonImageProvider.cs @@ -126,9 +126,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) { cancellationToken.ThrowIfCancellationRequested(); @@ -149,6 +150,10 @@ namespace MediaBrowser.Providers.TV break; } } + else + { + reader.Read(); + } } } } @@ -195,7 +200,11 @@ namespace MediaBrowser.Providers.TV int? voteCount = null; string thumbnailUrl = null; - while (reader.Read()) + reader.MoveToContent(); + reader.Read(); + + // Loop through each element + while (!reader.EOF) { if (reader.NodeType == XmlNodeType.Element) { @@ -296,6 +305,10 @@ namespace MediaBrowser.Providers.TV break; } } + else + { + reader.Read(); + } } if (!string.IsNullOrEmpty(url) && bannerSeason.HasValue && bannerSeason.Value == seasonNumber) diff --git a/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesImageProvider.cs b/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesImageProvider.cs index f6cdacd424..5ad96300db 100644 --- a/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesImageProvider.cs +++ b/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesImageProvider.cs @@ -113,9 +113,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) { cancellationToken.ThrowIfCancellationRequested(); @@ -136,6 +137,10 @@ namespace MediaBrowser.Providers.TV break; } } + else + { + reader.Read(); + } } } } @@ -181,7 +186,11 @@ namespace MediaBrowser.Providers.TV int? voteCount = null; string thumbnailUrl = null; - while (reader.Read()) + reader.MoveToContent(); + reader.Read(); + + // Loop through each element + while (!reader.EOF) { if (reader.NodeType == XmlNodeType.Element) { @@ -283,6 +292,10 @@ namespace MediaBrowser.Providers.TV break; } } + else + { + reader.Read(); + } } if (!string.IsNullOrEmpty(url) && !bannerSeason.HasValue) diff --git a/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesProvider.cs b/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesProvider.cs index 5147e9d104..e574d223e8 100644 --- a/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesProvider.cs +++ b/MediaBrowser.Providers/TV/TheTVDB/TvdbSeriesProvider.cs @@ -303,9 +303,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) { @@ -324,6 +325,10 @@ namespace MediaBrowser.Providers.TV break; } } + else + { + reader.Read(); + } } } } @@ -541,9 +546,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) { cancellationToken.ThrowIfCancellationRequested(); @@ -570,6 +576,10 @@ namespace MediaBrowser.Providers.TV break; } } + else + { + reader.Read(); + } } } } @@ -594,8 +604,10 @@ namespace MediaBrowser.Providers.TV string seriesId = null; reader.MoveToContent(); + reader.Read(); - while (reader.Read()) + // Loop through each element + while (!reader.EOF) { if (reader.NodeType == XmlNodeType.Element) { @@ -616,7 +628,7 @@ namespace MediaBrowser.Providers.TV { var val = reader.ReadElementContentAsString(); - var alias = (val ?? string.Empty).Split(new [] { '|' }, StringSplitOptions.RemoveEmptyEntries).Select(GetComparableName); + var alias = (val ?? string.Empty).Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries).Select(GetComparableName); titles.AddRange(alias); break; } @@ -675,6 +687,10 @@ namespace MediaBrowser.Providers.TV break; } } + else + { + reader.Read(); + } } foreach (var title in titles) @@ -770,9 +786,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) { cancellationToken.ThrowIfCancellationRequested(); @@ -808,6 +825,10 @@ namespace MediaBrowser.Providers.TV break; } } + else + { + reader.Read(); + } } } } @@ -825,9 +846,10 @@ namespace MediaBrowser.Providers.TV int? seasonNumber = null; reader.MoveToContent(); + reader.Read(); // Loop through each element - while (reader.Read()) + while (!reader.EOF) { cancellationToken.ThrowIfCancellationRequested(); @@ -874,6 +896,10 @@ namespace MediaBrowser.Providers.TV break; } } + else + { + reader.Read(); + } } if (seasonNumber.HasValue && seasonNumber.Value != 0) @@ -905,9 +931,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) { @@ -926,6 +953,10 @@ namespace MediaBrowser.Providers.TV break; } } + else + { + reader.Read(); + } } } } @@ -943,7 +974,11 @@ namespace MediaBrowser.Providers.TV var personInfo = new PersonInfo(); - while (reader.Read()) + reader.MoveToContent(); + reader.Read(); + + // Loop through each element + while (!reader.EOF) { if (reader.NodeType == XmlNodeType.Element) { @@ -963,6 +998,7 @@ namespace MediaBrowser.Providers.TV case "id": { + reader.Skip(); break; } @@ -998,6 +1034,10 @@ namespace MediaBrowser.Providers.TV break; } } + else + { + reader.Read(); + } } personInfo.Type = PersonType.Actor; @@ -1013,9 +1053,10 @@ namespace MediaBrowser.Providers.TV Series item = result.Item; reader.MoveToContent(); + reader.Read(); // Loop through each element - while (reader.Read()) + while (!reader.EOF) { cancellationToken.ThrowIfCancellationRequested(); @@ -1241,6 +1282,10 @@ namespace MediaBrowser.Providers.TV break; } } + else + { + reader.Read(); + } } } @@ -1267,9 +1312,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) { @@ -1288,6 +1334,10 @@ namespace MediaBrowser.Providers.TV break; } } + else + { + reader.Read(); + } } } } @@ -1313,9 +1363,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) { @@ -1374,6 +1425,10 @@ namespace MediaBrowser.Providers.TV break; } } + else + { + reader.Read(); + } } } } |
