aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs')
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs15
1 files changed, 10 insertions, 5 deletions
diff --git a/MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs
index 59abef919..b0944515b 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs
@@ -1,3 +1,4 @@
+using System;
using System.Globalization;
using System.Xml;
using Emby.Naming.TV;
@@ -48,16 +49,20 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
case "id":
{
- item.TrySetProviderId(MetadataProvider.Imdb, reader.GetAttribute("IMDB"));
+ // Get ids from attributes
item.TrySetProviderId(MetadataProvider.Tmdb, reader.GetAttribute("TMDB"));
+ item.TrySetProviderId(MetadataProvider.Tvdb, reader.GetAttribute("TVDB"));
+ string? imdbId = reader.GetAttribute("IMDB");
- string? tvdbId = reader.GetAttribute("TVDB");
- if (string.IsNullOrWhiteSpace(tvdbId))
+ // Read id from content
+ // Content can be arbitrary according to Kodi wiki, so only parse if we are sure it matches a provider-specific schema
+ var contentId = reader.ReadElementContentAsString();
+ if (string.IsNullOrEmpty(imdbId) && contentId.StartsWith("tt", StringComparison.Ordinal))
{
- tvdbId = reader.ReadElementContentAsString();
+ imdbId = contentId;
}
- item.TrySetProviderId(MetadataProvider.Tvdb, tvdbId);
+ item.TrySetProviderId(MetadataProvider.Imdb, imdbId);
break;
}