aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Providers')
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs18
-rw-r--r--MediaBrowser.Providers/Manager/ProviderUtils.cs4
-rw-r--r--MediaBrowser.Providers/Movies/GenericMovieDbInfo.cs6
-rw-r--r--MediaBrowser.Providers/TV/TvdbEpisodeProvider.cs6
-rw-r--r--MediaBrowser.Providers/TV/TvdbSeriesProvider.cs4
5 files changed, 22 insertions, 16 deletions
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs
index c3d1ec080..9aa6485f1 100644
--- a/MediaBrowser.Providers/Manager/MetadataService.cs
+++ b/MediaBrowser.Providers/Manager/MetadataService.cs
@@ -194,6 +194,15 @@ namespace MediaBrowser.Providers.Manager
return updateType;
}
+ protected async Task SaveItem(MetadataResult<TItemType> result, ItemUpdateType reason, CancellationToken cancellationToken)
+ {
+ if (result.Item.SupportsPeople && result.People != null)
+ {
+ await LibraryManager.UpdatePeople(result.Item as BaseItem, result.People.ToList());
+ }
+ await result.Item.UpdateToRepository(reason, cancellationToken).ConfigureAwait(false);
+ }
+
private readonly Task _cachedTask = Task.FromResult(true);
protected virtual Task AfterMetadataRefresh(TItemType item, MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken)
{
@@ -328,15 +337,6 @@ namespace MediaBrowser.Providers.Manager
return providers;
}
- protected async Task SaveItem(MetadataResult<TItemType> result, ItemUpdateType reason, CancellationToken cancellationToken)
- {
- if (result.Item.SupportsPeople)
- {
- await LibraryManager.UpdatePeople(result.Item as BaseItem, result.People);
- }
- await result.Item.UpdateToRepository(reason, cancellationToken).ConfigureAwait(false);
- }
-
public bool CanRefresh(IHasMetadata item)
{
return item is TItemType;
diff --git a/MediaBrowser.Providers/Manager/ProviderUtils.cs b/MediaBrowser.Providers/Manager/ProviderUtils.cs
index a0a0493d5..fa4840f10 100644
--- a/MediaBrowser.Providers/Manager/ProviderUtils.cs
+++ b/MediaBrowser.Providers/Manager/ProviderUtils.cs
@@ -105,9 +105,9 @@ namespace MediaBrowser.Providers.Manager
if (!lockedFields.Contains(MetadataFields.Cast))
{
- if (replaceData || targetResult.People.Count == 0)
+ if (replaceData || targetResult.People == null || targetResult.People.Count == 0)
{
- targetResult.People = sourceResult.People;
+ targetResult.People = sourceResult.People ?? new List<PersonInfo>();
}
}
diff --git a/MediaBrowser.Providers/Movies/GenericMovieDbInfo.cs b/MediaBrowser.Providers/Movies/GenericMovieDbInfo.cs
index 6854ff12b..5b5afc6c7 100644
--- a/MediaBrowser.Providers/Movies/GenericMovieDbInfo.cs
+++ b/MediaBrowser.Providers/Movies/GenericMovieDbInfo.cs
@@ -231,13 +231,15 @@ namespace MediaBrowser.Providers.Movies
movie.AddGenre(genre);
}
+ resultItem.ResetPeople();
+
//Actors, Directors, Writers - all in People
//actors come from cast
if (movieData.casts != null && movieData.casts.cast != null)
{
foreach (var actor in movieData.casts.cast.OrderBy(a => a.order))
{
- PeopleHelper.AddPerson(resultItem.People, new PersonInfo { Name = actor.name.Trim(), Role = actor.character, Type = PersonType.Actor, SortOrder = actor.order });
+ resultItem.AddPerson(new PersonInfo { Name = actor.name.Trim(), Role = actor.character, Type = PersonType.Actor, SortOrder = actor.order });
}
}
@@ -246,7 +248,7 @@ namespace MediaBrowser.Providers.Movies
{
foreach (var person in movieData.casts.crew)
{
- PeopleHelper.AddPerson(resultItem.People, new PersonInfo { Name = person.name.Trim(), Role = person.job, Type = person.department });
+ resultItem.AddPerson(new PersonInfo { Name = person.name.Trim(), Role = person.job, Type = person.department });
}
}
diff --git a/MediaBrowser.Providers/TV/TvdbEpisodeProvider.cs b/MediaBrowser.Providers/TV/TvdbEpisodeProvider.cs
index f36de88c9..1702a5044 100644
--- a/MediaBrowser.Providers/TV/TvdbEpisodeProvider.cs
+++ b/MediaBrowser.Providers/TV/TvdbEpisodeProvider.cs
@@ -330,6 +330,8 @@ namespace MediaBrowser.Providers.TV
{
reader.MoveToContent();
+ result.ResetPeople();
+
// Loop through each element
while (reader.Read())
{
@@ -603,7 +605,7 @@ namespace MediaBrowser.Providers.TV
.Where(i => !string.IsNullOrWhiteSpace(i))
.Select(str => new PersonInfo { Type = personType, Name = str.Trim() }))
{
- PeopleHelper.AddPerson(result.People, person);
+ result.AddPerson(person);
}
}
@@ -632,7 +634,7 @@ namespace MediaBrowser.Providers.TV
{
if (!string.IsNullOrWhiteSpace(person.Name))
{
- PeopleHelper.AddPerson(result.People, person);
+ result.AddPerson(person);
}
}
}
diff --git a/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs b/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs
index 4c93bd57c..3298fbc76 100644
--- a/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs
+++ b/MediaBrowser.Providers/TV/TvdbSeriesProvider.cs
@@ -180,6 +180,8 @@ namespace MediaBrowser.Providers.TV
cancellationToken.ThrowIfCancellationRequested();
+ result.ResetPeople();
+
FetchActors(result, actorsXmlPath);
}
@@ -721,7 +723,7 @@ namespace MediaBrowser.Providers.TV
if (!string.IsNullOrWhiteSpace(personInfo.Name))
{
- PeopleHelper.AddPerson(result.People, personInfo);
+ result.AddPerson(personInfo);
}
}