feat(plex): Settings toggle for Plex watch-sync + one-click import
Admins get a 'Plex watch sync' section in Settings → Account (shown when the Plex module is on):
a two-way-sync toggle whose first enable imports the Plex watch history, a last-import line, and an
'Import from Plex now' button. api.plexWatch{Link,SetLink,Import}; trilingual EN/HU/DE strings.
This commit is contained in:
parent
04fb3fb16e
commit
a0475eb7bb
5 changed files with 118 additions and 2 deletions
|
|
@ -810,6 +810,20 @@ export interface PlexPlaySession {
|
|||
start_s: number;
|
||||
}
|
||||
|
||||
// Two-way Plex watch-state sync link status (owner account; Phase A).
|
||||
export interface PlexWatchLink {
|
||||
linked: boolean;
|
||||
sync_enabled: boolean;
|
||||
uses_admin: boolean;
|
||||
initial_import_done: boolean;
|
||||
last_watch_sync_at: string | null;
|
||||
}
|
||||
export interface PlexWatchImport {
|
||||
watched: number;
|
||||
in_progress: number;
|
||||
scanned: number;
|
||||
}
|
||||
|
||||
// Admin Users & roles page.
|
||||
export interface AdminUserRow {
|
||||
id: number;
|
||||
|
|
@ -1261,6 +1275,12 @@ export const api = {
|
|||
method: "POST",
|
||||
body: JSON.stringify({ status }),
|
||||
}),
|
||||
// Two-way Plex watch-sync (Phase A: owner link + one-time "Plex is master" import).
|
||||
plexWatchLink: (): Promise<PlexWatchLink> => req("/api/plex/watch/link"),
|
||||
plexWatchSetLink: (enabled: boolean): Promise<PlexWatchLink & { import: PlexWatchImport | null }> =>
|
||||
req("/api/plex/watch/link", { method: "POST", body: JSON.stringify({ enabled }) }),
|
||||
plexWatchImport: (): Promise<PlexWatchLink & { import: PlexWatchImport }> =>
|
||||
req("/api/plex/watch/import", { method: "POST" }),
|
||||
plexStreamFileUrl: (id: string): string => `/api/plex/stream/${encodeURIComponent(id)}/file`,
|
||||
plexDownloadUrl: (id: string): string =>
|
||||
`/api/plex/stream/${encodeURIComponent(id)}/file?download=1`,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue