mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-24 15:05:24 -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;
|
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)
|
public static string BuildEpisodeList(IEnumerable<int> orderedEpisodes)
|
||||||
{
|
{
|
||||||
var epSb = new StringBuilder();
|
var epSb = new StringBuilder();
|
||||||
|
@ -133,5 +184,7 @@ namespace Ombi.Helpers
|
||||||
{
|
{
|
||||||
return currentUrl.Replace("http://", "https://");
|
return currentUrl.Replace("http://", "https://");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -813,7 +813,7 @@ namespace Ombi.Schedule.Jobs.Ombi
|
||||||
foreach (var epInformation in results.OrderBy(x => x.SeasonNumber))
|
foreach (var epInformation in results.OrderBy(x => x.SeasonNumber))
|
||||||
{
|
{
|
||||||
var orderedEpisodes = epInformation.Episodes.OrderBy(x => x.EpisodeNumber).ToList();
|
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;
|
var seasonAirDate = epInformation.SeasonAirDate;
|
||||||
finalsb.Append($"Season: {epInformation.SeasonNumber} - Episodes: {episodeString} {seasonAirDate}");
|
finalsb.Append($"Season: {epInformation.SeasonNumber} - Episodes: {episodeString} {seasonAirDate}");
|
||||||
finalsb.Append("<br />");
|
finalsb.Append("<br />");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue