2012-10-23 14:07:28 -07:00
|
|
|
// Generated by CoffeeScript 1.4.0
|
2012-04-07 14:40:04 -07:00
|
|
|
(function() {
|
2012-12-24 21:18:40 -08:00
|
|
|
var DEV, MONGODB_PORT, MONGODB_SERVER, app, db, express, mongo, server,
|
2012-04-07 14:40:04 -07:00
|
|
|
_this = this;
|
|
|
|
|
|
|
|
express = require('express');
|
|
|
|
|
|
|
|
mongo = require('mongodb');
|
|
|
|
|
2012-12-24 21:18:40 -08:00
|
|
|
DEV = process.env.NODE_ENV === 'development';
|
|
|
|
|
2013-03-28 18:13:08 -07:00
|
|
|
MONGODB_SERVER = DEV ? 'localhost' : 'db24';
|
2012-04-07 14:40:04 -07:00
|
|
|
|
2012-10-29 12:25:28 -07:00
|
|
|
MONGODB_PORT = parseInt(process.env.MONGODB_PORT || 27017, 10);
|
|
|
|
|
2012-12-24 21:18:40 -08:00
|
|
|
if (DEV) {
|
|
|
|
server = new mongo.Server(MONGODB_SERVER, MONGODB_PORT, {
|
|
|
|
auto_reconnect: true,
|
|
|
|
poolSize: 12
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
server = new mongo.ReplSetServers([
|
|
|
|
new mongo.Server(MONGODB_SERVER, MONGODB_PORT, {
|
|
|
|
auto_reconnect: true
|
|
|
|
})
|
|
|
|
], {
|
|
|
|
rs_name: 'nbset'
|
|
|
|
});
|
|
|
|
}
|
2012-04-07 14:59:12 -07:00
|
|
|
|
2012-12-24 21:05:22 -08:00
|
|
|
db = new mongo.Db('newsblur', server, {
|
|
|
|
readPreference: mongo.ReadPreference.SECONDARY_PREFERRED,
|
|
|
|
safe: false
|
|
|
|
});
|
2012-04-07 14:40:04 -07:00
|
|
|
|
|
|
|
app = express.createServer();
|
|
|
|
|
|
|
|
app.use(express.bodyParser());
|
|
|
|
|
|
|
|
db.open(function(err, client) {
|
2012-04-07 14:59:12 -07:00
|
|
|
return client.collection("feed_icons", function(err, collection) {
|
|
|
|
_this.collection = collection;
|
|
|
|
});
|
2012-04-07 14:40:04 -07:00
|
|
|
});
|
|
|
|
|
|
|
|
app.get(/^\/rss_feeds\/icon\/(\d+)\/?/, function(req, res) {
|
2012-04-07 15:33:41 -07:00
|
|
|
var etag, feed_id;
|
2012-04-07 14:40:04 -07:00
|
|
|
feed_id = parseInt(req.params, 10);
|
2012-04-07 15:33:41 -07:00
|
|
|
etag = req.header('If-None-Match');
|
2012-04-07 14:59:12 -07:00
|
|
|
return _this.collection.findOne({
|
|
|
|
_id: feed_id
|
|
|
|
}, function(err, docs) {
|
2012-04-18 22:04:13 -07:00
|
|
|
if (!err && etag && docs && docs.color === etag) {
|
|
|
|
return res.send(304);
|
|
|
|
} else if (!err && docs && docs.data) {
|
2012-04-07 15:33:41 -07:00
|
|
|
res.header('etag', docs.color);
|
|
|
|
return res.send(new Buffer(docs.data, 'base64'), {
|
|
|
|
"Content-Type": "image/png"
|
|
|
|
});
|
2012-04-07 14:59:12 -07:00
|
|
|
} else {
|
2013-03-03 17:37:54 -08:00
|
|
|
return res.redirect('/media/img/icons/circular/world.png');
|
2012-04-07 14:59:12 -07:00
|
|
|
}
|
2012-04-07 14:40:04 -07:00
|
|
|
});
|
2012-04-18 22:04:13 -07:00
|
|
|
});
|
2012-04-07 14:40:04 -07:00
|
|
|
|
|
|
|
app.listen(3030);
|
|
|
|
|
|
|
|
}).call(this);
|