@ -8,8 +8,14 @@ using MediaBrowser.Model.Entities;
namespace Emby.Naming.Common
namespace Emby.Naming.Common
{
{
/// <summary>
/// Big ugly class containing lot of different naming options that should be split and injected instead of passes everywhere.
/// </summary>
public class NamingOptions
public class NamingOptions
{
{
/// <summary>
/// Initializes a new instance of the <see cref="NamingOptions"/> class.
/// </summary>
public NamingOptions ( )
public NamingOptions ( )
{
{
VideoFileExtensions = new [ ]
VideoFileExtensions = new [ ]
@ -644,58 +650,139 @@ namespace Emby.Naming.Common
Compile ( ) ;
Compile ( ) ;
}
}
/// <summary>
/// Gets or sets list of audio file extensions.
/// </summary>
public string [ ] AudioFileExtensions { get ; set ; }
public string [ ] AudioFileExtensions { get ; set ; }
/// <summary>
/// Gets or sets list of album stacking prefixes.
/// </summary>
public string [ ] AlbumStackingPrefixes { get ; set ; }
public string [ ] AlbumStackingPrefixes { get ; set ; }
/// <summary>
/// Gets or sets list of subtitle file extensions.
/// </summary>
public string [ ] SubtitleFileExtensions { get ; set ; }
public string [ ] SubtitleFileExtensions { get ; set ; }
/// <summary>
/// Gets or sets list of subtitles flag delimiters.
/// </summary>
public char [ ] SubtitleFlagDelimiters { get ; set ; }
public char [ ] SubtitleFlagDelimiters { get ; set ; }
/// <summary>
/// Gets or sets list of subtitle forced flags.
/// </summary>
public string [ ] SubtitleForcedFlags { get ; set ; }
public string [ ] SubtitleForcedFlags { get ; set ; }
/// <summary>
/// Gets or sets list of subtitle default flags.
/// </summary>
public string [ ] SubtitleDefaultFlags { get ; set ; }
public string [ ] SubtitleDefaultFlags { get ; set ; }
/// <summary>
/// Gets or sets list of episode regular expressions.
/// </summary>
public EpisodeExpression [ ] EpisodeExpressions { get ; set ; }
public EpisodeExpression [ ] EpisodeExpressions { get ; set ; }
/// <summary>
/// Gets or sets list of raw episode without season regular expressions strings.
/// </summary>
public string [ ] EpisodeWithoutSeasonExpressions { get ; set ; }
public string [ ] EpisodeWithoutSeasonExpressions { get ; set ; }
/// <summary>
/// Gets or sets list of raw multi-part episodes regular expressions strings.
/// </summary>
public string [ ] EpisodeMultiPartExpressions { get ; set ; }
public string [ ] EpisodeMultiPartExpressions { get ; set ; }
/// <summary>
/// Gets or sets list of video file extensions.
/// </summary>
public string [ ] VideoFileExtensions { get ; set ; }
public string [ ] VideoFileExtensions { get ; set ; }
/// <summary>
/// Gets or sets list of video stub file extensions.
/// </summary>
public string [ ] StubFileExtensions { get ; set ; }
public string [ ] StubFileExtensions { get ; set ; }
/// <summary>
/// Gets or sets list of raw audiobook parts regular expressions strings.
/// </summary>
public string [ ] AudioBookPartsExpressions { get ; set ; }
public string [ ] AudioBookPartsExpressions { get ; set ; }
/// <summary>
/// Gets or sets list of raw audiobook names regular expressions strings.
/// </summary>
public string [ ] AudioBookNamesExpressions { get ; set ; }
public string [ ] AudioBookNamesExpressions { get ; set ; }
/// <summary>
/// Gets or sets list of stub type rules.
/// </summary>
public StubTypeRule [ ] StubTypes { get ; set ; }
public StubTypeRule [ ] StubTypes { get ; set ; }
/// <summary>
/// Gets or sets list of video flag delimiters.
/// </summary>
public char [ ] VideoFlagDelimiters { get ; set ; }
public char [ ] VideoFlagDelimiters { get ; set ; }
/// <summary>
/// Gets or sets list of 3D Format rules.
/// </summary>
public Format3DRule [ ] Format3DRules { get ; set ; }
public Format3DRule [ ] Format3DRules { get ; set ; }
/// <summary>
/// Gets or sets list of raw video file-stacking expressions strings.
/// </summary>
public string [ ] VideoFileStackingExpressions { get ; set ; }
public string [ ] VideoFileStackingExpressions { get ; set ; }
/// <summary>
/// Gets or sets list of raw clean DateTimes regular expressions strings.
/// </summary>
public string [ ] CleanDateTimes { get ; set ; }
public string [ ] CleanDateTimes { get ; set ; }
/// <summary>
/// Gets or sets list of raw clean strings regular expressions strings.
/// </summary>
public string [ ] CleanStrings { get ; set ; }
public string [ ] CleanStrings { get ; set ; }
/// <summary>
/// Gets or sets list of multi-episode regular expressions.
/// </summary>
public EpisodeExpression [ ] MultipleEpisodeExpressions { get ; set ; }
public EpisodeExpression [ ] MultipleEpisodeExpressions { get ; set ; }
/// <summary>
/// Gets or sets list of extra rules for videos.
/// </summary>
public ExtraRule [ ] VideoExtraRules { get ; set ; }
public ExtraRule [ ] VideoExtraRules { get ; set ; }
/// <summary>
/// Gets list of video file-stack regular expressions.
/// </summary>
public Regex [ ] VideoFileStackingRegexes { get ; private set ; } = Array . Empty < Regex > ( ) ;
public Regex [ ] VideoFileStackingRegexes { get ; private set ; } = Array . Empty < Regex > ( ) ;
/// <summary>
/// Gets list of clean datetime regular expressions.
/// </summary>
public Regex [ ] CleanDateTimeRegexes { get ; private set ; } = Array . Empty < Regex > ( ) ;
public Regex [ ] CleanDateTimeRegexes { get ; private set ; } = Array . Empty < Regex > ( ) ;
/// <summary>
/// Gets list of clean string regular expressions.
/// </summary>
public Regex [ ] CleanStringRegexes { get ; private set ; } = Array . Empty < Regex > ( ) ;
public Regex [ ] CleanStringRegexes { get ; private set ; } = Array . Empty < Regex > ( ) ;
/// <summary>
/// Gets list of episode without season regular expressions.
/// </summary>
public Regex [ ] EpisodeWithoutSeasonRegexes { get ; private set ; } = Array . Empty < Regex > ( ) ;
public Regex [ ] EpisodeWithoutSeasonRegexes { get ; private set ; } = Array . Empty < Regex > ( ) ;
/// <summary>
/// Gets list of multi-part episode regular expressions.
/// </summary>
public Regex [ ] EpisodeMultiPartRegexes { get ; private set ; } = Array . Empty < Regex > ( ) ;
public Regex [ ] EpisodeMultiPartRegexes { get ; private set ; } = Array . Empty < Regex > ( ) ;
/// <summary>
/// Compiles raw regex strings into regexes.
/// </summary>
public void Compile ( )
public void Compile ( )
{
{
VideoFileStackingRegexes = VideoFileStackingExpressions . Select ( Compile ) . ToArray ( ) ;
VideoFileStackingRegexes = VideoFileStackingExpressions . Select ( Compile ) . ToArray ( ) ;