update home sections

This commit is contained in:
Luke Pulverenti
2017-06-13 02:33:29 -04:00
parent b5aca50c9e
commit 1663b258a7
11 changed files with 57 additions and 179 deletions

View File

@@ -178,13 +178,7 @@ namespace MediaBrowser.Api
{
if (name.IndexOf(BaseItem.SlugChar) != -1)
{
var result = libraryManager.GetItemList(new InternalItemsQuery
{
SlugName = name,
IncludeItemTypes = new[] { typeof(MusicArtist).Name },
DtoOptions = dtoOptions
}).OfType<MusicArtist>().FirstOrDefault();
var result = GetItemFromSlugName<MusicArtist>(libraryManager, name, dtoOptions);
if (result != null)
{
@@ -199,13 +193,7 @@ namespace MediaBrowser.Api
{
if (name.IndexOf(BaseItem.SlugChar) != -1)
{
var result = libraryManager.GetItemList(new InternalItemsQuery
{
SlugName = name,
IncludeItemTypes = new[] { typeof(Studio).Name },
DtoOptions = dtoOptions
}).OfType<Studio>().FirstOrDefault();
var result = GetItemFromSlugName<Studio>(libraryManager, name, dtoOptions);
if (result != null)
{
@@ -220,13 +208,7 @@ namespace MediaBrowser.Api
{
if (name.IndexOf(BaseItem.SlugChar) != -1)
{
var result = libraryManager.GetItemList(new InternalItemsQuery
{
SlugName = name,
IncludeItemTypes = new[] { typeof(Genre).Name },
DtoOptions = dtoOptions
}).OfType<Genre>().FirstOrDefault();
var result = GetItemFromSlugName<Genre>(libraryManager, name, dtoOptions);
if (result != null)
{
@@ -241,13 +223,7 @@ namespace MediaBrowser.Api
{
if (name.IndexOf(BaseItem.SlugChar) != -1)
{
var result = libraryManager.GetItemList(new InternalItemsQuery
{
SlugName = name,
IncludeItemTypes = new[] { typeof(MusicGenre).Name },
DtoOptions = dtoOptions
}).OfType<MusicGenre>().FirstOrDefault();
var result = GetItemFromSlugName<MusicGenre>(libraryManager, name, dtoOptions);
if (result != null)
{
@@ -262,13 +238,7 @@ namespace MediaBrowser.Api
{
if (name.IndexOf(BaseItem.SlugChar) != -1)
{
var result = libraryManager.GetItemList(new InternalItemsQuery
{
SlugName = name,
IncludeItemTypes = new[] { typeof(GameGenre).Name },
DtoOptions = dtoOptions
}).OfType<GameGenre>().FirstOrDefault();
var result = GetItemFromSlugName<GameGenre>(libraryManager, name, dtoOptions);
if (result != null)
{
@@ -283,13 +253,7 @@ namespace MediaBrowser.Api
{
if (name.IndexOf(BaseItem.SlugChar) != -1)
{
var result = libraryManager.GetItemList(new InternalItemsQuery
{
SlugName = name,
IncludeItemTypes = new[] { typeof(Person).Name },
DtoOptions = dtoOptions
}).OfType<Person>().FirstOrDefault();
var result = GetItemFromSlugName<Person>(libraryManager, name, dtoOptions);
if (result != null)
{
@@ -300,6 +264,42 @@ namespace MediaBrowser.Api
return libraryManager.GetPerson(name);
}
private T GetItemFromSlugName<T>(ILibraryManager libraryManager, string name, DtoOptions dtoOptions)
where T : BaseItem, new()
{
var result = libraryManager.GetItemList(new InternalItemsQuery
{
Name = name.Replace(BaseItem.SlugChar, '&'),
IncludeItemTypes = new[] { typeof(T).Name },
DtoOptions = dtoOptions
}).OfType<Person>().FirstOrDefault();
if (result == null)
{
result = libraryManager.GetItemList(new InternalItemsQuery
{
Name = name.Replace(BaseItem.SlugChar, '/'),
IncludeItemTypes = new[] { typeof(T).Name },
DtoOptions = dtoOptions
}).OfType<Person>().FirstOrDefault();
}
if (result == null)
{
result = libraryManager.GetItemList(new InternalItemsQuery
{
Name = name.Replace(BaseItem.SlugChar, '?'),
IncludeItemTypes = new[] { typeof(T).Name },
DtoOptions = dtoOptions
}).OfType<Person>().FirstOrDefault();
}
return result as T;
}
protected string GetPathValue(int index)
{
var pathInfo = Parse(Request.PathInfo);