rsshub
Version:
Make RSS Great Again!
54 lines (53 loc) • 2.32 kB
JavaScript
import { t as rofetch } from "./ofetch-C3ts-Hud.mjs";
import { Fragment, jsx, jsxs } from "hono/jsx/jsx-runtime";
import { renderToString } from "hono/jsx/dom/server";
//#region lib/routes/npm/package.tsx
const route = {
path: "/package/:name{(@[a-z0-9-~][a-z0-9-._~]*/)?[a-z0-9-~][a-z0-9-._~]*}",
name: "Package",
maintainers: ["Fatpandac"],
categories: ["program-update"],
example: "/npm/package/rsshub",
radar: [{ source: ["www.npmjs.com/package/:name"] }],
handler
};
async function handler(ctx) {
const name = ctx.req.param("name");
const packageDownloadLastMonthAPI = `https://api.npmjs.org/downloads/point/last-month/${name}`;
const packageDownloadLastWeekAPI = `https://api.npmjs.org/downloads/point/last-week/${name}`;
const packageDownloadLastDayAPI = `https://api.npmjs.org/downloads/point/last-day/${name}`;
const packageVersionAPI = `https://registry.npmjs.org/${name}`;
const downloadCountLastMonthRes = await rofetch(packageDownloadLastMonthAPI);
const downloadCountLastWeekRes = await rofetch(packageDownloadLastWeekAPI);
const downloadCountLastDayRes = await rofetch(packageDownloadLastDayAPI);
const packageVersion = (await rofetch(packageVersionAPI)).time;
const packageVersionList = Object.entries(packageVersion).map(([key, value]) => ({
version: key,
time: value
})).toReversed();
return {
title: `${name} - npm`,
link: `https://www.npmjs.com/package/${name}`,
description: `${name} - npm`,
item: [{
title: `${name} - npm`,
description: renderToString(/* @__PURE__ */ jsxs(Fragment, { children: [
/* @__PURE__ */ jsx("h3", { children: "Download" }),
/* @__PURE__ */ jsxs("p", { children: ["Last Day: ", downloadCountLastDayRes.downloads] }),
/* @__PURE__ */ jsxs("p", { children: ["Last week: ", downloadCountLastWeekRes.downloads] }),
/* @__PURE__ */ jsxs("p", { children: ["Last month: ", downloadCountLastMonthRes.downloads] }),
/* @__PURE__ */ jsx("hr", {}),
/* @__PURE__ */ jsx("h3", { children: "Version" }),
packageVersionList.map((version) => /* @__PURE__ */ jsxs("p", { children: [
version.version,
": ",
version.time
] }))
] })),
link: `https://www.npmjs.com/package/${name}`,
guid: `https://www.npmjs.com/package/${name}${packageVersion.modified}`
}]
};
}
//#endregion
export { route };