mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-09 03:04:24 -04:00
fix language settings inheritance
This commit is contained in:
parent
26fec4f990
commit
18ff8aba74
@ -976,14 +976,21 @@ namespace MediaBrowser.Controller.Entities
|
|||||||
lang = hasLang.PreferredMetadataLanguage;
|
lang = hasLang.PreferredMetadataLanguage;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(lang))
|
if (string.IsNullOrWhiteSpace(lang))
|
||||||
{
|
{
|
||||||
lang = Parents.OfType<IHasPreferredMetadataLanguage>()
|
lang = Parents.OfType<IHasPreferredMetadataLanguage>()
|
||||||
.Select(i => i.PreferredMetadataLanguage)
|
.Select(i => i.PreferredMetadataLanguage)
|
||||||
.FirstOrDefault(i => !string.IsNullOrEmpty(i));
|
.FirstOrDefault(i => !string.IsNullOrWhiteSpace(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(lang))
|
if (string.IsNullOrWhiteSpace(lang))
|
||||||
|
{
|
||||||
|
lang = LibraryManager.GetCollectionFolders(this)
|
||||||
|
.Select(i => i.PreferredMetadataLanguage)
|
||||||
|
.FirstOrDefault(i => !string.IsNullOrWhiteSpace(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(lang))
|
||||||
{
|
{
|
||||||
lang = ConfigurationManager.Configuration.PreferredMetadataLanguage;
|
lang = ConfigurationManager.Configuration.PreferredMetadataLanguage;
|
||||||
}
|
}
|
||||||
@ -1006,14 +1013,21 @@ namespace MediaBrowser.Controller.Entities
|
|||||||
lang = hasLang.PreferredMetadataCountryCode;
|
lang = hasLang.PreferredMetadataCountryCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(lang))
|
if (string.IsNullOrWhiteSpace(lang))
|
||||||
{
|
{
|
||||||
lang = Parents.OfType<IHasPreferredMetadataLanguage>()
|
lang = Parents.OfType<IHasPreferredMetadataLanguage>()
|
||||||
.Select(i => i.PreferredMetadataCountryCode)
|
.Select(i => i.PreferredMetadataCountryCode)
|
||||||
.FirstOrDefault(i => !string.IsNullOrEmpty(i));
|
.FirstOrDefault(i => !string.IsNullOrWhiteSpace(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(lang))
|
if (string.IsNullOrWhiteSpace(lang))
|
||||||
|
{
|
||||||
|
lang = LibraryManager.GetCollectionFolders(this)
|
||||||
|
.Select(i => i.PreferredMetadataCountryCode)
|
||||||
|
.FirstOrDefault(i => !string.IsNullOrWhiteSpace(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(lang))
|
||||||
{
|
{
|
||||||
lang = ConfigurationManager.Configuration.MetadataCountryCode;
|
lang = ConfigurationManager.Configuration.MetadataCountryCode;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
using System.Threading;
|
using MediaBrowser.Controller.Providers;
|
||||||
using System.Threading.Tasks;
|
|
||||||
using MediaBrowser.Controller.Localization;
|
|
||||||
using MediaBrowser.Controller.Providers;
|
|
||||||
using MediaBrowser.Model.Configuration;
|
using MediaBrowser.Model.Configuration;
|
||||||
using MediaBrowser.Model.Entities;
|
using MediaBrowser.Model.Entities;
|
||||||
using MediaBrowser.Model.Querying;
|
using MediaBrowser.Model.Querying;
|
||||||
@ -10,6 +7,8 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Runtime.Serialization;
|
using System.Runtime.Serialization;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace MediaBrowser.Controller.Entities.TV
|
namespace MediaBrowser.Controller.Entities.TV
|
||||||
{
|
{
|
||||||
|
@ -393,5 +393,12 @@ namespace MediaBrowser.Controller.Library
|
|||||||
/// <returns>IEnumerable<Video>.</returns>
|
/// <returns>IEnumerable<Video>.</returns>
|
||||||
IEnumerable<Video> FindExtras(BaseItem owner, List<FileSystemInfo> fileSystemChildren,
|
IEnumerable<Video> FindExtras(BaseItem owner, List<FileSystemInfo> fileSystemChildren,
|
||||||
IDirectoryService directoryService);
|
IDirectoryService directoryService);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the collection folders.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="item">The item.</param>
|
||||||
|
/// <returns>IEnumerable<Folder>.</returns>
|
||||||
|
IEnumerable<Folder> GetCollectionFolders(BaseItem item);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -294,6 +294,19 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case "CountryCode":
|
||||||
|
{
|
||||||
|
var val = reader.ReadElementContentAsString();
|
||||||
|
|
||||||
|
var hasLanguage = item as IHasPreferredMetadataLanguage;
|
||||||
|
if (hasLanguage != null)
|
||||||
|
{
|
||||||
|
hasLanguage.PreferredMetadataCountryCode = val;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case "PlaceOfBirth":
|
case "PlaceOfBirth":
|
||||||
{
|
{
|
||||||
var val = reader.ReadElementContentAsString();
|
var val = reader.ReadElementContentAsString();
|
||||||
|
@ -421,6 +421,10 @@ namespace MediaBrowser.LocalMetadata.Savers
|
|||||||
{
|
{
|
||||||
builder.Append("<Language>" + SecurityElement.Escape(hasLanguage.PreferredMetadataLanguage) + "</Language>");
|
builder.Append("<Language>" + SecurityElement.Escape(hasLanguage.PreferredMetadataLanguage) + "</Language>");
|
||||||
}
|
}
|
||||||
|
if (!string.IsNullOrEmpty(hasLanguage.PreferredMetadataCountryCode))
|
||||||
|
{
|
||||||
|
builder.Append("<CountryCode>" + SecurityElement.Escape(hasLanguage.PreferredMetadataCountryCode) + "</CountryCode>");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use original runtime here, actual file runtime later in MediaInfo
|
// Use original runtime here, actual file runtime later in MediaInfo
|
||||||
|
@ -1489,6 +1489,23 @@ namespace MediaBrowser.Server.Implementations.Library
|
|||||||
return ItemRepository.RetrieveItem(id);
|
return ItemRepository.RetrieveItem(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public IEnumerable<Folder> GetCollectionFolders(BaseItem item)
|
||||||
|
{
|
||||||
|
while (!(item.Parent is AggregateFolder) && item.Parent != null)
|
||||||
|
{
|
||||||
|
item = item.Parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item == null)
|
||||||
|
{
|
||||||
|
return new List<Folder>();
|
||||||
|
}
|
||||||
|
|
||||||
|
return GetUserRootFolder().Children
|
||||||
|
.OfType<Folder>()
|
||||||
|
.Where(i => string.Equals(i.Path, item.Path, StringComparison.OrdinalIgnoreCase) || i.PhysicalLocations.Contains(item.Path));
|
||||||
|
}
|
||||||
|
|
||||||
public string GetContentType(BaseItem item)
|
public string GetContentType(BaseItem item)
|
||||||
{
|
{
|
||||||
string configuredContentType = GetConfiguredContentType(item, false);
|
string configuredContentType = GetConfiguredContentType(item, false);
|
||||||
|
@ -350,6 +350,19 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case "countrycode":
|
||||||
|
{
|
||||||
|
var val = reader.ReadElementContentAsString();
|
||||||
|
|
||||||
|
var hasLanguage = item as IHasPreferredMetadataLanguage;
|
||||||
|
if (hasLanguage != null)
|
||||||
|
{
|
||||||
|
hasLanguage.PreferredMetadataCountryCode = val;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case "website":
|
case "website":
|
||||||
{
|
{
|
||||||
var val = reader.ReadElementContentAsString();
|
var val = reader.ReadElementContentAsString();
|
||||||
|
@ -589,6 +589,10 @@ namespace MediaBrowser.XbmcMetadata.Savers
|
|||||||
{
|
{
|
||||||
writer.WriteElementString("language", hasLanguage.PreferredMetadataLanguage);
|
writer.WriteElementString("language", hasLanguage.PreferredMetadataLanguage);
|
||||||
}
|
}
|
||||||
|
if (!string.IsNullOrEmpty(hasLanguage.PreferredMetadataCountryCode))
|
||||||
|
{
|
||||||
|
writer.WriteElementString("countrycode", hasLanguage.PreferredMetadataCountryCode);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.PremiereDate.HasValue && !(item is Episode))
|
if (item.PremiereDate.HasValue && !(item is Episode))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user