Changes in src/routes/feed.js [59d963f:4d81de5] in Klonkt


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/feed.js

    r59d963f r4d81de5  
    4444
    4545// ==================== RSS 2.0 ====================
    46 /**
    47  * Twee feeds, een bouwer.
    48  *
    49  *   /feed.xml    de site: posts EN open tracks door elkaar, chronologisch
    50  *   /tracks.xml  alleen de open tracks -- de hele site als muziekkanaal
    51  *
    52  * WAAROM DIE TWEEDE (Robins vraag, 10-8). Hij vroeg naar een "hele site, open
    53  * tracks"-library voor Funkwhale. Als AS2-object helpt zo'n ding daar niet: een
    54  * Funkwhale-KANAAL wijst nergens naar een library, en hun library is een eigen
    55  * actor met inbox en sleutel -- de optie die op 7 augustus is afgewezen. Maar de
    56  * vorm waarin Funkwhale een kanaal WEL uitgeeft is RSS met iTunes en een
    57  * enclosure per item, en dat is precies wat Klonkt hier al doet. Naast een echte
    58  * kanaalfeed gelegd (audio.pepemoss.com/api/v1/channels/tnd/rss): dezelfde
    59  * namespaces, dezelfde enclosure.
    60  *
    61  * Het enige verschil was dat onze feed ook gewone posts draagt. Een muziekkanaal
    62  * met blogberichten ertussen is er geen, dus die feed staat er nu apart -- een
    63  * URL om te plakken, zonder dat er iets naar buiten geduwd wordt.
    64  */
    65 function stuurFeed(req, res, { alleenTracks }) {
     46router.get('/feed.xml', (req, res) => {
    6647  const site = res.locals.site;
    6748  if (!site) return res.status(404).send('No site');
     
    6950  const origin = siteOrigin(req);
    7051  const base = origin + (res.locals.siteUrlBase || '');
    71   const posts = alleenTracks ? [] : postsForFeed(site.id);
     52  const posts = postsForFeed(site.id);
    7253
    7354  // De tracks die deze site aan de federatie heeft opengezet, elk als eigen
     
    8465  // poortregel en die hoort op een plek te staan.
    8566  const tracks = siteOpenTracks(site.id);
    86   const lastBuild = posts[0]?.published_at || tracks[0]?.created_at || new Date().toISOString();
     67  const lastBuild = posts[0]?.published_at || new Date().toISOString();
    8768
    8869  // De itunes-velden waar een podcast-app een kanaal aan herkent. Funkwhale
     
    136117<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
    137118  <channel>
    138     <title>${escapeXml(alleenTracks ? `${site.title} \u2014 muziek` : site.title)}</title>
     119    <title>${escapeXml(site.title)}</title>
    139120    <link>${escapeXml(base + '/')}</link>
    140121    <description>${escapeXml(site.description || site.tagline || '')}</description>
    141122    <language>${escapeXml(site.language || 'nl')}</language>
    142123    <lastBuildDate>${new Date(lastBuild).toUTCString()}</lastBuildDate>
    143     <atom:link href="${escapeXml(base + (alleenTracks ? '/tracks.xml' : '/feed.xml'))}" rel="self" type="application/rss+xml" />
     124    <atom:link href="${escapeXml(base + '/feed.xml')}" rel="self" type="application/rss+xml" />
    144125${kanaalTags}
    145126${items}
    146127  </channel>
    147128</rss>`);
    148 }
    149 
    150 router.get('/feed.xml', (req, res) => stuurFeed(req, res, { alleenTracks: false }));
    151 // De hele site als muziekkanaal: alleen wat op de federatie openstaat.
    152 router.get('/tracks.xml', (req, res) => stuurFeed(req, res, { alleenTracks: true }));
     129});
    153130
    154131// ==================== Atom 1.0 ====================
Note: See TracChangeset for help on using the changeset viewer.