4 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
5 changed files with 30 additions and 13 deletions
+3
View File
@@ -328,3 +328,6 @@ ASALocalRun/
# MFractors (Xamarin productivity tool) working folder # MFractors (Xamarin productivity tool) working folder
.mfractor/ .mfractor/
# Local release artifacts
dist/
@@ -4,7 +4,6 @@ using System.Net.Http.Headers;
using System.Net.Http.Json; using System.Net.Http.Json;
using System.Text; using System.Text;
using System.Text.Json; using System.Text.Json;
using Jellyfin.Data.Enums;
using Jellyfin.Extensions.Json; using Jellyfin.Extensions.Json;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Common.Net; using MediaBrowser.Common.Net;
@@ -1,22 +1,21 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<AssemblyVersion>2.1.0.0</AssemblyVersion> <AssemblyVersion>3.0.0.1</AssemblyVersion>
<FileVersion>2.1.0.0</FileVersion> <FileVersion>3.0.0.1</FileVersion>
<GenerateDocumentationFile>true</GenerateDocumentationFile> <GenerateDocumentationFile>true</GenerateDocumentationFile>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors> <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<nullable>enable</nullable> <nullable>enable</nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Jellyfin.Controller" Version="10.*-*" /> <PackageReference Include="Jellyfin.Controller" Version="12.*-*" ExcludeAssets="runtime" />
<PackageReference Include="Microsoft.Extensions.Http" Version="9.0.11" />
</ItemGroup> </ItemGroup>
<!-- Code Analyzers--> <!-- Code Analyzers-->
<ItemGroup> <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="SerilogAnalyzer" Version="0.15.0" PrivateAssets="All" />
<PackageReference Include="SmartAnalyzers.MultithreadingAnalyzer" Version="1.1.31" PrivateAssets="All" /> <PackageReference Include="SmartAnalyzers.MultithreadingAnalyzer" Version="1.1.31" PrivateAssets="All" />
</ItemGroup> </ItemGroup>
+4 -4
View File
@@ -1,15 +1,15 @@
--- ---
name: "AnilistSync" name: "AnilistSync"
guid: "18c2a8ea-afa0-4a0b-aa94-072b492ab80b" guid: "18c2a8ea-afa0-4a0b-aa94-072b492ab80b"
version: "2.1.0.0" version: "3.0.0.1"
targetAbi: "10.11.0.0" targetAbi: "12.0.0.0"
owner: "ARufenach" owner: "ARufenach"
overview: "Scrobble to Anilist" overview: "Scrobble to Anilist"
description: > description: >
Jellyfin plugin to scrobble to Anilist Jellyfin plugin to scrobble to Anilist
category: "General" category: "General"
framework: "net9.0" framework: "net10.0"
artifacts: artifacts:
- "Jellyfin.Plugin.AnilistSync.dll" - "Jellyfin.Plugin.AnilistSync.dll"
changelog: > 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). Reverted the API controller to a bare [Authorize] — Jellyfin 12.0 removed the named DefaultAuthorization policy in favour of the default policy.
+18 -2
View File
@@ -1,12 +1,28 @@
[ [
{ {
"guid": "d02b875a-2a61-4d74-ae5f-394eca192f74", "guid": "18c2a8ea-afa0-4a0b-aa94-072b492ab80b",
"name": "AnilistSync", "name": "AnilistSync",
"description": "This plugin will scrobble anime to Anilist for you", "description": "This plugin will scrobble anime to Anilist for you",
"overview": "Scrobble to Anilist", "overview": "Scrobble to Anilist",
"owner": "ARufenach, modified by Fallenbagel", "owner": "ARufenach, modified by Fallenbagel, YannikMG",
"category": "General", "category": "General",
"versions": [ "versions": [
{
"version": "3.0.0.1",
"changelog": "Ported to Jellyfin 12.0 (net10.0, targetAbi 12.0.0.0). Reverted the API controller to a bare [Authorize]: Jellyfin 12.0 removed the named DefaultAuthorization policy in favour of the default policy, so [Authorize(Policy = \"DefaultAuthorization\")] threw 'policy not found' on every plugin API call.",
"targetAbi": "12.0.0.0",
"sourceUrl": "https://git.umarumg.de/UmaruMG/AnilistSync/releases/download/v3.0.0.1/AnilistSync_3.0.0.1.zip",
"checksum": "c65d3c52bd3fa919e5bb9ad3e8d37f1b",
"timestamp": "2026-09-10T09:36:59Z"
},
{
"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.",
"targetAbi": "10.11.0.0",
"sourceUrl": "https://git.umarumg.de/UmaruMG/AnilistSync/releases/download/v2.1.0.0/AnilistSync_2.1.0.0.zip",
"checksum": "81fe39003de5362fbe204bc01ba19f7f",
"timestamp": "2026-07-31T21:23:33Z"
},
{ {
"version": "2.0.0", "version": "2.0.0",
"changelog": "Add support for Jellyfin 10.8", "changelog": "Add support for Jellyfin 10.8",