|
|
@ -1,5 +1,7 @@ |
|
|
|
import { SOCKET_PATH } from "@autoplex-api/plex"; |
|
|
|
import { PlexMovie } from "@autoplex/database"; |
|
|
|
import { IpcServerService } from "@autoplex/ipc"; |
|
|
|
import { plexMediaUrl } from "../utils"; |
|
|
|
|
|
|
|
export default class IpcInterface extends IpcServerService |
|
|
|
{ |
|
|
@ -12,4 +14,24 @@ export default class IpcInterface extends IpcServerService |
|
|
|
* The path to the socket file |
|
|
|
*/ |
|
|
|
public readonly SOCKET_PATH = SOCKET_PATH; |
|
|
|
|
|
|
|
/** |
|
|
|
* Install the message handlers |
|
|
|
*/ |
|
|
|
protected installMessageHandlers() { |
|
|
|
this.addMessageHandler("movie_links", this.movieLinks); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Fetch links to Plex media items |
|
|
|
*/ |
|
|
|
protected async movieLinks(tmdbIds: (number|string)[]) { |
|
|
|
let plexKeys = await Promise.all(tmdbIds.map( |
|
|
|
tmdbId => PlexMovie.findPlexKey(tmdbId) |
|
|
|
)); |
|
|
|
return tmdbIds.reduce((o, k, i) => ({ |
|
|
|
...o, |
|
|
|
[k]: (plexKeys[i] !== null ? plexMediaUrl(plexKeys[i]!) : null) |
|
|
|
}), {}); |
|
|
|
} |
|
|
|
} |