Add Uploading Video to Monitor Recordings by POST
parent
ed76347b25
commit
147f3c0051
|
|
@ -11,6 +11,7 @@ var httpProxy = require('http-proxy');
|
|||
var onvif = require('node-onvif');
|
||||
var proxy = httpProxy.createProxyServer({})
|
||||
var ejs = require('ejs');
|
||||
var fileupload = require("express-fileupload");
|
||||
module.exports = function(s,config,lang,app,io){
|
||||
if(config.productType==='Pro'){
|
||||
var LdapAuth = require('ldapauth-fork');
|
||||
|
|
@ -1784,6 +1785,70 @@ module.exports = function(s,config,lang,app,io){
|
|||
},res,req);
|
||||
})
|
||||
/**
|
||||
* API : Upload Video File
|
||||
*/
|
||||
app.post(config.webPaths.apiPrefix+':auth/videos/:ke/:id',fileupload(), async (req,res) => {
|
||||
var response = {ok:false}
|
||||
res.setHeader('Content-Type', 'application/json');
|
||||
s.auth(req.params,function(user){
|
||||
if(user.permissions.watch_videos==="0"||user.details.sub&&user.details.allmonitors!=='1'&&user.details.video_delete.indexOf(req.params.id)===-1){
|
||||
res.end(user.lang['Not Permitted'])
|
||||
return
|
||||
}
|
||||
var time = new Date()
|
||||
var origURL = req.originalUrl.split('/')
|
||||
var videoParam = origURL[origURL.indexOf(req.params.auth) + 1]
|
||||
var videoSet = 'Videos'
|
||||
req.sql='SELECT * FROM `Monitors` WHERE ke=? AND mid=?';
|
||||
req.ar=[req.params.ke,req.params.id];
|
||||
s.sqlQuery(req.sql,req.ar,function(err,r){
|
||||
if(r && r[0]){
|
||||
var monitor = r[0]
|
||||
// req.query.overwrite === '1'
|
||||
var filename = s.formattedTime(time) + '.' + monitor.ext
|
||||
if(s.group[req.params.ke] && s.group[req.params.ke].activeMonitors[req.params.id]){
|
||||
try {
|
||||
if(!req.files) {
|
||||
res.send({
|
||||
status: false,
|
||||
message: 'No file uploaded'
|
||||
});
|
||||
} else {
|
||||
let video = req.files.video;
|
||||
video.mv(s.getVideoDirectory(monitor) + filename,function(){
|
||||
s.insertCompletedVideo(monitor,{
|
||||
file : filename
|
||||
},function(){
|
||||
response.ok = true
|
||||
response.filename = filename
|
||||
res.end(s.prettyPrint({
|
||||
ok: true,
|
||||
message: 'File is uploaded',
|
||||
data: {
|
||||
name: video.name,
|
||||
mimetype: video.mimetype,
|
||||
size: video.size
|
||||
}
|
||||
}))
|
||||
})
|
||||
});
|
||||
}
|
||||
} catch (err) {
|
||||
response.err = err
|
||||
res.status(500).send(response)
|
||||
}
|
||||
}else{
|
||||
response.error = 'Non Existant Monitor'
|
||||
res.end(s.prettyPrint(response))
|
||||
}
|
||||
}else{
|
||||
response.msg = user.lang['No such file']
|
||||
res.end(s.prettyPrint(response))
|
||||
}
|
||||
})
|
||||
},res,req);
|
||||
})
|
||||
/**
|
||||
* API : Modify Video File
|
||||
*/
|
||||
app.get([
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@
|
|||
"aws-sdk": "^2.279.1",
|
||||
"backblaze-b2": "^1.0.4",
|
||||
"body-parser": "^1.18.3",
|
||||
"circular-json": "0.3.1",
|
||||
"connection-tester": "^0.1.1",
|
||||
"cws": "^1.0.0",
|
||||
"discord.js": "^11.3.2",
|
||||
|
|
@ -44,7 +43,7 @@
|
|||
"ftp-srv": "^4.0.0",
|
||||
"http-proxy": "^1.17.0",
|
||||
"jsonfile": "^3.0.1",
|
||||
"knex": "^0.16.3",
|
||||
"knex": "^0.19.5",
|
||||
"ldapauth-fork": "^4.0.2",
|
||||
"moment": "^2.17.0",
|
||||
"mp4frag": "^0.0.22",
|
||||
|
|
@ -61,7 +60,8 @@
|
|||
"smtp-server": "^3.5.0",
|
||||
"socket.io": "^2.2.0",
|
||||
"socket.io-client": "^2.2.0",
|
||||
"webdav-fs": "^1.11.0"
|
||||
"webdav-fs": "^1.11.0",
|
||||
"express-fileupload": "^1.1.6-alpha.6"
|
||||
},
|
||||
"devDependencies": {}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue