v0.2: All videos folder, shared watched state, release-order sorting, official icon, OAuth plumbing, docs
Some checks failed
release / build-release (push) Has been cancelled
Some checks failed
release / build-release (push) Has been cancelled
- per-creator "All videos" folder (release order across sub-channels); sub-channel copies use cpost: ids and UserDataMirror keeps played/resume state in sync - SortNameUpdater forces release-order sort names so every client lists newest first by default - official Floatplane icon as channel image (Primary only — a channel Thumb hid video thumbnails in Continue Watching) and as 16:9 plugin thumbnail; one-time image replacement on upgrade - OAuth device-flow login (FloatplaneAuthService + settings UI); needs a Floatplane client id; Turnstile verified domain-bound so password login inside Jellyfin is impossible - generic install.sh (linuxserver / official image / native), thumb.png in package + manifest - README rewritten for a general audience, doc/usage.md with screenshots, 60 tests Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -32,9 +32,27 @@ public class PluginConfiguration : BasePluginConfiguration
|
||||
/// <summary>Highest level offered as a version at all (keeps 4K out of the list by default).</summary>
|
||||
public int MaxHeight { get; set; } = 1080;
|
||||
|
||||
/// <summary>How many posts (newest first) are listed per Floatplane channel.</summary>
|
||||
/// <summary>How many posts (newest first) are listed per Floatplane sub-channel.</summary>
|
||||
public int MaxPostsPerChannel { get; set; } = 100;
|
||||
|
||||
/// <summary>How many posts (newest first) the per-creator "All videos" folder lists.</summary>
|
||||
public int MaxPostsAllVideos { get; set; } = 200;
|
||||
|
||||
/// <summary>
|
||||
/// OAuth client id registered with Floatplane for this plugin. Empty = OAuth login
|
||||
/// unavailable (use the cookie). See the README for how to obtain one.
|
||||
/// </summary>
|
||||
public string OAuthClientId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>OAuth access token (short-lived, refreshed automatically).</summary>
|
||||
public string OAuthAccessToken { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>OAuth refresh token (≈90 days, rotated on refresh). Presence = logged in via OAuth.</summary>
|
||||
public string OAuthRefreshToken { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>Unix time (seconds) when the access token expires.</summary>
|
||||
public long OAuthAccessTokenExpiry { get; set; }
|
||||
|
||||
/// <summary>Show posts the account cannot access (higher tier) as locked items.</summary>
|
||||
public bool ShowLockedPosts { get; set; }
|
||||
|
||||
@@ -59,6 +77,9 @@ public class PluginConfiguration : BasePluginConfiguration
|
||||
/// <summary>Hours between automatic catalogue refreshes (scheduled task).</summary>
|
||||
public int SyncIntervalHours { get; set; } = 6;
|
||||
|
||||
/// <summary>Version of the channel logo Jellyfin last stored (internal; drives a one-time image refresh).</summary>
|
||||
public int ChannelImageVersion { get; set; }
|
||||
|
||||
/// <summary>Report watch progress back to Floatplane (not implemented yet).</summary>
|
||||
public bool SyncProgressToFloatplane { get; set; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user