diff --git a/src/Jackett.Common/Indexers/Meta/Fallbacks.cs b/src/Jackett.Common/Indexers/Meta/Fallbacks.cs index e3f44ff0b..e91f7acc8 100644 --- a/src/Jackett.Common/Indexers/Meta/Fallbacks.cs +++ b/src/Jackett.Common/Indexers/Meta/Fallbacks.cs @@ -37,9 +37,11 @@ namespace Jackett.Common.Indexers.Meta public async Task> FallbackQueries() { - var title = (await resolver.MovieForId(query.ImdbID.ToNonNull())).Title; + if(string.IsNullOrEmpty(query.ImdbID)) + return Enumerable.Empty(); + var title = (await resolver.MovieForId(query.ImdbID)).Title; return title != null ? new[] {query.CreateFallback(title)} : Enumerable.Empty(); - } + } private readonly IImdbResolver resolver; private readonly TorznabQuery query; diff --git a/src/Jackett.Common/Indexers/Meta/ResultFilters.cs b/src/Jackett.Common/Indexers/Meta/ResultFilters.cs index 3a4ebe073..b7e2d878b 100644 --- a/src/Jackett.Common/Indexers/Meta/ResultFilters.cs +++ b/src/Jackett.Common/Indexers/Meta/ResultFilters.cs @@ -56,7 +56,9 @@ namespace Jackett.Common.Indexers.Meta var remainingResults = results.Except(wrongResults).Except(perfectResults); - var title = (await resolver.MovieForId(query.ImdbID.ToNonNull())).Title; + if (string.IsNullOrEmpty(query.ImdbID)) + return perfectResults; + var title = (await resolver.MovieForId(query.ImdbID)).Title; if (title == null) return perfectResults; diff --git a/src/Jackett.Common/Services/ImdbResolver.cs b/src/Jackett.Common/Services/ImdbResolver.cs index 0c9daf0ba..532438af0 100644 --- a/src/Jackett.Common/Services/ImdbResolver.cs +++ b/src/Jackett.Common/Services/ImdbResolver.cs @@ -17,16 +17,16 @@ namespace Jackett.Common.Services public class OmdbResolver : IImdbResolver { - public OmdbResolver(WebClient webClient, NonNull omdbApiKey, string omdbApiUrl) + public OmdbResolver(WebClient webClient, string omdbApiKey, string omdbApiUrl) { WebClient = webClient; - apiKey = omdbApiKey; + apiKey = omdbApiKey ?? throw new ArgumentNullException($"{nameof(omdbApiKey)} cannot be null"); url = omdbApiUrl; } - public async Task MovieForId(NonNull id) + public async Task MovieForId(string id) { - string imdbId = id; + var imdbId = id ?? throw new ArgumentNullException($"{nameof(id)} cannot be null"); if (!imdbId.StartsWith("tt", StringComparison.Ordinal)) imdbId = "tt" + imdbId; diff --git a/src/Jackett.Common/Services/IndexerManagerService.cs b/src/Jackett.Common/Services/IndexerManagerService.cs index 7ee3de9b1..d2edcb932 100644 --- a/src/Jackett.Common/Services/IndexerManagerService.cs +++ b/src/Jackett.Common/Services/IndexerManagerService.cs @@ -161,7 +161,7 @@ namespace Jackett.Common.Services IResultFilterProvider resultFilterProvider = null; if (!string.IsNullOrWhiteSpace(omdbApiKey)) { - var imdbResolver = new OmdbResolver(webClient, omdbApiKey.ToNonNull(), serverConfig.OmdbApiUrl); + var imdbResolver = new OmdbResolver(webClient, omdbApiKey, serverConfig.OmdbApiUrl); fallbackStrategyProvider = new ImdbFallbackStrategyProvider(imdbResolver); resultFilterProvider = new ImdbTitleResultFilterProvider(imdbResolver); } diff --git a/src/Jackett.Common/Services/Interfaces/IImdbResolver.cs b/src/Jackett.Common/Services/Interfaces/IImdbResolver.cs index aad707779..e769b79ee 100644 --- a/src/Jackett.Common/Services/Interfaces/IImdbResolver.cs +++ b/src/Jackett.Common/Services/Interfaces/IImdbResolver.cs @@ -5,6 +5,6 @@ namespace Jackett.Common.Services.Interfaces { public interface IImdbResolver { - Task MovieForId(NonNull imdbId); + Task MovieForId(string imdbId); } } diff --git a/src/Jackett.Common/Utils/Extensions.cs b/src/Jackett.Common/Utils/Extensions.cs index f97bd99cc..2ccc038e2 100644 --- a/src/Jackett.Common/Utils/Extensions.cs +++ b/src/Jackett.Common/Utils/Extensions.cs @@ -6,35 +6,6 @@ using System.Xml.Linq; namespace Jackett.Common.Utils { - // Prefer built in NullReferenceException || ArgumentNullException || NoNullAllowedException - public class NonNullException : Exception - { - public NonNullException() : base("Parameter cannot be null") - { - } - } - - public class NonNull where T : class - { - public NonNull(T val) - { - // doesn't throw Exception? - if (val == null) - new NonNullException(); - - Value = val; - } - - public static implicit operator T(NonNull n) => n.Value; - - private readonly T Value; - } - - public static class GenericConversionExtensions - { - public static NonNull ToNonNull(this T obj) where T : class => new NonNull(obj); - } - public static class EnumerableExtension { public static T FirstIfSingleOrDefault(this IEnumerable source, T replace = default)