/
process.js
62 lines (55 loc) · 1.56 KB
/
process.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
var db = require('./middleware/db').db
var fs = require('fs');
var gm = require('gm');
var im = gm.subClass({imageMagick: true})
var conf = require('./middleware/config');
var Email = require('email').Email;
db.query('SELECT * FROM photo WHERE processed = 0', function(err, photos) {
photos.forEach(function(photo) {
var parts = photo.path.split('/');
photo.path = parts[parts.length -1];
waterMark(photo.path, function(err) {
if (err) throw err;
db.query('UPDATE photo SET processed = 1 WHERE id = ' + photo.id, function(err) {
if(err) throw err;
})
db.query('UPDATE photo SET path=? WHERE id = ' + photo.id, '/pictures/photos/' + photo.path, function(err) {
if(err) throw err;
})
});
});
email(function(err) {
if(err) throw err;
});
})
function waterMark (file, cb) {
var origin = __dirname + '/img/tmp/' + file;
var dest = __dirname + '/public/pictures/photos/' + file;
im(origin)
.enhance()
.resize(600, 600)
.noProfile()
.stroke('#911821')
.font('nytimes', 24)
.drawText(60, 60, 'SnapStock.au')
.write(dest, function(err) {
if (err) return cb(err);
});
cb();
}
function email (cb) {
db.query('SELECT COUNT(*) as count FROM photo WHERE approved = 0', function(err, data) {
var count = data[0].count;
var text = 'Hi Nikki, \n This is an update from snapstock.au: You have ' + count + ' new photos to approve.';
var mail = new Email({
from: 'snapstock.au@gmail.com',
to: conf.email,
subject: 'Update from snapstock.au',
body: text
});
mail.send(function(err) {
if (err) throw err;
});
cb();
});
}