UNPKG

rsshub

Version:
37 lines (36 loc) 1.27 kB
import { t as rofetch } from "./ofetch-W1aeTHCo.mjs"; import { t as parseDate } from "./parse-date-CjhZE69i.mjs"; import { t as cache_default } from "./cache-CiDoUSLo.mjs"; import { load } from "cheerio"; //#region lib/routes/99percentinvisible/transcript.ts const route = { path: "/transcript", categories: ["multimedia"], example: "/99percentinvisible/transcript", name: "Transcript", maintainers: ["Ji4n1ng"], handler }; const host = "https://99percentinvisible.org/"; async function handler() { const link = new URL("archives/", host).href; const $ = load(await rofetch(link)); const episodePrefix = new URL("episode/", host).href; const list = $(".content .post-blocks a.post-image").toArray().map((e) => `${$(e).attr("href")}transcript/`).filter((e) => e.startsWith(episodePrefix)); return { title: "99% Invisible Transcript", link, item: await Promise.all(list.map((itemUrl) => cache_default.tryGet(itemUrl, async () => { const $ = load(await rofetch(itemUrl)); return { title: $("article header h1").text(), link: itemUrl, author: "99% Invisible", description: $("article .page-content").html(), pubDate: parseDate($("article header .entry-meta time").attr("datetime")) }; }))) }; } //#endregion export { route };