You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
unboundedpress/thumbnail_generator_utility.js

72 lines
2.0 KiB
JavaScript

5 years ago
var mongo = require('mongodb');
var db = new mongo.Db('unboundedpress', new mongo.Server("127.0.0.1", 27017), { safe : false });
var Grid = require('gridfs-stream');
var gfs = Grid(db, mongo);
var im = require('imagemagick-stream');
db.open(function(err, db) {
db.authenticate('USER', 'PASS', function(err, result) {
db.collection('album_art.files').find().forEach(function (file) {
var bucket = 'album_art';
gfs.remove({filename: 'thumb_'+file.filename, root: bucket}, function (err) {
if (err) return handleError(err);
console.log('success');
});
var rs = gfs.createReadStream({
_id: file._id,
root: bucket,
content_type: file.contextType
});
var ws = gfs.createWriteStream({
filename: 'thumb_'+file.filename,
root: bucket,
mode: 'w',
content_type: file.contentType
});
var resize = im().resize('1024x').quality(80);
rs.pipe(resize).pipe(ws);
});
db.collection('images.files').find().forEach(function (file) {
var bucket = 'images';
gfs.remove({filename: 'thumb_'+file.filename, root: bucket}, function (err) {
if (err) return handleError(err);
console.log('success');
});
var rs = gfs.createReadStream({
_id: file._id,
root: bucket,
content_type: file.contextType
});
var ws = gfs.createWriteStream({
filename: 'thumb_'+file.filename,
root: bucket,
mode: 'w',
content_type: file.contentType
});
var resize = im().resize('1024x').quality(80);
rs.pipe(resize).pipe(ws);
});
});
});