aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.XbmcMetadata
diff options
context:
space:
mode:
authorDavid <daullmer@gmail.com>2021-03-16 21:11:34 +0100
committerDavid <daullmer@gmail.com>2021-03-16 21:45:12 +0100
commit14cbd22fbe0a1989f70895edbd0a0f52d850d55e (patch)
tree02cdb92d82b8c3bec10c24c14264237f5abcc297 /MediaBrowser.XbmcMetadata
parent954148eb6de1f276fb584aa70b384babea0e58ce (diff)
Use Helper Methods for provider url parsing
Diffstat (limited to 'MediaBrowser.XbmcMetadata')
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs35
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs3
2 files changed, 16 insertions, 22 deletions
diff --git a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
index 3129c131d..d2fa120e8 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
@@ -6,11 +6,12 @@ using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
-using System.Text.RegularExpressions;
using System.Threading;
using System.Xml;
using MediaBrowser.Common.Configuration;
+using MediaBrowser.Common.Providers;
using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers;
@@ -63,8 +64,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
protected virtual bool SupportsUrlAfterClosingXmlTag => false;
- protected virtual string TmdbRegex => "themoviedb\\.org\\/movie\\/([0-9]+)";
-
/// <summary>
/// Fetches metadata for an item from one xml file.
/// </summary>
@@ -220,31 +219,29 @@ namespace MediaBrowser.XbmcMetadata.Parsers
protected void ParseProviderLinks(T item, string xml)
{
- // IMDB:
- // https://www.imdb.com/title/tt4154796
- var imdbRegex = Regex.Match(xml, "tt([0-9]{7,8})", RegexOptions.Compiled);
- if (imdbRegex.Success)
+ if (ProviderIdParsers.TryParseImdbId(xml, out var imdbId))
{
- item.SetProviderId(MetadataProvider.Imdb, imdbRegex.Value);
+ item.SetProviderId(MetadataProvider.Imdb, imdbId);
}
- // TMDB:
- // https://www.themoviedb.org/movie/30287-fallo (movie)
- // https://www.themoviedb.org/tv/1668-friends (tv)
- var tmdbRegex = Regex.Match(xml, TmdbRegex, RegexOptions.Compiled);
- if (tmdbRegex.Success)
+ if (item is Movie)
{
- item.SetProviderId(MetadataProvider.Tmdb, tmdbRegex.Groups[1].Value);
+ if (ProviderIdParsers.TryParseTmdbMovieId(xml, out var tmdbId))
+ {
+ item.SetProviderId(MetadataProvider.Tmdb, tmdbId);
+ }
}
- // TVDB:
- // https://www.thetvdb.com/?tab=series&id=121361
if (item is Series)
{
- var tvdbRegex = Regex.Match(xml, "thetvdb\\.com\\/\\?tab=series\\&id=([0-9]+)", RegexOptions.Compiled);
- if (tvdbRegex.Success)
+ if (ProviderIdParsers.TryParseTmdbSeriesId(xml, out var tmdbId))
+ {
+ item.SetProviderId(MetadataProvider.Tmdb, tmdbId);
+ }
+
+ if (ProviderIdParsers.TryParseTvdbId(xml, out var tvdbId))
{
- item.SetProviderId(MetadataProvider.Tvdb, tvdbRegex.Groups[1].Value);
+ item.SetProviderId(MetadataProvider.Tvdb, tvdbId);
}
}
}
diff --git a/MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs
index c09781b1a..1dce378dc 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs
@@ -36,9 +36,6 @@ namespace MediaBrowser.XbmcMetadata.Parsers
protected override bool SupportsUrlAfterClosingXmlTag => true;
/// <inheritdoc />
- protected override string TmdbRegex => "themoviedb\\.org\\/tv\\/([0-9]+)";
-
- /// <inheritdoc />
protected override void FetchDataFromXmlNode(XmlReader reader, MetadataResult<Series> itemResult)
{
var item = itemResult.Item;