2019-12-13 14:11:37 -05:00
|
|
|
#pragma warning disable CS1591
|
|
|
|
|
2019-01-13 14:54:44 -05:00
|
|
|
using System;
|
2019-01-13 14:17:29 -05:00
|
|
|
using System.Text.RegularExpressions;
|
2018-09-12 13:26:21 -04:00
|
|
|
|
|
|
|
namespace Emby.Naming.Common
|
|
|
|
{
|
|
|
|
public class EpisodeExpression
|
|
|
|
{
|
|
|
|
private string _expression;
|
2020-11-01 04:47:31 -05:00
|
|
|
private Regex? _regex;
|
2019-05-10 14:37:42 -04:00
|
|
|
|
2020-01-22 16:18:56 -05:00
|
|
|
public EpisodeExpression(string expression, bool byDate)
|
|
|
|
{
|
2020-11-01 04:47:31 -05:00
|
|
|
_expression = expression;
|
2020-01-22 16:18:56 -05:00
|
|
|
IsByDate = byDate;
|
|
|
|
DateTimeFormats = Array.Empty<string>();
|
|
|
|
SupportsAbsoluteEpisodeNumbers = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public EpisodeExpression(string expression)
|
|
|
|
: this(expression, false)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2019-05-10 14:37:42 -04:00
|
|
|
public string Expression
|
|
|
|
{
|
|
|
|
get => _expression;
|
|
|
|
set
|
|
|
|
{
|
|
|
|
_expression = value;
|
|
|
|
_regex = null;
|
|
|
|
}
|
|
|
|
}
|
2018-09-12 13:26:21 -04:00
|
|
|
|
|
|
|
public bool IsByDate { get; set; }
|
2019-05-10 14:37:42 -04:00
|
|
|
|
2018-09-12 13:26:21 -04:00
|
|
|
public bool IsOptimistic { get; set; }
|
2019-05-10 14:37:42 -04:00
|
|
|
|
2018-09-12 13:26:21 -04:00
|
|
|
public bool IsNamed { get; set; }
|
2019-05-10 14:37:42 -04:00
|
|
|
|
2018-09-12 13:26:21 -04:00
|
|
|
public bool SupportsAbsoluteEpisodeNumbers { get; set; }
|
|
|
|
|
|
|
|
public string[] DateTimeFormats { get; set; }
|
|
|
|
|
2020-04-19 05:57:03 -04:00
|
|
|
public Regex Regex => _regex ??= new Regex(Expression, RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
2018-09-12 13:26:21 -04:00
|
|
|
}
|
|
|
|
}
|