@ -557,21 +557,8 @@ namespace Ombi.Schedule.Jobs.Ombi
foreach ( var epInformation in results . OrderBy ( x = > x . SeasonNumber ) )
{
var orderedEpisodes = epInformation . Episodes . OrderBy ( x = > x . EpisodeNumber ) . ToList ( ) ;
var epSb = new StringBuilder ( ) ;
for ( var i = 0 ; i < orderedEpisodes . Count ; i + + )
{
var ep = orderedEpisodes [ i ] ;
if ( i < orderedEpisodes . Count - 1 )
{
epSb . Append ( $"{ep.EpisodeNumber}," ) ;
}
else
{
epSb . Append ( $"{ep.EpisodeNumber}" ) ;
}
}
finalsb . Append ( $"Season: {epInformation.SeasonNumber} - Episodes: {epSb}" ) ;
var episodeString = BuildEpisodeList ( orderedEpisodes . Select ( x = > x . EpisodeNumber ) ) ;
finalsb . Append ( $"Season: {epInformation.SeasonNumber} - Episodes: {episodeString}" ) ;
finalsb . Append ( "<br />" ) ;
}
@ -608,6 +595,49 @@ namespace Ombi.Schedule.Jobs.Ombi
}
}
public string BuildEpisodeList ( IEnumerable < int > orderedEpisodes )
{
var epSb = new StringBuilder ( ) ;
var previousEpisodes = new List < int > ( ) ;
var previousEpisode = - 1 ;
foreach ( var ep in orderedEpisodes )
{
if ( ep - 1 = = previousEpisode )
{
// This is the next one
previousEpisodes . Add ( ep ) ;
}
else
{
if ( previousEpisodes . Count > 1 )
{
// End it
epSb . Append ( $"{previousEpisodes.First()}-{previousEpisodes.Last()}, " ) ;
}
else if ( previousEpisodes . Count = = 1 )
{
epSb . Append ( $"{previousEpisodes.FirstOrDefault()}, " ) ;
}
// New one
previousEpisodes . Clear ( ) ;
previousEpisodes . Add ( ep ) ;
}
previousEpisode = ep ;
}
if ( previousEpisodes . Count > 1 )
{
// Got some left over
epSb . Append ( $"{previousEpisodes.First()}-{previousEpisodes.Last()}" ) ;
}
else if ( previousEpisodes . Count = = 1 )
{
epSb . Append ( previousEpisodes . FirstOrDefault ( ) ) ;
}
return epSb . ToString ( ) ;
}
private async Task ProcessEmbyTv ( HashSet < EmbyEpisode > embyContent , StringBuilder sb )
{
var series = new List < EmbyContent > ( ) ;
@ -681,21 +711,8 @@ namespace Ombi.Schedule.Jobs.Ombi
foreach ( var epInformation in results . OrderBy ( x = > x . SeasonNumber ) )
{
var orderedEpisodes = epInformation . Episodes . OrderBy ( x = > x . EpisodeNumber ) . ToList ( ) ;
var epSb = new StringBuilder ( ) ;
for ( var i = 0 ; i < orderedEpisodes . Count ; i + + )
{
var ep = orderedEpisodes [ i ] ;
if ( i < orderedEpisodes . Count - 1 )
{
epSb . Append ( $"{ep.EpisodeNumber}," ) ;
}
else
{
epSb . Append ( $"{ep.EpisodeNumber}" ) ;
}
}
finalsb . Append ( $"Season: {epInformation.SeasonNumber} - Episodes: {epSb}" ) ;
var episodeString = BuildEpisodeList ( orderedEpisodes . Select ( x = > x . EpisodeNumber ) ) ;
finalsb . Append ( $"Season: {epInformation.SeasonNumber} - Episodes: {episodeString}" ) ;
finalsb . Append ( "<br />" ) ;
}