aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/ItemLookupService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/ItemLookupService.cs')
-rw-r--r--MediaBrowser.Api/ItemLookupService.cs64
1 files changed, 40 insertions, 24 deletions
diff --git a/MediaBrowser.Api/ItemLookupService.cs b/MediaBrowser.Api/ItemLookupService.cs
index 8be37e210..357ff4394 100644
--- a/MediaBrowser.Api/ItemLookupService.cs
+++ b/MediaBrowser.Api/ItemLookupService.cs
@@ -38,6 +38,12 @@ namespace MediaBrowser.Api
{
}
+ [Route("/Items/RemoteSearch/Trailer", "POST")]
+ [Authenticated]
+ public class GetTrailerRemoteSearchResults : RemoteSearchQuery<TrailerInfo>, IReturn<List<RemoteSearchResult>>
+ {
+ }
+
[Route("/Items/RemoteSearch/AdultVideo", "POST")]
[Authenticated]
public class GetAdultVideoRemoteSearchResults : RemoteSearchQuery<ItemLookupInfo>, IReturn<List<RemoteSearchResult>>
@@ -132,60 +138,65 @@ namespace MediaBrowser.Api
return ToOptimizedResult(infos);
}
- public object Post(GetMovieRemoteSearchResults request)
+ public async Task<object> Post(GetTrailerRemoteSearchResults request)
{
- var result = _providerManager.GetRemoteSearchResults<Movie, MovieInfo>(request, CancellationToken.None).Result;
+ var result = await _providerManager.GetRemoteSearchResults<Trailer, TrailerInfo>(request, CancellationToken.None).ConfigureAwait(false);
return ToOptimizedResult(result);
}
- public object Post(GetSeriesRemoteSearchResults request)
+ public async Task<object> Post(GetMovieRemoteSearchResults request)
{
- var result = _providerManager.GetRemoteSearchResults<Series, SeriesInfo>(request, CancellationToken.None).Result;
+ var result = await _providerManager.GetRemoteSearchResults<Movie, MovieInfo>(request, CancellationToken.None).ConfigureAwait(false);
return ToOptimizedResult(result);
}
- public object Post(GetGameRemoteSearchResults request)
+ public async Task<object> Post(GetSeriesRemoteSearchResults request)
{
- var result = _providerManager.GetRemoteSearchResults<Game, GameInfo>(request, CancellationToken.None).Result;
+ var result = await _providerManager.GetRemoteSearchResults<Series, SeriesInfo>(request, CancellationToken.None).ConfigureAwait(false);
return ToOptimizedResult(result);
}
- public object Post(GetBoxSetRemoteSearchResults request)
+ public async Task<object> Post(GetGameRemoteSearchResults request)
{
- var result = _providerManager.GetRemoteSearchResults<BoxSet, BoxSetInfo>(request, CancellationToken.None).Result;
+ var result = await _providerManager.GetRemoteSearchResults<Game, GameInfo>(request, CancellationToken.None).ConfigureAwait(false);
return ToOptimizedResult(result);
}
- public object Post(GetPersonRemoteSearchResults request)
+ public async Task<object> Post(GetBoxSetRemoteSearchResults request)
{
- var result = _providerManager.GetRemoteSearchResults<Person, PersonLookupInfo>(request, CancellationToken.None).Result;
+ var result = await _providerManager.GetRemoteSearchResults<BoxSet, BoxSetInfo>(request, CancellationToken.None).ConfigureAwait(false);
return ToOptimizedResult(result);
}
- public object Post(GetMusicAlbumRemoteSearchResults request)
+ public async Task<object> Post(GetPersonRemoteSearchResults request)
{
- var result = _providerManager.GetRemoteSearchResults<MusicAlbum, AlbumInfo>(request, CancellationToken.None).Result;
+ var result = await _providerManager.GetRemoteSearchResults<Person, PersonLookupInfo>(request, CancellationToken.None).ConfigureAwait(false);
return ToOptimizedResult(result);
}
- public object Post(GetMusicArtistRemoteSearchResults request)
+ public async Task<object> Post(GetMusicAlbumRemoteSearchResults request)
{
- var result = _providerManager.GetRemoteSearchResults<MusicArtist, ArtistInfo>(request, CancellationToken.None).Result;
+ var result = await _providerManager.GetRemoteSearchResults<MusicAlbum, AlbumInfo>(request, CancellationToken.None).ConfigureAwait(false);
return ToOptimizedResult(result);
}
- public object Get(GetRemoteSearchImage request)
+ public async Task<object> Post(GetMusicArtistRemoteSearchResults request)
{
- var result = GetRemoteImage(request).Result;
+ var result = await _providerManager.GetRemoteSearchResults<MusicArtist, ArtistInfo>(request, CancellationToken.None).ConfigureAwait(false);
- return result;
+ return ToOptimizedResult(result);
+ }
+
+ public Task<object> Get(GetRemoteSearchImage request)
+ {
+ return GetRemoteImage(request);
}
public void Post(ApplySearchCriteria request)
@@ -202,14 +213,19 @@ namespace MediaBrowser.Api
// }
//}
Logger.Info("Setting provider id's to item {0}-{1}: {2}", item.Id, item.Name, _json.SerializeToString(request.ProviderIds));
+
+ // Since the refresh process won't erase provider Ids, we need to set this explicitly now.
item.ProviderIds = request.ProviderIds;
+ //item.ProductionYear = request.ProductionYear;
+ //item.Name = request.Name;
- var task = _providerManager.RefreshFullItem(item, new MetadataRefreshOptions(_fileSystem)
+ var task = _providerManager.RefreshFullItem(item, new MetadataRefreshOptions(_fileSystem)
{
MetadataRefreshMode = MetadataRefreshMode.FullRefresh,
ImageRefreshMode = ImageRefreshMode.FullRefresh,
ReplaceAllMetadata = true,
- ReplaceAllImages = request.ReplaceAllImages
+ ReplaceAllImages = request.ReplaceAllImages,
+ SearchResult = request
}, CancellationToken.None);
Task.WaitAll(task);
@@ -234,9 +250,9 @@ namespace MediaBrowser.Api
contentPath = await reader.ReadToEndAsync().ConfigureAwait(false);
}
- if (_fileSystem.FileExists(contentPath))
+ if (_fileSystem.FileExists(contentPath))
{
- return ToStaticFileResult(contentPath);
+ return await ResultFactory.GetStaticFileResult(Request, contentPath).ConfigureAwait(false);
}
}
catch (DirectoryNotFoundException)
@@ -256,7 +272,7 @@ namespace MediaBrowser.Api
contentPath = await reader.ReadToEndAsync().ConfigureAwait(false);
}
- return ToStaticFileResult(contentPath);
+ return await ResultFactory.GetStaticFileResult(Request, contentPath).ConfigureAwait(false);
}
/// <summary>
@@ -275,7 +291,7 @@ namespace MediaBrowser.Api
var fullCachePath = GetFullCachePath(urlHash + "." + ext);
- _fileSystem.CreateDirectory(Path.GetDirectoryName(fullCachePath));
+ _fileSystem.CreateDirectory(Path.GetDirectoryName(fullCachePath));
using (var stream = result.Content)
{
using (var filestream = _fileSystem.GetFileStream(fullCachePath, FileMode.Create, FileAccess.Write, FileShare.Read, true))
@@ -284,7 +300,7 @@ namespace MediaBrowser.Api
}
}
- _fileSystem.CreateDirectory(Path.GetDirectoryName(pointerCachePath));
+ _fileSystem.CreateDirectory(Path.GetDirectoryName(pointerCachePath));
using (var writer = new StreamWriter(pointerCachePath))
{
await writer.WriteAsync(fullCachePath).ConfigureAwait(false);