mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-10-01 16:06:24 +02:00
Allow sorting with articles (option)
New: Option to sort with articles (a, the, an) included
This commit is contained in:
@@ -8,6 +8,7 @@ using DataTables.Mvc.Core.Models;
|
||||
using NzbDrone.Core.Helpers;
|
||||
using NzbDrone.Core.Jobs;
|
||||
using NzbDrone.Core.Providers;
|
||||
using NzbDrone.Core.Providers.Core;
|
||||
using NzbDrone.Web.Models;
|
||||
|
||||
namespace NzbDrone.Web.Controllers
|
||||
@@ -16,11 +17,14 @@ namespace NzbDrone.Web.Controllers
|
||||
{
|
||||
private readonly HistoryProvider _historyProvider;
|
||||
private readonly JobProvider _jobProvider;
|
||||
private readonly ConfigProvider _configProvider;
|
||||
|
||||
public HistoryController(HistoryProvider historyProvider, JobProvider jobProvider)
|
||||
public HistoryController(HistoryProvider historyProvider, JobProvider jobProvider,
|
||||
ConfigProvider configProvider)
|
||||
{
|
||||
_historyProvider = historyProvider;
|
||||
_jobProvider = jobProvider;
|
||||
_configProvider = configProvider;
|
||||
}
|
||||
|
||||
public ActionResult Index()
|
||||
@@ -32,6 +36,7 @@ namespace NzbDrone.Web.Controllers
|
||||
{
|
||||
var pageResult = _historyProvider.GetPagedItems(pageRequest);
|
||||
var totalItems = _historyProvider.Count();
|
||||
var ignoreArticles = _configProvider.IgnoreArticlesWhenSortingSeries;
|
||||
|
||||
var items = pageResult.Items.Select(h => new HistoryModel
|
||||
{
|
||||
@@ -41,7 +46,7 @@ namespace NzbDrone.Web.Controllers
|
||||
EpisodeTitle = h.EpisodeTitle,
|
||||
EpisodeOverview = h.EpisodeOverview,
|
||||
SeriesTitle = h.SeriesTitle,
|
||||
SeriesTitleSorter = SortHelper.SkipArticles(h.SeriesTitle),
|
||||
SeriesTitleSorter = ignoreArticles ? h.SeriesTitle.IgnoreArticles() : h.SeriesTitle,
|
||||
NzbTitle = h.NzbTitle,
|
||||
Quality = h.Quality.ToString(),
|
||||
IsProper = h.IsProper,
|
||||
|
@@ -8,6 +8,7 @@ using System.Web.Script.Serialization;
|
||||
using NzbDrone.Core;
|
||||
using NzbDrone.Core.Helpers;
|
||||
using NzbDrone.Core.Providers;
|
||||
using NzbDrone.Core.Providers.Core;
|
||||
using NzbDrone.Web.Models;
|
||||
using ServiceStack.Text;
|
||||
|
||||
@@ -16,15 +17,18 @@ namespace NzbDrone.Web.Controllers
|
||||
public class MissingController : Controller
|
||||
{
|
||||
private readonly EpisodeProvider _episodeProvider;
|
||||
private readonly ConfigProvider _configProvider;
|
||||
|
||||
public MissingController(EpisodeProvider episodeProvider)
|
||||
public MissingController(EpisodeProvider episodeProvider, ConfigProvider configProvider)
|
||||
{
|
||||
_episodeProvider = episodeProvider;
|
||||
_configProvider = configProvider;
|
||||
}
|
||||
|
||||
public ActionResult Index()
|
||||
{
|
||||
var missingEpisodes = _episodeProvider.EpisodesWithoutFiles(false);
|
||||
var ignoreArticles = _configProvider.IgnoreArticlesWhenSortingSeries;
|
||||
|
||||
var missing = missingEpisodes.Select(e => new MissingEpisodeModel
|
||||
{
|
||||
@@ -34,7 +38,7 @@ namespace NzbDrone.Web.Controllers
|
||||
EpisodeTitle = e.Title,
|
||||
Overview = e.Overview,
|
||||
SeriesTitle = e.Series.Title,
|
||||
SeriesTitleSorter = SortHelper.SkipArticles(e.Series.Title),
|
||||
SeriesTitleSorter = ignoreArticles ? e.Series.Title.IgnoreArticles() : e.Series.Title,
|
||||
AirDateSorter = e.AirDate.Value.ToString("o", CultureInfo.InvariantCulture),
|
||||
AirDate = e.AirDate.Value.ToBestDateString()
|
||||
});
|
||||
|
@@ -11,6 +11,7 @@ using NzbDrone.Core.Helpers;
|
||||
using NzbDrone.Core.Jobs;
|
||||
using NzbDrone.Core.Model;
|
||||
using NzbDrone.Core.Providers;
|
||||
using NzbDrone.Core.Providers.Core;
|
||||
using NzbDrone.Core.Repository;
|
||||
using NzbDrone.Core.Repository.Quality;
|
||||
using NzbDrone.Web.Filters;
|
||||
@@ -25,17 +26,19 @@ namespace NzbDrone.Web.Controllers
|
||||
private readonly SeriesProvider _seriesProvider;
|
||||
private readonly JobProvider _jobProvider;
|
||||
private readonly SeasonProvider _seasonProvider;
|
||||
private readonly ConfigProvider _configProvider;
|
||||
//
|
||||
// GET: /Series/
|
||||
|
||||
public SeriesController(SeriesProvider seriesProvider,
|
||||
QualityProvider qualityProvider, JobProvider jobProvider,
|
||||
SeasonProvider seasonProvider)
|
||||
public SeriesController(SeriesProvider seriesProvider, QualityProvider qualityProvider,
|
||||
JobProvider jobProvider, SeasonProvider seasonProvider,
|
||||
ConfigProvider configProvider)
|
||||
{
|
||||
_seriesProvider = seriesProvider;
|
||||
_qualityProvider = qualityProvider;
|
||||
_jobProvider = jobProvider;
|
||||
_seasonProvider = seasonProvider;
|
||||
_configProvider = configProvider;
|
||||
}
|
||||
|
||||
public ActionResult Index()
|
||||
@@ -177,7 +180,7 @@ namespace NzbDrone.Web.Controllers
|
||||
masterBacklogList.Insert(0, new KeyValuePair<int, string>(-10, "Select..."));
|
||||
ViewData["MasterBacklogSettingSelectList"] = new SelectList(masterBacklogList, "Key", "Value");
|
||||
|
||||
var series = GetSeriesModels(_seriesProvider.GetAllSeries()).OrderBy(o => SortHelper.SkipArticles(o.Title));
|
||||
var series = GetSeriesModels(_seriesProvider.GetAllSeries());
|
||||
|
||||
return View(series);
|
||||
}
|
||||
@@ -206,11 +209,13 @@ namespace NzbDrone.Web.Controllers
|
||||
|
||||
private List<SeriesModel> GetSeriesModels(IList<Series> seriesInDb)
|
||||
{
|
||||
var ignoreArticles = _configProvider.IgnoreArticlesWhenSortingSeries;
|
||||
|
||||
var series = seriesInDb.Select(s => new SeriesModel
|
||||
{
|
||||
SeriesId = s.SeriesId,
|
||||
Title = s.Title,
|
||||
TitleSorter = SortHelper.SkipArticles(s.Title),
|
||||
TitleSorter = ignoreArticles? s.Title.IgnoreArticles() : s.Title,
|
||||
AirsDayOfWeek = s.AirsDayOfWeek.ToString(),
|
||||
Monitored = s.Monitored,
|
||||
Overview = s.Overview,
|
||||
|
@@ -253,6 +253,7 @@ namespace NzbDrone.Web.Controllers
|
||||
model.EnableBacklogSearching = _configProvider.EnableBacklogSearching;
|
||||
model.AutoIgnorePreviouslyDownloadedEpisodes = _configProvider.AutoIgnorePreviouslyDownloadedEpisodes;
|
||||
model.AllowedReleaseGroups = _configProvider.AllowedReleaseGroups;
|
||||
model.IgnoreArticlesWhenSortingSeries = _configProvider.IgnoreArticlesWhenSortingSeries;
|
||||
|
||||
return View(model);
|
||||
}
|
||||
@@ -662,6 +663,7 @@ namespace NzbDrone.Web.Controllers
|
||||
_configProvider.EnableBacklogSearching = data.EnableBacklogSearching;
|
||||
_configProvider.AutoIgnorePreviouslyDownloadedEpisodes = data.AutoIgnorePreviouslyDownloadedEpisodes;
|
||||
_configProvider.AllowedReleaseGroups = data.AllowedReleaseGroups;
|
||||
_configProvider.IgnoreArticlesWhenSortingSeries = data.IgnoreArticlesWhenSortingSeries;
|
||||
|
||||
return GetSuccessResult();
|
||||
}
|
||||
|
Reference in New Issue
Block a user