Skip to content

Commit 5fba266

Browse files
committed
Parameterized sonarr address
1 parent 625118a commit 5fba266

File tree

8 files changed

+44
-33
lines changed

8 files changed

+44
-33
lines changed

SnackTime.Core/DependencyModule.cs

+28-9
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,9 @@ namespace SnackTime.Core
1010
{
1111
public class DependencyModule : Module
1212
{
13-
private readonly SonarrConfig _sonarrConfig;
14-
15-
public DependencyModule(SonarrConfig sonarrConfig)
16-
{
17-
_sonarrConfig = sonarrConfig;
18-
}
19-
2013
protected override void Load(ContainerBuilder builder)
2114
{
22-
var sonarrClient = new SonarrClient(_sonarrConfig.Host, _sonarrConfig.Port, _sonarrConfig.ApiKey);
23-
builder.RegisterInstance(sonarrClient).As<SonarrClient>();
15+
builder.RegisterType<SonarrFactory>().AsSelf();
2416

2517
builder.RegisterType<DatabaseFactory>().AsSelf();
2618

@@ -45,4 +37,31 @@ public class SonarrConfig
4537
public string ApiKey { get; set; }
4638
}
4739
}
40+
41+
public class SonarrFactory
42+
{
43+
private readonly SettingsService _settingsService;
44+
45+
public SonarrFactory(SettingsService settingsService)
46+
{
47+
_settingsService = settingsService;
48+
}
49+
50+
public SonarrClient GetClient()
51+
{
52+
var host = "localhost";
53+
var port = 8989;
54+
var apiKey = "2e8fcac32bf147608239cab343617485";
55+
56+
var settings = _settingsService.Get();
57+
58+
if (!string.IsNullOrWhiteSpace(settings.MediaServerAddress))
59+
{
60+
host = settings.MediaServerAddress;
61+
}
62+
63+
64+
return new SonarrClient(host, port, apiKey);
65+
}
66+
}
4867
}

SnackTime.Core/Media/Episodes/EpisodeFileLookupProvider.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ public class EpisodeFileLookupProvider
77
{
88
private readonly SonarrClient _client;
99

10-
public EpisodeFileLookupProvider(SonarrClient client)
10+
public EpisodeFileLookupProvider(SonarrFactory sonarrFactory)
1111
{
12-
_client = client;
12+
_client = sonarrFactory.GetClient();
1313
}
1414

1515
public async Task<Temp> GetFileInfoForId(int id)

SnackTime.Core/Media/Episodes/EpisodeProvider.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ public class EpisodeProvider
1010
private readonly SonarrClient _client;
1111
private readonly EpisodeBuilder _seriesBuilder;
1212

13-
public EpisodeProvider(SonarrClient client, EpisodeBuilder episodeBuilder)
13+
public EpisodeProvider(SonarrFactory sonarrFactory, EpisodeBuilder episodeBuilder)
1414
{
15-
_client = client;
15+
_client = sonarrFactory.GetClient();
1616
_seriesBuilder = episodeBuilder;
1717
}
1818

SnackTime.Core/Media/Series/SeriesProvider.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ public class SeriesProvider
1010
private readonly SonarrClient _client;
1111
private readonly SeriesBuilder _seriesBuilder;
1212

13-
public SeriesProvider(SonarrClient client)
13+
public SeriesProvider(SonarrFactory sonarrFactory)
1414
{
15-
_client = client;
15+
_client = sonarrFactory.GetClient();
1616
_seriesBuilder = new SeriesBuilder();
1717
}
1818

SnackTime.MediaServer.Runner/Program.cs

+1-6
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,7 @@ private static async Task Main(string[] args)
3030
{
3131
builder.RegisterModule(new Grpc.DependencyModule(context.Configuration));
3232
builder.RegisterModule(new MediaServer.DependencyModule());
33-
builder.RegisterModule(new Core.DependencyModule(new Core.DependencyModule.SonarrConfig
34-
{
35-
Host = "localhost",
36-
Port = 8989,
37-
ApiKey = "2e8fcac32bf147608239cab343617485"
38-
}));
33+
builder.RegisterModule(new Core.DependencyModule());
3934
})
4035
.UseSerilog();
4136

SnackTime.MediaServer/DependencyModule.cs

+4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
using Autofac;
2+
using SnackTime.Core.Media.Series;
23

34
namespace SnackTime.MediaServer
45
{
56
public class DependencyModule : Module
67
{
78
protected override void Load(ContainerBuilder builder)
89
{
10+
11+
builder.RegisterType<SeriesProvider>().AsSelf();
12+
913
builder.RegisterType<SeriesController>().As<Service.Series.Series.SeriesBase>();
1014
builder.RegisterType<EpisodeController>().As<Service.Episode.Episode.EpisodeBase>();
1115
builder.RegisterType<FileController>().As<Service.File.File.FileBase>();

SnackTime.MediaServer/SeriesController.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ public class SeriesController : Series.SeriesBase
1010
{
1111
private readonly SeriesProvider _seriesProvider;
1212

13-
public SeriesController(SonarrClient client)
13+
public SeriesController(SeriesProvider seriesProvider)
1414
{
15-
_seriesProvider = new SeriesProvider(client);
15+
_seriesProvider = seriesProvider;
1616
}
1717

1818
public override async Task<GetAllResponse> GetAll(GetAllRequest request, ServerCallContext context)

SnackTime.WebApi/Startup.cs

+3-10
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,7 @@ public void ConfigureContainer(ContainerBuilder builder)
2626
{
2727
builder.RegisterModule(new DependencyModule());
2828
builder.RegisterModule(new Mpv.JsonIpc.DependencyModule());
29-
builder.RegisterModule(new Core.DependencyModule(
30-
new Core.DependencyModule.SonarrConfig
31-
{
32-
Host = "localhost",
33-
Port = 8989,
34-
ApiKey = "2e8fcac32bf147608239cab343617485"
35-
})
36-
);
29+
builder.RegisterModule(new Core.DependencyModule());
3730
}
3831

3932
public void ConfigureServices(IServiceCollection services)
@@ -49,14 +42,14 @@ public void ConfigureServices(IServiceCollection services)
4942
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
5043
{
5144
app.UseLoggingMiddleware();
52-
45+
5346
app.UseCors(builder => builder
5447
.AllowAnyHeader()
5548
.AllowAnyMethod()
5649
.AllowAnyOrigin()
5750
.Build()
5851
);
59-
52+
6053
if (env.IsDevelopment())
6154
{
6255
app.UseDeveloperExceptionPage();

0 commit comments

Comments
 (0)