UNPKG

rsshub

Version:
49 lines (48 loc) 1.48 kB
import { t as got_default } from "./got-BTowW50G.mjs"; import { load } from "cheerio"; //#region lib/routes/engineering/tag.ts const route = { path: "/tag/:tag", categories: ["programming"], example: "/engineering/tag/javascript", parameters: { tag: "Browse programming languages, frameworks, and technologies" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [{ source: ["engineering.fyi/tag/:tag"] }], name: "Tag", maintainers: ["suhang-only"], handler, description: `| JSON | Javascript | Java | Apache | AWS | SQL | React | Golang | | ---- | ---------- | ---- | ------ | --- | --- | ----- | ------ | | json | javascript | java | apache | aws | sql | react | golang |` }; async function handler(ctx) { const tag = ctx.req.param("tag"); const { data: response } = await got_default(`https://engineering.fyi/tag/${tag}`); const $ = load(response); const items = $("div.text-card-foreground").toArray().map((item) => { const $item = $(item); const a = $item.find("a").eq(2); const description = $item.find(".leading-relaxed"); const author = $item.find(".truncate"); return { title: a.text(), link: a.attr("href"), description: description.text(), author: author.text() }; }); return { title: `engineering.fyi ${tag}`, link: `https://engineering.fyi/tag/${tag}`, item: items }; } //#endregion export { route };