EpisodeExpression.cs 1.2 KB

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