using System;
using Jellyfin.Plugin.Danmu.Controllers.Entity;
using Jellyfin.Plugin.Danmu.Core;
using Jellyfin.Plugin.Danmu.Scrapers;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Controller;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Persistence;
using MediaBrowser.Controller.Plugins;
using MediaBrowser.Controller.Subtitles;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
namespace Jellyfin.Plugin.Danmu
{
///
public class ServiceRegistrator : IPluginServiceRegistrator
{
///
public void RegisterServices(IServiceCollection serviceCollection, IServerApplicationHost applicationHost)
{
serviceCollection.AddHostedService();
serviceCollection.AddSingleton();
serviceCollection.AddSingleton(_ => new FileSystem());
serviceCollection.AddSingleton((ctx) =>
{
return new ScraperManager(ctx.GetRequiredService());
});
serviceCollection.AddSingleton((ctx) =>
{
return new LibraryManagerEventsHelper(ctx.GetRequiredService(), ctx.GetRequiredService(), ctx.GetRequiredService(), ctx.GetRequiredService(), ctx.GetRequiredService());
});
serviceCollection.AddSingleton>((ctx) =>
{
var applicationPaths = ctx.GetRequiredService();
return new FileCache(applicationPaths, ctx.GetRequiredService(),TimeSpan.FromDays(31), TimeSpan.FromSeconds(60));
});
}
}
}