From 18dcddf67abb8fd55092bc04fe7cd4e3fc0b5243 Mon Sep 17 00:00:00 2001 From: tidusjar Date: Sun, 15 Dec 2019 00:05:14 +0000 Subject: [PATCH] !wip --- src/Ombi.Api.Lidarr/ILidarrApi.cs | 3 +- src/Ombi.Api.Lidarr/LidarrApi.cs | 47 +++++++++++----------- src/Ombi.Api.Lidarr/Models/ArtistAdd.cs | 24 ++++++----- src/Ombi.Core/Engine/MusicRequestEngine.cs | 8 +--- src/Ombi.Core/Senders/MusicSender.cs | 2 +- 5 files changed, 41 insertions(+), 43 deletions(-) diff --git a/src/Ombi.Api.Lidarr/ILidarrApi.cs b/src/Ombi.Api.Lidarr/ILidarrApi.cs index b542ff0a0..9e5e3b57e 100644 --- a/src/Ombi.Api.Lidarr/ILidarrApi.cs +++ b/src/Ombi.Api.Lidarr/ILidarrApi.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Threading; using System.Threading.Tasks; using Ombi.Api.Lidarr.Models; @@ -11,7 +12,7 @@ namespace Ombi.Api.Lidarr Task> GetProfiles(string apiKey, string baseUrl); Task> GetRootFolders(string apiKey, string baseUrl); Task GetArtist(int artistId, string apiKey, string baseUrl); - Task GetArtistByForeignId(string foreignArtistId, string apiKey, string baseUrl); + Task GetArtistByForeignId(string foreignArtistId, string apiKey, string baseUrl, CancellationToken token = default); Task GetAlbumsByArtist(string foreignArtistId); Task GetAlbumByForeignId(string foreignArtistId, string apiKey, string baseUrl); Task> GetArtists(string apiKey, string baseUrl); diff --git a/src/Ombi.Api.Lidarr/LidarrApi.cs b/src/Ombi.Api.Lidarr/LidarrApi.cs index dd589c64d..5e8a81676 100644 --- a/src/Ombi.Api.Lidarr/LidarrApi.cs +++ b/src/Ombi.Api.Lidarr/LidarrApi.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Net.Http; +using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Ombi.Api.Lidarr.Models; @@ -10,14 +11,12 @@ namespace Ombi.Api.Lidarr { public class LidarrApi : ILidarrApi { - public LidarrApi(ILogger logger, IApi api) + public LidarrApi(IApi api) { - Api = api; - Logger = logger; + _api = api; } - private IApi Api { get; } - private ILogger Logger { get; } + private IApi _api { get; } private const string ApiVersion = "/api/v1"; @@ -26,7 +25,7 @@ namespace Ombi.Api.Lidarr var request = new Request($"{ApiVersion}/qualityprofile", baseUrl, HttpMethod.Get); AddHeaders(request, apiKey); - return Api.Request>(request); + return _api.Request>(request); } public Task> GetRootFolders(string apiKey, string baseUrl) @@ -34,7 +33,7 @@ namespace Ombi.Api.Lidarr var request = new Request($"{ApiVersion}/rootfolder", baseUrl, HttpMethod.Get); AddHeaders(request, apiKey); - return Api.Request>(request); + return _api.Request>(request); } public async Task> ArtistLookup(string searchTerm, string apiKey, string baseUrl) @@ -43,7 +42,7 @@ namespace Ombi.Api.Lidarr request.AddQueryString("term", searchTerm); AddHeaders(request, apiKey); - return await Api.Request>(request); + return await _api.Request>(request); } public Task> AlbumLookup(string searchTerm, string apiKey, string baseUrl) @@ -52,7 +51,7 @@ namespace Ombi.Api.Lidarr request.AddQueryString("term", searchTerm); AddHeaders(request, apiKey); - return Api.Request>(request); + return _api.Request>(request); } public Task GetArtist(int artistId, string apiKey, string baseUrl) @@ -60,16 +59,16 @@ namespace Ombi.Api.Lidarr var request = new Request($"{ApiVersion}/artist/{artistId}", baseUrl, HttpMethod.Get); AddHeaders(request, apiKey); - return Api.Request(request); + return _api.Request(request); } - public async Task GetArtistByForeignId(string foreignArtistId, string apiKey, string baseUrl) + public async Task GetArtistByForeignId(string foreignArtistId, string apiKey, string baseUrl, CancellationToken token = default) { var request = new Request($"{ApiVersion}/artist/lookup", baseUrl, HttpMethod.Get); request.AddQueryString("term", $"lidarr:{foreignArtistId}"); AddHeaders(request, apiKey); - return (await Api.Request>(request)).FirstOrDefault(); + return (await _api.Request>(request, token)).FirstOrDefault(); } public async Task GetAlbumByForeignId(string foreignArtistId, string apiKey, string baseUrl) @@ -78,7 +77,7 @@ namespace Ombi.Api.Lidarr request.AddQueryString("term", $"lidarr:{foreignArtistId}"); AddHeaders(request, apiKey); - var albums = await Api.Request>(request); + var albums = await _api.Request>(request); return albums.FirstOrDefault(); } @@ -86,7 +85,7 @@ namespace Ombi.Api.Lidarr { var request = new Request(string.Empty, $"https://api.lidarr.audio/api/v0.4/artist/{foreignArtistId}", HttpMethod.Get) {IgnoreBaseUrlAppend = true}; - return Api.Request(request); + return _api.Request(request); } public Task> GetArtists(string apiKey, string baseUrl) @@ -94,7 +93,7 @@ namespace Ombi.Api.Lidarr var request = new Request($"{ApiVersion}/artist", baseUrl, HttpMethod.Get); AddHeaders(request, apiKey); - return Api.Request>(request); + return _api.Request>(request); } public Task> GetAllAlbums(string apiKey, string baseUrl) @@ -102,7 +101,7 @@ namespace Ombi.Api.Lidarr var request = new Request($"{ApiVersion}/album", baseUrl, HttpMethod.Get); AddHeaders(request, apiKey); - return Api.Request>(request); + return _api.Request>(request); } public async Task AlbumInformation(string albumId, string apiKey, string baseUrl) @@ -110,7 +109,7 @@ namespace Ombi.Api.Lidarr var request = new Request($"{ApiVersion}/album", baseUrl, HttpMethod.Get); request.AddQueryString("foreignAlbumId", albumId); AddHeaders(request, apiKey); - var albums = await Api.Request>(request); + var albums = await _api.Request>(request); return albums.FirstOrDefault(); } @@ -127,7 +126,7 @@ namespace Ombi.Api.Lidarr var request = new Request($"{ApiVersion}/album", baseUrl, HttpMethod.Get); request.AddQueryString("albumId", albumId.ToString()); AddHeaders(request, apiKey); - return Api.Request>(request); + return _api.Request>(request); } public Task AddArtist(ArtistAdd artist, string apiKey, string baseUrl) @@ -135,7 +134,7 @@ namespace Ombi.Api.Lidarr var request = new Request($"{ApiVersion}/artist", baseUrl, HttpMethod.Post); request.AddJsonBody(artist); AddHeaders(request, apiKey); - return Api.Request(request); + return _api.Request(request); } public async Task MontiorAlbum(int albumId, string apiKey, string baseUrl) @@ -147,7 +146,7 @@ namespace Ombi.Api.Lidarr monitored = true }); AddHeaders(request, apiKey); - return (await Api.Request>(request)).FirstOrDefault(); + return (await _api.Request>(request)).FirstOrDefault(); } public Task> GetAllAlbumsByArtistId(int artistId, string apiKey, string baseUrl) @@ -155,21 +154,21 @@ namespace Ombi.Api.Lidarr var request = new Request($"{ApiVersion}/album", baseUrl, HttpMethod.Get); request.AddQueryString("artistId", artistId.ToString()); AddHeaders(request, apiKey); - return Api.Request>(request); + return _api.Request>(request); } public Task> GetMetadataProfile(string apiKey, string baseUrl) { var request = new Request($"{ApiVersion}/metadataprofile", baseUrl, HttpMethod.Get); AddHeaders(request, apiKey); - return Api.Request>(request); + return _api.Request>(request); } public Task Status(string apiKey, string baseUrl) { var request = new Request($"{ApiVersion}/system/status", baseUrl, HttpMethod.Get); AddHeaders(request, apiKey); - return Api.Request(request); + return _api.Request(request); } public Task AlbumSearch(int[] albumIds, string apiKey, string baseUrl) @@ -177,7 +176,7 @@ namespace Ombi.Api.Lidarr var request = new Request($"{ApiVersion}/command/", baseUrl, HttpMethod.Post); request.AddJsonBody(new { name = "AlbumSearch", albumIds }); AddHeaders(request, apiKey); - return Api.Request(request); + return _api.Request(request); } private void AddHeaders(Request request, string key) diff --git a/src/Ombi.Api.Lidarr/Models/ArtistAdd.cs b/src/Ombi.Api.Lidarr/Models/ArtistAdd.cs index e292e8905..27ff3f733 100644 --- a/src/Ombi.Api.Lidarr/Models/ArtistAdd.cs +++ b/src/Ombi.Api.Lidarr/Models/ArtistAdd.cs @@ -32,17 +32,21 @@ namespace Ombi.Api.Lidarr.Models public class Addoptions { - /// - /// Future = 1 - /// Missing = 2 - /// Existing = 3 - /// First = 5 - /// Latest = 4 - /// None = 6 - /// - public int selectedOption { get; set; } + public MonitorTypes monitor { get; set; } public bool monitored { get; set; } - public bool searchForMissingAlbums { get; set; } + public bool searchForMissingAlbums { get; set; } // Only for Artists add public string[] AlbumsToMonitor { get; set; } // Uses the MusicBrainzAlbumId! } + + public enum MonitorTypes + { + All, + Future, + Missing, + Existing, + Latest, + First, + None, + Unknown + } } \ No newline at end of file diff --git a/src/Ombi.Core/Engine/MusicRequestEngine.cs b/src/Ombi.Core/Engine/MusicRequestEngine.cs index 266dc5649..39987f2ad 100644 --- a/src/Ombi.Core/Engine/MusicRequestEngine.cs +++ b/src/Ombi.Core/Engine/MusicRequestEngine.cs @@ -7,6 +7,7 @@ using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Security.Principal; +using System.Threading; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; @@ -69,12 +70,6 @@ namespace Ombi.Core.Engine }; } - if(album?.artist == null) - { - // Lookup the artist - //album.artist = await _lidarrApi.ArtistLookup(album.artist, s.ApiKey, s.FullUri); - } - var userDetails = await GetUser(); var requestModel = new AlbumRequest @@ -132,7 +127,6 @@ namespace Ombi.Core.Engine return await AddAlbumRequest(requestModel); } - /// /// Gets the requests. /// diff --git a/src/Ombi.Core/Senders/MusicSender.cs b/src/Ombi.Core/Senders/MusicSender.cs index e4bf27855..50881cb8f 100644 --- a/src/Ombi.Core/Senders/MusicSender.cs +++ b/src/Ombi.Core/Senders/MusicSender.cs @@ -100,8 +100,8 @@ namespace Ombi.Core.Senders addOptions = new Addoptions { monitored = true, + monitor = MonitorTypes.None, searchForMissingAlbums = false, - selectedOption = 6, // None AlbumsToMonitor = new[] {model.ForeignAlbumId} }, added = DateTime.Now,