rsshub
Version:
Make RSS Great Again!
60 lines (58 loc) • 2.05 kB
JavaScript
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 };