mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-24 06:55:23 -07:00
Add BuildEpisodeList overload that takes an int, datetime tuple to include aired dates
This commit is contained in:
parent
310c5c6f38
commit
43c4d58f33
2 changed files with 54 additions and 1 deletions
|
@ -77,6 +77,57 @@ namespace Ombi.Helpers
|
|||
return -1;
|
||||
}
|
||||
|
||||
public static string BuildEpisodeList(IEnumerable<(int EpisodeNumber, DateTime? Aired)> orderedEpisodes)
|
||||
{
|
||||
var epSb = new StringBuilder();
|
||||
var previousEpisodes = new List<(int EpisodeNumber, DateTime? Aired)>();
|
||||
var previousEpisode = -1;
|
||||
foreach (var ep in orderedEpisodes)
|
||||
{
|
||||
if (ep.EpisodeNumber - 1 == previousEpisode)
|
||||
{
|
||||
// This is the next one
|
||||
previousEpisodes.Add(ep);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (previousEpisodes.Count > 1)
|
||||
{
|
||||
// End it
|
||||
(int EpisodeNumber, DateTime? Aired) first = previousEpisodes.First();
|
||||
(int EpisodeNumber, DateTime? Aired) last = previousEpisodes.Last();
|
||||
|
||||
epSb.Append($"{first.EpisodeNumber}-{last.EpisodeNumber}{(last.Aired.HasValue ? $" {last.Aired.Value:yyyy-MM}" : string.Empty)}, ");
|
||||
}
|
||||
else if (previousEpisodes.Count == 1)
|
||||
{
|
||||
(int EpisodeNumber, DateTime? Aired) = previousEpisodes.FirstOrDefault();
|
||||
epSb.Append($"{EpisodeNumber}{(Aired.HasValue ? $" {Aired.Value:yyyy-MM}" : string.Empty)}, ");
|
||||
}
|
||||
// New one
|
||||
previousEpisodes.Clear();
|
||||
previousEpisodes.Add(ep);
|
||||
}
|
||||
previousEpisode = ep.EpisodeNumber;
|
||||
}
|
||||
|
||||
if (previousEpisodes.Count > 1)
|
||||
{
|
||||
// Got some left over
|
||||
(int EpisodeNumber, DateTime? Aired) first = previousEpisodes.First();
|
||||
(int EpisodeNumber, DateTime? Aired) last = previousEpisodes.Last();
|
||||
epSb.Append($"{first.EpisodeNumber}-{last.EpisodeNumber}{(last.Aired.HasValue ? $" {last.Aired.Value:yyyy-MM}" : string.Empty)}");
|
||||
}
|
||||
else if (previousEpisodes.Count == 1)
|
||||
{
|
||||
(int EpisodeNumber, DateTime? Aired) = previousEpisodes.FirstOrDefault();
|
||||
// string.Empty used instead of "" as extra space was being added at the end
|
||||
epSb.Append($"{EpisodeNumber}{(Aired.HasValue ? $" {Aired.Value:yyyy-MM-dd}" : string.Empty)}");
|
||||
}
|
||||
|
||||
return epSb.ToString();
|
||||
}
|
||||
|
||||
public static string BuildEpisodeList(IEnumerable<int> orderedEpisodes)
|
||||
{
|
||||
var epSb = new StringBuilder();
|
||||
|
@ -133,5 +184,7 @@ namespace Ombi.Helpers
|
|||
{
|
||||
return currentUrl.Replace("http://", "https://");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -813,7 +813,7 @@ namespace Ombi.Schedule.Jobs.Ombi
|
|||
foreach (var epInformation in results.OrderBy(x => x.SeasonNumber))
|
||||
{
|
||||
var orderedEpisodes = epInformation.Episodes.OrderBy(x => x.EpisodeNumber).ToList();
|
||||
var episodeString = StringHelper.BuildEpisodeList(orderedEpisodes.Select(x => x.EpisodeNumber));
|
||||
var episodeString = StringHelper.BuildEpisodeList(orderedEpisodes.Select(x => (x.EpisodeNumber, x.Aired)));
|
||||
var seasonAirDate = epInformation.SeasonAirDate;
|
||||
finalsb.Append($"Season: {epInformation.SeasonNumber} - Episodes: {episodeString} {seasonAirDate}");
|
||||
finalsb.Append("<br />");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue