aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/BaseApiService.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2017-06-13 02:33:29 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2017-06-13 02:33:29 -0400
commit1663b258a71a164046007831e09ddd5f389b28a4 (patch)
tree71a745cfcb64db4cf6dcf7dc5cb5313cd710c721 /MediaBrowser.Api/BaseApiService.cs
parentb5aca50c9e56580fd843f1e3baba32f9cf0231f1 (diff)
update home sections
Diffstat (limited to 'MediaBrowser.Api/BaseApiService.cs')
-rw-r--r--MediaBrowser.Api/BaseApiService.cs84
1 files changed, 42 insertions, 42 deletions
diff --git a/MediaBrowser.Api/BaseApiService.cs b/MediaBrowser.Api/BaseApiService.cs
index 0f1d240d0..d3cc18d4b 100644
--- a/MediaBrowser.Api/BaseApiService.cs
+++ b/MediaBrowser.Api/BaseApiService.cs
@@ -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);