5 Commits
Author SHA1 Message Date
YannikMGandclaude 1e5cf3ef31 AnilistSync 3.0.0.1: revert to bare [Authorize] for Jellyfin 12.0
Jellyfin 12.0 removed the named "DefaultAuthorization" policy; it's now
options.DefaultPolicy (CustomAuthentication scheme + DefaultAuthorizationRequirement).
[Authorize(Policy = "DefaultAuthorization")] therefore threw
InvalidOperationException: "policy not found" on every /AnilistSync/* call.
Bare [Authorize] uses the default policy, which is the intended form.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-10 11:37:22 +02:00
YannikMGandclaude 15dd74a12a Port to Jellyfin 12.0 (net10.0, targetAbi 12.0.0.0)
- csproj: net9.0 -> net10.0, version 2.1.0.0 -> 3.0.0.0
- Jellyfin.Controller 10.*-* -> 12.*-* with ExcludeAssets="runtime"
- drop redundant Microsoft.Extensions.Http ref (NU1510 under the .NET 10 SDK;
  IHttpClientFactory comes from the Microsoft.AspNetCore.App framework ref)
- NetAnalyzers 9.0.0 -> 10.0.100
- Endpoints: bare [Authorize] -> [Authorize(Policy = "DefaultAuthorization")]
  now that legacy authorization is disabled by default
- drop unused using in AnilistApi.cs
- build.yaml + manifest.json: 3.0.0.0 / abi 12.0.0.0 entry
- gitignore local dist/ release-artifact dir

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-10 10:55:16 +02:00
YannikMGandclaude f4cccd7177 Fix manifest.json timestamp timezone conversion
Was copied as 23:23:33Z instead of converting from the release's
actual 23:23:33+02:00, off by 2 hours.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-31 23:35:03 +02:00
YannikMGandclaude 2df693acf0 Add 2.1.0.0 release entry to manifest.json
Also fixes the plugin guid, which never matched Plugin.cs/build.yaml
(d02b875a... vs the real 18c2a8ea...), breaking repo-based update
detection for installed instances.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-31 23:31:18 +02:00
YannikMGandclaude c17d62fc62 Port to Jellyfin 10.11 (net9.0, IHostedService)
IServerEntryPoint was removed in favor of IHostedService; migrated
PlaybackScrobbler and updated PluginServiceRegistrator accordingly
(RegisterServices now takes IServerApplicationHost, AnilistApi moved
to a singleton so the hosted service can depend on it). Bumped
TargetFramework to net9.0 and targetAbi to 10.11.0.0.

Also fixed Endpoints.cs, which referenced an "DefaultAuthorization"
authorization policy that no longer resolves for plugin controllers
on 10.11, causing every API call to 500 instead of 401'ing when
unauthenticated. Verified end-to-end against a live 10.11.11 server:
plugin loads, OAuth re-auth works, and a real scrobble to Anilist
succeeded.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-31 23:10:40 +02:00