fix cron addStorage calculation

cron-addstorage-fix
Moe 2021-11-29 13:56:26 -08:00
parent 0c3c183ae8
commit 26572e480b
3 changed files with 26 additions and 8 deletions

View File

@ -92,8 +92,8 @@ const deleteVideo = (x) => {
const deleteFileBinEntry = (x) => {
postMessage({f:'s.deleteFileBinEntry',file:x})
}
const setDiskUsedForGroup = (groupKey,size,target) => {
postMessage({f:'s.setDiskUsedForGroup', ke: groupKey, size: size, target: target})
const setDiskUsedForGroup = (groupKey,size,target,videoRow) => {
postMessage({f:'s.setDiskUsedForGroup', ke: groupKey, size: size, target: target, videoRow: videoRow})
}
const getVideoDirectory = function(e){
if(e.mid&&!e.id){e.id=e.mid};
@ -185,6 +185,7 @@ const checkFilterRules = function(v){
})
}
const deleteVideosByDays = async (v,days,addedQueries) => {
const groupKey = v.ke;
const whereQuery = [
['ke','=',v.ke],
['time','<', sqlDate(days+' DAY')],
@ -207,7 +208,8 @@ const deleteVideosByDays = async (v,days,addedQueries) => {
const filename = formattedTime(row.time) + '.' + row.ext
try{
await fs.promises.unlink(dir + filename)
clearSize += row.size / 1048576
const fileSizeMB = row.size / 1048576;
setDiskUsedForGroup(groupKey,-fileSizeMB,null,row)
sendToWebSocket({
f: 'video_delete',
filename: filename + '.' + row.ext,
@ -227,7 +229,6 @@ const deleteVideosByDays = async (v,days,addedQueries) => {
where: whereQuery
})
affectedRows = deleteResponse.rows || 0
setDiskUsedForGroup(v.ke,-clearSize)
}
return {
ok: true,

View File

@ -987,7 +987,22 @@ module.exports = function(s,config,lang,io){
s.deleteFileBinEntry(d.file)
break;
case's.setDiskUsedForGroup':
s.setDiskUsedForGroup(d.ke,d.size,d.target || undefined)
function doOnMain(){
s.setDiskUsedForGroup(d.ke,d.size,d.target || undefined)
}
if(d.videoRow){
let storageIndex = s.getVideoStorageIndex(d.videoRow);
if(storageIndex){
s.setDiskUsedForGroupAddStorage(d.ke,{
size: d.size,
storageIndex: storageIndex
})
}else{
doOnMain()
}
}else{
doOnMain()
}
break;
case'start':case'end':
d.mid='_cron';s.userLog(d,{type:'cron',msg:d.msg})

View File

@ -608,9 +608,11 @@ module.exports = function(s,config,lang){
}
s.getVideoStorageIndex = function(video){
try{
var details = s.parseJSON(video.details) || {}
var storageId = details.storageId
if(s.group[video.ke] && s.group[video.ke].activeMonitors[video.id] && s.group[video.ke].activeMonitors[video.id].addStorageId)storageId = s.group[video.ke].activeMonitors[video.id].addStorageId
const monitorId = video.id || video.mid
const details = s.parseJSON(video.details) || {}
const storageId = details.storageId
const activeMonitor = s.group[video.ke] && s.group[video.ke].activeMonitors[monitorId] ? s.group[video.ke].activeMonitors[monitorId] : null;
if(activeMonitor && activeMonitor.addStorageId)storageId = activeMonitor.addStorageId;
if(storageId){
return s.group[video.ke].addStorageUse[storageId]
}