diff --git a/Ombi/Assemblies/TraktApiSharp.dll b/Ombi/Assemblies/TraktApiSharp.dll new file mode 100644 index 000000000..34e1cbe72 Binary files /dev/null and b/Ombi/Assemblies/TraktApiSharp.dll differ diff --git a/Ombi/Ombi.Api.Trakt/ITraktApi.cs b/Ombi/Ombi.Api.Trakt/ITraktApi.cs index ac466df7f..17c4203cb 100644 --- a/Ombi/Ombi.Api.Trakt/ITraktApi.cs +++ b/Ombi/Ombi.Api.Trakt/ITraktApi.cs @@ -1,16 +1,16 @@ -//using System.Collections.Generic; -//using System.Threading.Tasks; -//using TraktApiSharp.Enums; -//using TraktApiSharp.Objects.Get.Shows; -//using TraktApiSharp.Objects.Get.Shows.Common; +using System.Collections.Generic; +using System.Threading.Tasks; +using TraktApiSharp.Enums; +using TraktApiSharp.Objects.Get.Shows; +using TraktApiSharp.Objects.Get.Shows.Common; -//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> GetPopularShows(int? page = default(int?), int? limitPerPage = default(int?)); -// Task> GetTrendingShows(int? page = default(int?), int? limitPerPage = default(int?)); -// } -//} \ No newline at end of file +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> GetPopularShows(int? page = default(int?), int? limitPerPage = default(int?)); + Task> GetTrendingShows(int? page = default(int?), int? limitPerPage = default(int?)); + } +} \ No newline at end of file diff --git a/Ombi/Ombi.Api.Trakt/Ombi.Api.Trakt.csproj b/Ombi/Ombi.Api.Trakt/Ombi.Api.Trakt.csproj index c173d1dd7..cc4ae2925 100644 --- a/Ombi/Ombi.Api.Trakt/Ombi.Api.Trakt.csproj +++ b/Ombi/Ombi.Api.Trakt/Ombi.Api.Trakt.csproj @@ -9,4 +9,10 @@ + + + ..\Assemblies\TraktApiSharp.dll + + + \ No newline at end of file diff --git a/Ombi/Ombi.Api.Trakt/TraktApi.cs b/Ombi/Ombi.Api.Trakt/TraktApi.cs index 8ee6fc20a..975900256 100644 --- a/Ombi/Ombi.Api.Trakt/TraktApi.cs +++ b/Ombi/Ombi.Api.Trakt/TraktApi.cs @@ -1,49 +1,49 @@ -//using System; -//using System.Collections.Generic; -//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 System; +using System.Collections.Generic; +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; -//namespace Ombi.Api.Trakt -//{ -// public class TraktApi : ITraktApi -// { -// private TraktClient Client { get; } +namespace Ombi.Api.Trakt +{ + public class TraktApi : ITraktApi + { + private TraktClient Client { get; } -// private static readonly string Encrypted = "MTM0ZTU2ODM1MGY3NDI3NTExZTI1N2E2NTM0MDI2NjYwNDgwY2Y5YjkzYzc3ZjczNzhmMzQwNjAzYjY3MzgxZA=="; -// private readonly string _apiKey = StringCipher.DecryptString(Encrypted, "ApiKey"); -// public TraktApi() -// { -// Client = new TraktClient(_apiKey); -// } + private static readonly string Encrypted = "MTM0ZTU2ODM1MGY3NDI3NTExZTI1N2E2NTM0MDI2NjYwNDgwY2Y5YjkzYzc3ZjczNzhmMzQwNjAzYjY3MzgxZA=="; + private readonly string _apiKey = StringCipher.DecryptString(Encrypted, "ApiKey"); + public TraktApi() + { + Client = new TraktClient(_apiKey); + } -// public async Task> GetPopularShows(int? page = null, int? limitPerPage = null) -// { -// var popular = await Client.Shows.GetPopularShowsAsync(new TraktExtendedInfo { Full = true }, null, page ?? 1, limitPerPage ?? 10); -// return popular.Value; -// } + public async Task> GetPopularShows(int? page = null, int? limitPerPage = null) + { + var popular = await Client.Shows.GetPopularShowsAsync(new TraktExtendedInfo { Full = true }, null, page ?? 1, limitPerPage ?? 10); + return popular.Value; + } -// public async Task> GetTrendingShows(int? page = null, int? limitPerPage = null) -// { -// var trendingShowsTop10 = await Client.Shows.GetTrendingShowsAsync(new TraktExtendedInfo { Full = true }, null, page ?? 1, limitPerPage ?? 10); -// return trendingShowsTop10.Value; -// } + public async Task> GetTrendingShows(int? page = null, int? limitPerPage = null) + { + var trendingShowsTop10 = await Client.Shows.GetTrendingShowsAsync(new TraktExtendedInfo { Full = true }, null, page ?? 1, limitPerPage ?? 10); + return trendingShowsTop10.Value; + } -// public async Task> GetAnticipatedShows(int? page = null, int? limitPerPage = null) -// { -// var anticipatedShows = await Client.Shows.GetMostAnticipatedShowsAsync(new TraktExtendedInfo { Full = true }, null, page ?? 1, limitPerPage ?? 10); -// return anticipatedShows.Value; -// } + public async Task> GetAnticipatedShows(int? page = null, int? limitPerPage = null) + { + var anticipatedShows = await Client.Shows.GetMostAnticipatedShowsAsync(new TraktExtendedInfo { Full = true }, null, page ?? 1, limitPerPage ?? 10); + return anticipatedShows.Value; + } -// 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 }, null, page ?? 1, limitPerPage ?? 10); -// return anticipatedShows.Value; -// } -// } -//} + 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 }, null, page ?? 1, limitPerPage ?? 10); + return anticipatedShows.Value; + } + } +} diff --git a/Ombi/Ombi.Core/Engine/Interfaces/ITvSearchEngine.cs b/Ombi/Ombi.Core/Engine/Interfaces/ITvSearchEngine.cs index 5e08ccb3d..ae88e5fdb 100644 --- a/Ombi/Ombi.Core/Engine/Interfaces/ITvSearchEngine.cs +++ b/Ombi/Ombi.Core/Engine/Interfaces/ITvSearchEngine.cs @@ -7,9 +7,9 @@ namespace Ombi.Core.Engine public interface ITvSearchEngine { Task> Search(string searchTerm); - //Task> Popular(); - //Task> Anticipated(); - //Task> MostWatches(); - //Task> Trending(); + Task> Popular(); + Task> Anticipated(); + Task> MostWatches(); + Task> Trending(); } } \ No newline at end of file diff --git a/Ombi/Ombi.Core/Engine/TvSearchEngine.cs b/Ombi/Ombi.Core/Engine/TvSearchEngine.cs index 4f4d62be9..90e560209 100644 --- a/Ombi/Ombi.Core/Engine/TvSearchEngine.cs +++ b/Ombi/Ombi.Core/Engine/TvSearchEngine.cs @@ -3,7 +3,7 @@ using System.Linq; using System.Security.Principal; using System.Threading.Tasks; using AutoMapper; -//using Ombi.Api.Trakt; +using Ombi.Api.Trakt; using Ombi.Api.TvMaze; using Ombi.Core.Models.Requests; using Ombi.Core.Models.Search; @@ -18,21 +18,21 @@ namespace Ombi.Core.Engine { public TvSearchEngine(IPrincipal identity, IRequestServiceMain service, ITvMazeApi tvMaze, IMapper mapper, ISettingsService plexSettings, - ISettingsService embySettings/*, ITraktApi trakt*/) + ISettingsService embySettings, ITraktApi trakt) : base(identity, service) { TvMazeApi = tvMaze; Mapper = mapper; PlexSettings = plexSettings; EmbySettings = embySettings; - //TraktApi = trakt; + TraktApi = trakt; } private ITvMazeApi TvMazeApi { get; } private IMapper Mapper { get; } private ISettingsService PlexSettings { get; } private ISettingsService EmbySettings { get; } - //private ITraktApi TraktApi { get; } + private ITraktApi TraktApi { get; } public async Task> Search(string searchTerm) @@ -46,27 +46,27 @@ namespace Ombi.Core.Engine return null; } - //public async Task> Popular() - //{ - // var result = await TraktApi.GetPopularShows(); - // return await ProcessResults(result); - //} + public async Task> Popular() + { + var result = await TraktApi.GetPopularShows(); + return await ProcessResults(result); + } - //public async Task> Anticipated() - //{ - // var result = await TraktApi.GetAnticipatedShows(); - // return await ProcessResults(result); - //} - //public async Task> MostWatches() - //{ - // var result = await TraktApi.GetMostWatchesShows(); - // return await ProcessResults(result); - //} - //public async Task> Trending() - //{ - // var result = await TraktApi.GetTrendingShows(); - // return await ProcessResults(result); - //} + public async Task> Anticipated() + { + var result = await TraktApi.GetAnticipatedShows(); + return await ProcessResults(result); + } + public async Task> MostWatches() + { + var result = await TraktApi.GetMostWatchesShows(); + return await ProcessResults(result); + } + public async Task> Trending() + { + var result = await TraktApi.GetTrendingShows(); + return await ProcessResults(result); + } private async Task> ProcessResults(IEnumerable items) { diff --git a/Ombi/Ombi.Core/Ombi.Core.csproj b/Ombi/Ombi.Core/Ombi.Core.csproj index 6f02e21b2..d58486855 100644 --- a/Ombi/Ombi.Core/Ombi.Core.csproj +++ b/Ombi/Ombi.Core/Ombi.Core.csproj @@ -26,4 +26,10 @@ + + + ..\Assemblies\TraktApiSharp.dll + + + \ No newline at end of file diff --git a/Ombi/Ombi/Controllers/SearchController.cs b/Ombi/Ombi/Controllers/SearchController.cs index 3ecccc264..0e870acc1 100644 --- a/Ombi/Ombi/Controllers/SearchController.cs +++ b/Ombi/Ombi/Controllers/SearchController.cs @@ -65,25 +65,25 @@ namespace Ombi.Controllers return await TvEngine.Search(searchTerm); } - //[HttpGet("tv/popular")] - //public async Task> PopularTv() - //{ - // return await TvEngine.Popular(); - //} - //[HttpGet("tv/anticiplated")] - //public async Task> AnticiplatedTv() - //{ - // return await TvEngine.Anticipated(); - //} - //[HttpGet("tv/mostwatched")] - //public async Task> MostWatched() - //{ - // return await TvEngine.MostWatches(); - //} - //[HttpGet("tv/trending")] - //public async Task> Trending() - //{ - // return await TvEngine.Trending(); - //} + [HttpGet("tv/popular")] + public async Task> PopularTv() + { + return await TvEngine.Popular(); + } + [HttpGet("tv/anticiplated")] + public async Task> AnticiplatedTv() + { + return await TvEngine.Anticipated(); + } + [HttpGet("tv/mostwatched")] + public async Task> MostWatched() + { + return await TvEngine.MostWatches(); + } + [HttpGet("tv/trending")] + public async Task> Trending() + { + return await TvEngine.Trending(); + } } } diff --git a/Ombi/Ombi/Ombi.csproj b/Ombi/Ombi/Ombi.csproj index ca485e117..6a870871b 100644 --- a/Ombi/Ombi/Ombi.csproj +++ b/Ombi/Ombi/Ombi.csproj @@ -48,6 +48,12 @@ + + + ..\Assemblies\TraktApiSharp.dll + + + PreserveNewest diff --git a/Ombi/Ombi/Startup.cs b/Ombi/Ombi/Startup.cs index 1a57e7420..326a4cdca 100644 --- a/Ombi/Ombi/Startup.cs +++ b/Ombi/Ombi/Startup.cs @@ -59,10 +59,10 @@ namespace Ombi // Add framework services. services.AddMvc(); services.AddOmbiMappingProfile(); - services.AddAutoMapper(expression => - { - expression.AddCollectionMappers(); - }); + //services.AddAutoMapper(expression => + //{ + // expression.AddCollectionMappers(); + //}); services.RegisterDependencies(); // Ioc and EF services.AddSingleton();