using System.IO;
using Jellyfin.Plugin.RedditComments.Services;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Controller;
using MediaBrowser.Controller.Plugins;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
namespace Jellyfin.Plugin.RedditComments;
///
/// Registers the plugin's services in the Jellyfin DI container.
///
public class PluginServiceRegistrator : IPluginServiceRegistrator
{
///
public void RegisterServices(IServiceCollection serviceCollection, IServerApplicationHost applicationHost)
{
var dbPath = Path.Combine(
applicationHost.Resolve().PluginConfigurationsPath,
"RedditComments",
"reddit-comments.db");
serviceCollection.AddSingleton();
serviceCollection.AddSingleton(sp => new RedditClient(sp.GetRequiredService>(), sp.GetRequiredService()));
serviceCollection.AddSingleton(sp => new CommentCache(dbPath, sp.GetRequiredService>()));
serviceCollection.AddSingleton(sp => new RedditCommentsService(
sp.GetRequiredService>(),
sp.GetRequiredService(),
sp.GetRequiredService()));
serviceCollection.AddHostedService();
}
}