rsshub
Version:
Make RSS Great Again!
52 lines (50 loc) • 1.84 kB
JavaScript
import { n as init_esm_shims, t as __dirname } from "./esm-shims-CzJ_djXG.mjs";
import "./config-C37vj7VH.mjs";
import "./dist-BInvbO1W.mjs";
import "./logger-Czu8UMNd.mjs";
import "./ofetch-BIyrKU3Y.mjs";
import { t as parseDate } from "./parse-date-BrP7mxXf.mjs";
import "./helpers-DxBp0Pty.mjs";
import { t as art } from "./render-BQo6B4tL.mjs";
import { t as got_default } from "./got-KxxWdaxq.mjs";
import path from "node:path";
import { load } from "cheerio";
//#region lib/routes/techcrunch/category.ts
init_esm_shims();
const host = "https://techcrunch.com";
const route = {
path: "/category/:categoryId",
categories: ["new-media"],
example: "/techcrunch/category/577047203",
parameters: { categoryId: "分类id" },
name: "Category",
maintainers: ["MilliumOrion"],
handler,
description: `Use the category ID to retrieve a list of articles, category ID.
From the page source of \`https://techcrunch.com/category/***\`, locate the \`{category_id}\`
Example:
\`html\` -> \`head\` -> \`<link rel="alternate" title="JSON" type="application/json" href="https://techcrunch.com/wp-json/wp/v2/categories/{category_id}">\``
};
async function handler(ctx) {
const { data } = await got_default(`${host}/wp-json/wp/v2/posts?categories=${ctx.req.param("categoryId")}`);
return {
title: "TechCrunch",
link: host,
description: "Reporting on the business of technology, startups, venture capital funding, and Silicon Valley.",
item: data.map((item) => {
const head = item.yoast_head_json;
const $ = load(item.content.rendered, null, false);
return {
title: item.title.rendered,
description: art(path.join(__dirname, "templates/description-31a2e1da.art"), {
head,
rendered: $.html()
}),
link: item.link,
pubDate: parseDate(item.date_gmt)
};
})
};
}
//#endregion
export { route };