aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.XbmcMetadata/Parsers
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.XbmcMetadata/Parsers')
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs49
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs70
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs16
3 files changed, 27 insertions, 108 deletions
diff --git a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
index 689f175f37..3b8d687765 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
@@ -187,18 +187,13 @@ namespace MediaBrowser.XbmcMetadata.Parsers
return;
}
- using (var ms = new MemoryStream())
+ // These are not going to be valid xml so no sense in causing the provider to fail and spamming the log with exceptions
+ try
{
- var bytes = Encoding.UTF8.GetBytes(xml);
-
- ms.Write(bytes, 0, bytes.Length);
- ms.Position = 0;
-
- // 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))
{
// Use XmlReader for best performance
- using (var reader = XmlReader.Create(ms, settings))
+ using (var reader = XmlReader.Create(stringReader, settings))
{
reader.MoveToContent();
reader.Read();
@@ -219,10 +214,10 @@ namespace MediaBrowser.XbmcMetadata.Parsers
}
}
}
- catch (XmlException)
- {
+ }
+ catch (XmlException)
+ {
- }
}
}
}
@@ -251,7 +246,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
var tmdbId = xml.Substring(index + srch.Length).TrimEnd('/').Split('-')[0];
int value;
- if (!string.IsNullOrWhiteSpace(tmdbId) && int.TryParse(tmdbId, NumberStyles.Any, CultureInfo.InvariantCulture, out value))
+ if (!string.IsNullOrWhiteSpace(tmdbId) && int.TryParse(tmdbId, NumberStyles.Integer, CultureInfo.InvariantCulture, out value))
{
item.SetProviderId(MetadataProviders.Tmdb, value.ToString(_usCulture));
}
@@ -267,7 +262,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
var tvdbId = xml.Substring(index + srch.Length).TrimEnd('/');
int value;
- if (!string.IsNullOrWhiteSpace(tvdbId) && int.TryParse(tvdbId, NumberStyles.Any, CultureInfo.InvariantCulture, out value))
+ if (!string.IsNullOrWhiteSpace(tvdbId) && int.TryParse(tvdbId, NumberStyles.Integer, CultureInfo.InvariantCulture, out value))
{
item.SetProviderId(MetadataProviders.Tvdb, value.ToString(_usCulture));
}
@@ -380,18 +375,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
break;
}
- case "website":
- {
- var val = reader.ReadElementContentAsString();
-
- if (!string.IsNullOrWhiteSpace(val))
- {
- item.HomePageUrl = val;
- }
-
- break;
- }
-
case "lockedfields":
{
var val = reader.ReadElementContentAsString();
@@ -592,15 +575,11 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
var val = reader.ReadElementContentAsString();
- var hasTrailer = item as IHasTrailers;
- if (hasTrailer != null)
+ if (!string.IsNullOrWhiteSpace(val))
{
- if (!string.IsNullOrWhiteSpace(val))
- {
- val = val.Replace("plugin://plugin.video.youtube/?action=play_video&videoid=", "https://www.youtube.com/watch?v=", StringComparison.OrdinalIgnoreCase);
+ val = val.Replace("plugin://plugin.video.youtube/?action=play_video&videoid=", BaseNfoSaver.YouTubeWatchUrl, StringComparison.OrdinalIgnoreCase);
- hasTrailer.AddTrailerUrl(val);
- }
+ item.AddTrailerUrl(val);
}
break;
}
@@ -977,7 +956,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
value = value.Trim().Trim(separator);
- return string.IsNullOrWhiteSpace(value) ? new string[] { } : Split(value, separator, StringSplitOptions.RemoveEmptyEntries);
+ return string.IsNullOrWhiteSpace(value) ? Array.Empty<string>() : Split(value, separator, StringSplitOptions.RemoveEmptyEntries);
}
/// <summary>
@@ -987,7 +966,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
/// <param name="separators">The separators.</param>
/// <param name="options">The options.</param>
/// <returns>System.String[][].</returns>
- private static string[] Split(string val, char[] separators, StringSplitOptions options)
+ private string[] Split(string val, char[] separators, StringSplitOptions options)
{
return val.Split(separators, options);
}
diff --git a/MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs
index 953b59f463..ce7b924eb8 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs
@@ -24,7 +24,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
Fetch(item, metadataFile, cancellationToken);
}
- private static readonly CultureInfo UsCulture = new CultureInfo("en-US");
+ private readonly CultureInfo UsCulture = new CultureInfo("en-US");
protected override void Fetch(MetadataResult<Episode> item, string metadataFile, XmlReaderSettings settings, CancellationToken cancellationToken)
{
@@ -44,18 +44,13 @@ namespace MediaBrowser.XbmcMetadata.Parsers
xml = xml.Substring(0, index + srch.Length);
}
- using (var ms = new MemoryStream())
+ // These are not going to be valid xml so no sense in causing the provider to fail and spamming the log with exceptions
+ try
{
- var bytes = Encoding.UTF8.GetBytes(xml);
-
- ms.Write(bytes, 0, bytes.Length);
- ms.Position = 0;
-
- // 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))
{
// Use XmlReader for best performance
- using (var reader = XmlReader.Create(ms, settings))
+ using (var reader = XmlReader.Create(stringReader, settings))
{
reader.MoveToContent();
reader.Read();
@@ -76,10 +71,10 @@ namespace MediaBrowser.XbmcMetadata.Parsers
}
}
}
- catch (XmlException)
- {
+ }
+ catch (XmlException)
+ {
- }
}
}
}
@@ -144,55 +139,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
break;
}
- case "absolute_number":
- {
- var val = reader.ReadElementContentAsString();
-
- if (!string.IsNullOrWhiteSpace(val))
- {
- int rval;
-
- // int.TryParse is local aware, so it can be probamatic, force us culture
- if (int.TryParse(val, NumberStyles.Integer, UsCulture, out rval))
- {
- item.AbsoluteEpisodeNumber = rval;
- }
- }
-
- break;
- }
- case "DVD_episodenumber":
- {
- var number = reader.ReadElementContentAsString();
-
- if (!string.IsNullOrWhiteSpace(number))
- {
- float num;
-
- if (float.TryParse(number, NumberStyles.Any, UsCulture, out num))
- {
- item.DvdEpisodeNumber = num;
- }
- }
- break;
- }
-
- case "DVD_season":
- {
- var number = reader.ReadElementContentAsString();
-
- if (!string.IsNullOrWhiteSpace(number))
- {
- float num;
-
- if (float.TryParse(number, NumberStyles.Any, UsCulture, out num))
- {
- item.DvdSeasonNumber = Convert.ToInt32(num);
- }
- }
- break;
- }
-
case "airsbefore_episode":
{
var val = reader.ReadElementContentAsString();
diff --git a/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs
index 0283e4a7b7..94b4c30f2a 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs
@@ -125,17 +125,11 @@ namespace MediaBrowser.XbmcMetadata.Parsers
private void ParseSetXml(string xml, Movie movie)
{
- using (var ms = new MemoryStream())
- {
- //xml = xml.Substring(xml.IndexOf('<'));
- //xml = xml.Substring(0, xml.LastIndexOf('>'));
- xml = "<set>" + xml + "</set>";
-
- var bytes = Encoding.UTF8.GetBytes(xml);
-
- ms.Write(bytes, 0, bytes.Length);
- ms.Position = 0;
+ //xml = xml.Substring(xml.IndexOf('<'));
+ //xml = xml.Substring(0, xml.LastIndexOf('>'));
+ using (var stringReader = new StringReader("<set>" + xml + "</set>"))
+ {
// These are not going to be valid xml so no sense in causing the provider to fail and spamming the log with exceptions
try
{
@@ -146,7 +140,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
settings.IgnoreComments = true;
// Use XmlReader for best performance
- using (var reader = XmlReader.Create(ms, settings))
+ using (var reader = XmlReader.Create(stringReader, settings))
{
reader.MoveToContent();
reader.Read();