diff options
| author | Tim Hobbs <jesus.tesh@gmail.com> | 2014-05-18 15:45:16 -0700 |
|---|---|---|
| committer | Tim Hobbs <jesus.tesh@gmail.com> | 2014-05-18 15:45:16 -0700 |
| commit | 6e1082563173b6b71b96fc8e38ff974f49c07add (patch) | |
| tree | ebdf2c12344afd856c040b8396b288dc6be8f8e2 /MediaBrowser.Controller/Providers/BaseItemXmlParser.cs | |
| parent | 0bf6fdb5a4050f30ac8100210a9fe9e2a48f63e2 (diff) | |
| parent | 708d5a416ed373c158b3dc45952a1fd123fb74e8 (diff) | |
Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser into upstream-master
Diffstat (limited to 'MediaBrowser.Controller/Providers/BaseItemXmlParser.cs')
| -rw-r--r-- | MediaBrowser.Controller/Providers/BaseItemXmlParser.cs | 84 |
1 files changed, 49 insertions, 35 deletions
diff --git a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs index 48a639d4d..41f994303 100644 --- a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs +++ b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs @@ -62,34 +62,6 @@ namespace MediaBrowser.Controller.Providers ValidationType = ValidationType.None }; - var hasTaglines = item as IHasTaglines; - if (hasTaglines != null) - { - hasTaglines.Taglines.Clear(); - } - - item.Studios.Clear(); - item.Genres.Clear(); - item.People.Clear(); - - var hasTags = item as IHasTags; - if (hasTags != null) - { - hasTags.Tags.Clear(); - } - - var hasKeywords = item as IHasKeywords; - if (hasKeywords != null) - { - hasKeywords.Keywords.Clear(); - } - - var hasTrailers = item as IHasTrailers; - if (hasTrailers != null) - { - hasTrailers.RemoteTrailers.Clear(); - } - //Fetch(item, metadataFile, settings, Encoding.GetEncoding("ISO-8859-1"), cancellationToken); Fetch(item, metadataFile, settings, Encoding.UTF8, cancellationToken); } @@ -373,6 +345,15 @@ namespace MediaBrowser.Controller.Providers break; } + case "Countries": + { + using (var subtree = reader.ReadSubtree()) + { + FetchFromCountriesNode(subtree, item); + } + break; + } + case "ContentRating": case "MPAARating": { @@ -857,6 +838,42 @@ namespace MediaBrowser.Controller.Providers } } + private void FetchFromCountriesNode(XmlReader reader, T item) + { + reader.MoveToContent(); + + while (reader.Read()) + { + if (reader.NodeType == XmlNodeType.Element) + { + switch (reader.Name) + { + case "Country": + { + var val = reader.ReadElementContentAsString(); + + if (!string.IsNullOrWhiteSpace(val)) + { + var hasProductionLocations = item as IHasProductionLocations; + if (hasProductionLocations != null) + { + if (!string.IsNullOrWhiteSpace(val)) + { + hasProductionLocations.AddProductionLocation(val); + } + } + } + break; + } + + default: + reader.Skip(); + break; + } + } + } + } + /// <summary> /// Fetches from taglines node. /// </summary> @@ -1059,16 +1076,13 @@ namespace MediaBrowser.Controller.Providers } } - protected async Task FetchChaptersFromXmlNode(BaseItem item, XmlReader reader, IItemRepository repository, CancellationToken cancellationToken) + protected List<ChapterInfo> FetchChaptersFromXmlNode(BaseItem item, XmlReader reader) { - var runtime = item.RunTimeTicks ?? 0; - using (reader) { - var chapters = GetChaptersFromXmlNode(reader) - .Where(i => i.StartPositionTicks >= 0 && i.StartPositionTicks < runtime); - - await repository.SaveChapters(item.Id, chapters, cancellationToken).ConfigureAwait(false); + return GetChaptersFromXmlNode(reader) + .Where(i => i.StartPositionTicks >= 0) + .ToList(); } } |
