var RSS = require('rss');
|
|
|
|
const routes = require('express').Router();
|
|
|
|
const pageBuilder = require('../utils/pageBuilder');
|
|
|
|
const sql = require('../utils/sql');
|
|
|
|
|
|
const generateRSSfeed = function()
|
|
{
|
|
|
|
var feed = new RSS({
|
|
title: 'jrtechs',
|
|
description: 'Jeffery\'s blog which has everything from data-science to cooking',
|
|
feed_url: 'https://jrtechs.net/rss',
|
|
site_url: 'https://jrtechs.net',
|
|
image_url: 'https://jrtechs.net/includes/img/favicon/android-chrome-512x512.png',
|
|
docs: 'https://github.com/jrtechs/NodeJSBlog',
|
|
managingEditor: 'Jeffery Russell',
|
|
webMaster: 'Jeffery Russell',
|
|
copyright: 'Jeffery Russell',
|
|
language: 'en',
|
|
categories: ['other', 'hardware', 'open-source', 'programming', 'projects', 'web-development', 'data-science'],
|
|
});
|
|
|
|
return new Promise((resolve, reject)=>
|
|
{
|
|
sql.getRecentPosts(limit=200).then((data)=>
|
|
{
|
|
for(var i = 0; i < data.length; i++)
|
|
{
|
|
feed.item({
|
|
title: data[i].name,
|
|
url: "https://jrtechs.net/" + data[i].category + "/" + data[i].url,
|
|
date: data[i].published
|
|
});
|
|
}
|
|
resolve(feed.xml());
|
|
}).catch((err)=>
|
|
{
|
|
console.log(err);
|
|
});
|
|
})
|
|
}
|
|
|
|
|
|
routes.get('/', (request, result) =>
|
|
{
|
|
result.set('Content-Type', 'text/xml');
|
|
generateRSSfeed().then((data)=>
|
|
{
|
|
result.send(data);
|
|
}).catch((err)=>
|
|
{
|
|
pageBuilder.print404(result);
|
|
})
|
|
});
|
|
|
|
routes.get('*', (request, result) =>
|
|
{
|
|
pageBuilder.print404(result);
|
|
});
|
|
|
|
module.exports = routes;
|