|
|
|
@ -395,18 +395,32 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|
|
|
|
|
|
|
|
|
case "TagLines":
|
|
|
|
|
{
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
if (!reader.IsEmptyElement)
|
|
|
|
|
{
|
|
|
|
|
FetchFromTaglinesNode(subtree, item);
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
{
|
|
|
|
|
FetchFromTaglinesNode(subtree, item);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
reader.Read();
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
case "Countries":
|
|
|
|
|
{
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
if (!reader.IsEmptyElement)
|
|
|
|
|
{
|
|
|
|
|
FetchFromCountriesNode(subtree, item);
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
{
|
|
|
|
|
FetchFromCountriesNode(subtree, item);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
reader.Read();
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
@ -592,14 +606,21 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|
|
|
|
|
|
|
|
|
case "Trailers":
|
|
|
|
|
{
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
if (!reader.IsEmptyElement)
|
|
|
|
|
{
|
|
|
|
|
var hasTrailers = item as IHasTrailers;
|
|
|
|
|
if (hasTrailers != null)
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
{
|
|
|
|
|
FetchDataFromTrailersNode(subtree, hasTrailers);
|
|
|
|
|
var hasTrailers = item as IHasTrailers;
|
|
|
|
|
if (hasTrailers != null)
|
|
|
|
|
{
|
|
|
|
|
FetchDataFromTrailersNode(subtree, hasTrailers);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
reader.Read();
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -699,59 +720,101 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|
|
|
|
|
|
|
|
|
case "Genres":
|
|
|
|
|
{
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
if (!reader.IsEmptyElement)
|
|
|
|
|
{
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
{
|
|
|
|
|
FetchFromGenresNode(subtree, item);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
FetchFromGenresNode(subtree, item);
|
|
|
|
|
reader.Read();
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
case "Tags":
|
|
|
|
|
{
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
if (!reader.IsEmptyElement)
|
|
|
|
|
{
|
|
|
|
|
FetchFromTagsNode(subtree, item);
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
{
|
|
|
|
|
FetchFromTagsNode(subtree, item);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
reader.Read();
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
case "PlotKeywords":
|
|
|
|
|
{
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
if (!reader.IsEmptyElement)
|
|
|
|
|
{
|
|
|
|
|
FetchFromKeywordsNode(subtree, item);
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
{
|
|
|
|
|
FetchFromKeywordsNode(subtree, item);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
reader.Read();
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
case "Persons":
|
|
|
|
|
{
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
if (!reader.IsEmptyElement)
|
|
|
|
|
{
|
|
|
|
|
FetchDataFromPersonsNode(subtree, itemResult);
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
{
|
|
|
|
|
FetchDataFromPersonsNode(subtree, itemResult);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
reader.Read();
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
case "Studios":
|
|
|
|
|
{
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
if (!reader.IsEmptyElement)
|
|
|
|
|
{
|
|
|
|
|
FetchFromStudiosNode(subtree, item);
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
{
|
|
|
|
|
FetchFromStudiosNode(subtree, item);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
reader.Read();
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
case "Shares":
|
|
|
|
|
{
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
if (!reader.IsEmptyElement)
|
|
|
|
|
{
|
|
|
|
|
var hasShares = item as IHasShares;
|
|
|
|
|
if (hasShares != null)
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
{
|
|
|
|
|
FetchFromSharesNode(subtree, hasShares);
|
|
|
|
|
var hasShares = item as IHasShares;
|
|
|
|
|
if (hasShares != null)
|
|
|
|
|
{
|
|
|
|
|
FetchFromSharesNode(subtree, hasShares);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
reader.Read();
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -824,6 +887,11 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|
|
|
|
{
|
|
|
|
|
case "Share":
|
|
|
|
|
{
|
|
|
|
|
if (reader.IsEmptyElement)
|
|
|
|
|
{
|
|
|
|
|
reader.Read();
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
{
|
|
|
|
|
var share = GetShareFromNode(subtree);
|
|
|
|
@ -1090,6 +1158,11 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|
|
|
|
case "Person":
|
|
|
|
|
case "Actor":
|
|
|
|
|
{
|
|
|
|
|
if (reader.IsEmptyElement)
|
|
|
|
|
{
|
|
|
|
|
reader.Read();
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
using (var subtree = reader.ReadSubtree())
|
|
|
|
|
{
|
|
|
|
|
foreach (var person in GetPersonsFromXmlNode(subtree))
|
|
|
|
|