UNPKG

rsshub

Version:
59 lines (57 loc) 1.99 kB
import "./dist-Bog6z_OM.mjs"; import "./config-MQ-7ebJ_.mjs"; import "./logger-C4avouvV.mjs"; import { t as ofetch_default } from "./ofetch-DKl_Ma9g.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) { COL_TYPE[COL_TYPE["HANDPICK"] = 0] = "HANDPICK"; COL_TYPE[COL_TYPE["SPECIAL"] = 1] = "SPECIAL"; COL_TYPE[COL_TYPE["WEEKLY"] = 2] = "WEEKLY"; COL_TYPE[COL_TYPE["MONTHLY"] = 3] = "MONTHLY"; return COL_TYPE; }(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 };