diff --git a/index.js b/index.js index b9553e6..fd53e03 100644 --- a/index.js +++ b/index.js @@ -33,6 +33,8 @@ function doCache(res,durationSecs){ }) } + +// this just redirects to the app.options('/api/feed',cors()); app.get('/api/feed',cors(),function(req,res){ @@ -41,53 +43,21 @@ app.get('/api/feed',cors(),function(req,res){ if (!feedUrl){ res.status(400); res.send('You need to specify a feed URL'); + return; } - var opts = {}; - 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; - } - } + var userUrl = feedUrl.replace(/\.atom$/i,''); - opts.boosts = true; - if (req.query.boosts){ - if (req.query.boosts.toLowerCase() == 'no' || req.query.boosts.toLowerCase() == 'false'){ - opts.boosts = false; - }else{ - opts.boosts = true; - } - } + var redirectUrl = '/apiv2/feed?'; + var qs = ['userurl='+userUrl]; - opts.replies = true; - if (req.query.replies){ - if (req.query.replies.toLowerCase() == 'no' || req.query.replies.toLowerCase() == 'false'){ - opts.replies = false; - }else{ - opts.replies = true; + (['size','theme','boosts','replies']).forEach(key=>{ + if (typeof req.query[key] != 'undefined'){ + qs.push(key+'='+encodeURIComponent(req.query[key])); } - } - opts.feedUrl = feedUrl; - opts.mastofeedUrl = req.url; + }) - var req = request.get(feedUrl); - convert(req,opts,function(er,data){ - if (er){ - res.status(500); - return res.send('Error fetching or parsing your feed.'); - } - res.status(200); - doCache(res,60*60) - res.send(data); - }); + res.redirect(redirectUrl + qs.join('&')); }); @@ -100,6 +70,7 @@ app.get('/apiv2/feed',cors(),function(req,res){ if (!userUrl){ res.status(400); res.send('You need to specify a user URL'); + return; } var feedUrl = req.query.feedurl; diff --git a/static/index.html b/static/index.html index 3d646ec..9d9de0c 100644 --- a/static/index.html +++ b/static/index.html @@ -35,7 +35,7 @@

Live Preview:

- +