TvParserHelpers.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using System;
  2. using System.Linq;
  3. using MediaBrowser.Model.Entities;
  4. namespace Emby.Naming.TV;
  5. /// <summary>
  6. /// Helper class for TV metadata parsing.
  7. /// </summary>
  8. public static class TvParserHelpers
  9. {
  10. private static readonly string[] _continuingState = ["Pilot", "Returning Series", "Returning"];
  11. private static readonly string[] _endedState = ["Cancelled", "Canceled"];
  12. /// <summary>
  13. /// Tries to parse a string into <see cref="SeriesStatus"/>.
  14. /// </summary>
  15. /// <param name="status">The status string.</param>
  16. /// <param name="enumValue">The <see cref="SeriesStatus"/>.</param>
  17. /// <returns>Returns true if parsing was successful.</returns>
  18. public static bool TryParseSeriesStatus(string status, out SeriesStatus? enumValue)
  19. {
  20. if (Enum.TryParse(status, true, out SeriesStatus seriesStatus))
  21. {
  22. enumValue = seriesStatus;
  23. return true;
  24. }
  25. if (_continuingState.Contains(status, StringComparer.OrdinalIgnoreCase))
  26. {
  27. enumValue = SeriesStatus.Continuing;
  28. return true;
  29. }
  30. if (_endedState.Contains(status, StringComparer.OrdinalIgnoreCase))
  31. {
  32. enumValue = SeriesStatus.Ended;
  33. return true;
  34. }
  35. enumValue = null;
  36. return false;
  37. }
  38. }