EpisodeExpression.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #pragma warning disable CS1591
  2. using System;
  3. using System.Text.RegularExpressions;
  4. namespace Emby.Naming.Common
  5. {
  6. public class EpisodeExpression
  7. {
  8. private string _expression;
  9. private Regex _regex;
  10. public EpisodeExpression(string expression, bool byDate)
  11. {
  12. Expression = expression;
  13. IsByDate = byDate;
  14. DateTimeFormats = Array.Empty<string>();
  15. SupportsAbsoluteEpisodeNumbers = true;
  16. }
  17. public EpisodeExpression(string expression)
  18. : this(expression, false)
  19. {
  20. }
  21. public EpisodeExpression()
  22. : this(null)
  23. {
  24. }
  25. public string Expression
  26. {
  27. get => _expression;
  28. set
  29. {
  30. _expression = value;
  31. _regex = null;
  32. }
  33. }
  34. public bool IsByDate { get; set; }
  35. public bool IsOptimistic { get; set; }
  36. public bool IsNamed { get; set; }
  37. public bool SupportsAbsoluteEpisodeNumbers { get; set; }
  38. public string[] DateTimeFormats { get; set; }
  39. public Regex Regex => _regex ?? (_regex = new Regex(Expression, RegexOptions.IgnoreCase | RegexOptions.Compiled));
  40. }
  41. }