137 lines
9.1 KiB
C#
137 lines
9.1 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using NzbDrone.Core.Model;
|
|
|
|
namespace NzbDrone.Core.Helpers
|
|
{
|
|
public static class EpisodeSortingHelper
|
|
{
|
|
private static readonly List<EpisodeSortingType> SeparatorStyles = new List<EpisodeSortingType>
|
|
{
|
|
new EpisodeSortingType
|
|
{
|
|
Id = 0,
|
|
Name = "Dash",
|
|
Pattern = " - "
|
|
},
|
|
new EpisodeSortingType
|
|
{
|
|
Id = 1,
|
|
Name = "Space",
|
|
Pattern = " "
|
|
},
|
|
new EpisodeSortingType
|
|
{
|
|
Id = 2,
|
|
Name = "Period",
|
|
Pattern = "."
|
|
}
|
|
};
|
|
|
|
private static readonly List<EpisodeSortingType> NumberStyles = new List<EpisodeSortingType>
|
|
{
|
|
new EpisodeSortingType
|
|
{
|
|
Id = 0,
|
|
Name = "1x05",
|
|
Pattern = "%sx%0e",
|
|
EpisodeSeparator = "x"
|
|
|
|
},
|
|
new EpisodeSortingType
|
|
{
|
|
Id = 1,
|
|
Name = "01x05",
|
|
Pattern = "%0sx%0e",
|
|
EpisodeSeparator = "x"
|
|
},
|
|
new EpisodeSortingType
|
|
{
|
|
Id = 2,
|
|
Name = "S01E05",
|
|
Pattern = "S%0sE%0e",
|
|
EpisodeSeparator = "E"
|
|
},
|
|
new EpisodeSortingType
|
|
{
|
|
Id = 3,
|
|
Name = "s01e05",
|
|
Pattern = "s%0se%0e",
|
|
EpisodeSeparator = "e"
|
|
}
|
|
};
|
|
|
|
private static readonly List<EpisodeSortingType> MultiEpisodeStyles = new List<EpisodeSortingType>
|
|
{
|
|
new EpisodeSortingType
|
|
{
|
|
Id = 0,
|
|
Name = "Extend",
|
|
Pattern = "-%0e"
|
|
},
|
|
new EpisodeSortingType
|
|
{
|
|
Id = 1,
|
|
Name = "Duplicate",
|
|
Pattern = "%p%0s%x%0e"
|
|
},
|
|
new EpisodeSortingType
|
|
{
|
|
Id = 2,
|
|
Name = "Repeat",
|
|
Pattern = "%x%0e"
|
|
},
|
|
new EpisodeSortingType
|
|
{
|
|
Id = 3,
|
|
Name = "Scene",
|
|
Pattern = "-%x%0e"
|
|
}
|
|
};
|
|
|
|
public static List<EpisodeSortingType> GetSeparatorStyles()
|
|
{
|
|
return SeparatorStyles;
|
|
}
|
|
|
|
public static List<EpisodeSortingType> GetNumberStyles()
|
|
{
|
|
return NumberStyles;
|
|
}
|
|
|
|
public static List<EpisodeSortingType> GetMultiEpisodeStyles()
|
|
{
|
|
return MultiEpisodeStyles;
|
|
}
|
|
|
|
public static EpisodeSortingType GetSeparatorStyle(int id)
|
|
{
|
|
return SeparatorStyles.Single(s => s.Id == id);
|
|
}
|
|
|
|
public static EpisodeSortingType GetNumberStyle(int id)
|
|
{
|
|
return NumberStyles.Single(s => s.Id == id);
|
|
}
|
|
|
|
public static EpisodeSortingType GetMultiEpisodeStyle(int id)
|
|
{
|
|
return MultiEpisodeStyles.Single(s => s.Id == id);
|
|
}
|
|
|
|
public static EpisodeSortingType GetSeparatorStyle(string name)
|
|
{
|
|
return SeparatorStyles.Single(s => s.Name == name);
|
|
}
|
|
|
|
public static EpisodeSortingType GetNumberStyle(string name)
|
|
{
|
|
return NumberStyles.Single(s => s.Name == name);
|
|
}
|
|
|
|
public static EpisodeSortingType GetMultiEpisodeStyle(string name)
|
|
{
|
|
return MultiEpisodeStyles.Single(s => s.Name == name);
|
|
}
|
|
}
|
|
} |