jellyfin/Emby.Naming/Common/EpisodeExpression.cs

55 lines
1.3 KiB
C#
Raw Normal View History

#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
2019-01-13 12:17:29 -07:00
using System.Text.RegularExpressions;
2018-09-12 10:26:21 -07:00
namespace Emby.Naming.Common
{
public class EpisodeExpression
{
private string _expression;
2019-05-10 11:37:42 -07:00
private Regex _regex;
2020-01-22 14:18:56 -07:00
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)
{
}
2019-05-10 11:37:42 -07:00
public string Expression
{
get => _expression;
set
{
_expression = value;
_regex = null;
}
}
2018-09-12 10:26:21 -07:00
public bool IsByDate { get; set; }
2019-05-10 11:37:42 -07:00
2018-09-12 10:26:21 -07:00
public bool IsOptimistic { get; set; }
2019-05-10 11:37:42 -07:00
2018-09-12 10:26:21 -07:00
public bool IsNamed { get; set; }
2019-05-10 11:37:42 -07:00
2018-09-12 10:26:21 -07:00
public bool SupportsAbsoluteEpisodeNumbers { get; set; }
public string[] DateTimeFormats { get; set; }
public Regex Regex => _regex ?? (_regex = new Regex(Expression, RegexOptions.IgnoreCase | RegexOptions.Compiled));
2018-09-12 10:26:21 -07:00
}
}