From b063dfd2e3925b85bbc9461c272a10d7c8931767 Mon Sep 17 00:00:00 2001 From: Shadowghost Date: Fri, 17 May 2024 13:51:42 -0400 Subject: Backport pull request #11648 from jellyfin/release-10.9.z Fix series status parsing Original-merge: c6c48a2b474012f6e4464b743a937c522f15e04d Merged-by: nielsvanvelzen Backported-by: Joshua M. Boniface --- Emby.Naming/TV/TvParserHelpers.cs | 44 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Emby.Naming/TV/TvParserHelpers.cs (limited to 'Emby.Naming') diff --git a/Emby.Naming/TV/TvParserHelpers.cs b/Emby.Naming/TV/TvParserHelpers.cs new file mode 100644 index 000000000..2eca389da --- /dev/null +++ b/Emby.Naming/TV/TvParserHelpers.cs @@ -0,0 +1,44 @@ +using System; +using System.Linq; +using MediaBrowser.Model.Entities; + +namespace Emby.Naming.TV; + +/// +/// Helper class for TV metadata parsing. +/// +public static class TvParserHelpers +{ + private static readonly string[] _continuingState = ["Pilot", "Returning Series", "Returning"]; + private static readonly string[] _endedState = ["Cancelled"]; + + /// + /// Tries to parse a string into . + /// + /// The status string. + /// The . + /// Returns true if parsing was successful. + public static bool TryParseSeriesStatus(string status, out SeriesStatus? enumValue) + { + if (Enum.TryParse(status, true, out SeriesStatus seriesStatus)) + { + enumValue = seriesStatus; + return true; + } + + if (_continuingState.Contains(status, StringComparer.OrdinalIgnoreCase)) + { + enumValue = SeriesStatus.Continuing; + return true; + } + + if (_endedState.Contains(status, StringComparer.OrdinalIgnoreCase)) + { + enumValue = SeriesStatus.Ended; + return true; + } + + enumValue = null; + return false; + } +} -- cgit v1.2.3