support multiple user data keys

This commit is contained in:
Luke Pulverenti
2016-04-30 19:05:21 -04:00
parent 1f9d32afc5
commit 6330b13262
26 changed files with 219 additions and 268 deletions

View File

@@ -98,20 +98,26 @@ namespace MediaBrowser.Controller.Entities.TV
}
}
/// <summary>
/// Gets the user data key.
/// </summary>
/// <returns>System.String.</returns>
protected override string CreateUserDataKey()
[IgnoreDataMember]
protected override bool EnableDefaultVideoUserDataKeys
{
var series = Series;
get
{
return false;
}
}
public override List<string> GetUserDataKeys()
{
var list = base.GetUserDataKeys();
var series = Series;
if (series != null && ParentIndexNumber.HasValue && IndexNumber.HasValue)
{
return series.GetUserDataKey() + ParentIndexNumber.Value.ToString("000") + IndexNumber.Value.ToString("000");
list.InsertRange(0, series.GetUserDataKeys().Select(i => i + ParentIndexNumber.Value.ToString("000") + IndexNumber.Value.ToString("000")));
}
return base.CreateUserDataKey();
return list;
}
/// <summary>

View File

@@ -53,19 +53,17 @@ namespace MediaBrowser.Controller.Entities.TV
};
}
/// <summary>
/// Gets the user data key.
/// </summary>
/// <returns>System.String.</returns>
protected override string CreateUserDataKey()
public override List<string> GetUserDataKeys()
{
if (Series != null)
var list = base.GetUserDataKeys();
var series = Series;
if (series != null)
{
var seasonNo = IndexNumber ?? 0;
return Series.GetUserDataKey() + seasonNo.ToString("000");
list.InsertRange(0, series.GetUserDataKeys().Select(i => i + (IndexNumber ?? 0).ToString("000")));
}
return base.CreateUserDataKey();
return list;
}
/// <summary>

View File

@@ -95,21 +95,23 @@ namespace MediaBrowser.Controller.Entities.TV
/// Gets the user data key.
/// </summary>
/// <returns>System.String.</returns>
protected override string CreateUserDataKey()
public override List<string> GetUserDataKeys()
{
var key = this.GetProviderId(MetadataProviders.Tvdb);
var list = base.GetUserDataKeys();
if (string.IsNullOrWhiteSpace(key))
var key = this.GetProviderId(MetadataProviders.Imdb);
if (!string.IsNullOrWhiteSpace(key))
{
key = this.GetProviderId(MetadataProviders.Imdb);
list.Insert(0, key);
}
if (string.IsNullOrWhiteSpace(key))
key = this.GetProviderId(MetadataProviders.Tvdb);
if (!string.IsNullOrWhiteSpace(key))
{
key = base.CreateUserDataKey();
list.Insert(0, key);
}
return key;
return list;
}
/// <summary>
@@ -126,8 +128,8 @@ namespace MediaBrowser.Controller.Entities.TV
// Studio, Genre and Rating will all be the same so makes no sense to index by these
protected override IEnumerable<string> GetIndexByOptions()
{
return new List<string> {
{"None"},
return new List<string> {
{"None"},
{"Performer"},
{"Director"},
{"Year"},
@@ -280,9 +282,9 @@ namespace MediaBrowser.Controller.Entities.TV
if (episode != null
&& refreshOptions.MetadataRefreshMode != MetadataRefreshMode.FullRefresh
&& !refreshOptions.ReplaceAllMetadata
&& episode.IsMissingEpisode
&& episode.LocationType == Model.Entities.LocationType.Virtual
&& episode.PremiereDate.HasValue
&& episode.IsMissingEpisode
&& episode.LocationType == Model.Entities.LocationType.Virtual
&& episode.PremiereDate.HasValue
&& (DateTime.UtcNow - episode.PremiereDate.Value).TotalDays > 30)
{
skipItem = true;