This commit is contained in:
Gabrieal Jimmy
2026-07-16 13:54:01 -05:00
parent a188ab3fe0
commit ee94f4fd49
5 changed files with 22 additions and 7 deletions

3
.gitignore vendored
View File

@@ -17,3 +17,6 @@ publish/
# OS noise # OS noise
.DS_Store .DS_Store
Thumbs.db Thumbs.db
# Log files
*.log

View File

@@ -18,7 +18,14 @@
<PackageReference Include="Jellyfin.Model" Version="10.11.11"> <PackageReference Include="Jellyfin.Model" Version="10.11.11">
<ExcludeAssets>runtime</ExcludeAssets> <ExcludeAssets>runtime</ExcludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.18" /> <!-- Pinned to the exact version Jellyfin 10.11.x ships for its own database (via EF Core 9.0.11).
Runtime assets are excluded: the server already has Microsoft.Data.Sqlite and the native
e_sqlite3 library loaded, so the plugin must not ship its own copies. Shipping them would
also break plugin loading, because PluginManager tries to load every *.dll in the plugin
folder as a managed assembly (including native binaries like e_sqlite3.dll). -->
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.11">
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -38,7 +38,7 @@ primarily for anime, where almost every episode has a thread on r/anime.
- Linux (native): `/var/lib/jellyfin/plugins/RedditComments` - Linux (native): `/var/lib/jellyfin/plugins/RedditComments`
- Docker: `<your config volume>/plugins/RedditComments` - Docker: `<your config volume>/plugins/RedditComments`
- Windows: `%ProgramData%\Jellyfin\Server\plugins\RedditComments` - Windows: `%ProgramData%\Jellyfin\Server\plugins\RedditComments`
3. Extract the zip contents into that folder (the DLLs must sit directly inside it). 3. Extract the zip contents into that folder (the plugin DLL must sit directly inside it).
4. Restart Jellyfin. 4. Restart Jellyfin.
### Option B — plugin repository ### Option B — plugin repository
@@ -102,9 +102,11 @@ Requires the .NET 9 SDK:
dotnet publish Jellyfin.Plugin.RedditComments/Jellyfin.Plugin.RedditComments.csproj -c Release -o publish dotnet publish Jellyfin.Plugin.RedditComments/Jellyfin.Plugin.RedditComments.csproj -c Release -o publish
``` ```
Copy the plugin DLL plus `Microsoft.Data.Sqlite.dll`, the `SQLitePCLRaw.*.dll`s and the native Copy `Jellyfin.Plugin.RedditComments.dll` into your plugins folder and restart. The package is
`e_sqlite3` library for your platform (under `publish/runtimes/<rid>/native/`) into your plugins intentionally a single DLL: the plugin uses the same `Microsoft.Data.Sqlite` build that Jellyfin
folder. The `dist/` zip in this repo is already assembled this way. itself ships for `jellyfin.db`, so no extra assemblies or native libraries may be placed in the
plugin folder (Jellyfin tries to load every `*.dll` there as a managed assembly and disables the
plugin on failure).
Run the smoke tests (cache, Reddit response parsing, rate limiter): Run the smoke tests (cache, Reddit response parsing, rate limiter):

View File

@@ -9,6 +9,9 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Jellyfin.Plugin.RedditComments\Jellyfin.Plugin.RedditComments.csproj" /> <ProjectReference Include="..\Jellyfin.Plugin.RedditComments\Jellyfin.Plugin.RedditComments.csproj" />
<!-- The plugin itself excludes runtime assets (the Jellyfin server provides this assembly);
the tests need it present to exercise the cache. -->
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.11" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -11,8 +11,8 @@
"version": "1.0.0.0", "version": "1.0.0.0",
"changelog": "- Initial release\n- Player OSD button + comments sidebar\n- Reddit thread search across configurable subreddits\n- SQLite caching with separate TTLs for found/not-found results\n- Sliding-window rate limiter (default 60 requests/minute, max 100)\n- Lazy loading: Reddit is only contacted on button click", "changelog": "- Initial release\n- Player OSD button + comments sidebar\n- Reddit thread search across configurable subreddits\n- SQLite caching with separate TTLs for found/not-found results\n- Sliding-window rate limiter (default 60 requests/minute, max 100)\n- Lazy loading: Reddit is only contacted on button click",
"targetAbi": "10.11.0.0", "targetAbi": "10.11.0.0",
"sourceUrl": "https://git.gabjimmy.com/Gabe/Jellyfin-Comments/releases/download/1.0/Jellyfin.Plugin.RedditComments_1.0.0.0.zip", "sourceUrl": "https://git.gabjimmy.com/Gabe/Jellyfin-Comments/releases/download/FixedV1/Jellyfin.Plugin.RedditComments_1.0.0.0.zip",
"checksum": "9ee28786f8f9c7edb17f3f7c147a6df9", "checksum": "83c0fe073263c25c119ef3421fe9dbfb",
"timestamp": "2026-07-16T00:00:00Z" "timestamp": "2026-07-16T00:00:00Z"
} }
] ]