From fed1cf2a0d1d64f7bcdc9d07d8887a8aa209eb0d Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Tue, 28 Feb 2023 11:10:22 -0800 Subject: [PATCH] cli: update --- packages/cli/.vscode/launch.json | 7 ++++--- packages/cli/package-lock.json | 4 ++-- packages/cli/package.json | 2 +- packages/cli/src/main.ts | 22 ++++++++++++++++++---- 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/packages/cli/.vscode/launch.json b/packages/cli/.vscode/launch.json index 8d6934e31..55c870474 100644 --- a/packages/cli/.vscode/launch.json +++ b/packages/cli/.vscode/launch.json @@ -6,7 +6,7 @@ "configurations": [ { "console": "integratedTerminal", - "type": "pwa-node", + "type": "node", "request": "launch", "name": "Launch Program", "skipFiles": [ @@ -20,8 +20,9 @@ "ts-node/register" ], "args": [ - "install", - "@scrypted/google-device-access" + "ffplay", + "Kitchen", + "getVideoStream" ], "sourceMaps": true, "resolveSourceMapLocations": [ diff --git a/packages/cli/package-lock.json b/packages/cli/package-lock.json index d1c4338f2..7a9336133 100644 --- a/packages/cli/package-lock.json +++ b/packages/cli/package-lock.json @@ -1,12 +1,12 @@ { "name": "scrypted", - "version": "1.0.57", + "version": "1.0.58", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "scrypted", - "version": "1.0.57", + "version": "1.0.58", "license": "ISC", "dependencies": { "@scrypted/types": "^0.0.6", diff --git a/packages/cli/package.json b/packages/cli/package.json index 651f73340..ac13f80df 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "scrypted", - "version": "1.0.57", + "version": "1.0.58", "description": "", "main": "./dist/packages/cli/src/main.js", "bin": { diff --git a/packages/cli/src/main.ts b/packages/cli/src/main.ts index a7360ac5d..549a7e5c8 100644 --- a/packages/cli/src/main.ts +++ b/packages/cli/src/main.ts @@ -8,10 +8,14 @@ import https from 'https'; import mkdirp from 'mkdirp'; import { installServe, serveMain } from './service'; import { connectScryptedClient } from '../../client/src/index'; -import { ScryptedMimeTypes, FFMpegInput } from '@scrypted/types'; +import { ScryptedMimeTypes, FFmpegInput } from '../../../sdk/types/src/types.input'; import semver from 'semver'; import child_process from 'child_process'; +const httpsAgent = new https.Agent({ + rejectUnauthorized: false, +}); + if (!semver.gte(process.version, '16.0.0')) { throw new Error('"node" version out of date. Please update node to v16 or higher.') } @@ -57,6 +61,7 @@ async function doLogin(host: string) { password, }, url, + httpsAgent, }, axiosConfig)); mkdirp.sync(scryptedHome); @@ -112,6 +117,9 @@ async function runCommand() { pluginId: '@scrypted/core', username: login.username, password: login.token, + axiosConfig: { + httpsAgent, + } }); const device: any = sdk.systemManager.getDeviceById(idOrName) || sdk.systemManager.getDeviceByName(idOrName); @@ -157,9 +165,15 @@ async function main() { } else if (process.argv[2] === 'ffplay') { const { sdk, pendingResult } = await runCommand(); - const ffinput = await sdk.mediaManager.convertMediaObjectToJSON(await pendingResult, ScryptedMimeTypes.FFmpegInput); - console.log(ffinput); - child_process.spawn('ffplay', ffinput.inputArguments, { + const ffmpegInput = await sdk.mediaManager.convertMediaObjectToJSON(await pendingResult, ScryptedMimeTypes.FFmpegInput); + if (ffmpegInput.url && ffmpegInput.urls?.[0]) { + const url = new URL(ffmpegInput.url); + if (url.hostname === '127.0.0.1' && ffmpegInput.urls?.[0]) { + ffmpegInput.inputArguments = ffmpegInput.inputArguments.map(i => i === ffmpegInput.url ? ffmpegInput.urls?.[0] : i); + } + } + console.log('ffplay', ...ffmpegInput.inputArguments); + child_process.spawn('ffplay', ffmpegInput.inputArguments, { stdio: 'inherit', }); sdk.disconnect();