Beispiel #1
0
        private async Task <SenderResult> SendToRadarr(MovieRequests model, RadarrSettings settings)
        {
            var qualityToUse = int.Parse(settings.DefaultQualityProfile);

            if (model.QualityOverride > 0)
            {
                qualityToUse = model.QualityOverride;
            }

            var rootFolderPath = model.RootPathOverride <= 0 ? settings.DefaultRootPath : await RadarrRootPath(model.RootPathOverride, settings);

            var result = await RadarrApi.AddMovie(model.TheMovieDbId, model.Title, model.ReleaseDate.Year, qualityToUse, rootFolderPath, settings.ApiKey, settings.FullUri, !settings.AddOnly, settings.MinimumAvailability);

            if (!string.IsNullOrEmpty(result.Error?.message))
            {
                Log.LogError(LoggingEvents.RadarrCacher, result.Error.message);
                return(new SenderResult {
                    Success = false, Message = result.Error.message, Sent = false
                });
            }
            if (!string.IsNullOrEmpty(result.title))
            {
                return(new SenderResult {
                    Success = true, Sent = false
                });
            }
            return(new SenderResult {
                Success = true, Sent = false
            });
        }
Beispiel #2
0
        private MovieSenderResult SendToRadarr(RequestedModel model, RadarrSettings settings, string qualityId)
        {
            var qualityProfile = 0;

            if (!string.IsNullOrEmpty(qualityId)) // try to parse the passed in quality, otherwise use the settings default quality
            {
                int.TryParse(qualityId, out qualityProfile);
            }

            if (qualityProfile <= 0)
            {
                int.TryParse(settings.QualityProfile, out qualityProfile);
            }

            var rootFolderPath = model.RootFolderSelected <= 0 ? settings.FullRootPath : GetRootPath(model.RootFolderSelected, settings);
            var result         = RadarrApi.AddMovie(model.ProviderId, model.Title, model.ReleaseDate.Year, qualityProfile, rootFolderPath, settings.ApiKey, settings.FullUri, true);

            if (!string.IsNullOrEmpty(result.Error?.message))
            {
                Log.Error(result.Error.message);
                return(new MovieSenderResult {
                    Result = false, Error = true, MovieSendingEnabled = true
                });
            }
            if (!string.IsNullOrEmpty(result.title))
            {
                return(new MovieSenderResult {
                    Result = true, MovieSendingEnabled = true
                });
            }
            return(new MovieSenderResult {
                Result = false, MovieSendingEnabled = true
            });
        }
Beispiel #3
0
        private async Task <SenderResult> SendToRadarr(MovieRequests model, RadarrSettings settings)
        {
            var qualityToUse = int.Parse(settings.DefaultQualityProfile);

            if (model.QualityOverride > 0)
            {
                qualityToUse = model.QualityOverride;
            }

            var rootFolderPath = model.RootPathOverride <= 0 ? settings.DefaultRootPath : await RadarrRootPath(model.RootPathOverride, settings);

            // Check if the movie already exists? Since it could be unmonitored
            var movies = await RadarrApi.GetMovies(settings.ApiKey, settings.FullUri);

            var existingMovie = movies.FirstOrDefault(x => x.tmdbId == model.TheMovieDbId);

            if (existingMovie == null)
            {
                var result = await RadarrApi.AddMovie(model.TheMovieDbId, model.Title, model.ReleaseDate.Year,
                                                      qualityToUse, rootFolderPath, settings.ApiKey, settings.FullUri, !settings.AddOnly,
                                                      settings.MinimumAvailability);

                if (!string.IsNullOrEmpty(result.Error?.message))
                {
                    Log.LogError(LoggingEvents.RadarrCacher, result.Error.message);
                    return(new SenderResult {
                        Success = false, Message = result.Error.message, Sent = false
                    });
                }
                if (!string.IsNullOrEmpty(result.title))
                {
                    return(new SenderResult {
                        Success = true, Sent = false
                    });
                }
                return(new SenderResult {
                    Success = true, Sent = false
                });
            }
            // We have the movie, check if we can request it or change the status
            if (!existingMovie.monitored)
            {
                // let's set it to monitored and search for it
                existingMovie.monitored = true;
                await RadarrApi.UpdateMovie(existingMovie, settings.ApiKey, settings.FullUri);

                // Search for it
                await RadarrApi.MovieSearch(new[] { existingMovie.id }, settings.ApiKey, settings.FullUri);

                return(new SenderResult {
                    Success = true, Sent = true
                });
            }

            return(new SenderResult {
                Success = false, Sent = false, Message = "Movie is already monitored"
            });
        }
Beispiel #4
0
        private MovieSenderResult SendToRadarr(RequestedModel model, RadarrSettings settings)
        {
            var qualityProfile = 0;

            int.TryParse(settings.QualityProfile, out qualityProfile);
            var result = RadarrApi.AddMovie(model.ProviderId, model.Title, model.ReleaseDate.Year, qualityProfile, settings.RootPath, settings.ApiKey, settings.FullUri, true);

            if (!string.IsNullOrEmpty(result.Error?.message))
            {
                Log.Error(result.Error.message);
                return(new MovieSenderResult {
                    Result = false, Error = true
                });
            }
            if (!string.IsNullOrEmpty(result.title))
            {
                return(new MovieSenderResult {
                    Result = true, MovieSendingEnabled = true
                });
            }
            return(new MovieSenderResult {
                Result = false, MovieSendingEnabled = true
            });
        }