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)); }); } } }