diff options
Diffstat (limited to 'MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs')
| -rw-r--r-- | MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs index 75ad0d58c..3f83f1d82 100644 --- a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs +++ b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs @@ -107,6 +107,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers // Additional Mappings _validProviderIds.Add("collectionnumber", "TmdbCollection"); _validProviderIds.Add("tmdbcolid", "TmdbCollection"); + _validProviderIds.Add("tmdbcol", "TmdbCollection"); _validProviderIds.Add("imdb_id", "Imdb"); Fetch(item, metadataFile, GetXmlReaderSettings(), cancellationToken); @@ -315,7 +316,11 @@ namespace MediaBrowser.XbmcMetadata.Parsers if (userData is not null) { userData.Played = played; - _userDataManager.SaveUserData(user, item, userData, UserDataSaveReason.Import, CancellationToken.None); + + if (!item.Id.IsEmpty()) + { + _userDataManager.SaveUserData(user, item, userData, UserDataSaveReason.Import, CancellationToken.None); + } } } } @@ -332,7 +337,11 @@ namespace MediaBrowser.XbmcMetadata.Parsers if (userData is not null) { userData.PlayCount = count; - _userDataManager.SaveUserData(user, item, userData, UserDataSaveReason.Import, CancellationToken.None); + + if (!item.Id.IsEmpty()) + { + _userDataManager.SaveUserData(user, item, userData, UserDataSaveReason.Import, CancellationToken.None); + } } } } @@ -349,7 +358,11 @@ namespace MediaBrowser.XbmcMetadata.Parsers if (userData is not null) { userData.LastPlayedDate = lastPlayed; - _userDataManager.SaveUserData(user, item, userData, UserDataSaveReason.Import, CancellationToken.None); + + if (!item.Id.IsEmpty()) + { + _userDataManager.SaveUserData(user, item, userData, UserDataSaveReason.Import, CancellationToken.None); + } } } } @@ -590,7 +603,18 @@ namespace MediaBrowser.XbmcMetadata.Parsers var provider = reader.GetAttribute("type"); var providerId = reader.ReadElementContentAsString(); - item.TrySetProviderId(provider, providerId); + + if (!string.IsNullOrEmpty(provider)) + { + if (_validProviderIds.TryGetValue(provider, out string? normalizedProvider)) + { + item.TrySetProviderId(normalizedProvider, providerId); + } + else + { + item.TrySetProviderId(provider, providerId); + } + } break; case "thumb": |
