Move thumb tag parsing to separate method

pull/6422/head
David Ullmer 3 years ago
parent 04571e93f8
commit 577d665192
No known key found for this signature in database
GPG Key ID: 4AEABE3359D5883C

@ -782,6 +782,31 @@ namespace MediaBrowser.XbmcMetadata.Parsers
} }
case "thumb": case "thumb":
{
FetchThumbNode(reader, itemResult);
break;
}
default:
string readerName = reader.Name;
if (_validProviderIds.TryGetValue(readerName, out string? providerIdValue))
{
var id = reader.ReadElementContentAsString();
if (!string.IsNullOrWhiteSpace(providerIdValue) && !string.IsNullOrWhiteSpace(id))
{
item.SetProviderId(providerIdValue, id);
}
}
else
{
reader.Skip();
}
break;
}
}
private void FetchThumbNode(XmlReader reader, MetadataResult<T> itemResult)
{ {
var artType = reader.GetAttribute("aspect"); var artType = reader.GetAttribute("aspect");
var val = reader.ReadElementContentAsString(); var val = reader.ReadElementContentAsString();
@ -792,15 +817,15 @@ namespace MediaBrowser.XbmcMetadata.Parsers
// - tag containing '.' because we can't set images for seasons, episodes or movie sets within series or movies // - tag containing '.' because we can't set images for seasons, episodes or movie sets within series or movies
if (string.IsNullOrEmpty(artType) || string.IsNullOrEmpty(val) || artType.Contains('.', StringComparison.Ordinal)) if (string.IsNullOrEmpty(artType) || string.IsNullOrEmpty(val) || artType.Contains('.', StringComparison.Ordinal))
{ {
break; return;
} }
ImageType imageType = GetImageType(artType); ImageType imageType = GetImageType(artType);
if (!Uri.TryCreate(val, UriKind.Absolute, out var uri)) if (!Uri.TryCreate(val, UriKind.Absolute, out var uri))
{ {
Logger.LogError("Image location {Path} specified in nfo file for {ItemName} is not a valid URL or file path.", val, item.Name); Logger.LogError("Image location {Path} specified in nfo file for {ItemName} is not a valid URL or file path.", val, itemResult.Item.Name);
break; return;
} }
if (uri.IsFile) if (uri.IsFile)
@ -808,15 +833,15 @@ namespace MediaBrowser.XbmcMetadata.Parsers
// only allow one item of each type // only allow one item of each type
if (itemResult.Images.Any(x => x.Type == imageType)) if (itemResult.Images.Any(x => x.Type == imageType))
{ {
break; return;
} }
var fileSystemMetadata = _directoryService.GetFile(val); var fileSystemMetadata = _directoryService.GetFile(val);
// non existing file returns null // non existing file returns null
if (fileSystemMetadata == null || !fileSystemMetadata.Exists) if (fileSystemMetadata == null || !fileSystemMetadata.Exists)
{ {
Logger.LogWarning("Artwork file {Path} specified in nfo file for {ItemName} does not exist.", uri, item.Name); Logger.LogWarning("Artwork file {Path} specified in nfo file for {ItemName} does not exist.", uri, itemResult.Item.Name);
break; return;
} }
itemResult.Images.Add(new LocalImageInfo() itemResult.Images.Add(new LocalImageInfo()
@ -830,32 +855,11 @@ namespace MediaBrowser.XbmcMetadata.Parsers
// only allow one item of each type // only allow one item of each type
if (itemResult.RemoteImages.Any(x => x.type == imageType)) if (itemResult.RemoteImages.Any(x => x.type == imageType))
{ {
break; return;
} }
itemResult.RemoteImages.Add((uri.ToString(), imageType)); itemResult.RemoteImages.Add((uri.ToString(), imageType));
} }
break;
}
default:
string readerName = reader.Name;
if (_validProviderIds.TryGetValue(readerName, out string? providerIdValue))
{
var id = reader.ReadElementContentAsString();
if (!string.IsNullOrWhiteSpace(providerIdValue) && !string.IsNullOrWhiteSpace(id))
{
item.SetProviderId(providerIdValue, id);
}
}
else
{
reader.Skip();
}
break;
}
} }
private void FetchFromFileInfoNode(XmlReader reader, T item) private void FetchFromFileInfoNode(XmlReader reader, T item)

Loading…
Cancel
Save