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>
This commit is contained in:
2026-09-10 10:55:16 +02:00
co-authored by claude
parent f4cccd7177
commit 15dd74a12a
6 changed files with 21 additions and 12 deletions
+3
View File
@@ -328,3 +328,6 @@ ASALocalRun/
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local release artifacts
dist/
@@ -4,7 +4,6 @@ using System.Net.Http.Headers;
using System.Net.Http.Json;
using System.Text;
using System.Text.Json;
using Jellyfin.Data.Enums;
using Jellyfin.Extensions.Json;
using System.Threading.Tasks;
using MediaBrowser.Common.Net;
+1 -1
View File
@@ -9,7 +9,7 @@ namespace Jellyfin.Plugin.AnilistSync.API
/// Anilist endpoints.
/// </summary>
[ApiController]
[Authorize]
[Authorize(Policy = "DefaultAuthorization")]
[Route("AnilistSync")]
public class Endpoints : ControllerBase
{
@@ -1,22 +1,21 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<AssemblyVersion>2.1.0.0</AssemblyVersion>
<FileVersion>2.1.0.0</FileVersion>
<TargetFramework>net10.0</TargetFramework>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<FileVersion>3.0.0.0</FileVersion>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<nullable>enable</nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Jellyfin.Controller" Version="10.*-*" />
<PackageReference Include="Microsoft.Extensions.Http" Version="9.0.11" />
<PackageReference Include="Jellyfin.Controller" Version="12.*-*" ExcludeAssets="runtime" />
</ItemGroup>
<!-- Code Analyzers-->
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="9.0.0" PrivateAssets="All" />
<PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="10.0.100" PrivateAssets="All" />
<PackageReference Include="SerilogAnalyzer" Version="0.15.0" PrivateAssets="All" />
<PackageReference Include="SmartAnalyzers.MultithreadingAnalyzer" Version="1.1.31" PrivateAssets="All" />
</ItemGroup>
+4 -4
View File
@@ -1,15 +1,15 @@
---
name: "AnilistSync"
guid: "18c2a8ea-afa0-4a0b-aa94-072b492ab80b"
version: "2.1.0.0"
targetAbi: "10.11.0.0"
version: "3.0.0.0"
targetAbi: "12.0.0.0"
owner: "ARufenach"
overview: "Scrobble to Anilist"
description: >
Jellyfin plugin to scrobble to Anilist
category: "General"
framework: "net9.0"
framework: "net10.0"
artifacts:
- "Jellyfin.Plugin.AnilistSync.dll"
changelog: >
Added support for Jellyfin 10.11 (migrated IServerEntryPoint to IHostedService, net9.0)
Ported to Jellyfin 12.0 (net10.0, targetAbi 12.0.0.0). Switched plugin API controller to the DefaultAuthorization policy.
+8
View File
@@ -7,6 +7,14 @@
"owner": "ARufenach, modified by Fallenbagel, YannikMG",
"category": "General",
"versions": [
{
"version": "3.0.0.0",
"changelog": "Ported to Jellyfin 12.0 (net10.0, targetAbi 12.0.0.0). Plugin API controller now uses the DefaultAuthorization policy instead of a bare [Authorize].",
"targetAbi": "12.0.0.0",
"sourceUrl": "https://git.umarumg.de/UmaruMG/AnilistSync/releases/download/v3.0.0.0/AnilistSync_3.0.0.0.zip",
"checksum": "0d9e73866422ff38a5e2bf305076f728",
"timestamp": "2026-09-10T08:54:12Z"
},
{
"version": "2.1.0.0",
"changelog": "Ported to Jellyfin 10.11 (net9.0, IHostedService). Fixed a broken authorization policy that 500'd every plugin API call. Verified live against 10.11.11 with a real scrobble.",