diff --git a/Jellyfin.Plugin.AnilistSync/API/Endpoints.cs b/Jellyfin.Plugin.AnilistSync/API/Endpoints.cs index 89389e7..208911c 100644 --- a/Jellyfin.Plugin.AnilistSync/API/Endpoints.cs +++ b/Jellyfin.Plugin.AnilistSync/API/Endpoints.cs @@ -9,7 +9,7 @@ namespace Jellyfin.Plugin.AnilistSync.API /// Anilist endpoints. /// [ApiController] - [Authorize(Policy = "DefaultAuthorization")] + [Authorize] [Route("AnilistSync")] public class Endpoints : ControllerBase { diff --git a/Jellyfin.Plugin.AnilistSync/Jellyfin.Plugin.AnilistSync.csproj b/Jellyfin.Plugin.AnilistSync/Jellyfin.Plugin.AnilistSync.csproj index b205851..f237f0b 100644 --- a/Jellyfin.Plugin.AnilistSync/Jellyfin.Plugin.AnilistSync.csproj +++ b/Jellyfin.Plugin.AnilistSync/Jellyfin.Plugin.AnilistSync.csproj @@ -1,9 +1,9 @@ - net6.0 - 2.0.0.0 - 2.0.0.0 + net9.0 + 2.1.0.0 + 2.1.0.0 true true enable @@ -11,12 +11,12 @@ - + - + diff --git a/Jellyfin.Plugin.AnilistSync/PluginServiceRegistrator.cs b/Jellyfin.Plugin.AnilistSync/PluginServiceRegistrator.cs index aeef4e7..1f7b3f1 100644 --- a/Jellyfin.Plugin.AnilistSync/PluginServiceRegistrator.cs +++ b/Jellyfin.Plugin.AnilistSync/PluginServiceRegistrator.cs @@ -1,5 +1,7 @@ using Jellyfin.Plugin.AnilistSync.API; -using MediaBrowser.Common.Plugins; +using Jellyfin.Plugin.AnilistSync.Services; +using MediaBrowser.Controller; +using MediaBrowser.Controller.Plugins; using Microsoft.Extensions.DependencyInjection; namespace Jellyfin.Plugin.AnilistSync @@ -8,9 +10,10 @@ namespace Jellyfin.Plugin.AnilistSync public class PluginServiceRegistrator : IPluginServiceRegistrator { /// - public void RegisterServices(IServiceCollection serviceCollection) + public void RegisterServices(IServiceCollection serviceCollection, IServerApplicationHost applicationHost) { - serviceCollection.AddScoped(); + serviceCollection.AddSingleton(); + serviceCollection.AddHostedService(); } } } \ No newline at end of file diff --git a/Jellyfin.Plugin.AnilistSync/Services/PlaybackScrobbler.cs b/Jellyfin.Plugin.AnilistSync/Services/PlaybackScrobbler.cs index 2b6d6c4..648c823 100644 --- a/Jellyfin.Plugin.AnilistSync/Services/PlaybackScrobbler.cs +++ b/Jellyfin.Plugin.AnilistSync/Services/PlaybackScrobbler.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Threading; using System.Threading.Tasks; using Jellyfin.Data.Enums; using Jellyfin.Plugin.AnilistSync.API; @@ -10,8 +11,8 @@ using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Model.Entities; using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.Plugins; using MediaBrowser.Controller.Session; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; namespace Jellyfin.Plugin.AnilistSync.Services @@ -19,7 +20,7 @@ namespace Jellyfin.Plugin.AnilistSync.Services /// /// Playback progress scrobbler. /// - public class PlaybackScrobbler : IServerEntryPoint + public class PlaybackScrobbler : IHostedService { private readonly ISessionManager _sessionManager; // Needed to set up the startPlayBack and endPlayBack functions private readonly ILogger _logger; @@ -43,7 +44,7 @@ namespace Jellyfin.Plugin.AnilistSync.Services } /// - public Task RunAsync() + public Task StartAsync(CancellationToken cancellationToken) { _sessionManager.PlaybackProgress += OnPlaybackProgress; _sessionManager.PlaybackStopped += OnPlaybackStopped; @@ -51,23 +52,11 @@ namespace Jellyfin.Plugin.AnilistSync.Services } /// - public void Dispose() + public Task StopAsync(CancellationToken cancellationToken) { - Dispose(true); - GC.SuppressFinalize(this); - } - - /// - /// Dispose. - /// - /// Dispoe all resources. - protected virtual void Dispose(bool disposing) - { - if (disposing) - { - _sessionManager.PlaybackProgress -= OnPlaybackProgress; - _sessionManager.PlaybackStopped -= OnPlaybackStopped; - } + _sessionManager.PlaybackProgress -= OnPlaybackProgress; + _sessionManager.PlaybackStopped -= OnPlaybackStopped; + return Task.CompletedTask; } // UserConfig config, @@ -169,7 +158,7 @@ namespace Jellyfin.Plugin.AnilistSync.Services string? anilistId = GetAnilistId(eventArgs); if (anilistId == null) { - _logger.LogDebug("Cannot Scrobble {ItemName}, unknown AniList Id."); + _logger.LogDebug("Cannot Scrobble {ItemName}, unknown AniList Id.", eventArgs.MediaInfo.Name); return; } diff --git a/build.yaml b/build.yaml index 191e8cd..f73297b 100644 --- a/build.yaml +++ b/build.yaml @@ -1,15 +1,15 @@ --- name: "AnilistSync" guid: "18c2a8ea-afa0-4a0b-aa94-072b492ab80b" -version: "2.0.0.0" -targetAbi: "10.8.0.0" +version: "2.1.0.0" +targetAbi: "10.11.0.0" owner: "ARufenach" overview: "Scrobble to Anilist" description: > Jellyfin plugin to scrobble to Anilist category: "General" -framework: "net6.0" +framework: "net9.0" artifacts: - "Jellyfin.Plugin.AnilistSync.dll" changelog: > - Added support for jellyfin 10.8.0 + Added support for Jellyfin 10.11 (migrated IServerEntryPoint to IHostedService, net9.0)