const fs = require('fs');
const jsyaml = require('js-yaml');
const path = require('path');
function generateRSS(programs) {
const host = 'https://ysws.hackclub.com';
const now = new Date().toUTCString();
const activePrograms = Object.values(programs)
.flat()
.filter(program => program.status === 'active')
.sort((a, b) => {
if (!a.deadline) return 1;
if (!b.deadline) return -1;
return new Date(a.deadline) - new Date(b.deadline);
});
let rss = `
Deadline: ${new Date(program.deadline).toLocaleDateString('en-US', {
year: 'numeric', month: 'long', day: 'numeric'
})}
${escapeXML(program.detailedDescription)}
` : ''} ${channelRef ? `Join the discussion in ${channelRef}
` : ''} ]]> `; }); rss += ` `; return rss; } function escapeXML(text) { if (!text) return ''; return text .replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, '''); } async function main() { try { const dataFile = path.join(__dirname, 'data.yml'); const fileContent = fs.readFileSync(dataFile, 'utf8'); const data = jsyaml.load(fileContent); const rssFeed = generateRSS(data); fs.writeFileSync(path.join(__dirname, 'feed.xml'), rssFeed); console.log('RSS feed generated successfully!'); } catch (error) { console.error('Error generating RSS feed:', error); process.exit(1); } } main();