Fixed the TV search via Trakt not returning Images anymore. #865

pull/1425/head
Jamie.Rees 8 years ago
parent 3b18e4c291
commit aab9194cf5

@ -8,7 +8,7 @@ namespace Ombi.Core.Engine.Interfaces
{ {
Task<IEnumerable<SearchTvShowViewModel>> Search(string searchTerm); Task<IEnumerable<SearchTvShowViewModel>> Search(string searchTerm);
Task<SearchTvShowViewModel> GetShowInformation(int tvdbId); Task<SearchTvShowViewModel> GetShowInformation(int tvdbid);
Task<IEnumerable<SearchTvShowViewModel>> Popular(); Task<IEnumerable<SearchTvShowViewModel>> Popular();

@ -50,9 +50,9 @@ namespace Ombi.Core.Engine
return null; return null;
} }
public async Task<SearchTvShowViewModel> GetShowInformation(int tvmazeId) public async Task<SearchTvShowViewModel> GetShowInformation(int tvdbid)
{ {
var show = await TvMazeApi.ShowLookup(tvmazeId); var show = await TvMazeApi.ShowLookupByTheTvDbId(tvdbid);
var episodes = await TvMazeApi.EpisodeLookup(show.id); var episodes = await TvMazeApi.EpisodeLookup(show.id);
var mapped = Mapper.Map<SearchTvShowViewModel>(show); var mapped = Mapper.Map<SearchTvShowViewModel>(show);
@ -154,7 +154,7 @@ namespace Ombi.Core.Engine
} }
} }
if (item.Id > 0 && item.Available) if (item.Id > 0)
{ {
// TODO need to check if the episodes are available // TODO need to check if the episodes are available
var tvdbid = item.Id; var tvdbid = item.Id;

@ -15,8 +15,8 @@ namespace Ombi.Core.Rule
{ {
RequestRules = new List<IRequestRules<BaseRequestModel>>(); RequestRules = new List<IRequestRules<BaseRequestModel>>();
SearchRules = new List<IRequestRules<SearchViewModel>>(); SearchRules = new List<IRequestRules<SearchViewModel>>();
var baseSearchType = typeof(BaseSearchRule).FullName; var baseSearchType = typeof(BaseRequestRule).FullName;
var baseRequestType = typeof(BaseRequestRule).FullName; var baseRequestType = typeof(BaseSearchRule).FullName;
var ass = typeof(RuleEvaluator).GetTypeInfo().Assembly; var ass = typeof(RuleEvaluator).GetTypeInfo().Assembly;

@ -46,10 +46,32 @@ namespace Ombi.Mapping.Profiles
.ForMember(dest => dest.Status, opts => opts.MapFrom(src => src.status)) .ForMember(dest => dest.Status, opts => opts.MapFrom(src => src.status))
.ForMember(dest => dest.SeasonRequests, opts => opts.MapFrom(src => src.Season)); .ForMember(dest => dest.SeasonRequests, opts => opts.MapFrom(src => src.Season));
CreateMap<TvMazeCustomSeason, SeasonRequestModel>()
.ConstructUsing(x =>
{
var season = new SeasonRequestModel
{
SeasonNumber = x.SeasonNumber
};
foreach (var ep in x.EpisodeNumber)
{
season.Episodes.Add(new EpisodesRequested
{
EpisodeNumber = ep,
});
}
return season;
});
CreateMap<TraktShow, SearchTvShowViewModel>() CreateMap<TraktShow, SearchTvShowViewModel>()
.ForMember(dest => dest.Id, opts => opts.MapFrom(src => Convert.ToInt32(src.Ids.Tvdb.ToString()))) .ForMember(dest => dest.Id, opts => opts.MapFrom(src => Convert.ToInt32(src.Ids.Tvdb.ToString())))
.ForMember(dest => dest.FirstAired, opts => opts.MapFrom(src => src.FirstAired.HasValue ? src.FirstAired.Value.ToString("yyyy-MM-ddTHH:mm:ss") : string.Empty)) .ForMember(dest => dest.FirstAired, opts => opts.MapFrom(src => src.FirstAired.HasValue ? src.FirstAired.Value.ToString("yyyy-MM-ddTHH:mm:ss") : string.Empty))
.ForMember(dest => dest.Banner, opts => opts.MapFrom(src => src.Ids.Imdb)) .ForMember(dest => dest.Banner, opts => opts.MapFrom(src => src.Images.Banner.Full))
.ForMember(dest => dest.ImdbId, opts => opts.MapFrom(src => src.Ids.Imdb)) .ForMember(dest => dest.ImdbId, opts => opts.MapFrom(src => src.Ids.Imdb))
.ForMember(dest => dest.Network, opts => opts.MapFrom(src => src.Network)) .ForMember(dest => dest.Network, opts => opts.MapFrom(src => src.Network))
.ForMember(dest => dest.Overview, opts => opts.MapFrom(src => src.Overview.RemoveHtml())) .ForMember(dest => dest.Overview, opts => opts.MapFrom(src => src.Overview.RemoveHtml()))

@ -70,6 +70,7 @@ export class TvSearchComponent implements OnInit, OnDestroy {
.takeUntil(this.subscriptions) .takeUntil(this.subscriptions)
.subscribe(x => { .subscribe(x => {
this.tvResults = x; this.tvResults = x;
this.getExtraInfo();
}); });
} }
@ -79,6 +80,7 @@ export class TvSearchComponent implements OnInit, OnDestroy {
.takeUntil(this.subscriptions) .takeUntil(this.subscriptions)
.subscribe(x => { .subscribe(x => {
this.tvResults = x; this.tvResults = x;
this.getExtraInfo();
}); });
} }
@ -88,6 +90,7 @@ export class TvSearchComponent implements OnInit, OnDestroy {
.takeUntil(this.subscriptions) .takeUntil(this.subscriptions)
.subscribe(x => { .subscribe(x => {
this.tvResults = x; this.tvResults = x;
this.getExtraInfo();
}); });
} }
@ -97,9 +100,21 @@ export class TvSearchComponent implements OnInit, OnDestroy {
.takeUntil(this.subscriptions) .takeUntil(this.subscriptions)
.subscribe(x => { .subscribe(x => {
this.tvResults = x; this.tvResults = x;
this.getExtraInfo();
}); });
} }
getExtraInfo() {
this.tvResults.forEach((val, index) => {
this.searchService.getShowInformation(val.id)
.takeUntil(this.subscriptions)
.subscribe(x => {
this.updateItem(val,x);
});
});
}
request(searchResult: ISearchTvResult) { request(searchResult: ISearchTvResult) {
searchResult.requested = true; searchResult.requested = true;
this.requestService.requestTv(searchResult) this.requestService.requestTv(searchResult)
@ -136,6 +151,12 @@ export class TvSearchComponent implements OnInit, OnDestroy {
this.route.navigate(['/search/show', searchResult.seriesId]); this.route.navigate(['/search/show', searchResult.seriesId]);
} }
private updateItem(key: ISearchTvResult, updated: ISearchTvResult) {
var index = this.tvResults.indexOf(key, 0);
if (index > -1) {
this.tvResults[index] = updated;
}
}
private clearResults() { private clearResults() {
this.tvResults = []; this.tvResults = [];

Loading…
Cancel
Save