mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-09 03:04:24 -04:00
improve episode sorting
This commit is contained in:
parent
803d60d9cf
commit
91b5a8101f
@ -62,7 +62,7 @@ namespace MediaBrowser.Server.Implementations.Sorting
|
|||||||
return CompareEpisodes(x, y);
|
return CompareEpisodes(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isXSpecial && isYSpecial)
|
if (!isXSpecial)
|
||||||
{
|
{
|
||||||
return CompareEpisodeToSpecial(x, y);
|
return CompareEpisodeToSpecial(x, y);
|
||||||
}
|
}
|
||||||
@ -87,8 +87,17 @@ namespace MediaBrowser.Server.Implementations.Sorting
|
|||||||
// Add 1 to to non-specials to account for AirsBeforeEpisodeNumber
|
// Add 1 to to non-specials to account for AirsBeforeEpisodeNumber
|
||||||
var xEpisode = x.IndexNumber ?? -1;
|
var xEpisode = x.IndexNumber ?? -1;
|
||||||
xEpisode++;
|
xEpisode++;
|
||||||
|
|
||||||
var yEpisode = y.AirsBeforeEpisodeNumber ?? 10000;
|
var yEpisode = y.AirsBeforeEpisodeNumber ?? 10000;
|
||||||
|
|
||||||
|
// Sometimes they'll both have a value.
|
||||||
|
// For example AirsAfterSeasonNumber=1, AirsBeforeSeasonNumber=2, AirsBeforeEpisodeNumber=1
|
||||||
|
// The episode should be displayed at the end of season 1
|
||||||
|
if (y.AirsAfterSeasonNumber.HasValue && y.AirsBeforeSeasonNumber.HasValue && y.AirsBeforeSeasonNumber.Value > y.AirsAfterSeasonNumber.Value)
|
||||||
|
{
|
||||||
|
yEpisode = 10000;
|
||||||
|
}
|
||||||
|
|
||||||
return xEpisode.CompareTo(yEpisode);
|
return xEpisode.CompareTo(yEpisode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
using MediaBrowser.Controller.Entities;
|
using MediaBrowser.Controller.Entities;
|
||||||
using MediaBrowser.Controller.Sorting;
|
using MediaBrowser.Controller.Sorting;
|
||||||
using MediaBrowser.Model.Querying;
|
using MediaBrowser.Model.Querying;
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace MediaBrowser.Server.Implementations.Sorting
|
namespace MediaBrowser.Server.Implementations.Sorting
|
||||||
{
|
{
|
||||||
@ -18,7 +17,7 @@ namespace MediaBrowser.Server.Implementations.Sorting
|
|||||||
/// <returns>System.Int32.</returns>
|
/// <returns>System.Int32.</returns>
|
||||||
public int Compare(BaseItem x, BaseItem y)
|
public int Compare(BaseItem x, BaseItem y)
|
||||||
{
|
{
|
||||||
return string.Compare(x.Name, y.Name, StringComparison.CurrentCultureIgnoreCase);
|
return AlphanumComparator.CompareValues(x.Name, y.Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -16,7 +16,7 @@ namespace MediaBrowser.Server.Implementations.Sorting
|
|||||||
/// <returns>System.Int32.</returns>
|
/// <returns>System.Int32.</returns>
|
||||||
public int Compare(BaseItem x, BaseItem y)
|
public int Compare(BaseItem x, BaseItem y)
|
||||||
{
|
{
|
||||||
return string.Compare(GetValue(x), GetValue(y), StringComparison.CurrentCultureIgnoreCase);
|
return AlphanumComparator.CompareValues(GetValue(x), GetValue(y));
|
||||||
}
|
}
|
||||||
|
|
||||||
private string GetValue(BaseItem item)
|
private string GetValue(BaseItem item)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user