From 860cb75d582aa6da0c03571072d43e99c3e87e80 Mon Sep 17 00:00:00 2001 From: theguymadmax Date: Mon, 6 Jul 2026 11:27:24 -0400 Subject: [PATCH 1/2] Add Novel job mapping to the Writing department --- MediaBrowser.Providers/Plugins/Tmdb/TmdbUtils.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/MediaBrowser.Providers/Plugins/Tmdb/TmdbUtils.cs b/MediaBrowser.Providers/Plugins/Tmdb/TmdbUtils.cs index 39c0497bed..3664164a1c 100644 --- a/MediaBrowser.Providers/Plugins/Tmdb/TmdbUtils.cs +++ b/MediaBrowser.Providers/Plugins/Tmdb/TmdbUtils.cs @@ -48,6 +48,16 @@ namespace MediaBrowser.Providers.Plugins.Tmdb PersonKind.Producer }; + /// + /// Writing jobs to keep. + /// + private static readonly HashSet WriterJobs = new(StringComparer.OrdinalIgnoreCase) + { + "writer", + "screenplay", + "novel" + }; + [GeneratedRegex(@"[\W_-[·]]+")] private static partial Regex NonWordRegex(); @@ -82,7 +92,7 @@ namespace MediaBrowser.Providers.Plugins.Tmdb } if (string.Equals(crew.Department, "writing", StringComparison.OrdinalIgnoreCase) - && (string.Equals(crew.Job, "writer", StringComparison.OrdinalIgnoreCase) || string.Equals(crew.Job, "screenplay", StringComparison.OrdinalIgnoreCase))) + && crew.Job is not null && WriterJobs.Contains(crew.Job)) { return PersonKind.Writer; } From a1255bda6a854dac20a6b0731453e96daf910347 Mon Sep 17 00:00:00 2001 From: theguymadmax Date: Wed, 8 Jul 2026 11:45:16 -0400 Subject: [PATCH 2/2] Use FrozenSet --- MediaBrowser.Providers/Plugins/Tmdb/TmdbUtils.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/MediaBrowser.Providers/Plugins/Tmdb/TmdbUtils.cs b/MediaBrowser.Providers/Plugins/Tmdb/TmdbUtils.cs index 3664164a1c..7e6b9beee9 100644 --- a/MediaBrowser.Providers/Plugins/Tmdb/TmdbUtils.cs +++ b/MediaBrowser.Providers/Plugins/Tmdb/TmdbUtils.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Frozen; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Text.RegularExpressions; @@ -51,12 +52,12 @@ namespace MediaBrowser.Providers.Plugins.Tmdb /// /// Writing jobs to keep. /// - private static readonly HashSet WriterJobs = new(StringComparer.OrdinalIgnoreCase) + private static readonly FrozenSet _writerJobs = new[] { "writer", "screenplay", "novel" - }; + }.ToFrozenSet(StringComparer.OrdinalIgnoreCase); [GeneratedRegex(@"[\W_-[·]]+")] private static partial Regex NonWordRegex(); @@ -92,7 +93,7 @@ namespace MediaBrowser.Providers.Plugins.Tmdb } if (string.Equals(crew.Department, "writing", StringComparison.OrdinalIgnoreCase) - && crew.Job is not null && WriterJobs.Contains(crew.Job)) + && crew.Job is not null && _writerJobs.Contains(crew.Job)) { return PersonKind.Writer; }