add onCloudVideoUploaded action handler to backblaze

node-20
Moe 2023-09-18 12:01:24 -07:00
parent 26713bde3c
commit 83fbd5f623
2 changed files with 30 additions and 23 deletions

View File

@ -62,6 +62,7 @@ module.exports = function(s,config){
createExtension(`onEventBasedRecordingComplete`) createExtension(`onEventBasedRecordingComplete`)
createExtension(`onEventBasedRecordingStart`) createExtension(`onEventBasedRecordingStart`)
createExtension(`onBeforeInsertCompletedVideo`) createExtension(`onBeforeInsertCompletedVideo`)
createExtension(`onCloudVideoUploaded`)
/////// TIMELAPSE //////// /////// TIMELAPSE ////////
createExtension(`onInsertTimelapseFrame`) createExtension(`onInsertTimelapseFrame`)
} }

View File

@ -3,18 +3,19 @@ const { Readable } = require('stream');
const B2 = require('backblaze-b2') const B2 = require('backblaze-b2')
module.exports = function(s,config,lang){ module.exports = function(s,config,lang){
//Backblaze B2 //Backblaze B2
var serviceProvider = 'b2'
var beforeAccountSaveForBackblazeB2 = function(d){ var beforeAccountSaveForBackblazeB2 = function(d){
//d = save event //d = save event
d.formDetails.b2_use_global=d.d.b2_use_global d.formDetails.b2_use_global=d.d.b2_use_global
d.formDetails.use_bb_b2=d.d.use_bb_b2 d.formDetails.use_bb_b2=d.d.use_bb_b2
} }
var cloudDiskUseStartupForBackblazeB2 = function(group,userDetails){ var cloudDiskUseStartupForBackblazeB2 = function(group,userDetails){
group.cloudDiskUse['b2'].name = 'Backblaze B2' group.cloudDiskUse[serviceProvider].name = 'Backblaze B2'
group.cloudDiskUse['b2'].sizeLimitCheck = (userDetails.use_bb_b2_size_limit === '1') group.cloudDiskUse[serviceProvider].sizeLimitCheck = (userDetails.use_bb_b2_size_limit === '1')
if(!userDetails.bb_b2_size_limit || userDetails.bb_b2_size_limit === ''){ if(!userDetails.bb_b2_size_limit || userDetails.bb_b2_size_limit === ''){
group.cloudDiskUse['b2'].sizeLimit = 10000 group.cloudDiskUse[serviceProvider].sizeLimit = 10000
}else{ }else{
group.cloudDiskUse['b2'].sizeLimit = parseFloat(userDetails.bb_b2_size_limit) group.cloudDiskUse[serviceProvider].sizeLimit = parseFloat(userDetails.bb_b2_size_limit)
} }
} }
var loadBackblazeB2ForUser = function(e){ var loadBackblazeB2ForUser = function(e){
@ -83,7 +84,7 @@ module.exports = function(s,config,lang){
}catch(err){ }catch(err){
var videoDetails = video.details var videoDetails = video.details
} }
if(video.type !== 'b2'){ if(video.type !== serviceProvider){
callback() callback()
return return
} }
@ -128,30 +129,35 @@ module.exports = function(s,config,lang){
}).then(function(resp){ }).then(function(resp){
const uploadResponse = resp.data const uploadResponse = resp.data
if(theGroup.init.bb_b2_log === '1' && uploadResponse.fileId){ if(theGroup.init.bb_b2_log === '1' && uploadResponse.fileId){
const insertDetails = {
bucketId : uploadResponse.bucketId,
fileId : uploadResponse.fileId,
fileName : uploadResponse.fileName
}
const insertQuery = {
mid: e.mid,
ke: e.ke,
time: k.startTime,
status: 1,
type : serviceProvider,
details: insertDetails,
size: k.filesize,
end: k.endTime,
href: ''
}
s.knexQuery({ s.knexQuery({
action: "insert", action: "insert",
table: "Cloud Videos", table: "Cloud Videos",
insert: { insert: Object.assign({},insertQuery,{details: s.s(insertDetails)})
mid: e.mid,
ke: e.ke,
time: k.startTime,
status: 1,
type : 'b2',
details: s.s({
bucketId : uploadResponse.bucketId,
fileId : uploadResponse.fileId,
fileName : uploadResponse.fileName
}),
size: k.filesize,
end: k.endTime,
href: ''
}
}) })
s.setCloudDiskUsedForGroup(e.ke,{ s.setCloudDiskUsedForGroup(e.ke,{
amount : k.filesizeMB, amount : k.filesizeMB,
storageType : 'b2' storageType : serviceProvider
})
s.purgeCloudDiskForGroup(e,serviceProvider)
s.onCloudVideoUploadedExtensions.forEach((extender) => {
extender(insertQuery)
}) })
s.purgeCloudDiskForGroup(e,'b2')
} }
}).catch(backblazeErr) }).catch(backblazeErr)
}) })
@ -183,7 +189,7 @@ module.exports = function(s,config,lang){
} }
//backblaze b2 //backblaze b2
s.addCloudUploader({ s.addCloudUploader({
name: 'b2', name: serviceProvider,
loadGroupAppExtender: loadBackblazeB2ForUser, loadGroupAppExtender: loadBackblazeB2ForUser,
unloadGroupAppExtender: unloadBackblazeB2ForUser, unloadGroupAppExtender: unloadBackblazeB2ForUser,
insertCompletedVideoExtender: uploadVideoToBackblazeB2, insertCompletedVideoExtender: uploadVideoToBackblazeB2,