aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs
diff options
context:
space:
mode:
authorDominik <git@secnd.me>2023-06-15 19:38:42 +0200
committerGitHub <noreply@github.com>2023-06-15 19:38:42 +0200
commit17f1e8d19b1fd693893d66d2275ed8ae2476344e (patch)
tree7f48be975faa92042769870957587b3c7864f631 /MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs
parente8ae7e5c38e28f13fa8de295e26c930cb46d9b79 (diff)
parent6771b5cabe96b4b3cbd1cd0c998d564f3dd17ed4 (diff)
Merge branch 'master' into segment-deletion
Diffstat (limited to 'MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs')
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs53
1 files changed, 28 insertions, 25 deletions
diff --git a/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs
index 92ce14be2..cb369d837 100644
--- a/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs
+++ b/MediaBrowser.LocalMetadata/Parsers/BaseItemXmlParser.cs
@@ -6,8 +6,10 @@ using System.Linq;
using System.Text;
using System.Threading;
using System.Xml;
+using Jellyfin.Data.Enums;
using Jellyfin.Extensions;
using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Playlists;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using Microsoft.Extensions.Logging;
@@ -54,11 +56,7 @@ namespace MediaBrowser.LocalMetadata.Parsers
public void Fetch(MetadataResult<T> item, string metadataFile, CancellationToken cancellationToken)
{
ArgumentNullException.ThrowIfNull(item);
-
- if (string.IsNullOrEmpty(metadataFile))
- {
- throw new ArgumentException("The metadata file was empty or null.", nameof(metadataFile));
- }
+ ArgumentException.ThrowIfNullOrEmpty(metadataFile);
var settings = new XmlReaderSettings
{
@@ -75,10 +73,7 @@ namespace MediaBrowser.LocalMetadata.Parsers
foreach (var info in idInfos)
{
var id = info.Key + "Id";
- if (!_validProviderIds.ContainsKey(id))
- {
- _validProviderIds.Add(id, info.Key);
- }
+ _validProviderIds.TryAdd(id, info.Key);
}
// Additional Mappings
@@ -173,12 +168,9 @@ namespace MediaBrowser.LocalMetadata.Parsers
{
var text = reader.ReadElementContentAsString();
- if (!string.IsNullOrEmpty(text))
+ if (float.TryParse(text, CultureInfo.InvariantCulture, out var value))
{
- if (float.TryParse(text, NumberStyles.Any, CultureInfo.InvariantCulture, out var value))
- {
- item.CriticRating = value;
- }
+ item.CriticRating = value;
}
break;
@@ -377,7 +369,7 @@ namespace MediaBrowser.LocalMetadata.Parsers
case "Director":
{
- foreach (var p in SplitNames(reader.ReadElementContentAsString()).Select(v => new PersonInfo { Name = v.Trim(), Type = PersonType.Director }))
+ foreach (var p in SplitNames(reader.ReadElementContentAsString()).Select(v => new PersonInfo { Name = v.Trim(), Type = PersonKind.Director }))
{
if (string.IsNullOrWhiteSpace(p.Name))
{
@@ -392,7 +384,7 @@ namespace MediaBrowser.LocalMetadata.Parsers
case "Writer":
{
- foreach (var p in SplitNames(reader.ReadElementContentAsString()).Select(v => new PersonInfo { Name = v.Trim(), Type = PersonType.Writer }))
+ foreach (var p in SplitNames(reader.ReadElementContentAsString()).Select(v => new PersonInfo { Name = v.Trim(), Type = PersonKind.Writer }))
{
if (string.IsNullOrWhiteSpace(p.Name))
{
@@ -419,7 +411,7 @@ namespace MediaBrowser.LocalMetadata.Parsers
else
{
// Old-style piped string
- foreach (var p in SplitNames(actors).Select(v => new PersonInfo { Name = v.Trim(), Type = PersonType.Actor }))
+ foreach (var p in SplitNames(actors).Select(v => new PersonInfo { Name = v.Trim(), Type = PersonKind.Actor }))
{
if (string.IsNullOrWhiteSpace(p.Name))
{
@@ -435,7 +427,7 @@ namespace MediaBrowser.LocalMetadata.Parsers
case "GuestStars":
{
- foreach (var p in SplitNames(reader.ReadElementContentAsString()).Select(v => new PersonInfo { Name = v.Trim(), Type = PersonType.GuestStar }))
+ foreach (var p in SplitNames(reader.ReadElementContentAsString()).Select(v => new PersonInfo { Name = v.Trim(), Type = PersonKind.GuestStar }))
{
if (string.IsNullOrWhiteSpace(p.Name))
{
@@ -643,6 +635,21 @@ namespace MediaBrowser.LocalMetadata.Parsers
break;
}
+ case "OwnerUserId":
+ {
+ var val = reader.ReadElementContentAsString();
+
+ if (Guid.TryParse(val, out var guid) && !guid.Equals(Guid.Empty))
+ {
+ if (item is Playlist playlist)
+ {
+ playlist.OwnerUserId = guid;
+ }
+ }
+
+ break;
+ }
+
case "Format3D":
{
var val = reader.ReadElementContentAsString();
@@ -721,7 +728,7 @@ namespace MediaBrowser.LocalMetadata.Parsers
{
var child = GetShare(subReader);
- if (child != null)
+ if (child is not null)
{
list.Add(child);
}
@@ -1042,7 +1049,7 @@ namespace MediaBrowser.LocalMetadata.Parsers
private IEnumerable<PersonInfo> GetPersonsFromXmlNode(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;
@@ -1063,11 +1070,7 @@ namespace MediaBrowser.LocalMetadata.Parsers
case "Type":
{
var val = reader.ReadElementContentAsString();
-
- if (!string.IsNullOrWhiteSpace(val))
- {
- type = val;
- }
+ _ = Enum.TryParse(val, true, out type);
break;
}