UNPKG

rsshub

Version:
60 lines (58 loc) 2.05 kB
import "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import { t as ofetch_default } from "./ofetch-BIyrKU3Y.mjs"; import { load } from "cheerio"; //#region lib/routes/itc/collection.ts /** * OpenGithub - Github开源项目精选 * colType:0 | 1 | 2 | 3 */ var COL_TYPE = /* @__PURE__ */ function(COL_TYPE$1) { COL_TYPE$1[COL_TYPE$1["HANDPICK"] = 0] = "HANDPICK"; COL_TYPE$1[COL_TYPE$1["SPECIAL"] = 1] = "SPECIAL"; COL_TYPE$1[COL_TYPE$1["WEEKLY"] = 2] = "WEEKLY"; COL_TYPE$1[COL_TYPE$1["MONTHLY"] = 3] = "MONTHLY"; return COL_TYPE$1; }(COL_TYPE || {}); const RESULT_DESC_MAP = { [COL_TYPE.HANDPICK]: "OpenGithub - Github开源项目精选 - 精选文章", [COL_TYPE.SPECIAL]: "OpenGithub - Github开源项目精选 - 专栏", [COL_TYPE.WEEKLY]: "OpenGithub - Github开源项目精选 - 周刊", [COL_TYPE.MONTHLY]: "OpenGithub - Github开源项目精选 - 月刊" }; const route = { path: "/collection/:colType", categories: ["blog"], example: "/itc/collection/1", radar: [{ source: ["open.itc.cn/"] }], name: "合集", maintainers: ["cnkmmk"], handler }; async function handler(ctx) { const url = "https://open.itc.cn"; const colType = ctx.req.param("colType"); const result = { title: RESULT_DESC_MAP[colType] ?? "NULL", link: url, description: RESULT_DESC_MAP[colType] ?? "NULL", item: [] }; const $ = load(await ofetch_default(`${url}/github/collection/list?colType=${colType}`)); result.item = [...$(".tab-pane > .row > .card")].map((item) => { const date = $(item).find(".d-flex.mt-3.ms-sm-auto").text()?.split(":")?.[1]; const dataObject = date ? new Date(date) : void 0; return { title: $(item).find("a.btn-link").text(), description: $(item).find(".d-sm-inline-block").text(), link: $(item).find("a.btn-link").attr("href") || "", pubDate: dataObject, category: [...$(item).find(".nav.nav-stack.small li")].map((sub) => $(sub).find(".badge").text()) }; }); return result; } //#endregion export { route };