コード例 #1
0
        public async Task Setup()
        {
            #region Configuration classes

            var fixture = new ConfigurationFixture();
            configurationBuilder = fixture.GenerateConfiguration();
            _radarrClient        = fixture.radarrClient;

            #endregion

            #region Database Con++text

            _mediaDbContext = fixture.GetDbContext();
            if (!_mediaDbContext.Request.Any())
            {
                _mediaDbContext.Request.Add(new Domain.UserRequest {
                    Id = 1, MovieId = "577922", UserId = "bacbb67d-819e-4e7b-bb29-c81ff99b5d1d"
                });
                await _mediaDbContext.SaveChangesAsync();
            }

            #endregion

            #region Http Helper
            _httpHelper = new HttpHelper(fixture.ServicePath, fixture.ApiKeys, fixture.radarrClient, fixture.tmdbClient);
            #endregion

            _mediator = A.Fake <IMediator>();
        }
コード例 #2
0
ファイル: HttpHelper.cs プロジェクト: kronovecta/MediaRequest
        public HttpHelper(IOptions <ServicePath> path, IOptions <ApiKeys> keys, RadarrClient radarrClient, TMDBClient tmdbClient)
        {
            _keys = keys.Value;
            _path = path.Value;

            _radarrClient = radarrClient;
            _tmdbClient   = tmdbClient;
        }
コード例 #3
0
ファイル: ChatBot.cs プロジェクト: hthighwaymonk/requestrr
 public ChatBot(IServiceProvider serviceProvider, ILogger <ChatBot> logger, DiscordSettingsProvider discordSettingsProvider)
 {
     _logger                  = logger;
     _serviceProvider         = serviceProvider;
     _discordSettingsProvider = discordSettingsProvider;
     _ombiDownloadClient      = new OmbiClient(serviceProvider.Get <IHttpClientFactory>(), serviceProvider.Get <ILogger <OmbiClient> >(), serviceProvider.Get <OmbiSettingsProvider>());
     _radarrDownloadClient    = new RadarrClient(serviceProvider.Get <IHttpClientFactory>(), serviceProvider.Get <ILogger <RadarrClient> >(), serviceProvider.Get <RadarrSettingsProvider>());
     _sonarrDownloadClient    = new SonarrClient(serviceProvider.Get <IHttpClientFactory>(), serviceProvider.Get <ILogger <SonarrClient> >(), serviceProvider.Get <SonarrSettingsProvider>());
 }
コード例 #4
0
        public void ShouldCreateClientWithCorrectUrl()
        {
            // Arrange
            // Act
            var sut = new RadarrClient(null, new Uri(ServerAddress));

            // Assert
            Assert.Equal("http://in.nativecode.com:7878/api/", sut.BaseAddress.ToString());
        }
コード例 #5
0
 public ChatBot(IServiceProvider serviceProvider, ILogger <ChatBot> logger, DiscordSettingsProvider discordSettingsProvider)
 {
     _logger                  = logger;
     _serviceProvider         = serviceProvider;
     _discordSettingsProvider = discordSettingsProvider;
     _overseerrClient         = new OverseerrClient(serviceProvider.Get <IHttpClientFactory>(), serviceProvider.Get <ILogger <OverseerrClient> >(), serviceProvider.Get <OverseerrSettingsProvider>());
     _ombiDownloadClient      = new OmbiClient(serviceProvider.Get <IHttpClientFactory>(), serviceProvider.Get <ILogger <OmbiClient> >(), serviceProvider.Get <OmbiSettingsProvider>());
     _radarrDownloadClient    = new RadarrClient(serviceProvider.Get <IHttpClientFactory>(), serviceProvider.Get <ILogger <RadarrClient> >(), serviceProvider.Get <RadarrSettingsProvider>());
     _sonarrDownloadClient    = new SonarrClient(serviceProvider.Get <IHttpClientFactory>(), serviceProvider.Get <ILogger <SonarrClient> >(), serviceProvider.Get <SonarrSettingsProvider>());
     _movieWorkflowFactory    = new MovieWorkflowFactory(_discordSettingsProvider, _movieNotificationRepository, _overseerrClient, _ombiDownloadClient, _radarrDownloadClient);
     _tvShowWorkflowFactory   = new TvShowWorkflowFactory(serviceProvider.Get <TvShowsSettingsProvider>(), _discordSettingsProvider, _tvShowNotificationRepository, _overseerrClient, _ombiDownloadClient, _sonarrDownloadClient);
 }
コード例 #6
0
        public async Task <IActionResult> TestRadarrSettings([FromBody] TestRadarrSettingsModel model)
        {
            try
            {
                await RadarrClient.TestConnectionAsync(_httpClientFactory.CreateClient(), _logger, ConvertToRadarrSettings(model));

                return(Ok(new { ok = true }));
            }
            catch (System.Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
コード例 #7
0
        public async Task <bool> Start()
        {
            if (!string.IsNullOrEmpty(_config.Host) && !string.IsNullOrEmpty(_config.ApiKey))
            {
                _radarrClient = new RadarrClient(_config.Host, _config.Port, _config.ApiKey);

                var movies = await _radarrClient.Movie.GetMovies();

                _logger.LogInformation($"Totale movies {movies.Count}");
            }

            return(true);
        }
コード例 #8
0
 public MovieWorkflowFactory(
     DiscordSettingsProvider settingsProvider,
     MovieNotificationsRepository notificationsRepository,
     OverseerrClient overseerrClient,
     OmbiClient ombiDownloadClient,
     RadarrClient radarrDownloadClient)
 {
     _settingsProvider        = settingsProvider;
     _notificationsRepository = notificationsRepository;
     _overseerrClient         = overseerrClient;
     _ombiDownloadClient      = ombiDownloadClient;
     _radarrDownloadClient    = radarrDownloadClient;
 }
コード例 #9
0
        /// <summary>
        /// Initializes a new instance of the <see cref="RadarrViewModel"/> class.
        /// </summary>
        public RadarrViewModel()
        {
            RadarrClient = new RadarrClient(Settings.Default.RadarrHost, Settings.Default.RadarrPort, Settings.Default.RadarrApiKey, Settings.Default.RadarrUrlBase)
            {
                WriteDebug = false
            };

            // Set Radarr URL
            var sb = new StringBuilder();

            sb.Append("http");
            if (RadarrClient.UseSsl)
            {
                sb.Append("s");
            }
            sb.Append($"://{RadarrClient.Host}:{RadarrClient.Port}");
            RadarrUrl = sb.ToString();

            RootFolders          = new ObservableCollection <RadarrSharp.Models.RootFolder>();
            Profiles             = new List <RadarrSharp.Models.Profile>();
            Movies               = new ObservableCollection <RadarrSharp.Models.Movie>();
            MovieDiscoveryMovies = new ObservableCollection <RadarrSharp.Models.Movie>();
            ExtraFiles           = new ObservableCollection <RadarrSharp.Models.ExtraFile>();

            // Get root folder path
            GetRootFoldersCommand.Execute(null);

            // Get profiles
            GetProfilesCommand.Execute(null);

            // Get movies
            GetMoviesCommand.Execute(null);

            // Get system info
            GetRadarrSystemInfo.Execute(null);

            // Set views
            MoviesView = CollectionViewSource.GetDefaultView(Movies);
            MoviesView.SortDescriptions.Add(new SortDescription(nameof(RadarrSharp.Models.Movie.SortTitle), ListSortDirection.Ascending));
            MoviesView.Filter = new Predicate <object>(Movies_OnFilter);

            MovieDiscoveryMoviesView = CollectionViewSource.GetDefaultView(MovieDiscoveryMovies);

            // design mode props
            //IsMovieDiscoveryOverlayVisible = true;
            //MovieDiscoveryIsSearching = true;
            //MovieDiscoverySearchTerm = "fifty";
            //MovieDiscoverySearchCommand.Execute(null);
        }
コード例 #10
0
        public void Setup()
        {
            #region Configuration classes

            var fixture = new ConfigurationFixture();
            configurationBuilder = fixture.GenerateConfiguration();
            #endregion

            _httpHelper     = new HttpHelper(fixture.ServicePath, fixture.ApiKeys, fixture.radarrClient, fixture.tmdbClient);
            _mediator       = A.Fake <IMediator>();
            _mediaDbContext = fixture.GetDbContext();

            _servicePath  = fixture.ServicePath;
            _apiKeys      = fixture.ApiKeys;
            _radarrClient = fixture.radarrClient;
        }
コード例 #11
0
        public async Task <IActionResult> GetRadarrTags([FromBody] TestRadarrSettingsModel model)
        {
            try
            {
                var tags = await RadarrClient.GetTags(_httpClientFactory.CreateClient(), _logger, ConvertToRadarrSettings(model));

                return(Ok(tags.Select(x => new RadarrTag
                {
                    Id = x.id,
                    Name = x.label
                })));
            }
            catch (System.Exception)
            {
                return(BadRequest($"Could not load the tags from Radarr, check your settings."));
            }
        }
コード例 #12
0
        public async Task <IActionResult> GetRadarrRootPaths([FromBody] TestRadarrSettingsModel model)
        {
            try
            {
                var paths = await RadarrClient.GetRootPaths(_httpClientFactory.CreateClient(), _logger, ConvertToRadarrSettings(model));

                return(Ok(paths.Select(x => new RadarrPath
                {
                    Id = x.id,
                    Path = x.path
                })));
            }
            catch (System.Exception)
            {
                return(BadRequest($"Could not load the paths from Radarr, check your settings."));
            }
        }
コード例 #13
0
ファイル: RadarrComponent.cs プロジェクト: tgiachi/Neon
        public override Task <bool> Start()
        {
            if (Config.Api.ApiKey == "change_me")
            {
                ThrowComponentNeedConfiguration("ApiKey");
            }

            if (Config.Server.Hostname == "change_me")
            {
                ThrowComponentNeedConfiguration("Hostname", "Port");
            }

            _isConfigured = true;

            _radarrClient = new RadarrClient(Config.Server.Hostname, Config.Server.Port, Config.Api.ApiKey);


            return(base.Start());
        }
コード例 #14
0
        public ConfigurationFixture()
        {
            #region Configuration classes
            var basePath = Path.GetFullPath("../../../../MediaRequest/");

            configurationBuilder = new ConfigurationBuilder()
                                   .SetBasePath(basePath)
                                   .AddYamlFile("settings.yaml", false, true)
                                   .Build();

            ServicePath = Options.Create(GetServicePathConfiguration());
            ApiKeys     = Options.Create(GetApiKeysConfiguration());

            #region Sonarr
            var sonarrHttpClient = new HttpClient()
            {
                BaseAddress = new Uri(ServicePath.Value.Sonarr),
            };
            sonarrHttpClient.DefaultRequestHeaders.Add("X-Api-Key", ApiKeys.Value.Sonarr);
            sonarrClient = new SonarrClient(sonarrHttpClient);
            #endregion

            #region Radarr
            var radarrHttpClient = new HttpClient()
            {
                BaseAddress = new Uri(ServicePath.Value.Radarr),
            };
            radarrHttpClient.DefaultRequestHeaders.Add("X-Api-Key", ApiKeys.Value.Radarr);
            radarrClient = new RadarrClient(radarrHttpClient);
            #endregion

            tmdbClient = new TMDBClient(new System.Net.Http.HttpClient()
            {
                BaseAddress = new System.Uri(ServicePath.Value.TMDB)
            });

            #endregion
        }
コード例 #15
0
ファイル: Blacklist.cs プロジェクト: Harashen/RadarrSharp
 /// <summary>
 /// Initializes a new instance of the <see cref="Blacklist"/> class.
 /// </summary>
 /// <param name="radarrClient">The radarr client.</param>
 public Blacklist(RadarrClient radarrClient)
 {
     _radarrClient = radarrClient;
 }
コード例 #16
0
ファイル: SystemStatus.cs プロジェクト: Harashen/RadarrSharp
 /// <summary>
 /// Initializes a new instance of the <see cref="SystemStatus" /> class.
 /// </summary>
 /// <param name="radarrClient">The radarr client.</param>
 public SystemStatus(RadarrClient radarrClient)
 {
     _radarrClient = radarrClient;
 }
コード例 #17
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QualityDefinition"/> class.
 /// </summary>
 /// <param name="radarrClient">The radarr client.</param>
 public QualityDefinition(RadarrClient radarrClient)
 {
     _radarrClient = radarrClient;
 }
コード例 #18
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Queue"/> class.
 /// </summary>
 /// <param name="radarrClient">The radarr client.</param>
 public Queue(RadarrClient radarrClient)
 {
     _radarrClient = radarrClient;
 }
コード例 #19
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Command" /> class.
 /// </summary>
 /// <param name="radarrClient">The radarr client.</param>
 public Command(RadarrClient radarrClient)
 {
     _radarrClient = radarrClient;
 }
コード例 #20
0
 public GetSingleMovieHandler(RadarrClient radarrClient)
 {
     _radarrClient = radarrClient;
 }
コード例 #21
0
ファイル: Indexer.cs プロジェクト: Harashen/RadarrSharp
 /// <summary>
 /// Initializes a new instance of the <see cref="Indexer"/> class.
 /// </summary>
 /// <param name="radarrClient">The radarr client.</param>
 public Indexer(RadarrClient radarrClient)
 {
     _radarrClient = radarrClient;
 }
コード例 #22
0
 /// <summary>
 /// Initializes a new instance of the <see cref="History" /> class.
 /// </summary>
 /// <param name="radarrClient">The radarr client.</param>
 public History(RadarrClient radarrClient)
 {
     _radarrClient = radarrClient;
 }
コード例 #23
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Movie" /> class.
 /// </summary>
 /// <param name="radarrClient">The radarr client.</param>
 public Movie(RadarrClient radarrClient)
 {
     _radarrClient = radarrClient;
 }
コード例 #24
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Notification" /> class.
 /// </summary>
 /// <param name="radarrClient">The radarr client.</param>
 public Notification(RadarrClient radarrClient)
 {
     _radarrClient = radarrClient;
 }
コード例 #25
0
ファイル: Wanted.cs プロジェクト: Harashen/RadarrSharp
 /// <summary>
 /// Initializes a new instance of the <see cref="Wanted" /> class.
 /// </summary>
 /// <param name="radarrClient">The radarr client.</param>
 public Wanted(RadarrClient radarrClient)
 {
     _radarrClient = radarrClient;
 }
コード例 #26
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Calendar" /> class.
 /// </summary>
 /// <param name="radarrClient">The radarr client.</param>
 public Calendar(RadarrClient radarrClient)
 {
     _radarrClient = radarrClient;
 }
コード例 #27
0
ファイル: Restriction.cs プロジェクト: mclarence/RadarrSharp
 /// <summary>
 /// Initializes a new instance of the <see cref="Restriction"/> class.
 /// </summary>
 /// <param name="radarrClient">The radarr client.</param>
 public Restriction(RadarrClient radarrClient)
 {
     _radarrClient = radarrClient;
 }
コード例 #28
0
        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            int errors = 0;

            if (APIKeyValue.Text == "" || APIKeyValue.Text.Length != 32)
            {
                APIKeyValue.BorderBrush = new SolidColorBrush(Windows.UI.Colors.Red);
                SavedText.Visibility    = Visibility.Visible;
                SavedText.Text          = "Please enter your Radarr API key.";
                SavedText.Foreground    = new SolidColorBrush(Windows.UI.Colors.Red);
                return;
            }

            roamingSettings.Values["serverURL"] = HostnameValue.Text;
            roamingSettings.Values["apiKey"]    = APIKeyValue.Text;
            roamingSettings.Values["https"]     = UseHTTPS.IsOn;

            try
            {
                int.Parse(PortValue.Text);
                roamingSettings.Values["port"] = PortValue.Text;
            }
            catch (Exception)
            {
                errors += 1;
            }

            if (errors > 0)
            {
                PortValue.BorderBrush = new SolidColorBrush(Windows.UI.Colors.Red);
                SavedText.Visibility  = Visibility.Visible;
                SavedText.Text        = "Please enter a number in the port field.";
                SavedText.Foreground  = new SolidColorBrush(Windows.UI.Colors.Red);
            }
            else
            {
                try
                {
                    RadarrService rs = new RadarrService();
                    RadarrClient  rc = rs.GetService();

                    await rc.Movie.GetMovies();
                } catch
                {
                    var dialog = new MessageDialog("There was an error testing your settings, please ensure the details entered are correct.", "Error testing connection");
                    _ = await dialog.ShowAsync();

                    return;
                }

                PortValue.BorderBrush   = new SolidColorBrush(Windows.UI.Colors.DarkGray);
                APIKeyValue.BorderBrush = new SolidColorBrush(Windows.UI.Colors.DarkGray);
                SavedText.Visibility    = Visibility.Visible;
                SavedText.Foreground    = new SolidColorBrush(Windows.UI.Colors.Green);
                SavedText.Text          = "Your settings have been saved.";

                Debug.WriteLine(Frame.Parent.GetType().FullName);

                NavigationView navView = (NavigationView)Frame.Parent;

                foreach (NavigationViewItem navItem in navView.MenuItems)
                {
                    navItem.IsEnabled = true;
                }
            }
        }
コード例 #29
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Config" /> class.
 /// </summary>
 /// <param name="radarrClient">The radarr client.</param>
 public Config(RadarrClient radarrClient)
 {
     _radarrClient = radarrClient;
 }
コード例 #30
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Release"/> class.
 /// </summary>
 /// <param name="radarrClient">The radarr client.</param>
 public Release(RadarrClient radarrClient)
 {
     _radarrClient = radarrClient;
 }