mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-05-31 04:48:27 +01:00
Convert Person.Type to use PersonKind enum (#9487)
This commit is contained in:
@@ -6,6 +6,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Xml;
|
||||
using Jellyfin.Data.Enums;
|
||||
using Jellyfin.Extensions;
|
||||
using MediaBrowser.Common.Configuration;
|
||||
using MediaBrowser.Common.Providers;
|
||||
@@ -530,7 +531,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
||||
case "director":
|
||||
{
|
||||
var val = reader.ReadElementContentAsString();
|
||||
foreach (var p in SplitNames(val).Select(v => new PersonInfo { Name = v.Trim(), Type = PersonType.Director }))
|
||||
foreach (var p in SplitNames(val).Select(v => new PersonInfo { Name = v.Trim(), Type = PersonKind.Director }))
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(p.Name))
|
||||
{
|
||||
@@ -552,7 +553,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
||||
var parts = val.Split('/').Select(i => i.Trim())
|
||||
.Where(i => !string.IsNullOrEmpty(i));
|
||||
|
||||
foreach (var p in parts.Select(v => new PersonInfo { Name = v.Trim(), Type = PersonType.Writer }))
|
||||
foreach (var p in parts.Select(v => new PersonInfo { Name = v.Trim(), Type = PersonKind.Writer }))
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(p.Name))
|
||||
{
|
||||
@@ -569,7 +570,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
||||
case "writer":
|
||||
{
|
||||
var val = reader.ReadElementContentAsString();
|
||||
foreach (var p in SplitNames(val).Select(v => new PersonInfo { Name = v.Trim(), Type = PersonType.Writer }))
|
||||
foreach (var p in SplitNames(val).Select(v => new PersonInfo { Name = v.Trim(), Type = PersonKind.Writer }))
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(p.Name))
|
||||
{
|
||||
@@ -1206,7 +1207,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
||||
private PersonInfo GetPersonFromXmlNode(XmlReader reader)
|
||||
{
|
||||
var name = string.Empty;
|
||||
var type = PersonType.Actor; // If type is not specified assume actor
|
||||
var type = PersonKind.Actor; // If type is not specified assume actor
|
||||
var role = string.Empty;
|
||||
int? sortOrder = null;
|
||||
string? imageUrl = null;
|
||||
@@ -1240,21 +1241,9 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
||||
case "type":
|
||||
{
|
||||
var val = reader.ReadElementContentAsString();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(val))
|
||||
if (!Enum.TryParse(val, true, out type))
|
||||
{
|
||||
type = val switch
|
||||
{
|
||||
PersonType.Composer => PersonType.Composer,
|
||||
PersonType.Conductor => PersonType.Conductor,
|
||||
PersonType.Director => PersonType.Director,
|
||||
PersonType.Lyricist => PersonType.Lyricist,
|
||||
PersonType.Producer => PersonType.Producer,
|
||||
PersonType.Writer => PersonType.Writer,
|
||||
PersonType.GuestStar => PersonType.GuestStar,
|
||||
// unknown type --> actor
|
||||
_ => PersonType.Actor
|
||||
};
|
||||
type = PersonKind.Actor;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@@ -10,6 +10,7 @@ using System.Text.RegularExpressions;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml;
|
||||
using Jellyfin.Data.Enums;
|
||||
using Jellyfin.Extensions;
|
||||
using MediaBrowser.Common.Extensions;
|
||||
using MediaBrowser.Controller.Configuration;
|
||||
@@ -485,7 +486,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
|
||||
var people = libraryManager.GetPeople(item);
|
||||
|
||||
var directors = people
|
||||
.Where(i => IsPersonType(i, PersonType.Director))
|
||||
.Where(i => i.IsType(PersonKind.Director))
|
||||
.Select(i => i.Name)
|
||||
.ToList();
|
||||
|
||||
@@ -495,7 +496,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
|
||||
}
|
||||
|
||||
var writers = people
|
||||
.Where(i => IsPersonType(i, PersonType.Writer))
|
||||
.Where(i => i.IsType(PersonKind.Writer))
|
||||
.Select(i => i.Name)
|
||||
.Distinct(StringComparer.OrdinalIgnoreCase)
|
||||
.ToList();
|
||||
@@ -913,7 +914,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
|
||||
{
|
||||
foreach (var person in people)
|
||||
{
|
||||
if (IsPersonType(person, PersonType.Director) || IsPersonType(person, PersonType.Writer))
|
||||
if (person.IsType(PersonKind.Director) || person.IsType(PersonKind.Writer))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -930,9 +931,9 @@ namespace MediaBrowser.XbmcMetadata.Savers
|
||||
writer.WriteElementString("role", person.Role);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(person.Type))
|
||||
if (person.Type != PersonKind.Unknown)
|
||||
{
|
||||
writer.WriteElementString("type", person.Type);
|
||||
writer.WriteElementString("type", person.Type.ToString());
|
||||
}
|
||||
|
||||
if (person.SortOrder.HasValue)
|
||||
@@ -969,10 +970,6 @@ namespace MediaBrowser.XbmcMetadata.Savers
|
||||
return libraryManager.GetPathAfterNetworkSubstitution(image.Path);
|
||||
}
|
||||
|
||||
private bool IsPersonType(PersonInfo person, string type)
|
||||
=> string.Equals(person.Type, type, StringComparison.OrdinalIgnoreCase)
|
||||
|| string.Equals(person.Role, type, StringComparison.OrdinalIgnoreCase);
|
||||
|
||||
private void AddCustomTags(string path, IReadOnlyCollection<string> xmlTagsUsed, XmlWriter writer, ILogger<BaseNfoSaver> logger)
|
||||
{
|
||||
var settings = new XmlReaderSettings()
|
||||
|
||||
Reference in New Issue
Block a user