aboutsummaryrefslogtreecommitdiff
path: root/Emby.Naming/Common/EpisodeExpression.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Naming/Common/EpisodeExpression.cs')
-rw-r--r--Emby.Naming/Common/EpisodeExpression.cs45
1 files changed, 45 insertions, 0 deletions
diff --git a/Emby.Naming/Common/EpisodeExpression.cs b/Emby.Naming/Common/EpisodeExpression.cs
new file mode 100644
index 000000000..3b9687c60
--- /dev/null
+++ b/Emby.Naming/Common/EpisodeExpression.cs
@@ -0,0 +1,45 @@
+using System.Text.RegularExpressions;
+using System;
+
+namespace Emby.Naming.Common
+{
+ public class EpisodeExpression
+ {
+ private string _expression;
+ public string Expression { get { return _expression; } set { _expression = value; _regex = null; } }
+
+ public bool IsByDate { get; set; }
+ public bool IsOptimistic { get; set; }
+ public bool IsNamed { get; set; }
+ public bool SupportsAbsoluteEpisodeNumbers { get; set; }
+
+ public string[] DateTimeFormats { get; set; }
+
+ private Regex _regex;
+ public Regex Regex
+ {
+ get
+ {
+ return _regex ?? (_regex = new Regex(Expression, RegexOptions.IgnoreCase | RegexOptions.Compiled));
+ }
+ }
+
+ public EpisodeExpression(string expression, bool byDate)
+ {
+ Expression = expression;
+ IsByDate = byDate;
+ DateTimeFormats = Array.Empty<string>();
+ SupportsAbsoluteEpisodeNumbers = true;
+ }
+
+ public EpisodeExpression(string expression)
+ : this(expression, false)
+ {
+ }
+
+ public EpisodeExpression()
+ : this(null)
+ {
+ }
+ }
+}