From d95bab41a1d6f030ed5ef174109573104a561b9e Mon Sep 17 00:00:00 2001 From: dkanada Date: Sun, 23 Nov 2025 21:40:52 +0900 Subject: [PATCH] improve genre support from OPF metadata --- .../Books/OpenPackagingFormat/OpfReader.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/MediaBrowser.Providers/Books/OpenPackagingFormat/OpfReader.cs b/MediaBrowser.Providers/Books/OpenPackagingFormat/OpfReader.cs index 1a88e97089..5d202c59e1 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().Where(node => !book.Genres.Contains(node.InnerText))) + foreach (var node in genreNodes.Cast().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); + } } }