6694be9848
A two-part Punktfunk plugin that syncs the Playnite library into the host
game library as the `playnite` provider:
- exporter/ — a minimal C# Playnite GenericPlugin ("Punktfunk Sync") that
writes punktfunk-library.json on every library change. Reading Playnite's
live-locked LiteDB from outside isn't robust, so this adapter runs inside
Playnite. Builds net462 via reference assemblies; packaged as a .pext.
- src/ — the TS plugin (on @punktfunk/host, rom-manager shape): watches the
export, embeds covers as data URLs, reconciles via
PUT /library/provider/playnite, with a console-hosted web UI + standalone
fallback + CLI. Launch = playnite://playnite/start/<id>, run by the host
in the interactive session so Playnite performs the real launch.
Verified locally: backend tsc + 23 tests + biome clean, SPA build, C#
exporter build + .pext pack.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
41 lines
1.6 KiB
XML
41 lines
1.6 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<!--
|
|
The Playnite side of the plugin: a GenericPlugin that writes `punktfunk-library.json` into its own
|
|
plugin-data dir on every library change, for the Punktfunk `playnite` plugin to read and reconcile.
|
|
|
|
Targets .NET Framework 4.6.2 (Playnite's runtime). `Microsoft.NETFramework.ReferenceAssemblies`
|
|
lets `dotnet build` compile net462 on Linux/macOS (no Windows/MSBuild needed), so CI builds it on
|
|
the same ubuntu runner as the TS side. PlayniteSDK is a COMPILE-only reference — Playnite provides
|
|
it at runtime — so `ExcludeAssets=runtime` keeps it out of the packaged `.pext`.
|
|
-->
|
|
<PropertyGroup>
|
|
<TargetFramework>net462</TargetFramework>
|
|
<AssemblyName>PunktfunkSync</AssemblyName>
|
|
<RootNamespace>PunktfunkSync</RootNamespace>
|
|
<LangVersion>latest</LangVersion>
|
|
<Nullable>disable</Nullable>
|
|
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
|
<Deterministic>true</Deterministic>
|
|
<DebugType>none</DebugType>
|
|
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
|
|
<Version>0.1.0</Version>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="PlayniteSDK" Version="6.11.0">
|
|
<ExcludeAssets>runtime</ExcludeAssets>
|
|
</PackageReference>
|
|
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3">
|
|
<PrivateAssets>all</PrivateAssets>
|
|
</PackageReference>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<None Include="extension.yaml">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</None>
|
|
</ItemGroup>
|
|
|
|
</Project>
|