rsshub
Version:
Make RSS Great Again!
34 lines (33 loc) • 1.17 kB
JavaScript
import { t as rofetch } from "./ofetch-U0CdpE2g.mjs";
import { t as PRESETS } from "./header-generator-DACPoxdp.mjs";
import { n as parseItem, r as parseList, t as baseUrl } from "./utils-uzD32nKO.mjs";
import { load } from "cheerio";
import pMap from "p-map";
//#region lib/routes/byteclicks/tag.ts
const route = {
path: "/tag/:tag",
categories: ["new-media"],
example: "/byteclicks/tag/人工智能",
parameters: { tag: "标签,可在URL中找到" },
radar: [{ source: ["byteclicks.com/tag/:tag"] }],
name: "标签",
maintainers: ["TonyRL"],
handler,
url: "byteclicks.com/"
};
async function handler(ctx) {
const tag = ctx.req.param("tag");
const link = `${baseUrl}/tag/${tag}`;
const response = await rofetch(link, { headerGeneratorOptions: PRESETS.MODERN_WINDOWS_CHROME });
const $ = load(response);
const list = parseList($).slice(0, ctx.req.query("limit") ? Number(ctx.req.query("limit")) : void 0);
const items = await pMap(list, (item) => parseItem(item), { concurrency: 5 });
return {
title: $("head title").text(),
image: $("head link[rel=\"shortcut icon\"]").attr("href"),
link,
item: items
};
}
//#endregion
export { route };