aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.XbmcMetadata/Parsers
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.XbmcMetadata/Parsers')
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs68
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs14
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs16
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/SeasonNfoParser.cs10
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs15
5 files changed, 97 insertions, 26 deletions
diff --git a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
index b8d0e6560d..36b9a9c1f8 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -12,7 +14,6 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
-using MediaBrowser.Model.Extensions;
using MediaBrowser.XbmcMetadata.Configuration;
using MediaBrowser.XbmcMetadata.Savers;
using Microsoft.Extensions.Logging;
@@ -28,6 +29,9 @@ namespace MediaBrowser.XbmcMetadata.Parsers
/// <summary>
/// Initializes a new instance of the <see cref="BaseNfoParser{T}" /> class.
/// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="config">the configuration manager.</param>
+ /// <param name="providerManager">The provider manager.</param>
public BaseNfoParser(ILogger logger, IConfigurationManager config, IProviderManager providerManager)
{
Logger = logger;
@@ -49,13 +53,13 @@ namespace MediaBrowser.XbmcMetadata.Parsers
protected virtual string MovieDbParserSearchString => "themoviedb.org/movie/";
/// <summary>
- /// Fetches metadata for an item from one xml file
+ /// Fetches metadata for an item from one xml file.
/// </summary>
/// <param name="item">The item.</param>
/// <param name="metadataFile">The metadata file.</param>
/// <param name="cancellationToken">The cancellation token.</param>
- /// <exception cref="ArgumentNullException">
- /// </exception>
+ /// <exception cref="ArgumentNullException"><c>item</c> is <c>null</c>.</exception>
+ /// <exception cref="ArgumentException"><c>metadataFile</c> is <c>null</c> or empty.</exception>
public void Fetch(MetadataResult<T> item, string metadataFile, CancellationToken cancellationToken)
{
if (item == null)
@@ -81,7 +85,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
}
}
- //Additional Mappings
+ // Additional Mappings
_validProviderIds.Add("collectionnumber", "TmdbCollection");
_validProviderIds.Add("tmdbcolid", "TmdbCollection");
_validProviderIds.Add("imdb_id", "Imdb");
@@ -124,6 +128,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
}
}
}
+
return;
}
@@ -197,14 +202,13 @@ namespace MediaBrowser.XbmcMetadata.Parsers
}
catch (XmlException)
{
-
}
}
}
protected void ParseProviderLinks(T item, string xml)
{
- //Look for a match for the Regex pattern "tt" followed by 7 digits
+ // Look for a match for the Regex pattern "tt" followed by 7 digits
var m = Regex.Match(xml, @"tt([0-9]{7})", RegexOptions.IgnoreCase);
if (m.Success)
{
@@ -268,6 +272,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
Logger.LogWarning("Invalid Added value found: " + val);
}
}
+
break;
}
@@ -279,6 +284,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
item.OriginalTitle = val;
}
+
break;
}
@@ -310,6 +316,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
item.ForcedSortName = val;
}
+
break;
}
@@ -359,7 +366,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
}
return null;
-
}).Where(i => i.HasValue).Select(i => i.Value).ToArray();
}
@@ -374,6 +380,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
item.Tagline = val;
}
+
break;
}
@@ -388,6 +395,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
.Where(i => !string.IsNullOrWhiteSpace(i))
.ToArray();
}
+
break;
}
@@ -399,6 +407,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
item.OfficialRating = rating;
}
+
break;
}
@@ -410,6 +419,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
item.CustomRating = val;
}
+
break;
}
@@ -424,6 +434,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
item.RunTimeTicks = TimeSpan.FromMinutes(runtime).Ticks;
}
}
+
break;
}
@@ -436,6 +447,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
hasAspectRatio.AspectRatio = val;
}
+
break;
}
@@ -447,6 +459,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
item.IsLocked = string.Equals("true", val, StringComparison.OrdinalIgnoreCase);
}
+
break;
}
@@ -456,16 +469,9 @@ namespace MediaBrowser.XbmcMetadata.Parsers
if (!string.IsNullOrWhiteSpace(val))
{
- //var parts = val.Split('/')
- // .Select(i => i.Trim())
- // .Where(i => !string.IsNullOrWhiteSpace(i));
-
- //foreach (var p in parts)
- //{
- // item.AddStudio(p);
- //}
item.AddStudio(val);
}
+
break;
}
@@ -478,10 +484,13 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
continue;
}
+
itemResult.AddPerson(p);
}
+
break;
}
+
case "credits":
{
var val = reader.ReadElementContentAsString();
@@ -497,9 +506,11 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
continue;
}
+
itemResult.AddPerson(p);
}
}
+
break;
}
@@ -512,8 +523,10 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
continue;
}
+
itemResult.AddPerson(p);
}
+
break;
}
@@ -535,6 +548,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
reader.Read();
}
+
break;
}
@@ -548,6 +562,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
item.AddTrailerUrl(val);
}
+
break;
}
@@ -563,6 +578,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
hasDisplayOrder.DisplayOrder = val;
}
}
+
break;
}
@@ -583,7 +599,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
case "rating":
{
-
var rating = reader.ReadElementContentAsString();
if (!string.IsNullOrWhiteSpace(rating))
@@ -594,6 +609,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
item.CommunityRating = val;
}
}
+
break;
}
@@ -650,6 +666,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
item.AddGenre(p);
}
}
+
break;
}
@@ -661,6 +678,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
item.AddTag(val);
}
+
break;
}
@@ -677,6 +695,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
reader.Read();
}
+
break;
}
@@ -694,6 +713,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
reader.Skip();
}
+
break;
}
}
@@ -717,10 +737,12 @@ namespace MediaBrowser.XbmcMetadata.Parsers
reader.Read();
continue;
}
+
using (var subtree = reader.ReadSubtree())
{
FetchFromStreamDetailsNode(subtree, item);
}
+
break;
}
@@ -755,10 +777,12 @@ namespace MediaBrowser.XbmcMetadata.Parsers
reader.Read();
continue;
}
+
using (var subtree = reader.ReadSubtree())
{
FetchFromVideoNode(subtree, item);
}
+
break;
}
@@ -815,6 +839,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
video.Video3DFormat = Video3DFormat.MVC;
}
}
+
break;
}
@@ -864,8 +889,10 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
role = val;
}
+
break;
}
+
case "sortorder":
{
var val = reader.ReadElementContentAsString();
@@ -877,6 +904,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
sortOrder = intVal;
}
}
+
break;
}
@@ -910,7 +938,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
};
/// <summary>
- /// Used to split names of comma or pipe delimeted genres and people
+ /// Used to split names of comma or pipe delimeted genres and people.
/// </summary>
/// <param name="value">The value.</param>
/// <returns>IEnumerable{System.String}.</returns>
@@ -920,7 +948,9 @@ namespace MediaBrowser.XbmcMetadata.Parsers
// Only split by comma if there is no pipe in the string
// We have to be careful to not split names like Matthew, Jr.
- var separator = value.IndexOf('|') == -1 && value.IndexOf(';') == -1 ? new[] { ',' } : new[] { '|', ';' };
+ var separator = value.IndexOf('|', StringComparison.Ordinal) == -1 && value.IndexOf(';', StringComparison.Ordinal) == -1
+ ? new[] { ',' }
+ : new[] { '|', ';' };
value = value.Trim().Trim(separator);
diff --git a/MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs
index 82ac6c548a..9cc0344c1c 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs
@@ -11,8 +11,17 @@ using Microsoft.Extensions.Logging;
namespace MediaBrowser.XbmcMetadata.Parsers
{
+ /// <summary>
+ /// Nfo parser for episodes.
+ /// </summary>
public class EpisodeNfoParser : BaseNfoParser<Episode>
{
+ /// <summary>
+ /// Initializes a new instance of the <see cref="EpisodeNfoParser"/> class.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="config">the configuration manager.</param>
+ /// <param name="providerManager">The provider manager.</param>
public EpisodeNfoParser(ILogger logger, IConfigurationManager config, IProviderManager providerManager)
: base(logger, config, providerManager)
{
@@ -63,7 +72,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
}
catch (XmlException)
{
-
}
}
}
@@ -86,6 +94,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
item.ParentIndexNumber = num;
}
}
+
break;
}
@@ -100,6 +109,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
item.IndexNumber = num;
}
}
+
break;
}
@@ -114,6 +124,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
item.IndexNumberEnd = num;
}
}
+
break;
}
@@ -197,7 +208,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
break;
}
-
default:
base.FetchDataFromXmlNode(reader, itemResult);
break;
diff --git a/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs
index 79d9111fe4..c17212f315 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs
@@ -11,8 +11,17 @@ using Microsoft.Extensions.Logging;
namespace MediaBrowser.XbmcMetadata.Parsers
{
+ /// <summary>
+ /// Nfo parser for movies.
+ /// </summary>
public class MovieNfoParser : BaseNfoParser<Video>
{
+ /// <summary>
+ /// Initializes a new instance of the <see cref="MovieNfoParser"/> class.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="config">the configuration manager.</param>
+ /// <param name="providerManager">The provider manager.</param>
public MovieNfoParser(ILogger logger, IConfigurationManager config, IProviderManager providerManager)
: base(logger, config, providerManager)
{
@@ -50,6 +59,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
break;
}
+
case "set":
{
var movie = item as Movie;
@@ -65,7 +75,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
if (!string.IsNullOrWhiteSpace(val) && movie != null)
{
// TODO Handle this better later
- if (val.IndexOf('<') == -1)
+ if (val.IndexOf('<', StringComparison.Ordinal) == -1)
{
movie.CollectionName = val;
}
@@ -119,9 +129,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
private void ParseSetXml(string xml, Movie movie)
{
- //xml = xml.Substring(xml.IndexOf('<'));
- //xml = xml.Substring(0, xml.LastIndexOf('>'));
-
// These are not going to be valid xml so no sense in causing the provider to fail and spamming the log with exceptions
try
{
@@ -155,7 +162,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
}
catch (XmlException)
{
-
}
}
}
diff --git a/MediaBrowser.XbmcMetadata/Parsers/SeasonNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/SeasonNfoParser.cs
index d6c06f982b..d8cd88b9a4 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/SeasonNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/SeasonNfoParser.cs
@@ -7,8 +7,17 @@ using Microsoft.Extensions.Logging;
namespace MediaBrowser.XbmcMetadata.Parsers
{
+ /// <summary>
+ /// Nfo parser for seasons.
+ /// </summary>
public class SeasonNfoParser : BaseNfoParser<Season>
{
+ /// <summary>
+ /// Initializes a new instance of the <see cref="SeasonNfoParser"/> class.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="config">the configuration manager.</param>
+ /// <param name="providerManager">The provider manager.</param>
public SeasonNfoParser(ILogger logger, IConfigurationManager config, IProviderManager providerManager)
: base(logger, config, providerManager)
{
@@ -32,6 +41,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
item.IndexNumber = num;
}
}
+
break;
}
diff --git a/MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs
index 278858b4ad..0954ae2064 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs
@@ -9,8 +9,17 @@ using Microsoft.Extensions.Logging;
namespace MediaBrowser.XbmcMetadata.Parsers
{
+ /// <summary>
+ /// Nfo parser for series.
+ /// </summary>
public class SeriesNfoParser : BaseNfoParser<Series>
{
+ /// <summary>
+ /// Initializes a new instance of the <see cref="SeriesNfoParser"/> class.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="config">the configuration manager.</param>
+ /// <param name="providerManager">The provider manager.</param>
public SeriesNfoParser(ILogger logger, IConfigurationManager config, IProviderManager providerManager)
: base(logger, config, providerManager)
{
@@ -39,20 +48,25 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
tvdbId = reader.ReadElementContentAsString();
}
+
if (!string.IsNullOrWhiteSpace(imdbId))
{
item.SetProviderId(MetadataProviders.Imdb, imdbId);
}
+
if (!string.IsNullOrWhiteSpace(tmdbId))
{
item.SetProviderId(MetadataProviders.Tmdb, tmdbId);
}
+
if (!string.IsNullOrWhiteSpace(tvdbId))
{
item.SetProviderId(MetadataProviders.Tvdb, tvdbId);
}
+
break;
}
+
case "airs_dayofweek":
{
item.AirDays = TVUtils.GetAirDays(reader.ReadElementContentAsString());
@@ -67,6 +81,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
item.AirTime = val;
}
+
break;
}