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.cs70
1 files changed, 50 insertions, 20 deletions
diff --git a/Emby.Naming/Common/EpisodeExpression.cs b/Emby.Naming/Common/EpisodeExpression.cs
index fd85bf76a..19d3c7aab 100644
--- a/Emby.Naming/Common/EpisodeExpression.cs
+++ b/Emby.Naming/Common/EpisodeExpression.cs
@@ -3,38 +3,68 @@ using System.Text.RegularExpressions;
namespace Emby.Naming.Common
{
+ /// <summary>
+ /// Regular expressions for parsing TV Episodes.
+ /// </summary>
public class EpisodeExpression
{
private string _expression;
- public string Expression { get => _expression;
- set { _expression = value; _regex = null; } }
+ private Regex? _regex;
- 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 => _regex ?? (_regex = new Regex(Expression, RegexOptions.IgnoreCase | RegexOptions.Compiled));
-
- public EpisodeExpression(string expression, bool byDate)
+ /// <summary>
+ /// Initializes a new instance of the <see cref="EpisodeExpression"/> class.
+ /// </summary>
+ /// <param name="expression">Regular expressions.</param>
+ /// <param name="byDate">True if date is expected.</param>
+ public EpisodeExpression(string expression, bool byDate = false)
{
- Expression = expression;
+ _expression = expression;
IsByDate = byDate;
DateTimeFormats = Array.Empty<string>();
SupportsAbsoluteEpisodeNumbers = true;
}
- public EpisodeExpression(string expression)
- : this(expression, false)
+ /// <summary>
+ /// Gets or sets raw expressions string.
+ /// </summary>
+ public string Expression
{
+ get => _expression;
+ set
+ {
+ _expression = value;
+ _regex = null;
+ }
}
- public EpisodeExpression()
- : this(null)
- {
- }
+ /// <summary>
+ /// Gets or sets a value indicating whether gets or sets property indicating if date can be find in expression.
+ /// </summary>
+ public bool IsByDate { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether gets or sets property indicating if expression is optimistic.
+ /// </summary>
+ public bool IsOptimistic { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether gets or sets property indicating if expression is named.
+ /// </summary>
+ public bool IsNamed { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether gets or sets property indicating if expression supports episodes with absolute numbers.
+ /// </summary>
+ public bool SupportsAbsoluteEpisodeNumbers { get; set; }
+
+ /// <summary>
+ /// Gets or sets optional list of date formats used for date parsing.
+ /// </summary>
+ public string[] DateTimeFormats { get; set; }
+
+ /// <summary>
+ /// Gets a <see cref="Regex"/> expressions objects (creates it if null).
+ /// </summary>
+ public Regex Regex => _regex ??= new Regex(Expression, RegexOptions.IgnoreCase | RegexOptions.Compiled);
}
}