diff options
| author | Kanacchi <[email protected]> | 2017-02-07 03:20:12 -0300 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-02-07 03:20:12 -0300 |
| commit | f6869ff7c53cc2a1e0e2fc9426afbd50d30335f7 (patch) | |
| tree | bfff790af1bd1b0868e10f4ca2d1450dbb7653ff /controllers/uploadController.js | |
| parent | Changed the way repeated files work (diff) | |
| parent | Remove unused parameter (diff) | |
| download | host.fuwn.me-f6869ff7c53cc2a1e0e2fc9426afbd50d30335f7.tar.xz host.fuwn.me-f6869ff7c53cc2a1e0e2fc9426afbd50d30335f7.zip | |
Merge pull request #11 from PascalTemel/master
support thumbnails for .webm and .mp4 files
Diffstat (limited to 'controllers/uploadController.js')
| -rw-r--r-- | controllers/uploadController.js | 47 |
1 files changed, 31 insertions, 16 deletions
diff --git a/controllers/uploadController.js b/controllers/uploadController.js index e40c115..e819790 100644 --- a/controllers/uploadController.js +++ b/controllers/uploadController.js @@ -6,6 +6,7 @@ const db = require('knex')(config.database) const crypto = require('crypto') const fs = require('fs') const gm = require('gm') +const ffmpeg = require('fluent-ffmpeg') let uploadsController = {} @@ -253,30 +254,44 @@ uploadsController.list = function(req, res){ if(config.uploads.generateThumbnails === true){ - let extensions = ['.jpg', '.jpeg', '.bmp', '.gif', '.png'] + let extensions = ['.jpg', '.jpeg', '.bmp', '.gif', '.png', '.webm', '.mp4'] for(let ext of extensions){ if(path.extname(file.name) === ext){ - file.thumb = basedomain + '/thumbs/' + file.name.slice(0, -4) + '.png' + file.thumb = basedomain + '/thumbs/' + file.name.slice(0, -ext.length) + '.png' - let thumbname = path.join(__dirname, '..', 'uploads', 'thumbs') + '/' + file.name.slice(0, -4) + '.png' + let thumbname = path.join(__dirname, '..', config.uploads.folder, 'thumbs') + '/' + file.name.slice(0, -ext.length) + '.png' fs.access(thumbname, function(err) { if (err && err.code === 'ENOENT') { // File doesnt exist - let size = { - width: 200, - height: 200 + if (ext === '.webm' || ext === '.mp4') { + ffmpeg('./' + config.uploads.folder + '/' + file.name) + .thumbnail({ + timestamps: [0], + filename: '%b.png', + folder: './' + config.uploads.folder + '/thumbs', + size: '200x?' + }) + .on('error', function(error) { + console.log('Error - ', error.message) + }) + } + else { + let size = { + width: 200, + height: 200 + } + + gm('./' + config.uploads.folder + '/' + file.name) + .resize(size.width, size.height + '>') + .gravity('Center') + .extent(size.width, size.height) + .background('transparent') + .write(thumbname, function (error) { + if (error) console.log('Error - ', error) + }) } - - gm('./' + config.uploads.folder + '/' + file.name) - .resize(size.width, size.height + '>') - .gravity('Center') - .extent(size.width, size.height) - .background('transparent') - .write(thumbname, function (error) { - if (error) console.log('Error - ', error) - }) } }) } @@ -295,4 +310,4 @@ uploadsController.list = function(req, res){ }) } -module.exports = uploadsController
\ No newline at end of file +module.exports = uploadsController |