2012-04-07 14:40:04 -07:00
|
|
|
express = require 'express'
|
|
|
|
mongo = require 'mongodb'
|
|
|
|
|
|
|
|
MONGODB_SERVER = if process.env.NODE_ENV == 'dev' then 'localhost' else 'db04'
|
2012-04-07 14:59:12 -07:00
|
|
|
server = new mongo.Server(MONGODB_SERVER, 27017,
|
|
|
|
auto_reconnect: true
|
|
|
|
poolSize: 12)
|
|
|
|
db = new mongo.Db('newsblur', server)
|
2012-04-07 14:40:04 -07:00
|
|
|
|
|
|
|
app = express.createServer()
|
|
|
|
app.use express.bodyParser()
|
2012-04-07 14:59:12 -07:00
|
|
|
|
|
|
|
db.open (err, client) =>
|
|
|
|
client.collection "feed_icons", (err, @collection) =>
|
2012-04-07 14:40:04 -07:00
|
|
|
|
|
|
|
app.get /^\/rss_feeds\/icon\/(\d+)\/?/, (req, res) =>
|
|
|
|
# console.log "Req: #{req.params}"
|
|
|
|
feed_id = parseInt(req.params, 10)
|
2012-04-07 14:59:12 -07:00
|
|
|
@collection.findOne _id: feed_id, (err, docs) ->
|
|
|
|
if not err and docs and docs.data
|
|
|
|
etag = req.header('If-None-Match')
|
|
|
|
if etag and docs.color == etag
|
|
|
|
res.send 304
|
2012-04-07 14:40:04 -07:00
|
|
|
else
|
2012-04-07 14:59:12 -07:00
|
|
|
res.header 'etag', docs.color
|
|
|
|
res.send new Buffer(docs.data, 'base64'),
|
|
|
|
"Content-Type": "image/png"
|
|
|
|
else
|
|
|
|
res.redirect '/media/img/icons/silk/world.png'
|
2012-04-07 14:40:04 -07:00
|
|
|
|
|
|
|
app.listen 3030
|