2 Commits

Author SHA1 Message Date
Gabrieal Jimmy
76a2560cdb fix 3 2026-07-16 14:32:59 -05:00
Gabrieal Jimmy
378677acda fix 2 2026-07-16 14:07:16 -05:00
4 changed files with 22 additions and 16 deletions

View File

@@ -4,8 +4,8 @@
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net9.0</TargetFramework>
<RootNamespace>Jellyfin.Plugin.RedditComments</RootNamespace> <RootNamespace>Jellyfin.Plugin.RedditComments</RootNamespace>
<AssemblyName>Jellyfin.Plugin.RedditComments</AssemblyName> <AssemblyName>Jellyfin.Plugin.RedditComments</AssemblyName>
<AssemblyVersion>1.0.0.0</AssemblyVersion> <AssemblyVersion>1.0.1.0</AssemblyVersion>
<FileVersion>1.0.0.0</FileVersion> <FileVersion>1.0.1.0</FileVersion>
<GenerateDocumentationFile>true</GenerateDocumentationFile> <GenerateDocumentationFile>true</GenerateDocumentationFile>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ImplicitUsings>disable</ImplicitUsings> <ImplicitUsings>disable</ImplicitUsings>

View File

@@ -16,14 +16,20 @@ public class PluginServiceRegistrator : IPluginServiceRegistrator
/// <inheritdoc /> /// <inheritdoc />
public void RegisterServices(IServiceCollection serviceCollection, IServerApplicationHost applicationHost) public void RegisterServices(IServiceCollection serviceCollection, IServerApplicationHost applicationHost)
{ {
var dbPath = Path.Combine(
applicationHost.Resolve<IApplicationPaths>().PluginConfigurationsPath,
"RedditComments",
"reddit-comments.db");
serviceCollection.AddSingleton<RateLimiter>(); serviceCollection.AddSingleton<RateLimiter>();
serviceCollection.AddSingleton(sp => new RedditClient(sp.GetRequiredService<ILogger<RedditClient>>(), sp.GetRequiredService<RateLimiter>())); serviceCollection.AddSingleton(sp => new RedditClient(sp.GetRequiredService<ILogger<RedditClient>>(), sp.GetRequiredService<RateLimiter>()));
serviceCollection.AddSingleton(sp => new CommentCache(dbPath, sp.GetRequiredService<ILogger<CommentCache>>()));
// The path is resolved inside the factory (not eagerly here) because the host's service
// provider does not exist yet while RegisterServices is running.
serviceCollection.AddSingleton(sp =>
{
var dbPath = Path.Combine(
sp.GetRequiredService<IApplicationPaths>().PluginConfigurationsPath,
"RedditComments",
"reddit-comments.db");
return new CommentCache(dbPath, sp.GetRequiredService<ILogger<CommentCache>>());
});
serviceCollection.AddSingleton(sp => new RedditCommentsService( serviceCollection.AddSingleton(sp => new RedditCommentsService(
sp.GetRequiredService<ILogger<RedditCommentsService>>(), sp.GetRequiredService<ILogger<RedditCommentsService>>(),
sp.GetRequiredService<RedditClient>(), sp.GetRequiredService<RedditClient>(),

View File

@@ -33,7 +33,7 @@ primarily for anime, where almost every episode has a thread on r/anime.
### Option A — manual install ### Option A — manual install
1. Download/copy `dist/Jellyfin.Plugin.RedditComments_1.0.0.0.zip`. 1. Download/copy `dist/Jellyfin.Plugin.RedditComments_1.0.1.0.zip`.
2. Create a folder `RedditComments` inside your Jellyfin plugins directory: 2. Create a folder `RedditComments` inside your Jellyfin plugins directory:
- 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`
@@ -43,10 +43,10 @@ primarily for anime, where almost every episode has a thread on r/anime.
### Option B — plugin repository ### Option B — plugin repository
1. Host `dist/Jellyfin.Plugin.RedditComments_1.0.0.0.zip` somewhere reachable by your server 1. Host `dist/Jellyfin.Plugin.RedditComments_1.0.1.0.zip` somewhere reachable by your server
(e.g. a GitHub release asset). (e.g. a GitHub release asset).
2. Edit `manifest.json`: set `sourceUrl` to the zip URL and update `checksum` with the zip's MD5 2. Edit `manifest.json`: set `sourceUrl` to the zip URL and update `checksum` with the zip's MD5
(`md5sum Jellyfin.Plugin.RedditComments_1.0.0.0.zip`). (`md5sum Jellyfin.Plugin.RedditComments_1.0.1.0.zip`).
3. Host `manifest.json` next to the zip. 3. Host `manifest.json` next to the zip.
4. In Jellyfin: **Dashboard → Plugins → Repositories → +**, paste the manifest URL, then install 4. In Jellyfin: **Dashboard → Plugins → Repositories → +**, paste the manifest URL, then install
"Reddit Comments" from the catalog and restart. "Reddit Comments" from the catalog and restart.

View File

@@ -8,12 +8,12 @@
"category": "General", "category": "General",
"versions": [ "versions": [
{ {
"version": "1.0.0.0", "version": "1.0.1.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": "- Fix plugin being disabled at startup (eager DI resolve in service registration)\n- Ship as a single DLL using the server's own SQLite assemblies\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/FixedV1/Jellyfin.Plugin.RedditComments_1.0.0.0.zip", "sourceUrl": "https://git.gabjimmy.com/Gabe/Jellyfin-Comments/releases/download/1.0.1.0/Jellyfin.Plugin.RedditComments_1.0.1.0.zip",
"checksum": "83c0fe073263c25c119ef3421fe9dbfb", "checksum": "4261e0c68ce67eab4a41e9a2a042750e",
"timestamp": "2026-07-16T00:00:00Z" "timestamp": "2026-07-16T14:30:00Z"
} }
] ]
} }