aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordkanada <dkanada@users.noreply.github.com>2025-11-23 21:40:52 +0900
committerdkanada <dkanada@users.noreply.github.com>2025-11-23 21:40:52 +0900
commitd95bab41a1d6f030ed5ef174109573104a561b9e (patch)
tree2acd2aececbd84804b9f37ccd7b2fa5ea7f66f07
parent820e208bdcf08e757abd064eb6cd4b9a844c5c60 (diff)
improve genre support from OPF metadata
-rw-r--r--MediaBrowser.Providers/Books/OpenPackagingFormat/OpfReader.cs8
1 files changed, 6 insertions, 2 deletions
diff --git a/MediaBrowser.Providers/Books/OpenPackagingFormat/OpfReader.cs b/MediaBrowser.Providers/Books/OpenPackagingFormat/OpfReader.cs
index 1a88e9708..5d202c59e 100644
--- a/MediaBrowser.Providers/Books/OpenPackagingFormat/OpfReader.cs
+++ b/MediaBrowser.Providers/Books/OpenPackagingFormat/OpfReader.cs
@@ -136,9 +136,13 @@ namespace MediaBrowser.Providers.Books.OpenPackagingFormat
if (genreNodes?.Count > 0)
{
- foreach (var node in genreNodes.Cast<XmlNode>().Where(node => !book.Genres.Contains(node.InnerText)))
+ foreach (var node in genreNodes.Cast<XmlNode>().Where(node => !string.IsNullOrEmpty(node.InnerText) && !book.Genres.Contains(node.InnerText)))
{
- book.AddGenre(node.InnerText);
+ // specification has no rules about content and some books combine every genre into a single element
+ foreach (var item in node.InnerText.Split(["/", "&", ",", ";", " - "], StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries))
+ {
+ book.AddGenre(item);
+ }
}
}