This commit is contained in:
Dennis Reimann
2023-10-05 09:47:49 +02:00
parent bebb5f49e4
commit 9395a399c1
14 changed files with 71 additions and 182 deletions

View File

@@ -1,6 +1,6 @@
const { writeFileSync } = require('fs')
const { join, resolve } = require('path')
const { replacements, slugify, stripHTML, memberUrl } = require('../helpers')
const { replacements, slugify, stripHTML } = require('../helpers')
const { masterFeedUrl, publicFeedUrl } = require('../content/meta.json')
const team = require('../content/team.json')
const request = require('sync-request')
@@ -67,7 +67,7 @@ const parseEpisode = e => {
const duration = e['itunes:duration']
const enclosure = e.enclosure.__attr
const [, participantsString] =
firstLine.match(/(?:(?:von\sund\s)?mit\s)([^.]*)/i) || []
firstLine.match(/[-–—]\s?(?:(?:von\sund\s)?mit\s)([^.]*)/i) || []
const participants = participantsString
? participantsString
.replace(/(\s*,\s*|\s*und\s*|\s*&\s*)/gi, '%')
@@ -107,15 +107,8 @@ const parseEpisode = e => {
const feed = parser.parse(xml)
const episodes = []
const _noParticipants = [],
_noNode = []
const members = [
{ name: 'Dennis', ...team.dennis.v4v },
{ name: 'Fab', ...team.fab.v4v },
{ name: 'Gigi', ...team.gigi.v4v },
{ name: 'Markus', ...team.markus.v4v },
{ name: 'Daniel', ...team.daniel.v4v }
]
const _noParticipants = [], _noNode = []
const members = [team.dennis, team.fab, team.gigi, team.markus, team.daniel]
// remove invalid tag
delete feed.rss.channel.author
@@ -128,9 +121,10 @@ const parseEpisode = e => {
},
'podcast:valueRecipient': members.map(p => ({
__attr: {
...p,
name: p.name,
type: 'node',
split: Math.round(100 / members.length)
split: Math.round(100 / members.length),
...p.v4v
}
}))
}

View File

@@ -1,14 +1,13 @@
const pug = require('pug')
const { mkdirSync, writeFileSync } = require('fs')
const { dirname, resolve } = require('path')
const { slugify } = require('../helpers')
const config = require('../pug.config')
const site = require('../generated/site-data.json')
const episodes = require('../generated/episodes.json')
const spendenregister = require('../generated/spendenregister.json')
const spendenuebersicht = require('../content/spendenuebersicht.json').reverse()
const team = require('../content/team.json')
const kurse = require('../content/kurse.json')
const shops = require('../content/shops.json')
const soundboard = require('../content/soundboard.json')
const adventskalender = require('../content/adventskalender-2022.json')
@@ -44,7 +43,6 @@ renderPage('index', 'index', { navCurrent: 'index', currentEpisode: episodes[0],
renderPage('podcast', 'podcast', { navCurrent: 'podcast', episodes: [...episodes], team })
renderPage('adventskalender', 'adventskalender', { adventskalender })
renderPage('meetups', 'meetups', { navCurrent: 'meetups', meetups: site.meetups })
renderPage('kurse', 'kurse', { navCurrent: 'kurse', kurse })
renderPage('spenden', 'spenden', { navCurrent: 'spenden', spendenregister, spendenuebersicht })
renderPage('media', 'media', { navCurrent: 'media' })
renderPage('soundboard', 'soundboard', { navCurrent: 'soundboard', soundboard })
@@ -56,4 +54,10 @@ renderPage('datenschutz', 'datenschutz', { navCurrent: 'datenschutz' })
renderPage('adventskalender', 'adventskalender', { adventskalender })
episodes.forEach(episode => renderPage('episode', `podcast/${episode.slug}`, { navCurrent: 'podcast', episode, team }))
Object.keys(categories).forEach(category => renderPage('category', `podcast/${category}`, { navCurrent: 'podcast', category, categoryName: categories[category], episodes: episodes.filter(e => e.category === category), team }))
Object.keys(categories).forEach(category => renderPage('category', `podcast/${slugify(categories[category])}`, { navCurrent: 'podcast', category, categoryName: categories[category], episodes: episodes.filter(e => e.category === category), team }))
Object.keys(team).forEach(id => {
const member = team[id]
const alias = member.name.toLowerCase()
const eps = episodes.filter(e => e.participants.find(p => [id, alias].includes(p.toLowerCase())))
renderPage('member', `team/${slugify(id)}`, { navCurrent: 'podcast', member, episodes: eps, team })
})