amcrest: refactor

This commit is contained in:
Koushik Dutta
2021-09-12 12:04:33 -07:00
parent 69c4d9cd46
commit 1c3c7ba7fe
3 changed files with 18 additions and 74 deletions

View File

@@ -1,41 +1,39 @@
{
"name": "@scrypted/amcrest",
"version": "0.0.21",
"version": "0.0.22",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@scrypted/amcrest",
"version": "0.0.21",
"version": "0.0.22",
"license": "Apache",
"dependencies": {
"@mhoc/axios-digest-auth": "^0.7.0",
"axios": "^0.21.1",
"multiparty": "^4.2.2",
"url-parse": "^1.4.7"
},
"devDependencies": {
"@scrypted/sdk": "file:../../sdk",
"@types/multiparty": "^0.0.33",
"@types/node": "^16.7.10"
"multiparty": "^4.2.2"
}
},
"../../sdk": {
"name": "@scrypted/sdk",
"version": "0.0.67",
"dev": true,
"version": "0.0.72",
"license": "ISC",
"dependencies": {
"@babel/core": "^7.2.2",
"@babel/plugin-proposal-class-properties": "^7.4.4",
"@babel/plugin-proposal-optional-chaining": "^7.13.12",
"@babel/plugin-transform-modules-commonjs": "^7.2.0",
"@babel/plugin-transform-typescript": "^7.15.0",
"@babel/polyfill": "^7.2.5",
"@babel/preset-env": "^7.2.3",
"@babel/preset-typescript": "^7.15.0",
"@types/node": "^16.6.1",
"adm-zip": "^0.4.13",
"axios": "^0.21.1",
"babel-loader": "^8.0.4",
"babel-plugin-const-enum": "^1.1.0",
"babel-plugin-minify-dead-code-elimination": "^0.5.1",
"babel-polyfill": "^6.26.0",
"babel-template": "^6.26.0",
"browserify-buffertools": "^1.0.2",
@@ -64,12 +62,6 @@
"scrypted-package-json": "bin/scrypted-package-json.js",
"scrypted-readme": "bin/scrypted-readme.js",
"scrypted-webpack": "bin/scrypted-webpack.js"
},
"devDependencies": {
"@babel/plugin-proposal-optional-chaining": "^7.13.12",
"@types/node": "^16.6.1",
"babel-plugin-const-enum": "^1.1.0",
"babel-plugin-minify-dead-code-elimination": "^0.5.1"
}
},
"../sdk": {
@@ -91,7 +83,6 @@
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/@types/multiparty/-/multiparty-0.0.33.tgz",
"integrity": "sha512-Il6cJUpSqgojT7NxbVJUvXkCblm50/yEJYtblISDsNIeNYf4yMAhdizzidUk6h8pJ8yhwK/3Fkb+3Dwcgtwl8w==",
"dev": true,
"dependencies": {
"@types/node": "*"
}
@@ -99,8 +90,7 @@
"node_modules/@types/node": {
"version": "16.7.10",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz",
"integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==",
"dev": true
"integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA=="
},
"node_modules/axios": {
"version": "0.21.1",
@@ -170,11 +160,6 @@
"node": ">= 0.10"
}
},
"node_modules/querystringify": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz",
"integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA=="
},
"node_modules/random-bytes": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
@@ -183,11 +168,6 @@
"node": ">= 0.8"
}
},
"node_modules/requires-port": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
},
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@@ -238,15 +218,6 @@
"engines": {
"node": ">= 0.8"
}
},
"node_modules/url-parse": {
"version": "1.4.7",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
"integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==",
"dependencies": {
"querystringify": "^2.1.1",
"requires-port": "^1.0.0"
}
}
},
"dependencies": {
@@ -301,7 +272,6 @@
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/@types/multiparty/-/multiparty-0.0.33.tgz",
"integrity": "sha512-Il6cJUpSqgojT7NxbVJUvXkCblm50/yEJYtblISDsNIeNYf4yMAhdizzidUk6h8pJ8yhwK/3Fkb+3Dwcgtwl8w==",
"dev": true,
"requires": {
"@types/node": "*"
}
@@ -309,8 +279,7 @@
"@types/node": {
"version": "16.7.10",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz",
"integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==",
"dev": true
"integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA=="
},
"axios": {
"version": "0.21.1",
@@ -357,21 +326,11 @@
"uid-safe": "2.1.5"
}
},
"querystringify": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz",
"integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA=="
},
"random-bytes": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
"integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs="
},
"requires-port": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
},
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@@ -399,15 +358,6 @@
"requires": {
"random-bytes": "~1.0.0"
}
},
"url-parse": {
"version": "1.4.7",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
"integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==",
"requires": {
"querystringify": "^2.1.1",
"requires-port": "^1.0.0"
}
}
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@scrypted/amcrest",
"version": "0.0.21",
"version": "0.0.22",
"description": "Amcrest Plugin for Scrypted",
"author": "Scrypted",
"license": "Apache",
@@ -28,15 +28,10 @@
"Settings"
]
},
"devDependencies": {
"@scrypted/sdk": "file:../../sdk",
"@types/multiparty": "^0.0.33",
"@types/node": "^16.7.10"
},
"dependencies": {
"@types/multiparty": "^0.0.33",
"@scrypted/sdk": "file:../../sdk",
"@mhoc/axios-digest-auth": "^0.7.0",
"axios": "^0.21.1",
"multiparty": "^4.2.2",
"url-parse": "^1.4.7"
"multiparty": "^4.2.2"
}
}

View File

@@ -1,7 +1,6 @@
import AxiosDigestAuth from '@mhoc/axios-digest-auth';
import { Socket } from 'net';
import { PassThrough, Readable, Stream } from 'stream';
import {Form, Part} from 'multiparty';
import { PassThrough, Readable } from 'stream';
import { Form } from 'multiparty';
import { once } from 'events';
export enum AmcrestEvent {
@@ -11,7 +10,7 @@ export enum AmcrestEvent {
AudioStop = "Code=AudioMutation;action=Stop",
}
async function readEvent(readable: Readable): Promise<AmcrestEvent|void> {
async function readEvent(readable: Readable): Promise<AmcrestEvent | void> {
const pt = new PassThrough();
readable.pipe(pt);
const buffers: Buffer[] = [];
@@ -49,7 +48,7 @@ export class AmcrestCameraClient {
}
async* listenEvents(): AsyncGenerator<AmcrestEvent> {
const response = await this.digestAuth.request({
const response = await this.digestAuth.request({
method: "GET",
responseType: 'stream',
url: `http://${this.ip}/cgi-bin/eventManager.cgi?action=attach&codes=[VideoMotion,AudioMutation]`,