mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-09 03:04:24 -04:00
fixes #553 - Support locking OfficialRating field
This commit is contained in:
parent
831c412ecf
commit
b54240f679
@ -202,6 +202,18 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
return NeedsRefreshInternal(item, data);
|
return NeedsRefreshInternal(item, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets a value indicating whether [enforce dont fetch metadata].
|
||||||
|
/// </summary>
|
||||||
|
/// <value><c>true</c> if [enforce dont fetch metadata]; otherwise, <c>false</c>.</value>
|
||||||
|
public virtual bool EnforceDontFetchMetadata
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Needses the refresh internal.
|
/// Needses the refresh internal.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -37,6 +37,10 @@ namespace MediaBrowser.Model.Entities
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// The runtime
|
/// The runtime
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Runtime
|
Runtime,
|
||||||
|
/// <summary>
|
||||||
|
/// The official rating
|
||||||
|
/// </summary>
|
||||||
|
OfficialRating
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -384,7 +384,10 @@ namespace MediaBrowser.Providers.MediaInfo
|
|||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(officialRating))
|
if (!string.IsNullOrWhiteSpace(officialRating))
|
||||||
{
|
{
|
||||||
video.OfficialRating = officialRating;
|
if (!video.LockedFields.Contains(MetadataFields.OfficialRating))
|
||||||
|
{
|
||||||
|
video.OfficialRating = officialRating;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -317,7 +317,7 @@ namespace MediaBrowser.Providers.Movies
|
|||||||
var boxset = item as BoxSet;
|
var boxset = item as BoxSet;
|
||||||
if (boxset != null)
|
if (boxset != null)
|
||||||
{
|
{
|
||||||
// See if any movies have a collection id already
|
// See if any movies have a collection id already
|
||||||
var collId = boxset.Children.Concat(boxset.GetLinkedChildren()).OfType<Video>()
|
var collId = boxset.Children.Concat(boxset.GetLinkedChildren()).OfType<Video>()
|
||||||
.Select(i => i.GetProviderId(MetadataProviders.TmdbCollection))
|
.Select(i => i.GetProviderId(MetadataProviders.TmdbCollection))
|
||||||
.FirstOrDefault(i => i != null);
|
.FirstOrDefault(i => i != null);
|
||||||
@ -462,7 +462,7 @@ namespace MediaBrowser.Providers.Movies
|
|||||||
Logger.Info("MoviedbProvider: Ignoring " + item.Name + " because ID forced blank.");
|
Logger.Info("MoviedbProvider: Ignoring " + item.Name + " because ID forced blank.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
item.SetProviderId(MetadataProviders.Tmdb, id);
|
item.SetProviderId(MetadataProviders.Tmdb, id);
|
||||||
|
|
||||||
var mainResult = await FetchMainResult(item, id, cancellationToken).ConfigureAwait(false);
|
var mainResult = await FetchMainResult(item, id, cancellationToken).ConfigureAwait(false);
|
||||||
@ -586,14 +586,18 @@ namespace MediaBrowser.Providers.Movies
|
|||||||
var ourRelease = movieData.releases.countries.FirstOrDefault(c => c.iso_3166_1.Equals(ConfigurationManager.Configuration.MetadataCountryCode, StringComparison.OrdinalIgnoreCase)) ?? new Country();
|
var ourRelease = movieData.releases.countries.FirstOrDefault(c => c.iso_3166_1.Equals(ConfigurationManager.Configuration.MetadataCountryCode, StringComparison.OrdinalIgnoreCase)) ?? new Country();
|
||||||
var usRelease = movieData.releases.countries.FirstOrDefault(c => c.iso_3166_1.Equals("US", StringComparison.OrdinalIgnoreCase)) ?? new Country();
|
var usRelease = movieData.releases.countries.FirstOrDefault(c => c.iso_3166_1.Equals("US", StringComparison.OrdinalIgnoreCase)) ?? new Country();
|
||||||
var minimunRelease = movieData.releases.countries.OrderBy(c => c.release_date).FirstOrDefault() ?? new Country();
|
var minimunRelease = movieData.releases.countries.OrderBy(c => c.release_date).FirstOrDefault() ?? new Country();
|
||||||
var ratingPrefix = ConfigurationManager.Configuration.MetadataCountryCode.Equals("us", StringComparison.OrdinalIgnoreCase) ? "" : ConfigurationManager.Configuration.MetadataCountryCode + "-";
|
|
||||||
movie.OfficialRating = !string.IsNullOrEmpty(ourRelease.certification)
|
if (!movie.LockedFields.Contains(MetadataFields.OfficialRating))
|
||||||
? ratingPrefix + ourRelease.certification
|
{
|
||||||
: !string.IsNullOrEmpty(usRelease.certification)
|
var ratingPrefix = ConfigurationManager.Configuration.MetadataCountryCode.Equals("us", StringComparison.OrdinalIgnoreCase) ? "" : ConfigurationManager.Configuration.MetadataCountryCode + "-";
|
||||||
? usRelease.certification
|
movie.OfficialRating = !string.IsNullOrEmpty(ourRelease.certification)
|
||||||
: !string.IsNullOrEmpty(minimunRelease.certification)
|
? ratingPrefix + ourRelease.certification
|
||||||
? minimunRelease.iso_3166_1 + "-" + minimunRelease.certification
|
: !string.IsNullOrEmpty(usRelease.certification)
|
||||||
: null;
|
? usRelease.certification
|
||||||
|
: !string.IsNullOrEmpty(minimunRelease.certification)
|
||||||
|
? minimunRelease.iso_3166_1 + "-" + minimunRelease.certification
|
||||||
|
: null;
|
||||||
|
}
|
||||||
|
|
||||||
if (ourRelease.release_date != default(DateTime))
|
if (ourRelease.release_date != default(DateTime))
|
||||||
{
|
{
|
||||||
@ -632,7 +636,7 @@ namespace MediaBrowser.Providers.Movies
|
|||||||
}
|
}
|
||||||
|
|
||||||
//if that didn't find a rating and we are a boxset, use the one from our first child
|
//if that didn't find a rating and we are a boxset, use the one from our first child
|
||||||
if (movie.OfficialRating == null && movie is BoxSet)
|
if (movie.OfficialRating == null && movie is BoxSet && !movie.LockedFields.Contains(MetadataFields.OfficialRating))
|
||||||
{
|
{
|
||||||
var boxset = movie as BoxSet;
|
var boxset = movie as BoxSet;
|
||||||
Logger.Info("MovieDbProvider - Using rating of first child of boxset...");
|
Logger.Info("MovieDbProvider - Using rating of first child of boxset...");
|
||||||
|
@ -153,6 +153,15 @@ namespace MediaBrowser.Providers.TV
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override bool EnforceDontFetchMetadata
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
// Other providers depend on the xml downloaded here
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected override DateTime CompareDate(BaseItem item)
|
protected override DateTime CompareDate(BaseItem item)
|
||||||
{
|
{
|
||||||
var seriesId = item.GetProviderId(MetadataProviders.Tvdb);
|
var seriesId = item.GetProviderId(MetadataProviders.Tvdb);
|
||||||
@ -440,7 +449,10 @@ namespace MediaBrowser.Providers.TV
|
|||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
if (!string.IsNullOrWhiteSpace(val))
|
||||||
{
|
{
|
||||||
item.OfficialRating = val;
|
if (!item.LockedFields.Contains(MetadataFields.OfficialRating))
|
||||||
|
{
|
||||||
|
item.OfficialRating = val;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -128,7 +128,7 @@ namespace MediaBrowser.Server.Implementations.Providers
|
|||||||
|
|
||||||
// Put this check below the await because the needs refresh of the next tier of providers may depend on the previous ones running
|
// Put this check below the await because the needs refresh of the next tier of providers may depend on the previous ones running
|
||||||
// This is the case for the fan art provider which depends on the movie and tv providers having run before them
|
// This is the case for the fan art provider which depends on the movie and tv providers having run before them
|
||||||
if (provider.RequiresInternet && item.DontFetchMeta)
|
if (provider.RequiresInternet && item.DontFetchMeta && provider.EnforceDontFetchMetadata)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user