mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-06-04 06:04:25 -04:00
Add ReadNormalizedString to XmlReaderExtensions
This commit is contained in:
parent
99832642ce
commit
8a7a1cc723
@ -14,6 +14,18 @@ namespace MediaBrowser.Controller.Extensions;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static class XmlReaderExtensions
|
public static class XmlReaderExtensions
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Reads a trimmed string from the current node.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="reader">The <see cref="XmlReader"/>.</param>
|
||||||
|
/// <returns>The trimmed content.</returns>
|
||||||
|
public static string ReadNormalizedString(this XmlReader reader)
|
||||||
|
{
|
||||||
|
ArgumentNullException.ThrowIfNull(reader);
|
||||||
|
|
||||||
|
return reader.ReadElementContentAsString().Trim();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Parses a <see cref="DateTime"/> from the current node.
|
/// Parses a <see cref="DateTime"/> from the current node.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -137,21 +137,11 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case "OriginalTitle":
|
case "OriginalTitle":
|
||||||
{
|
item.OriginalTitle = reader.ReadNormalizedString();
|
||||||
var val = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(val))
|
|
||||||
{
|
|
||||||
item.OriginalTitle = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
case "LocalTitle":
|
case "LocalTitle":
|
||||||
item.Name = reader.ReadElementContentAsString();
|
item.Name = reader.ReadNormalizedString();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "CriticRating":
|
case "CriticRating":
|
||||||
{
|
{
|
||||||
var text = reader.ReadElementContentAsString();
|
var text = reader.ReadElementContentAsString();
|
||||||
@ -165,63 +155,26 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|||||||
}
|
}
|
||||||
|
|
||||||
case "SortTitle":
|
case "SortTitle":
|
||||||
{
|
item.ForcedSortName = reader.ReadNormalizedString();
|
||||||
var val = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
|
||||||
item.ForcedSortName = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
case "Overview":
|
case "Overview":
|
||||||
case "Description":
|
case "Description":
|
||||||
{
|
item.Overview = reader.ReadNormalizedString();
|
||||||
var val = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
|
||||||
item.Overview = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
case "Language":
|
case "Language":
|
||||||
{
|
item.PreferredMetadataLanguage = reader.ReadNormalizedString();
|
||||||
var val = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
item.PreferredMetadataLanguage = val;
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
case "CountryCode":
|
case "CountryCode":
|
||||||
{
|
item.PreferredMetadataCountryCode = reader.ReadNormalizedString();
|
||||||
var val = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
item.PreferredMetadataCountryCode = val;
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
case "PlaceOfBirth":
|
case "PlaceOfBirth":
|
||||||
{
|
var placeOfBirth = reader.ReadNormalizedString();
|
||||||
var val = reader.ReadElementContentAsString();
|
if (!string.IsNullOrEmpty(placeOfBirth) && item is Person person)
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
{
|
||||||
if (item is Person person)
|
person.ProductionLocations = new[] { placeOfBirth };
|
||||||
{
|
|
||||||
person.ProductionLocations = new[] { val };
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
case "LockedFields":
|
case "LockedFields":
|
||||||
{
|
{
|
||||||
var val = reader.ReadElementContentAsString();
|
var val = reader.ReadElementContentAsString();
|
||||||
@ -263,10 +216,7 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|||||||
{
|
{
|
||||||
if (!reader.IsEmptyElement)
|
if (!reader.IsEmptyElement)
|
||||||
{
|
{
|
||||||
using (var subtree = reader.ReadSubtree())
|
reader.Skip();
|
||||||
{
|
|
||||||
FetchFromCountriesNode(subtree);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -278,29 +228,11 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|||||||
|
|
||||||
case "ContentRating":
|
case "ContentRating":
|
||||||
case "MPAARating":
|
case "MPAARating":
|
||||||
{
|
item.OfficialRating = reader.ReadNormalizedString();
|
||||||
var rating = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(rating))
|
|
||||||
{
|
|
||||||
item.OfficialRating = rating;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
case "CustomRating":
|
case "CustomRating":
|
||||||
{
|
item.CustomRating = reader.ReadNormalizedString();
|
||||||
var val = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
|
||||||
item.CustomRating = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
case "RunningTime":
|
case "RunningTime":
|
||||||
{
|
{
|
||||||
var text = reader.ReadElementContentAsString();
|
var text = reader.ReadElementContentAsString();
|
||||||
@ -317,16 +249,13 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|||||||
}
|
}
|
||||||
|
|
||||||
case "AspectRatio":
|
case "AspectRatio":
|
||||||
{
|
var aspectRatio = reader.ReadNormalizedString();
|
||||||
var val = reader.ReadElementContentAsString();
|
if (!string.IsNullOrEmpty(aspectRatio) && item is IHasAspectRatio hasAspectRatio)
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val) && item is IHasAspectRatio hasAspectRatio)
|
|
||||||
{
|
{
|
||||||
hasAspectRatio.AspectRatio = val;
|
hasAspectRatio.AspectRatio = aspectRatio;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
case "LockData":
|
case "LockData":
|
||||||
{
|
{
|
||||||
@ -376,32 +305,21 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case "Trailer":
|
case "Trailer":
|
||||||
{
|
var trailer = reader.ReadNormalizedString();
|
||||||
var val = reader.ReadElementContentAsString();
|
if (!string.IsNullOrEmpty(trailer))
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
{
|
||||||
item.AddTrailerUrl(val);
|
item.AddTrailerUrl(trailer);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
case "DisplayOrder":
|
case "DisplayOrder":
|
||||||
{
|
var displayOrder = reader.ReadNormalizedString();
|
||||||
var val = reader.ReadElementContentAsString();
|
if (!string.IsNullOrEmpty(displayOrder) && item is IHasDisplayOrder hasDisplayOrder)
|
||||||
|
|
||||||
if (item is IHasDisplayOrder hasDisplayOrder)
|
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
hasDisplayOrder.DisplayOrder = displayOrder;
|
||||||
{
|
|
||||||
hasDisplayOrder.DisplayOrder = val;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
case "Trailers":
|
case "Trailers":
|
||||||
{
|
{
|
||||||
if (!reader.IsEmptyElement)
|
if (!reader.IsEmptyElement)
|
||||||
@ -468,8 +386,8 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case "CollectionNumber":
|
case "CollectionNumber":
|
||||||
var tmdbCollection = reader.ReadElementContentAsString();
|
var tmdbCollection = reader.ReadNormalizedString();
|
||||||
if (!string.IsNullOrWhiteSpace(tmdbCollection))
|
if (!string.IsNullOrEmpty(tmdbCollection))
|
||||||
{
|
{
|
||||||
item.SetProviderId(MetadataProvider.TmdbCollection, tmdbCollection);
|
item.SetProviderId(MetadataProvider.TmdbCollection, tmdbCollection);
|
||||||
}
|
}
|
||||||
@ -672,41 +590,6 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|||||||
item.Shares = list.ToArray();
|
item.Shares = list.ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FetchFromCountriesNode(XmlReader reader)
|
|
||||||
{
|
|
||||||
reader.MoveToContent();
|
|
||||||
reader.Read();
|
|
||||||
|
|
||||||
// Loop through each element
|
|
||||||
while (!reader.EOF && reader.ReadState == ReadState.Interactive)
|
|
||||||
{
|
|
||||||
if (reader.NodeType == XmlNodeType.Element)
|
|
||||||
{
|
|
||||||
switch (reader.Name)
|
|
||||||
{
|
|
||||||
case "Country":
|
|
||||||
{
|
|
||||||
var val = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
reader.Skip();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
reader.Read();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Fetches from taglines node.
|
/// Fetches from taglines node.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -725,17 +608,8 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|||||||
switch (reader.Name)
|
switch (reader.Name)
|
||||||
{
|
{
|
||||||
case "Tagline":
|
case "Tagline":
|
||||||
{
|
item.Tagline = reader.ReadNormalizedString();
|
||||||
var val = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
|
||||||
item.Tagline = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
reader.Skip();
|
reader.Skip();
|
||||||
break;
|
break;
|
||||||
@ -766,17 +640,13 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|||||||
switch (reader.Name)
|
switch (reader.Name)
|
||||||
{
|
{
|
||||||
case "Genre":
|
case "Genre":
|
||||||
{
|
var genre = reader.ReadNormalizedString();
|
||||||
var genre = reader.ReadElementContentAsString();
|
if (!string.IsNullOrEmpty(genre))
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(genre))
|
|
||||||
{
|
{
|
||||||
item.AddGenre(genre);
|
item.AddGenre(genre);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
reader.Skip();
|
reader.Skip();
|
||||||
break;
|
break;
|
||||||
@ -804,17 +674,13 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|||||||
switch (reader.Name)
|
switch (reader.Name)
|
||||||
{
|
{
|
||||||
case "Tag":
|
case "Tag":
|
||||||
{
|
var tag = reader.ReadNormalizedString();
|
||||||
var tag = reader.ReadElementContentAsString();
|
if (!string.IsNullOrEmpty(tag))
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(tag))
|
|
||||||
{
|
{
|
||||||
tags.Add(tag);
|
tags.Add(tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
reader.Skip();
|
reader.Skip();
|
||||||
break;
|
break;
|
||||||
@ -880,17 +746,13 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|||||||
switch (reader.Name)
|
switch (reader.Name)
|
||||||
{
|
{
|
||||||
case "Trailer":
|
case "Trailer":
|
||||||
{
|
var trailer = reader.ReadNormalizedString();
|
||||||
var val = reader.ReadElementContentAsString();
|
if (!string.IsNullOrEmpty(trailer))
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
{
|
||||||
item.AddTrailerUrl(val);
|
item.AddTrailerUrl(trailer);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
reader.Skip();
|
reader.Skip();
|
||||||
break;
|
break;
|
||||||
@ -921,17 +783,13 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|||||||
switch (reader.Name)
|
switch (reader.Name)
|
||||||
{
|
{
|
||||||
case "Studio":
|
case "Studio":
|
||||||
{
|
var studio = reader.ReadNormalizedString();
|
||||||
var studio = reader.ReadElementContentAsString();
|
if (!string.IsNullOrEmpty(studio))
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(studio))
|
|
||||||
{
|
{
|
||||||
item.AddStudio(studio);
|
item.AddStudio(studio);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
reader.Skip();
|
reader.Skip();
|
||||||
break;
|
break;
|
||||||
@ -964,17 +822,11 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|||||||
switch (reader.Name)
|
switch (reader.Name)
|
||||||
{
|
{
|
||||||
case "Path":
|
case "Path":
|
||||||
{
|
linkedItem.Path = reader.ReadNormalizedString();
|
||||||
linkedItem.Path = reader.ReadElementContentAsString();
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
case "ItemId":
|
case "ItemId":
|
||||||
{
|
linkedItem.LibraryItemId = reader.ReadNormalizedString();
|
||||||
linkedItem.LibraryItemId = reader.ReadElementContentAsString();
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
reader.Skip();
|
reader.Skip();
|
||||||
break;
|
break;
|
||||||
@ -1015,11 +867,8 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|||||||
switch (reader.Name)
|
switch (reader.Name)
|
||||||
{
|
{
|
||||||
case "UserId":
|
case "UserId":
|
||||||
{
|
item.UserId = reader.ReadNormalizedString();
|
||||||
item.UserId = reader.ReadElementContentAsString();
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
case "CanEdit":
|
case "CanEdit":
|
||||||
{
|
{
|
||||||
item.CanEdit = string.Equals(reader.ReadElementContentAsString(), "true", StringComparison.OrdinalIgnoreCase);
|
item.CanEdit = string.Equals(reader.ReadElementContentAsString(), "true", StringComparison.OrdinalIgnoreCase);
|
||||||
@ -1027,10 +876,8 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
{
|
|
||||||
reader.Skip();
|
reader.Skip();
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
using MediaBrowser.Controller.Entities;
|
using MediaBrowser.Controller.Entities;
|
||||||
|
using MediaBrowser.Controller.Extensions;
|
||||||
using MediaBrowser.Controller.Playlists;
|
using MediaBrowser.Controller.Playlists;
|
||||||
using MediaBrowser.Controller.Providers;
|
using MediaBrowser.Controller.Providers;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
@ -30,12 +31,8 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|||||||
switch (reader.Name)
|
switch (reader.Name)
|
||||||
{
|
{
|
||||||
case "PlaylistMediaType":
|
case "PlaylistMediaType":
|
||||||
{
|
item.PlaylistMediaType = reader.ReadNormalizedString();
|
||||||
item.PlaylistMediaType = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
case "PlaylistItems":
|
case "PlaylistItems":
|
||||||
|
|
||||||
if (!reader.IsEmptyElement)
|
if (!reader.IsEmptyElement)
|
||||||
@ -94,10 +91,8 @@ namespace MediaBrowser.LocalMetadata.Parsers
|
|||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
{
|
|
||||||
reader.Skip();
|
reader.Skip();
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -276,27 +276,16 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case "originaltitle":
|
case "originaltitle":
|
||||||
{
|
item.OriginalTitle = reader.ReadNormalizedString();
|
||||||
var val = reader.ReadElementContentAsString();
|
break;
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(val))
|
|
||||||
{
|
|
||||||
item.OriginalTitle = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "name":
|
case "name":
|
||||||
case "title":
|
case "title":
|
||||||
case "localtitle":
|
case "localtitle":
|
||||||
item.Name = reader.ReadElementContentAsString();
|
item.Name = reader.ReadNormalizedString();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "sortname":
|
case "sortname":
|
||||||
item.SortName = reader.ReadElementContentAsString();
|
item.SortName = reader.ReadNormalizedString();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "criticrating":
|
case "criticrating":
|
||||||
{
|
{
|
||||||
var text = reader.ReadElementContentAsString();
|
var text = reader.ReadElementContentAsString();
|
||||||
@ -310,40 +299,16 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||||||
}
|
}
|
||||||
|
|
||||||
case "sorttitle":
|
case "sorttitle":
|
||||||
{
|
item.ForcedSortName = reader.ReadNormalizedString();
|
||||||
var val = reader.ReadElementContentAsString();
|
break;
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
|
||||||
item.ForcedSortName = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "biography":
|
case "biography":
|
||||||
case "plot":
|
case "plot":
|
||||||
case "review":
|
case "review":
|
||||||
{
|
item.Overview = reader.ReadNormalizedString();
|
||||||
var val = reader.ReadElementContentAsString();
|
break;
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
|
||||||
item.Overview = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "language":
|
case "language":
|
||||||
{
|
item.PreferredMetadataLanguage = reader.ReadNormalizedString();
|
||||||
var val = reader.ReadElementContentAsString();
|
break;
|
||||||
|
|
||||||
item.PreferredMetadataLanguage = val;
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "watched":
|
case "watched":
|
||||||
{
|
{
|
||||||
var val = reader.ReadElementContentAsBoolean();
|
var val = reader.ReadElementContentAsBoolean();
|
||||||
@ -386,14 +351,8 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case "countrycode":
|
case "countrycode":
|
||||||
{
|
item.PreferredMetadataCountryCode = reader.ReadNormalizedString();
|
||||||
var val = reader.ReadElementContentAsString();
|
break;
|
||||||
|
|
||||||
item.PreferredMetadataCountryCode = val;
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "lockedfields":
|
case "lockedfields":
|
||||||
{
|
{
|
||||||
var val = reader.ReadElementContentAsString();
|
var val = reader.ReadElementContentAsString();
|
||||||
@ -415,9 +374,8 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||||||
}
|
}
|
||||||
|
|
||||||
case "tagline":
|
case "tagline":
|
||||||
item.Tagline = reader.ReadElementContentAsString();
|
item.Tagline = reader.ReadNormalizedString();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "country":
|
case "country":
|
||||||
{
|
{
|
||||||
var val = reader.ReadElementContentAsString();
|
var val = reader.ReadElementContentAsString();
|
||||||
@ -434,29 +392,11 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||||||
}
|
}
|
||||||
|
|
||||||
case "mpaa":
|
case "mpaa":
|
||||||
{
|
item.OfficialRating = reader.ReadNormalizedString();
|
||||||
var rating = reader.ReadElementContentAsString();
|
break;
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(rating))
|
|
||||||
{
|
|
||||||
item.OfficialRating = rating;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "customrating":
|
case "customrating":
|
||||||
{
|
item.CustomRating = reader.ReadNormalizedString();
|
||||||
var val = reader.ReadElementContentAsString();
|
break;
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
|
||||||
item.CustomRating = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "runtime":
|
case "runtime":
|
||||||
{
|
{
|
||||||
var text = reader.ReadElementContentAsString();
|
var text = reader.ReadElementContentAsString();
|
||||||
@ -470,18 +410,13 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||||||
}
|
}
|
||||||
|
|
||||||
case "aspectratio":
|
case "aspectratio":
|
||||||
|
var aspectRatio = reader.ReadNormalizedString();
|
||||||
|
if (!string.IsNullOrEmpty(aspectRatio) && item is IHasAspectRatio hasAspectRatio)
|
||||||
{
|
{
|
||||||
var val = reader.ReadElementContentAsString();
|
hasAspectRatio.AspectRatio = aspectRatio;
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val)
|
|
||||||
&& item is IHasAspectRatio hasAspectRatio)
|
|
||||||
{
|
|
||||||
hasAspectRatio.AspectRatio = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
case "lockdata":
|
case "lockdata":
|
||||||
{
|
{
|
||||||
var val = reader.ReadElementContentAsString();
|
var val = reader.ReadElementContentAsString();
|
||||||
@ -495,17 +430,13 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||||||
}
|
}
|
||||||
|
|
||||||
case "studio":
|
case "studio":
|
||||||
|
var studio = reader.ReadNormalizedString();
|
||||||
|
if (!string.IsNullOrEmpty(studio))
|
||||||
{
|
{
|
||||||
var val = reader.ReadElementContentAsString();
|
item.AddStudio(studio);
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
|
||||||
item.AddStudio(val);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
case "director":
|
case "director":
|
||||||
foreach (var director in reader.GetPersonArray(PersonKind.Director))
|
foreach (var director in reader.GetPersonArray(PersonKind.Director))
|
||||||
{
|
{
|
||||||
@ -552,31 +483,24 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case "trailer":
|
case "trailer":
|
||||||
|
var trailer = reader.ReadNormalizedString();
|
||||||
|
if (!string.IsNullOrEmpty(trailer))
|
||||||
{
|
{
|
||||||
var val = reader.ReadElementContentAsString();
|
item.AddTrailerUrl(trailer.Replace(
|
||||||
|
"plugin://plugin.video.youtube/?action=play_video&videoid=",
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
BaseNfoSaver.YouTubeWatchUrl,
|
||||||
{
|
StringComparison.OrdinalIgnoreCase));
|
||||||
val = val.Replace("plugin://plugin.video.youtube/?action=play_video&videoid=", BaseNfoSaver.YouTubeWatchUrl, StringComparison.OrdinalIgnoreCase);
|
|
||||||
|
|
||||||
item.AddTrailerUrl(val);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
case "displayorder":
|
case "displayorder":
|
||||||
|
var displayOrder = reader.ReadNormalizedString();
|
||||||
|
if (!string.IsNullOrEmpty(displayOrder) && item is IHasDisplayOrder hasDisplayOrder)
|
||||||
{
|
{
|
||||||
var val = reader.ReadElementContentAsString();
|
hasDisplayOrder.DisplayOrder = displayOrder;
|
||||||
|
|
||||||
if (item is IHasDisplayOrder hasDisplayOrder && !string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
|
||||||
hasDisplayOrder.DisplayOrder = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
case "year":
|
case "year":
|
||||||
{
|
{
|
||||||
var val = reader.ReadElementContentAsString();
|
var val = reader.ReadElementContentAsString();
|
||||||
@ -656,16 +580,13 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||||||
|
|
||||||
case "style":
|
case "style":
|
||||||
case "tag":
|
case "tag":
|
||||||
|
var tag = reader.ReadNormalizedString();
|
||||||
|
if (!string.IsNullOrEmpty(tag))
|
||||||
{
|
{
|
||||||
var val = reader.ReadElementContentAsString();
|
item.AddTag(tag);
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
|
||||||
item.AddTag(val);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
case "fileinfo":
|
case "fileinfo":
|
||||||
{
|
{
|
||||||
if (!reader.IsEmptyElement)
|
if (!reader.IsEmptyElement)
|
||||||
|
@ -5,6 +5,7 @@ using System.Threading;
|
|||||||
using System.Xml;
|
using System.Xml;
|
||||||
using MediaBrowser.Common.Configuration;
|
using MediaBrowser.Common.Configuration;
|
||||||
using MediaBrowser.Controller.Entities.TV;
|
using MediaBrowser.Controller.Entities.TV;
|
||||||
|
using MediaBrowser.Controller.Extensions;
|
||||||
using MediaBrowser.Controller.Library;
|
using MediaBrowser.Controller.Library;
|
||||||
using MediaBrowser.Controller.Providers;
|
using MediaBrowser.Controller.Providers;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
@ -237,17 +238,8 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||||||
}
|
}
|
||||||
|
|
||||||
case "showtitle":
|
case "showtitle":
|
||||||
{
|
item.SeriesName = reader.ReadNormalizedString();
|
||||||
var showtitle = reader.ReadElementContentAsString();
|
break;
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(showtitle))
|
|
||||||
{
|
|
||||||
item.SeriesName = showtitle;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
base.FetchDataFromXmlNode(reader, itemResult);
|
base.FetchDataFromXmlNode(reader, itemResult);
|
||||||
break;
|
break;
|
||||||
|
@ -5,6 +5,7 @@ using System.Xml;
|
|||||||
using MediaBrowser.Common.Configuration;
|
using MediaBrowser.Common.Configuration;
|
||||||
using MediaBrowser.Controller.Entities;
|
using MediaBrowser.Controller.Entities;
|
||||||
using MediaBrowser.Controller.Entities.Movies;
|
using MediaBrowser.Controller.Entities.Movies;
|
||||||
|
using MediaBrowser.Controller.Extensions;
|
||||||
using MediaBrowser.Controller.Library;
|
using MediaBrowser.Controller.Library;
|
||||||
using MediaBrowser.Controller.Providers;
|
using MediaBrowser.Controller.Providers;
|
||||||
using MediaBrowser.Model.Entities;
|
using MediaBrowser.Model.Entities;
|
||||||
@ -113,31 +114,23 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||||||
}
|
}
|
||||||
|
|
||||||
case "artist":
|
case "artist":
|
||||||
|
var artist = reader.ReadNormalizedString();
|
||||||
|
if (!string.IsNullOrEmpty(artist) && item is MusicVideo artistVideo)
|
||||||
{
|
{
|
||||||
var val = reader.ReadElementContentAsString();
|
var list = artistVideo.Artists.ToList();
|
||||||
|
list.Add(artist);
|
||||||
if (!string.IsNullOrWhiteSpace(val) && item is MusicVideo movie)
|
artistVideo.Artists = list.ToArray();
|
||||||
{
|
|
||||||
var list = movie.Artists.ToList();
|
|
||||||
list.Add(val);
|
|
||||||
movie.Artists = list.ToArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
case "album":
|
case "album":
|
||||||
|
var album = reader.ReadNormalizedString();
|
||||||
|
if (!string.IsNullOrEmpty(album) && item is MusicVideo albumVideo)
|
||||||
{
|
{
|
||||||
var val = reader.ReadElementContentAsString();
|
albumVideo.Album = album;
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val) && item is MusicVideo movie)
|
|
||||||
{
|
|
||||||
movie.Album = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
base.FetchDataFromXmlNode(reader, itemResult);
|
base.FetchDataFromXmlNode(reader, itemResult);
|
||||||
break;
|
break;
|
||||||
|
@ -2,6 +2,7 @@ using System.Globalization;
|
|||||||
using System.Xml;
|
using System.Xml;
|
||||||
using MediaBrowser.Common.Configuration;
|
using MediaBrowser.Common.Configuration;
|
||||||
using MediaBrowser.Controller.Entities.TV;
|
using MediaBrowser.Controller.Entities.TV;
|
||||||
|
using MediaBrowser.Controller.Extensions;
|
||||||
using MediaBrowser.Controller.Library;
|
using MediaBrowser.Controller.Library;
|
||||||
using MediaBrowser.Controller.Providers;
|
using MediaBrowser.Controller.Providers;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
@ -56,17 +57,8 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||||||
}
|
}
|
||||||
|
|
||||||
case "seasonname":
|
case "seasonname":
|
||||||
{
|
item.Name = reader.ReadNormalizedString();
|
||||||
var name = reader.ReadElementContentAsString();
|
break;
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(name))
|
|
||||||
{
|
|
||||||
item.Name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
base.FetchDataFromXmlNode(reader, itemResult);
|
base.FetchDataFromXmlNode(reader, itemResult);
|
||||||
break;
|
break;
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
using MediaBrowser.Common.Configuration;
|
using MediaBrowser.Common.Configuration;
|
||||||
using MediaBrowser.Controller.Entities.TV;
|
using MediaBrowser.Controller.Entities.TV;
|
||||||
|
using MediaBrowser.Controller.Extensions;
|
||||||
using MediaBrowser.Controller.Library;
|
using MediaBrowser.Controller.Library;
|
||||||
using MediaBrowser.Controller.Providers;
|
using MediaBrowser.Controller.Providers;
|
||||||
using MediaBrowser.Model.Entities;
|
using MediaBrowser.Model.Entities;
|
||||||
@ -76,23 +76,11 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
|||||||
}
|
}
|
||||||
|
|
||||||
case "airs_dayofweek":
|
case "airs_dayofweek":
|
||||||
{
|
item.AirDays = TVUtils.GetAirDays(reader.ReadElementContentAsString());
|
||||||
item.AirDays = TVUtils.GetAirDays(reader.ReadElementContentAsString());
|
break;
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "airs_time":
|
case "airs_time":
|
||||||
{
|
item.AirTime = reader.ReadNormalizedString();
|
||||||
var val = reader.ReadElementContentAsString();
|
break;
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
|
||||||
item.AirTime = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "status":
|
case "status":
|
||||||
{
|
{
|
||||||
var status = reader.ReadElementContentAsString();
|
var status = reader.ReadElementContentAsString();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user