A bit more work on #32 started working on requesting it. The DB is a bit of an issue...

This commit is contained in:
tidusjar 2016-04-01 12:39:13 +01:00
parent c43f70a0e0
commit 45fb3ad376
10 changed files with 209 additions and 43 deletions

View file

@ -55,7 +55,7 @@ namespace PlexRequests.UI.Modules
ISettingsService<PlexRequestSettings> prSettings, IAvailabilityChecker checker,
IRequestService request, ISonarrApi sonarrApi, ISettingsService<SonarrSettings> sonarrSettings,
ISettingsService<SickRageSettings> sickRageService, ICouchPotatoApi cpApi, ISickRageApi srApi,
INotificationService notify) : base("search")
INotificationService notify, IMusicBrainzApi mbApi, IHeadphonesApi hpApi, ISettingsService<HeadphonesSettings> hpService) : base("search")
{
CpService = cpSettings;
PrService = prSettings;
@ -70,6 +70,10 @@ namespace PlexRequests.UI.Modules
SickRageService = sickRageService;
SickrageApi = srApi;
NotificationService = notify;
MusicBrainzApi = mbApi;
HeadphonesApi = hpApi;
HeadphonesService = hpService;
Get["/"] = parameters => RequestLoad();
@ -96,9 +100,11 @@ namespace PlexRequests.UI.Modules
private ISettingsService<PlexRequestSettings> PrService { get; }
private ISettingsService<SonarrSettings> SonarrService { get; }
private ISettingsService<SickRageSettings> SickRageService { get; }
private ISettingsService<HeadphonesSettings> HeadphonesService { get; }
private IAvailabilityChecker Checker { get; }
private IMusicBrainzApi MusicBrainzApi { get; }
private IHeadphonesApi HeadphonesApi { get; }
private static Logger Log = LogManager.GetCurrentClassLogger();
private string AuthToken => Cache.GetOrSet(CacheKeys.TvDbToken, TvApi.Authenticate, 50);
private Negotiator RequestLoad()
{
@ -157,20 +163,12 @@ namespace PlexRequests.UI.Modules
private Response SearchMusic(string searchTerm)
{
var api = new MusicBrainsApi();
var albums = api.SearchAlbum(searchTerm);
var albums = MusicBrainzApi.SearchAlbum(searchTerm);
var releases = albums.releases ?? new List<Release>();
var model = new List<SearchMusicViewModel>();
foreach (var a in releases)
{
var coverArt = api.GetCoverArt(a.id);
var firstImage = coverArt?.images?.FirstOrDefault();
var img = string.Empty;
if (firstImage != null)
{
img = firstImage.thumbnails?.small ?? firstImage.image;
}
var img = GetMusicBrainzCoverArt(a.id);
model.Add(new SearchMusicViewModel
{
Title = a.title,
@ -478,9 +476,36 @@ namespace PlexRequests.UI.Modules
private Response RequestAlbum(string releaseId)
{
var settings = HeadphonesService.GetSettings();
var albumInfo = MusicBrainzApi.GetAlbum(releaseId);
var img = GetMusicBrainzCoverArt(albumInfo.id);
var model = new RequestedModel
{
Title = albumInfo.title,
MusicBrainzId = albumInfo.id,
Overview = albumInfo.disambiguation,
PosterPath = img,
Type = RequestType.Album
};
// TODO need to send to Headphones
return Response.AsJson("");
}
private string GetMusicBrainzCoverArt(string id)
{
var coverArt = MusicBrainzApi.GetCoverArt(id);
var firstImage = coverArt?.images?.FirstOrDefault();
var img = string.Empty;
if (firstImage != null)
{
img = firstImage.thumbnails?.small ?? firstImage.image;
}
return img;
}
}
}