From 3bdd1c1d25bdbb413aceec17cb9d2f0ff63e8368 Mon Sep 17 00:00:00 2001 From: August Skare Date: Fri, 10 Mar 2023 13:15:00 +0100 Subject: [PATCH] Feature/image desc (#1) --- lib/nrk.ts | 1 + routes/api/feeds/[seriesId].ts | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/nrk.ts b/lib/nrk.ts index 309356d..ec99ed8 100644 --- a/lib/nrk.ts +++ b/lib/nrk.ts @@ -17,6 +17,7 @@ export type Episode = { titles: { title: string, description: string, + subtitle: string, }, durationInSeconds: number, date: string, diff --git a/routes/api/feeds/[seriesId].ts b/routes/api/feeds/[seriesId].ts index 55fd217..db51b16 100644 --- a/routes/api/feeds/[seriesId].ts +++ b/routes/api/feeds/[seriesId].ts @@ -4,11 +4,12 @@ import { HandlerContext } from "$fresh/server.ts"; import { serialize, tag, declaration } from "https://deno.land/x/serializexml@v0.3.2/mod.ts"; function toItemTag(episode: Episode) { + const description = episode.titles.description || episode.titles.subtitle; return tag("item", [ tag("title", episode.titles.title), tag("link", episode.url), - tag("description", episode.titles.description), - tag("itunes:summary", episode.titles.description), + tag("description", description), + tag("itunes:summary", description), tag("guid", episode.id, [["isPermaLink", "false"]]), tag("pubDate", episode.date), tag("enclosure", "", [ @@ -22,7 +23,6 @@ function toItemTag(episode: Episode) { async function buildFeed(seriesId: any) { const serie = await nrkRadio.getSerieData(seriesId) - // Quickly adapted from https://raw.githubusercontent.com/olaven/paperpod/1cde9abd3174b26e126aa74fc5a3b63fd078c0fd/packages/converter/src/rss.ts return serialize( declaration([ @@ -40,8 +40,11 @@ async function buildFeed(seriesId: any) { serie.subtitle ), tag("ttl", "60"), //60 minutes + tag("itunes:image", "", [ + ["href", serie.image.url], + ]), tag("image", [ - tag("url", serie.image.uri), + tag("url", serie.image.url), tag("title", serie.title), ]), ...serie.episodes.map(toItemTag),