From 4fb965e782e33e5cb4ff6366140055e11218f5ff Mon Sep 17 00:00:00 2001 From: tidusjar Date: Sat, 18 May 2019 23:15:04 +0100 Subject: [PATCH] merge --- src/Ombi.Api.Trakt/ITraktApi.cs | 9 +-- src/Ombi.Api.Trakt/Ombi.Api.Trakt.csproj | 2 +- src/Ombi.Api.Trakt/TraktApi.cs | 43 +++++------ .../Engine/Demo/DemoTvSearchEngine.cs | 9 ++- .../Engine/Interfaces/ITvSearchEngine.cs | 2 - src/Ombi.Core/Engine/TvSearchEngine.cs | 62 +++++----------- src/Ombi.Core/Engine/V2/TvSearchEngineV2.cs | 6 +- src/Ombi.Mapping/Profiles/TvProfile.cs | 71 +------------------ .../card/discover-card.component.ts | 35 ++++----- .../components/discover/discover.component.ts | 14 ++-- .../ClientApp/src/app/discover/interfaces.ts | 1 + src/Ombi/Controllers/V1/SearchController.cs | 6 +- src/Ombi/Controllers/V2/SearchController.cs | 9 ++- 13 files changed, 90 insertions(+), 179 deletions(-) diff --git a/src/Ombi.Api.Trakt/ITraktApi.cs b/src/Ombi.Api.Trakt/ITraktApi.cs index 087784e01..752fcb85b 100644 --- a/src/Ombi.Api.Trakt/ITraktApi.cs +++ b/src/Ombi.Api.Trakt/ITraktApi.cs @@ -1,17 +1,14 @@ using System.Collections.Generic; using System.Threading.Tasks; -using TraktApiSharp.Enums; -using TraktApiSharp.Objects.Get.Shows; -using TraktApiSharp.Objects.Get.Shows.Common; +using TraktSharp.Entities; namespace Ombi.Api.Trakt { public interface ITraktApi { - Task> GetAnticipatedShows(int? page = default(int?), int? limitPerPage = default(int?)); - Task> GetMostWatchesShows(TraktTimePeriod period = null, int? page = default(int?), int? limitPerPage = default(int?)); + Task> GetAnticipatedShows(int? page = default(int?), int? limitPerPage = default(int?)); Task> GetPopularShows(int? page = default(int?), int? limitPerPage = default(int?)); - Task> GetTrendingShows(int? page = default(int?), int? limitPerPage = default(int?)); + Task> GetTrendingShows(int? page = default(int?), int? limitPerPage = default(int?)); Task GetTvExtendedInfo(string imdbId); } } \ No newline at end of file diff --git a/src/Ombi.Api.Trakt/Ombi.Api.Trakt.csproj b/src/Ombi.Api.Trakt/Ombi.Api.Trakt.csproj index 578131238..a6ad985e5 100644 --- a/src/Ombi.Api.Trakt/Ombi.Api.Trakt.csproj +++ b/src/Ombi.Api.Trakt/Ombi.Api.Trakt.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/Ombi.Api.Trakt/TraktApi.cs b/src/Ombi.Api.Trakt/TraktApi.cs index 2e09ec071..c3faa5115 100644 --- a/src/Ombi.Api.Trakt/TraktApi.cs +++ b/src/Ombi.Api.Trakt/TraktApi.cs @@ -1,12 +1,11 @@ -using System; + using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using Ombi.Helpers; -using TraktApiSharp; -using TraktApiSharp.Enums; -using TraktApiSharp.Objects.Get.Shows; -using TraktApiSharp.Objects.Get.Shows.Common; -using TraktApiSharp.Requests.Parameters; +using TraktSharp; +using TraktSharp.Entities; +using TraktSharp.Enums; namespace Ombi.Api.Trakt { @@ -18,36 +17,38 @@ namespace Ombi.Api.Trakt private readonly string _apiKey = StringCipher.DecryptString(Encrypted, "ApiKey"); public TraktApi() { - Client = new TraktClient(_apiKey); + Client = new TraktClient + { + Authentication = + { + ClientId = _apiKey, + ClientSecret = "7beeb6f1c0c842341f6bd285adb86200cb810e431fff0a8a1ed7158af4cffbbb" + } + }; } public async Task> GetPopularShows(int? page = null, int? limitPerPage = null) { - var popular = await Client.Shows.GetPopularShowsAsync(new TraktExtendedInfo { Full = true, Images = true }, null, page ?? 1, limitPerPage ?? 10); - return popular.Value; + var popular = await Client.Shows.GetPopularShowsAsync(TraktExtendedOption.Full, page, limitPerPage); + return popular; } - public async Task> GetTrendingShows(int? page = null, int? limitPerPage = null) + public async Task> GetTrendingShows(int? page = null, int? limitPerPage = null) { - var trendingShowsTop10 = await Client.Shows.GetTrendingShowsAsync(new TraktExtendedInfo { Full = true, Images = true }, null, page ?? 1, limitPerPage ?? 10); - return trendingShowsTop10.Value; + var trendingShowsTop10 = await Client.Shows.GetTrendingShowsAsync(TraktExtendedOption.Full, page, limitPerPage); + return trendingShowsTop10.Select(x => x.Show); } - public async Task> GetAnticipatedShows(int? page = null, int? limitPerPage = null) + public async Task> GetAnticipatedShows(int? page = null, int? limitPerPage = null) { - var anticipatedShows = await Client.Shows.GetMostAnticipatedShowsAsync(new TraktExtendedInfo { Full = true, Images = true }, null, page ?? 1, limitPerPage ?? 10); - return anticipatedShows.Value; + var anticipatedShows = await Client.Shows.GetAnticipatedShowsAsync(TraktExtendedOption.Full, page, limitPerPage); + return anticipatedShows.Select(x => x.Show); } - public async Task> GetMostWatchesShows(TraktTimePeriod period = null, int? page = null, int? limitPerPage = null) - { - var anticipatedShows = await Client.Shows.GetMostWatchedShowsAsync(period ?? TraktTimePeriod.Monthly, new TraktExtendedInfo { Full = true, Images = true }, null, page ?? 1, limitPerPage ?? 10); - return anticipatedShows.Value; - } public async Task GetTvExtendedInfo(string imdbId) { - return await Client.Shows.GetShowAsync(imdbId, new TraktExtendedInfo { Full = true }); + return await Client.Shows.GetShowAsync(imdbId, TraktExtendedOption.Full); } } } diff --git a/src/Ombi.Core/Engine/Demo/DemoTvSearchEngine.cs b/src/Ombi.Core/Engine/Demo/DemoTvSearchEngine.cs index edf9c430d..54dacda6b 100644 --- a/src/Ombi.Core/Engine/Demo/DemoTvSearchEngine.cs +++ b/src/Ombi.Core/Engine/Demo/DemoTvSearchEngine.cs @@ -25,10 +25,9 @@ namespace Ombi.Core.Engine.Demo { public DemoTvSearchEngine(IPrincipal identity, IRequestServiceMain service, ITvMazeApi tvMaze, IMapper mapper, - ISettingsService plexSettings, ISettingsService embySettings, IPlexContentRepository repo, - IEmbyContentRepository embyRepo, ITraktApi trakt, IRuleEvaluator r, OmbiUserManager um, ICacheService memCache, + ITraktApi trakt, IRuleEvaluator r, OmbiUserManager um, ICacheService memCache, ISettingsService s, IRepository sub, IOptions lists) - : base(identity, service, tvMaze, mapper, plexSettings, embySettings, repo, embyRepo, trakt, r, um, memCache, s, sub) + : base(identity, service, tvMaze, mapper, trakt, r, um, memCache, s, sub) { _demoLists = lists.Value; } @@ -56,7 +55,7 @@ namespace Ombi.Core.Engine.Demo { continue; } - retVal.Add(ProcessResult(tvMazeSearch)); + retVal.Add(await ProcessResult(tvMazeSearch)); } return retVal; } @@ -78,7 +77,7 @@ namespace Ombi.Core.Engine.Demo } var movieResult = await TvMazeApi.ShowLookup(tv); - responses.Add(ProcessResult(movieResult)); + responses.Add(await ProcessResult(movieResult)); } return responses; diff --git a/src/Ombi.Core/Engine/Interfaces/ITvSearchEngine.cs b/src/Ombi.Core/Engine/Interfaces/ITvSearchEngine.cs index 501197fb9..7ee6c4cf1 100644 --- a/src/Ombi.Core/Engine/Interfaces/ITvSearchEngine.cs +++ b/src/Ombi.Core/Engine/Interfaces/ITvSearchEngine.cs @@ -12,9 +12,7 @@ namespace Ombi.Core.Engine.Interfaces Task> Popular(int currentlyLoaded, int amountToLoad); Task> Anticipated(); Task> Anticipated(int currentlyLoaded, int amountToLoad); - Task> MostWatches(); Task> Trending(); - Task> MostWatches(int currentlyLoaded, int amountToLoad); Task> Trending(int currentlyLoaded, int amountToLoad); int ResultLimit { get; set; } } diff --git a/src/Ombi.Core/Engine/TvSearchEngine.cs b/src/Ombi.Core/Engine/TvSearchEngine.cs index f6e470dce..f854a5eee 100644 --- a/src/Ombi.Core/Engine/TvSearchEngine.cs +++ b/src/Ombi.Core/Engine/TvSearchEngine.cs @@ -21,33 +21,24 @@ using Ombi.Core.Authentication; using Ombi.Helpers; using Ombi.Settings.Settings.Models; using Ombi.Store.Entities; -using TraktApiSharp.Objects.Get.Shows; -using TraktApiSharp.Objects.Get.Shows.Common; +using TraktSharp.Entities; namespace Ombi.Core.Engine { public class TvSearchEngine : BaseMediaEngine, ITvSearchEngine { - public TvSearchEngine(IPrincipal identity, IRequestServiceMain service, ITvMazeApi tvMaze, IMapper mapper, ISettingsService plexSettings, - ISettingsService embySettings, IPlexContentRepository repo, IEmbyContentRepository embyRepo, ITraktApi trakt, IRuleEvaluator r, OmbiUserManager um, + public TvSearchEngine(IPrincipal identity, IRequestServiceMain service, ITvMazeApi tvMaze, IMapper mapper, + ITraktApi trakt, IRuleEvaluator r, OmbiUserManager um, ICacheService memCache, ISettingsService s, IRepository sub) : base(identity, service, r, um, memCache, s, sub) { TvMazeApi = tvMaze; Mapper = mapper; - PlexSettings = plexSettings; - EmbySettings = embySettings; - PlexContentRepo = repo; TraktApi = trakt; - EmbyContentRepo = embyRepo; } protected ITvMazeApi TvMazeApi { get; } protected IMapper Mapper { get; } - private ISettingsService PlexSettings { get; } - private ISettingsService EmbySettings { get; } - private IPlexContentRepository PlexContentRepo { get; } - private IEmbyContentRepository EmbyContentRepo { get; } private ITraktApi TraktApi { get; } public async Task> Search(string searchTerm) @@ -63,7 +54,7 @@ namespace Ombi.Core.Engine { continue; } - retVal.Add(ProcessResult(tvMazeSearch)); + retVal.Add(await ProcessResult(tvMazeSearch)); } return retVal; } @@ -129,7 +120,7 @@ namespace Ombi.Core.Engine { var result = await Cache.GetOrAdd(CacheKeys.PopularTv, async () => await TraktApi.GetPopularShows(null, ResultLimit), DateTime.Now.AddHours(12)); var processed = ProcessResults(result); - return processed; + return await processed; } public async Task> Popular(int currentlyLoaded, int amountToLoad) @@ -143,7 +134,7 @@ namespace Ombi.Core.Engine results.AddRange(apiResult.Skip(pagesToLoad.Skip).Take(pagesToLoad.Take)); } var processed = ProcessResults(results); - return processed; + return await processed; } public async Task> Anticipated() @@ -151,13 +142,13 @@ namespace Ombi.Core.Engine var result = await Cache.GetOrAdd(CacheKeys.AnticipatedTv, async () => await TraktApi.GetAnticipatedShows(null, ResultLimit), DateTime.Now.AddHours(12)); var processed = ProcessResults(result); - return processed; + return await processed; } public async Task> Anticipated(int currentlyLoaded, int amountToLoad) { var pages = PaginationHelper.GetNextPages(currentlyLoaded, amountToLoad, ResultLimit); - var results = new List(); + var results = new List(); foreach (var pagesToLoad in pages) { var apiResult = await Cache.GetOrAdd(nameof(Anticipated) + pagesToLoad.Page, @@ -165,41 +156,21 @@ namespace Ombi.Core.Engine results.AddRange(apiResult.Skip(pagesToLoad.Skip).Take(pagesToLoad.Take)); } var processed = ProcessResults(results); - return processed; - } - - public async Task> MostWatches() - { - var result = await Cache.GetOrAdd(CacheKeys.MostWatchesTv, async () => await TraktApi.GetMostWatchesShows(null, ResultLimit), DateTime.Now.AddHours(12)); - var processed = ProcessResults(result); - return processed; + return await processed; } public async Task> Trending() { var result = await Cache.GetOrAdd(CacheKeys.TrendingTv, async () => await TraktApi.GetTrendingShows(null, ResultLimit), DateTime.Now.AddHours(12)); var processed = ProcessResults(result); - return processed; + return await processed; } - public async Task> MostWatches(int currentlyLoaded, int amountToLoad) - { - var pages = PaginationHelper.GetNextPages(currentlyLoaded, amountToLoad, ResultLimit); - var results = new List(); - foreach (var pagesToLoad in pages) - { - var apiResult = await Cache.GetOrAdd(nameof(MostWatches) + pagesToLoad.Page, - async () => await TraktApi.GetMostWatchesShows(null, pagesToLoad.Page, ResultLimit), DateTime.Now.AddHours(12)); - results.AddRange(apiResult.Skip(pagesToLoad.Skip).Take(pagesToLoad.Take)); - } - var processed = ProcessResults(results); - return processed; - } public async Task> Trending(int currentlyLoaded, int amountToLoad) { var pages = PaginationHelper.GetNextPages(currentlyLoaded, amountToLoad, ResultLimit); - var results = new List(); + var results = new List(); foreach (var pagesToLoad in pages) { var apiResult = await Cache.GetOrAdd(nameof(Trending) + pagesToLoad.Page, @@ -207,22 +178,23 @@ namespace Ombi.Core.Engine results.AddRange(apiResult.Skip(pagesToLoad.Skip).Take(pagesToLoad.Take)); } var processed = ProcessResults(results); - return processed; + return await processed; } - protected IEnumerable ProcessResults(IEnumerable items) + protected async Task> ProcessResults(IEnumerable items) { var retVal = new List(); foreach (var tvMazeSearch in items) { - retVal.Add(ProcessResult(tvMazeSearch)); + retVal.Add(await ProcessResult(tvMazeSearch)); } return retVal; } - protected SearchTvShowViewModel ProcessResult(T tvMazeSearch) + protected async Task ProcessResult(T tvMazeSearch) { - return Mapper.Map(tvMazeSearch); + var mapped = Mapper.Map(tvMazeSearch); + return await ProcessResult(mapped); } private async Task ProcessResult(SearchTvShowViewModel item) diff --git a/src/Ombi.Core/Engine/V2/TvSearchEngineV2.cs b/src/Ombi.Core/Engine/V2/TvSearchEngineV2.cs index 7a423db05..06d2c9e87 100644 --- a/src/Ombi.Core/Engine/V2/TvSearchEngineV2.cs +++ b/src/Ombi.Core/Engine/V2/TvSearchEngineV2.cs @@ -5,7 +5,6 @@ using System.Collections.Generic; using System.Linq; using System.Security.Principal; using System.Threading.Tasks; -using TraktApiSharp.Objects.Get.Shows; using Ombi.Core.Rule.Interfaces; using Ombi.Store.Repository.Requests; @@ -21,6 +20,7 @@ using Ombi.Core.Models.Search.V2; using Ombi.Core.Settings; using Ombi.Core.Settings.Models.External; using Ombi.Store.Repository; +using TraktSharp.Entities; namespace Ombi.Core.Engine.V2 { @@ -148,9 +148,9 @@ namespace Ombi.Core.Engine.V2 return model; } - model.Trailer = result.Trailer; + model.Trailer = result.Trailer.AbsoluteUri; model.Certification = result.Certification; - model.Homepage = result.Homepage; + model.Homepage = result.Homepage.AbsoluteUri; return model; } diff --git a/src/Ombi.Mapping/Profiles/TvProfile.cs b/src/Ombi.Mapping/Profiles/TvProfile.cs index 4808a905b..db6755e01 100644 --- a/src/Ombi.Mapping/Profiles/TvProfile.cs +++ b/src/Ombi.Mapping/Profiles/TvProfile.cs @@ -2,15 +2,10 @@ using System.Globalization; using AutoMapper; using Ombi.Api.TvMaze.Models; -using Ombi.Core.Models.Requests; using Ombi.Core.Models.Search; using Ombi.Helpers; -using TraktApiSharp.Objects.Get.Shows; -using TraktApiSharp.Objects.Get.Shows.Common; -using Ombi.Store.Repository.Requests; - -//using TraktApiSharp.Objects.Get.Shows; -//using TraktApiSharp.Objects.Get.Shows.Common; +using TraktSharp.Entities; +using TraktSharp.Helpers; namespace Ombi.Mapping.Profiles { @@ -51,78 +46,18 @@ namespace Ombi.Mapping.Profiles .ForMember(dest => dest.Status, opts => opts.MapFrom(src => src.status)); - - //CreateMap() - // .ConstructUsing(x => - // { - // var season = new SeasonRequests - // { - // SeasonNumber = x.SeasonNumber - // }; - // foreach (var ep in x.EpisodeNumber) - // { - // season.Episodes.Add(new EpisodeRequests - // { - // EpisodeNumber = ep, - // }); - // } - // return season; - // }); - - - CreateMap() .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.Banner, opts => opts.MapFrom(src => src.Images.Banner.Full)) .ForMember(dest => dest.ImdbId, opts => opts.MapFrom(src => src.Ids.Imdb)) .ForMember(dest => dest.Network, opts => opts.MapFrom(src => src.Network)) .ForMember(dest => dest.Overview, opts => opts.MapFrom(src => src.Overview.RemoveHtml())) .ForMember(dest => dest.Rating, opts => opts.MapFrom(src => src.Rating.ToString())) .ForMember(dest => dest.Runtime, opts => opts.MapFrom(src => src.Runtime.ToString())) .ForMember(dest => dest.Title, opts => opts.MapFrom(src => src.Title)) - .ForMember(dest => dest.Status, opts => opts.MapFrom(src => src.Status.DisplayName)) + .ForMember(dest => dest.Status, opts => opts.MapFrom(src => TraktEnumHelper.GetDescription(src.Status))) .ForMember(dest => dest.Trailer, opts => opts.MapFrom(src => src.Trailer)) .ForMember(dest => dest.Homepage, opts => opts.MapFrom(src => src.Homepage)); - - CreateMap() - .ForMember(dest => dest.Id, opts => opts.MapFrom(src => Convert.ToInt32(src.Show.Ids.Tvdb.ToString()))) - .ForMember(dest => dest.FirstAired, opts => opts.MapFrom(src => src.Show.FirstAired.HasValue ? src.Show.FirstAired.Value.ToString("yyyy-MM-ddTHH:mm:ss") : string.Empty)) - .ForMember(dest => dest.ImdbId, opts => opts.MapFrom(src => src.Show.Ids.Imdb)) - .ForMember(dest => dest.Network, opts => opts.MapFrom(src => src.Show.Network)) - .ForMember(dest => dest.Overview, opts => opts.MapFrom(src => src.Show.Overview.RemoveHtml())) - .ForMember(dest => dest.Rating, opts => opts.MapFrom(src => src.Show.Rating.ToString())) - .ForMember(dest => dest.Runtime, opts => opts.MapFrom(src => src.Show.Runtime.ToString())) - .ForMember(dest => dest.Title, opts => opts.MapFrom(src => src.Show.Title)) - .ForMember(dest => dest.Status, opts => opts.MapFrom(src => src.Show.Status.DisplayName)) - .ForMember(dest => dest.Trailer, opts => opts.MapFrom(src => src.Show.Trailer)) - .ForMember(dest => dest.Homepage, opts => opts.MapFrom(src => src.Show.Homepage)); - - CreateMap() - .ForMember(dest => dest.Id, opts => opts.MapFrom(src => Convert.ToInt32(src.Show.Ids.Tvdb.ToString()))) - .ForMember(dest => dest.FirstAired, opts => opts.MapFrom(src => src.Show.FirstAired.HasValue ? src.Show.FirstAired.Value.ToString("yyyy-MM-ddTHH:mm:ss") : string.Empty)) - .ForMember(dest => dest.ImdbId, opts => opts.MapFrom(src => src.Show.Ids.Imdb)) - .ForMember(dest => dest.Network, opts => opts.MapFrom(src => src.Show.Network)) - .ForMember(dest => dest.Overview, opts => opts.MapFrom(src => src.Show.Overview.RemoveHtml())) - .ForMember(dest => dest.Rating, opts => opts.MapFrom(src => src.Show.Rating.ToString())) - .ForMember(dest => dest.Runtime, opts => opts.MapFrom(src => src.Show.Runtime.ToString())) - .ForMember(dest => dest.Title, opts => opts.MapFrom(src => src.Show.Title)) - .ForMember(dest => dest.Status, opts => opts.MapFrom(src => src.Show.Status.DisplayName)) - .ForMember(dest => dest.Trailer, opts => opts.MapFrom(src => src.Show.Trailer)) - .ForMember(dest => dest.Homepage, opts => opts.MapFrom(src => src.Show.Homepage)); - - CreateMap() - .ForMember(dest => dest.Id, opts => opts.MapFrom(src => Convert.ToInt32(src.Show.Ids.Tvdb.ToString()))) - .ForMember(dest => dest.FirstAired, opts => opts.MapFrom(src => src.Show.FirstAired.HasValue ? src.Show.FirstAired.Value.ToString("yyyy-MM-ddTHH:mm:ss") : string.Empty)) - .ForMember(dest => dest.ImdbId, opts => opts.MapFrom(src => src.Show.Ids.Imdb)) - .ForMember(dest => dest.Network, opts => opts.MapFrom(src => src.Show.Network)) - .ForMember(dest => dest.Overview, opts => opts.MapFrom(src => src.Show.Overview.RemoveHtml())) - .ForMember(dest => dest.Rating, opts => opts.MapFrom(src => src.Show.Rating.ToString())) - .ForMember(dest => dest.Runtime, opts => opts.MapFrom(src => src.Show.Runtime.ToString())) - .ForMember(dest => dest.Title, opts => opts.MapFrom(src => src.Show.Title)) - .ForMember(dest => dest.Status, opts => opts.MapFrom(src => src.Show.Status.DisplayName)) - .ForMember(dest => dest.Trailer, opts => opts.MapFrom(src => src.Show.Trailer)) - .ForMember(dest => dest.Homepage, opts => opts.MapFrom(src => src.Show.Homepage)); } } } \ No newline at end of file diff --git a/src/Ombi/ClientApp/src/app/discover/components/card/discover-card.component.ts b/src/Ombi/ClientApp/src/app/discover/components/card/discover-card.component.ts index fb9a4aec7..ac30593eb 100644 --- a/src/Ombi/ClientApp/src/app/discover/components/card/discover-card.component.ts +++ b/src/Ombi/ClientApp/src/app/discover/components/card/discover-card.component.ts @@ -1,9 +1,11 @@ import { Component, OnInit, Input } from "@angular/core"; import { IDiscoverCardResult } from "../../interfaces"; import { RequestType, ISearchTvResult, ISearchMovieResult } from "../../../interfaces"; -import { SearchService } from "../../../services"; +import { SearchV2Service } from "../../../services"; import { MatDialog } from "@angular/material"; import { DiscoverCardDetailsComponent } from "./discover-card-details.component"; +import { ISearchTvResultV2 } from "../../interfaces/ISearchTvResultV2"; +import { ISearchMovieResultV2 } from "../../interfaces/ISearchMovieResultV2"; @Component({ selector: "discover-card", @@ -15,7 +17,7 @@ export class DiscoverCardComponent implements OnInit { @Input() public result: IDiscoverCardResult; public RequestType = RequestType; - constructor(private searchService: SearchService, private dialog: MatDialog) { } + constructor(private searchService: SearchV2Service, private dialog: MatDialog) { } public ngOnInit() { if (this.result.type == RequestType.tvShow) { @@ -34,23 +36,22 @@ export class DiscoverCardComponent implements OnInit { }); } - public getExtraTvInfo() { - this.searchService.getShowInformation(this.result.id) - .subscribe(x => { - if (x) { - this.setTvDefaults(x); - this.updateTvItem(x); - } - }); + public async getExtraTvInfo() { + var result = await this.searchService.getTvInfo(this.result.id); + this.setTvDefaults(result); + this.updateTvItem(result); + } private getExtraMovieInfo() { - this.searchService.getMovieInformation(this.result.id) - .subscribe(m => { - this.updateMovieItem(m); - }); + // if(!this.result.imdbid) { + this.searchService.getFullMovieDetails(this.result.id) + .subscribe(m => { + this.updateMovieItem(m); + }); + // } } - private updateMovieItem(updated: ISearchMovieResult) { + private updateMovieItem(updated: ISearchMovieResultV2) { this.result.url = "http://www.imdb.com/title/" + updated.imdbId + "/"; this.result.available = updated.available; this.result.requested = updated.requested; @@ -59,7 +60,7 @@ export class DiscoverCardComponent implements OnInit { } - private setTvDefaults(x: ISearchTvResult) { + private setTvDefaults(x: ISearchTvResultV2) { if (!x.imdbId) { x.imdbId = "https://www.tvmaze.com/shows/" + x.seriesId; } else { @@ -67,7 +68,7 @@ export class DiscoverCardComponent implements OnInit { } } - private updateTvItem(updated: ISearchTvResult) { + private updateTvItem(updated: ISearchTvResultV2) { this.result.title = updated.title; this.result.id = updated.id; this.result.available = updated.fullyAvailable; diff --git a/src/Ombi/ClientApp/src/app/discover/components/discover/discover.component.ts b/src/Ombi/ClientApp/src/app/discover/components/discover/discover.component.ts index 866e02b00..27b8c2724 100644 --- a/src/Ombi/ClientApp/src/app/discover/components/discover/discover.component.ts +++ b/src/Ombi/ClientApp/src/app/discover/components/discover/discover.component.ts @@ -53,9 +53,7 @@ export class DiscoverComponent implements OnInit { return; } if (!this.isScrolling) { - debugger; this.isScrolling = true; - console.log("SCROLLED!") this.loading(); if (this.popularActive) { this.movies = await this.searchService.popularMoviesByPage(this.contentLoaded, 12); @@ -138,7 +136,8 @@ export class DiscoverComponent implements OnInit { url: `http://www.imdb.com/title/${m.imdbId}/`, rating: m.voteAverage, overview: m.overview, - approved: m.approved + approved: m.approved, + imdbid: m.imdbId }); }); this.tvShows.forEach(m => { @@ -152,7 +151,8 @@ export class DiscoverComponent implements OnInit { url: undefined, rating: +m.rating, overview: m.overview, - approved: m.approved + approved: m.approved, + imdbid: m.imdbId }); }); this.shuffle(tempResults); @@ -173,7 +173,8 @@ export class DiscoverComponent implements OnInit { url: `http://www.imdb.com/title/${m.imdbId}/`, rating: m.voteAverage, overview: m.overview, - approved: m.approved + approved: m.approved, + imdbid: m.imdbId }); }); this.tvShows.forEach(m => { @@ -187,7 +188,8 @@ export class DiscoverComponent implements OnInit { url: undefined, rating: +m.rating, overview: m.overview, - approved: m.approved + approved: m.approved, + imdbid: m.imdbId }); }); this.shuffle(this.discoverResults); diff --git a/src/Ombi/ClientApp/src/app/discover/interfaces.ts b/src/Ombi/ClientApp/src/app/discover/interfaces.ts index 808e7b6ae..786c57320 100644 --- a/src/Ombi/ClientApp/src/app/discover/interfaces.ts +++ b/src/Ombi/ClientApp/src/app/discover/interfaces.ts @@ -11,4 +11,5 @@ export interface IDiscoverCardResult { requested: boolean; rating: number; overview: string; + imdbid: string; } \ No newline at end of file diff --git a/src/Ombi/Controllers/V1/SearchController.cs b/src/Ombi/Controllers/V1/SearchController.cs index d969c5102..ae96e2844 100644 --- a/src/Ombi/Controllers/V1/SearchController.cs +++ b/src/Ombi/Controllers/V1/SearchController.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; @@ -309,13 +310,14 @@ namespace Ombi.Controllers.V1 [HttpGet("tv/mostwatched")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesDefaultResponseType] + [Obsolete("This method is obsolete, Trakt API no longer supports this")] public async Task> MostWatched() { if (IsDemo) { return await DemoTvSearch.NowPlayingMovies(); } - return await TvEngine.MostWatches(); + return await TvEngine.Popular(); } /// diff --git a/src/Ombi/Controllers/V2/SearchController.cs b/src/Ombi/Controllers/V2/SearchController.cs index a2ee31a3a..5a38c2dd8 100644 --- a/src/Ombi/Controllers/V2/SearchController.cs +++ b/src/Ombi/Controllers/V2/SearchController.cs @@ -1,4 +1,5 @@ -using Microsoft.AspNetCore.Authorization; +using System; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Http; @@ -274,9 +275,10 @@ namespace Ombi.Controllers.V2 [HttpGet("tv/mostwatched")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesDefaultResponseType] + [Obsolete("This method is obsolete, Trakt API no longer supports this")] public async Task> MostWatched() { - return await _tvSearchEngine.MostWatches(); + return await _tvSearchEngine.Popular(); } /// @@ -287,9 +289,10 @@ namespace Ombi.Controllers.V2 [HttpGet("tv/mostwatched/{currentPosition}/{amountToLoad}")] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesDefaultResponseType] + [Obsolete("This method is obsolete, Trakt API no longer supports this")] public async Task> MostWatched(int currentPosition, int amountToLoad) { - return await _tvSearchEngine.MostWatches(currentPosition, amountToLoad); + return await _tvSearchEngine.Popular(currentPosition, amountToLoad); } ///