Add JRay support
This commit is contained in:
@@ -1068,6 +1068,14 @@ async repositoryGetItems(handle: string, parentId: string, options: GetItemsOpti
|
||||
async repositoryGetItem(handle: string, itemId: string) : Promise<MediaItem> {
|
||||
return await TAURI_INVOKE("repository_get_item", { handle, itemId });
|
||||
},
|
||||
/**
|
||||
* Query the optional JRay plugin for the actors on screen at time `t`
|
||||
* (seconds) in an item. Returns an empty list when JRay isn't installed or
|
||||
* has no data for the item, so the caller can render nothing without error.
|
||||
*/
|
||||
async repositoryJrayActorsAt(handle: string, itemId: string, t: number) : Promise<JRayActor[]> {
|
||||
return await TAURI_INVOKE("repository_jray_actors_at", { handle, itemId, t });
|
||||
},
|
||||
/**
|
||||
* Get latest items in a library
|
||||
*/
|
||||
@@ -1553,6 +1561,14 @@ export type ImageOptions = { maxWidth?: number | null; maxHeight?: number | null
|
||||
* Image type
|
||||
*/
|
||||
export type ImageType = "Primary" | "Backdrop" | "Banner" | "Thumb" | "Logo"
|
||||
/**
|
||||
* A single actor returned by the JRay plugin's "context at time t" endpoint.
|
||||
*
|
||||
* Mirrors the `actors[]` objects from `GET /Plugins/JRay/Items/{id}/jray?t=`.
|
||||
* `jellyfin_id` (a Jellyfin Person item GUID) is preferred for navigation;
|
||||
* the IMDb/TMDb ids are informational fallbacks. Unknown ids are `""`.
|
||||
*/
|
||||
export type JRayActor = { name: string; imdb_id?: string; tmdb_id?: string; jellyfin_id?: string }
|
||||
/**
|
||||
* Library (media collection)
|
||||
*/
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
// NO direct HTTP calls - everything routes through Rust backend
|
||||
|
||||
import { commands } from "./bindings";
|
||||
import type { JRayActor } from "./bindings";
|
||||
import type { QualityPreset } from "./quality-presets";
|
||||
import type {
|
||||
Library,
|
||||
@@ -90,6 +91,15 @@ export class RepositoryClient {
|
||||
return commands.repositoryGetItem(this.ensureHandle(), itemId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Query the optional JRay plugin for the actors on screen at time `t`
|
||||
* (seconds) in an item. Resolves to an empty array when JRay isn't installed
|
||||
* or has no data for the item.
|
||||
*/
|
||||
async jrayActorsAt(itemId: string, t: number): Promise<JRayActor[]> {
|
||||
return commands.repositoryJrayActorsAt(this.ensureHandle(), itemId, t);
|
||||
}
|
||||
|
||||
async getLatestItems(parentId: string, limit?: number): Promise<MediaItem[]> {
|
||||
return commands.repositoryGetLatestItems(this.ensureHandle(), parentId, limit ?? null);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user