mastofeed-iframe-embed/index.js

65 lines
1.3 KiB
JavaScript
Raw Normal View History

2017-04-30 04:14:25 +02:00
var Express = require('express');
var convert = require('./lib/convert');
var serveStatic = require('serve-static');
var request = require('request');
2017-04-30 22:46:35 +02:00
var log = console.log;
2017-04-30 04:14:25 +02:00
var app = Express();
2017-05-01 01:32:49 +02:00
function logMiddleware(req,res,next){
log(req.method.toUpperCase() +' '+ req.url);
log( '\t'+ new Date().toISOString() );
if(req.headers && req.headers.referer){
log('\tReferer: '+req.headers.referer);
}
return next(null);
}
app.use(logMiddleware);
app.use(
serveStatic('static',{
maxAge:'1d'
})
);
2017-04-30 04:14:25 +02:00
app.get('/api/feed',function(req,res){
2017-04-30 22:46:35 +02:00
2017-04-30 04:14:25 +02:00
// get feed url
var feedUrl = req.query.url;
if (!feedUrl){
res.status(400);
res.send('You need to specify a feed URL');
}
2017-04-30 21:44:32 +02:00
2017-04-30 04:14:25 +02:00
var opts = {};
2017-04-30 21:44:32 +02:00
if (req.query.size){
opts.size = req.query.size;
}
if (req.query.theme){
opts.theme = req.query.theme;
}
if (req.query.header){
if (req.query.header.toLowerCase() == 'no' || req.query.header.toLowerCase() == 'false'){
opts.header = false;
}else{
opts.header = true;
}
}
2017-04-30 21:44:32 +02:00
2017-04-30 04:14:25 +02:00
var req = request.get(feedUrl);
2017-04-30 21:44:32 +02:00
convert(req,opts,function(er,data){
2017-04-30 04:14:25 +02:00
if (er){
res.status(500);
2017-05-02 05:11:29 +02:00
return res.send('Error fetching or parsing your feed.');
2017-04-30 04:14:25 +02:00
}
res.status(200);
res.send(data);
});
2017-04-30 21:44:32 +02:00
2017-04-30 04:14:25 +02:00
});
app.listen(process.env.PORT || 8000,function(){
2017-05-01 01:32:49 +02:00
log('listening on '+(process.env.PORT || 8000));
2017-04-30 04:14:25 +02:00
});