From 34dbc7930eca4b6c900797b7ba8b687e6d4e3339 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Mon, 22 Jul 2024 17:40:33 -0700 Subject: [PATCH] tapo: fix 2 way --- plugins/tapo/package-lock.json | 15 +++++++-------- plugins/tapo/package.json | 2 +- plugins/tapo/src/tapo-api.ts | 8 +++----- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/plugins/tapo/package-lock.json b/plugins/tapo/package-lock.json index d43d39d73..b8d776fcc 100644 --- a/plugins/tapo/package-lock.json +++ b/plugins/tapo/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/tapo", - "version": "0.0.17", + "version": "0.0.18", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@scrypted/tapo", - "version": "0.0.17", + "version": "0.0.18", "dependencies": { "@scrypted/common": "file:../../common", "@scrypted/sdk": "file:../../sdk", @@ -23,19 +23,18 @@ "license": "ISC", "dependencies": { "@scrypted/sdk": "file:../sdk", - "@scrypted/server": "file:../server", - "http-auth-utils": "^3.0.2", - "node-fetch-commonjs": "^3.1.1", - "typescript": "^5.3.3" + "http-auth-utils": "^5.0.1", + "typescript": "^5.5.3" }, "devDependencies": { - "@types/node": "^20.10.8", + "@types/node": "^20.11.0", + "monaco-editor": "^0.50.0", "ts-node": "^10.9.2" } }, "../../sdk": { "name": "@scrypted/sdk", - "version": "0.3.4", + "version": "0.3.45", "license": "ISC", "dependencies": { "@babel/preset-typescript": "^7.18.6", diff --git a/plugins/tapo/package.json b/plugins/tapo/package.json index a2532d493..7f1b3649b 100644 --- a/plugins/tapo/package.json +++ b/plugins/tapo/package.json @@ -1,6 +1,6 @@ { "name": "@scrypted/tapo", - "version": "0.0.17", + "version": "0.0.18", "description": "Tapo Camera Plugin for Scrypted", "scripts": { "scrypted-setup-project": "scrypted-setup-project", diff --git a/plugins/tapo/src/tapo-api.ts b/plugins/tapo/src/tapo-api.ts index 69be4cd02..28ac011d5 100644 --- a/plugins/tapo/src/tapo-api.ts +++ b/plugins/tapo/src/tapo-api.ts @@ -1,9 +1,9 @@ import { Deferred } from '@scrypted/common/src/deferred'; -import { authHttpFetch } from '@scrypted/common/src/http-auth-fetch'; import { readLine } from '@scrypted/common/src/read-stream'; import { parseHeaders, readBody, readMessage, writeMessage } from '@scrypted/common/src/rtsp-server'; import crypto from 'crypto'; import { Duplex, PassThrough, Writable } from 'stream'; +import { httpFetch } from '../../../server/src/fetch/http-fetch'; import { digestAuthHeader } from './digest-auth'; export function getTapoAdminPassword(cloudPassword: string, useSHA256: boolean) { @@ -27,8 +27,7 @@ export class TapoAPI { const url = `http://${options.address}/stream`; // will fail with auth required. - const response = await authHttpFetch({ - credential: undefined, + const response = await httpFetch({ url: url, checkStatusCode: false, method: 'POST', @@ -48,8 +47,7 @@ export class TapoAPI { const auth = digestAuthHeader('POST', '/stream', wwwAuthenticate, 'admin', password, 0) + ', algorithm=MD5'; - const response2 = await authHttpFetch({ - credential: undefined, + const response2 = await httpFetch({ url: url, method: 'POST', headers: {