mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-20 17:14:42 +01:00
allow custom language per item
This commit is contained in:
@@ -4,5 +4,11 @@ namespace MediaBrowser.Controller.Entities
|
||||
public class AdultVideo : Video, IHasPreferredMetadataLanguage
|
||||
{
|
||||
public string PreferredMetadataLanguage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the preferred metadata country code.
|
||||
/// </summary>
|
||||
/// <value>The preferred metadata country code.</value>
|
||||
public string PreferredMetadataCountryCode { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,19 +9,13 @@ namespace MediaBrowser.Controller.Entities.Audio
|
||||
/// <summary>
|
||||
/// Class Audio
|
||||
/// </summary>
|
||||
public class Audio : BaseItem, IHasMediaStreams, IHasAlbumArtist, IHasArtist, IHasMusicGenres, IHasLanguage
|
||||
public class Audio : BaseItem, IHasMediaStreams, IHasAlbumArtist, IHasArtist, IHasMusicGenres
|
||||
{
|
||||
public Audio()
|
||||
{
|
||||
Artists = new List<string>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the language.
|
||||
/// </summary>
|
||||
/// <value>The language.</value>
|
||||
public string Language { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a value indicating whether this instance has embedded image.
|
||||
/// </summary>
|
||||
|
||||
@@ -960,7 +960,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
/// Gets the preferred metadata language.
|
||||
/// </summary>
|
||||
/// <returns>System.String.</returns>
|
||||
public virtual string GetPreferredMetadataLanguage()
|
||||
public string GetPreferredMetadataLanguage()
|
||||
{
|
||||
string lang = null;
|
||||
|
||||
@@ -971,6 +971,13 @@ namespace MediaBrowser.Controller.Entities
|
||||
lang = hasLang.PreferredMetadataLanguage;
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(lang))
|
||||
{
|
||||
lang = Parents.OfType<IHasPreferredMetadataLanguage>()
|
||||
.Select(i => i.PreferredMetadataLanguage)
|
||||
.FirstOrDefault(i => !string.IsNullOrEmpty(i));
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(lang))
|
||||
{
|
||||
lang = ConfigurationManager.Configuration.PreferredMetadataLanguage;
|
||||
@@ -979,6 +986,36 @@ namespace MediaBrowser.Controller.Entities
|
||||
return lang;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the preferred metadata language.
|
||||
/// </summary>
|
||||
/// <returns>System.String.</returns>
|
||||
public string GetPreferredMetadataCountryCode()
|
||||
{
|
||||
string lang = null;
|
||||
|
||||
var hasLang = this as IHasPreferredMetadataLanguage;
|
||||
|
||||
if (hasLang != null)
|
||||
{
|
||||
lang = hasLang.PreferredMetadataCountryCode;
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(lang))
|
||||
{
|
||||
lang = Parents.OfType<IHasPreferredMetadataLanguage>()
|
||||
.Select(i => i.PreferredMetadataCountryCode)
|
||||
.FirstOrDefault(i => !string.IsNullOrEmpty(i));
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(lang))
|
||||
{
|
||||
lang = ConfigurationManager.Configuration.MetadataCountryCode;
|
||||
}
|
||||
|
||||
return lang;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines if a given user has access to this item
|
||||
/// </summary>
|
||||
|
||||
@@ -23,6 +23,12 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
public string PreferredMetadataLanguage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the preferred metadata country code.
|
||||
/// </summary>
|
||||
/// <value>The preferred metadata country code.</value>
|
||||
public string PreferredMetadataCountryCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
|
||||
@@ -5,7 +5,7 @@ using System.Collections.Generic;
|
||||
|
||||
namespace MediaBrowser.Controller.Entities
|
||||
{
|
||||
public class Game : BaseItem, IHasSoundtracks, IHasTrailers, IHasThemeMedia, IHasTags, IHasLanguage, IHasScreenshots, IHasPreferredMetadataLanguage
|
||||
public class Game : BaseItem, IHasSoundtracks, IHasTrailers, IHasThemeMedia, IHasTags, IHasScreenshots, IHasPreferredMetadataLanguage
|
||||
{
|
||||
public List<Guid> SoundtrackIds { get; set; }
|
||||
|
||||
@@ -14,6 +14,12 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
public string PreferredMetadataLanguage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the preferred metadata country code.
|
||||
/// </summary>
|
||||
/// <value>The preferred metadata country code.</value>
|
||||
public string PreferredMetadataCountryCode { get; set; }
|
||||
|
||||
public Game()
|
||||
{
|
||||
MultiPartGameFiles = new List<string>();
|
||||
@@ -26,12 +32,6 @@ namespace MediaBrowser.Controller.Entities
|
||||
ScreenshotImagePaths = new List<string>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the language.
|
||||
/// </summary>
|
||||
/// <value>The language.</value>
|
||||
public string Language { get; set; }
|
||||
|
||||
public List<Guid> LocalTrailerIds { get; set; }
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
|
||||
namespace MediaBrowser.Controller.Entities
|
||||
{
|
||||
/// <summary>
|
||||
/// Interface IHasLanguage
|
||||
/// </summary>
|
||||
public interface IHasLanguage
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the language.
|
||||
/// </summary>
|
||||
/// <value>The language.</value>
|
||||
string Language { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -11,5 +11,11 @@ namespace MediaBrowser.Controller.Entities
|
||||
/// </summary>
|
||||
/// <value>The preferred metadata language.</value>
|
||||
string PreferredMetadataLanguage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the preferred metadata country code.
|
||||
/// </summary>
|
||||
/// <value>The preferred metadata country code.</value>
|
||||
string PreferredMetadataCountryCode { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,12 @@ namespace MediaBrowser.Controller.Entities.Movies
|
||||
|
||||
public string PreferredMetadataLanguage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the preferred metadata country code.
|
||||
/// </summary>
|
||||
/// <value>The preferred metadata country code.</value>
|
||||
public string PreferredMetadataCountryCode { get; set; }
|
||||
|
||||
protected override bool GetBlockUnratedValue(UserConfiguration config)
|
||||
{
|
||||
return config.BlockUnratedMovies;
|
||||
|
||||
@@ -21,6 +21,12 @@ namespace MediaBrowser.Controller.Entities.Movies
|
||||
public List<Guid> ThemeSongIds { get; set; }
|
||||
public List<Guid> ThemeVideoIds { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the preferred metadata country code.
|
||||
/// </summary>
|
||||
/// <value>The preferred metadata country code.</value>
|
||||
public string PreferredMetadataCountryCode { get; set; }
|
||||
|
||||
public string PreferredMetadataLanguage { get; set; }
|
||||
|
||||
public Movie()
|
||||
|
||||
@@ -21,6 +21,12 @@ namespace MediaBrowser.Controller.Entities.TV
|
||||
|
||||
public int SeasonCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the preferred metadata country code.
|
||||
/// </summary>
|
||||
/// <value>The preferred metadata country code.</value>
|
||||
public string PreferredMetadataCountryCode { get; set; }
|
||||
|
||||
public Series()
|
||||
{
|
||||
AirDays = new List<DayOfWeek>();
|
||||
|
||||
@@ -14,6 +14,12 @@ namespace MediaBrowser.Controller.Entities
|
||||
public List<Guid> SoundtrackIds { get; set; }
|
||||
|
||||
public string PreferredMetadataLanguage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the preferred metadata country code.
|
||||
/// </summary>
|
||||
/// <value>The preferred metadata country code.</value>
|
||||
public string PreferredMetadataCountryCode { get; set; }
|
||||
|
||||
public Trailer()
|
||||
{
|
||||
|
||||
@@ -86,7 +86,6 @@
|
||||
<Compile Include="Entities\IHasBudget.cs" />
|
||||
<Compile Include="Entities\IHasCriticRating.cs" />
|
||||
<Compile Include="Entities\IHasImages.cs" />
|
||||
<Compile Include="Entities\IHasLanguage.cs" />
|
||||
<Compile Include="Entities\IHasMediaStreams.cs" />
|
||||
<Compile Include="Entities\IHasPreferredMetadataLanguage.cs" />
|
||||
<Compile Include="Entities\IHasProductionLocations.cs" />
|
||||
|
||||
@@ -269,10 +269,10 @@ namespace MediaBrowser.Controller.Providers
|
||||
{
|
||||
var val = reader.ReadElementContentAsString();
|
||||
|
||||
var hasLanguage = item as IHasLanguage;
|
||||
var hasLanguage = item as IHasPreferredMetadataLanguage;
|
||||
if (hasLanguage != null)
|
||||
{
|
||||
hasLanguage.Language = val;
|
||||
hasLanguage.PreferredMetadataLanguage = val;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user