mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-28 18:22:42 -08:00
36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
import type { CliArgs } from '../../cli/args';
|
|
|
|
type JellyfinRemoteSession = {
|
|
advertiseNow: () => Promise<boolean>;
|
|
};
|
|
|
|
export function createHandleJellyfinRemoteAnnounceCommand(deps: {
|
|
startJellyfinRemoteSession: () => Promise<void>;
|
|
getRemoteSession: () => JellyfinRemoteSession | null;
|
|
logInfo: (message: string) => void;
|
|
logWarn: (message: string) => void;
|
|
}) {
|
|
return async (args: CliArgs): Promise<boolean> => {
|
|
if (!args.jellyfinRemoteAnnounce) {
|
|
return false;
|
|
}
|
|
|
|
await deps.startJellyfinRemoteSession();
|
|
const remoteSession = deps.getRemoteSession();
|
|
if (!remoteSession) {
|
|
deps.logWarn('Jellyfin remote session is not available.');
|
|
return true;
|
|
}
|
|
|
|
const visible = await remoteSession.advertiseNow();
|
|
if (visible) {
|
|
deps.logInfo('Jellyfin cast target is visible in server sessions.');
|
|
} else {
|
|
deps.logWarn(
|
|
'Jellyfin remote announce sent, but cast target is not visible in server sessions yet.',
|
|
);
|
|
}
|
|
return true;
|
|
};
|
|
}
|