Get IndexNumberEnd from nfo

This commit is contained in:
Balázs Váradi 2021-02-05 20:02:47 +01:00
parent f8283d8c20
commit b646787ab6

View File

@ -35,14 +35,17 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
item.ResetPeople();
var xml = streamReader.ReadToEnd();
var xmlFile = streamReader.ReadToEnd();
var srch = "</episodedetails>";
var index = xml.IndexOf(srch, StringComparison.OrdinalIgnoreCase);
var index = xmlFile.IndexOf(srch, StringComparison.OrdinalIgnoreCase);
var xml = xmlFile;
if (index != -1)
{
xml = xml.Substring(0, index + srch.Length);
xml = xmlFile.Substring(0, index + srch.Length);
xmlFile = xmlFile.Substring(index + srch.Length);
}
// These are not going to be valid xml so no sense in causing the provider to fail and spamming the log with exceptions
@ -73,6 +76,38 @@ namespace MediaBrowser.XbmcMetadata.Parsers
catch (XmlException)
{
}
while ((index = xmlFile.IndexOf(srch, StringComparison.OrdinalIgnoreCase)) != -1)
{
xml = xmlFile.Substring(0, index + srch.Length);
xmlFile = xmlFile.Substring(index + srch.Length);
// These are not going to be valid xml so no sense in causing the provider to fail and spamming the log with exceptions
try
{
using (var stringReader = new StringReader(xml))
using (var reader = XmlReader.Create(stringReader, settings))
{
reader.MoveToContent();
if (reader.ReadToDescendant("episode"))
{
var number = reader.ReadElementContentAsString();
if (!string.IsNullOrWhiteSpace(number))
{
if (int.TryParse(number, out var num))
{
item.Item.IndexNumberEnd = Math.Max(num, item.Item.IndexNumberEnd ?? num);
}
}
}
}
}
catch (XmlException)
{
}
}
}
}