|
|
|
@ -71,7 +71,7 @@ uploadsController.upload = async (req, res, next) => { |
|
|
|
|
return uploadsController.actuallyUpload(req, res, user, albumid); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
uploadsController.actuallyUpload = async (req, res, userid, album) => { |
|
|
|
|
uploadsController.actuallyUpload = async (req, res, userid, albumid) => { |
|
|
|
|
upload(req, res, async err => { |
|
|
|
|
if (err) { |
|
|
|
|
console.error(err); |
|
|
|
@ -114,7 +114,7 @@ uploadsController.actuallyUpload = async (req, res, userid, album) => { |
|
|
|
|
size: file.size, |
|
|
|
|
hash: fileHash, |
|
|
|
|
ip: req.ip, |
|
|
|
|
albumid: album, |
|
|
|
|
albumid: albumid, |
|
|
|
|
userid: userid !== undefined ? userid.id : null, |
|
|
|
|
timestamp: Math.floor(Date.now() / 1000) |
|
|
|
|
}); |
|
|
|
@ -124,7 +124,7 @@ uploadsController.actuallyUpload = async (req, res, userid, album) => { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (iteration === req.files.length) { |
|
|
|
|
return uploadsController.processFilesForDisplay(req, res, files, existingFiles); |
|
|
|
|
return uploadsController.processFilesForDisplay(req, res, files, existingFiles, albumid); |
|
|
|
|
} |
|
|
|
|
iteration++; |
|
|
|
|
}); |
|
|
|
@ -132,7 +132,7 @@ uploadsController.actuallyUpload = async (req, res, userid, album) => { |
|
|
|
|
}); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
uploadsController.processFilesForDisplay = async (req, res, files, existingFiles) => { |
|
|
|
|
uploadsController.processFilesForDisplay = async (req, res, files, existingFiles, albumid) => { |
|
|
|
|
let basedomain = config.domain; |
|
|
|
|
if (files.length === 0) { |
|
|
|
|
return res.json({ |
|
|
|
@ -150,29 +150,38 @@ uploadsController.processFilesForDisplay = async (req, res, files, existingFiles |
|
|
|
|
await db.table('files').insert(files); |
|
|
|
|
for (let efile of existingFiles) files.push(efile); |
|
|
|
|
|
|
|
|
|
res.json({ |
|
|
|
|
success: true, |
|
|
|
|
files: files.map(file => { |
|
|
|
|
return { |
|
|
|
|
name: file.name, |
|
|
|
|
size: file.size, |
|
|
|
|
url: `${basedomain}/${file.name}` |
|
|
|
|
}; |
|
|
|
|
}) |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
for (let file of files) { |
|
|
|
|
let ext = path.extname(file.name).toLowerCase(); |
|
|
|
|
if (utils.imageExtensions.includes(ext) || utils.videoExtensions.includes(ext)) { |
|
|
|
|
file.thumb = `${basedomain}/thumbs/${file.name.slice(0, -ext.length)}.png`; |
|
|
|
|
utils.generateThumbs(file); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (file.albumid) { |
|
|
|
|
db.table('albums').where('id', file.albumid).update('editedAt', file.timestamp).then(() => {}) |
|
|
|
|
.catch(error => { console.log(error); res.json({ success: false, description: 'Error updating album' }); }); |
|
|
|
|
} |
|
|
|
|
let albumSuccess = true; |
|
|
|
|
if (albumid) { |
|
|
|
|
const editedAt = Math.floor(Date.now() / 1000) |
|
|
|
|
albumSuccess = await db.table('albums') |
|
|
|
|
.where('id', albumid) |
|
|
|
|
.update('editedAt', editedAt) |
|
|
|
|
.then(() => true) |
|
|
|
|
.catch(error => { |
|
|
|
|
console.log(error); |
|
|
|
|
return false; |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return res.json({ |
|
|
|
|
success: albumSuccess, |
|
|
|
|
description: albumSuccess ? null : 'Warning: Error updating album.', |
|
|
|
|
files: files.map(file => { |
|
|
|
|
return { |
|
|
|
|
name: file.name, |
|
|
|
|
size: file.size, |
|
|
|
|
url: `${basedomain}/${file.name}` |
|
|
|
|
}; |
|
|
|
|
}) |
|
|
|
|
}); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
uploadsController.delete = async (req, res) => { |
|
|
|
|