1
0
mirror of https://github.com/Radarr/Radarr.git synced 2024-11-05 02:22:31 +01:00
Radarr/NzbDrone.Api/Series/SeriesLookupModule.cs

45 lines
1.3 KiB
C#
Raw Normal View History

2013-05-26 03:19:03 +02:00
using System.Collections.Generic;
using Nancy;
2013-02-23 21:35:26 +01:00
using NzbDrone.Api.Extensions;
2013-05-26 03:19:03 +02:00
using NzbDrone.Core.MediaCover;
using NzbDrone.Core.MetadataSource;
using System.Linq;
2013-05-26 03:19:03 +02:00
using NzbDrone.Api.Mapping;
2013-01-28 19:06:54 +01:00
namespace NzbDrone.Api.Series
{
2013-05-26 03:19:03 +02:00
public class SeriesLookupModule : NzbDroneRestModule<SeriesResource>
2013-01-28 19:06:54 +01:00
{
2013-03-31 22:25:39 +02:00
private readonly ISearchForNewSeries _searchProxy;
2013-01-28 19:06:54 +01:00
2013-03-31 22:25:39 +02:00
public SeriesLookupModule(ISearchForNewSeries searchProxy)
2013-01-28 19:06:54 +01:00
: base("/Series/lookup")
{
2013-03-31 22:25:39 +02:00
_searchProxy = searchProxy;
2013-05-26 03:19:03 +02:00
Get["/"] = x => Search();
2013-01-28 19:06:54 +01:00
}
2013-05-26 03:19:03 +02:00
private Response Search()
2013-01-28 19:06:54 +01:00
{
2013-03-31 22:25:39 +02:00
var tvDbResults = _searchProxy.SearchForNewSeries((string)Request.Query.term);
2013-05-26 03:19:03 +02:00
return MapToResource(tvDbResults).FirstOrDefault().AsResponse();
}
private static IEnumerable<SeriesResource> MapToResource(IEnumerable<Core.Tv.Series> series)
{
foreach (var currentSeries in series)
{
var resource = currentSeries.InjectTo<SeriesResource>();
var poster = currentSeries.Images.FirstOrDefault(c => c.CoverType == MediaCoverTypes.Poster);
if (poster != null)
{
resource.RemotePoster = poster.Url;
}
yield return resource;
}
2013-01-28 19:06:54 +01:00
}
}
}