From ee50eb79b7301147b3d121f69beb2413574530f4 Mon Sep 17 00:00:00 2001 From: Jamie Date: Thu, 15 Feb 2018 08:37:41 +0000 Subject: [PATCH] Added recently added stuff --- src/Ombi.Core/Engine/IRecentlyAddedEngine.cs | 12 +++++++ src/Ombi.Core/Engine/RecentlyAddedEngine.cs | 8 ++--- src/Ombi.DependencyInjection/IocExtensions.cs | 1 + .../Controllers/RecentlyAddedController.cs | 33 +++++++++++++++++++ src/Ombi/Models/RecentlyAddedRangeModel.cs | 10 ++++++ 5 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 src/Ombi.Core/Engine/IRecentlyAddedEngine.cs create mode 100644 src/Ombi/Controllers/RecentlyAddedController.cs create mode 100644 src/Ombi/Models/RecentlyAddedRangeModel.cs diff --git a/src/Ombi.Core/Engine/IRecentlyAddedEngine.cs b/src/Ombi.Core/Engine/IRecentlyAddedEngine.cs new file mode 100644 index 000000000..5b2988c8e --- /dev/null +++ b/src/Ombi.Core/Engine/IRecentlyAddedEngine.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using Ombi.Core.Models; + +namespace Ombi.Core.Engine +{ + public interface IRecentlyAddedEngine + { + IEnumerable GetRecentlyAddedMovies(); + IEnumerable GetRecentlyAddedMovies(DateTime from, DateTime to); + } +} \ No newline at end of file diff --git a/src/Ombi.Core/Engine/RecentlyAddedEngine.cs b/src/Ombi.Core/Engine/RecentlyAddedEngine.cs index 97c086e5b..07762d336 100644 --- a/src/Ombi.Core/Engine/RecentlyAddedEngine.cs +++ b/src/Ombi.Core/Engine/RecentlyAddedEngine.cs @@ -11,7 +11,7 @@ using Ombi.Store.Repository; namespace Ombi.Core.Engine { - public class RecentlyAddedEngine + public class RecentlyAddedEngine : IRecentlyAddedEngine { public RecentlyAddedEngine(IPlexContentRepository plex, IEmbyContentRepository emby) { @@ -22,11 +22,11 @@ namespace Ombi.Core.Engine private readonly IPlexContentRepository _plex; private readonly IEmbyContentRepository _emby; - public IEnumerable GetRecentlyAddedMovies(TimeSpan from) + public IEnumerable GetRecentlyAddedMovies(DateTime from, DateTime to) { var model = new HashSet(); - var plexMovies = _plex.GetAll().Where(x => x.Type == PlexMediaTypeEntity.Movie && x.AddedAt.Subtract(from) <= x.AddedAt); - var embyMovies = _emby.GetAll().Where(x => x.Type == EmbyMediaType.Movie && x.AddedAt.Subtract(from) <= x.AddedAt); + var plexMovies = _plex.GetAll().Where(x => x.Type == PlexMediaTypeEntity.Movie && x.AddedAt > from && x.AddedAt < to); + var embyMovies = _emby.GetAll().Where(x => x.Type == EmbyMediaType.Movie && x.AddedAt > from && x.AddedAt < to); TransformPlexMovies(plexMovies, model); TransformEmbyMovies(embyMovies, model); diff --git a/src/Ombi.DependencyInjection/IocExtensions.cs b/src/Ombi.DependencyInjection/IocExtensions.cs index 86d6da800..472c88c14 100644 --- a/src/Ombi.DependencyInjection/IocExtensions.cs +++ b/src/Ombi.DependencyInjection/IocExtensions.cs @@ -79,6 +79,7 @@ namespace Ombi.DependencyInjection services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); } public static void RegisterHttp(this IServiceCollection services) diff --git a/src/Ombi/Controllers/RecentlyAddedController.cs b/src/Ombi/Controllers/RecentlyAddedController.cs new file mode 100644 index 000000000..c2574bee3 --- /dev/null +++ b/src/Ombi/Controllers/RecentlyAddedController.cs @@ -0,0 +1,33 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Ombi.Core.Engine; +using Ombi.Core.Models; +using Ombi.Models; + +namespace Ombi.Controllers +{ + [ApiV1] + [Produces("application/json")] + [Authorize] + public class RecentlyAddedController : Controller + { + public RecentlyAddedController(IRecentlyAddedEngine engine) + { + _recentlyAdded = engine; + } + + private readonly IRecentlyAddedEngine _recentlyAdded; + + /// + /// Returns the recently added movies between two dates + /// + [HttpPost("movies")] + [ProducesResponseType(typeof(IEnumerable), 200)] + public IEnumerable GetRecentlyAddedMovies([FromBody] RecentlyAddedRangeModel model) + { + return _recentlyAdded.GetRecentlyAddedMovies(model.From, model.To); + } + } +} \ No newline at end of file diff --git a/src/Ombi/Models/RecentlyAddedRangeModel.cs b/src/Ombi/Models/RecentlyAddedRangeModel.cs new file mode 100644 index 000000000..208f9cb49 --- /dev/null +++ b/src/Ombi/Models/RecentlyAddedRangeModel.cs @@ -0,0 +1,10 @@ +using System; + +namespace Ombi.Models +{ + public class RecentlyAddedRangeModel + { + public DateTime From { get; set; } + public DateTime To { get; set; } + } +} \ No newline at end of file