diff --git a/tasks/fetch_feed.js b/tasks/fetch_feed.js index 67629706a3c..8baf5e10681 100644 --- a/tasks/fetch_feed.js +++ b/tasks/fetch_feed.js @@ -1,10 +1,12 @@ const { writeFileSync } = require('fs') const { join, resolve } = require('path') const { replacements } = require('../helpers') +const request = require('sync-request') const Parser = require('rss-parser') -const dir = resolve(__dirname, '..', 'generated') -const write = (name, data) => writeFileSync(join(dir, `${name}.json`), JSON.stringify(data, null, 2)) +const dir = resolve(__dirname, '..') +const write = (name, data) => writeFileSync(join(dir, name), data) +const writeJSON = (name, data) => write(`generated/${name}.json`, JSON.stringify(data, null, 2)) const slugify = str => str.toLowerCase() .replace('ä', 'ae').replace('ö', 'oe').replace('ü', 'ue') @@ -23,11 +25,16 @@ const parseInfo = e => { } ;(async () => { + // Load and adapt feed + let xml = request('GET', 'https://anchor.fm/s/d8d3c38/podcast/rss').getBody('utf8') + xml = xml.replace(/(.*?)<\/itunes:email>/, 'einundzwanzigpodcast@pm.me') + // Parse feed const parser = new Parser() - const feed = await parser.parseURL('https://anchor.fm/s/d8d3c38/podcast/rss') + const feed = await parser.parseString(xml) // Original Anchor-Feed - write('feed', feed) + write('dist/feed.xml', xml) + writeJSON('feed', feed) // All episodes const episodes = feed.items.map(e => { @@ -50,5 +57,5 @@ const parseInfo = e => { } }) - write('episodes', episodes) + writeJSON('episodes', episodes) })()