rsshub
Version:
Make RSS Great Again!
37 lines (36 loc) • 1.27 kB
JavaScript
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 };