rsshub
Version:
Make RSS Great Again!
60 lines (59 loc) • 1.44 kB
JavaScript
import { t as rofetch } from "./ofetch-W1aeTHCo.mjs";
import { t as parseDate } from "./parse-date-CjhZE69i.mjs";
//#region lib/routes/chromium/project-zero-issues.ts
const route = {
path: "/project-zero-issues",
categories: ["programming"],
example: "/chromium/project-zero-issues",
name: "Project Zero Issues",
maintainers: ["hellodword"],
handler
};
const statusMap = {
1: "New",
2: "Assigned",
3: "Accepted",
4: "Fixed",
5: "Verified",
6: "Not Reproducible",
7: "Intended Behavior",
8: "Obsolete",
9: "Infeasible",
10: "Duplicate"
};
async function handler(ctx) {
const baseUrl = "https://project-zero.issues.chromium.org";
const limit = ctx.req.query("limit") ? Number(ctx.req.query("limit")) : 50;
const response = await rofetch(`${baseUrl}/action/issues/list`, {
method: "POST",
body: [
null,
null,
null,
null,
null,
["365"],
[
"",
null,
limit
]
],
responseType: "text"
});
const issues = JSON.parse(response.slice(4))[0][6][0];
return {
title: "project-zero issues",
link: `${baseUrl}/hotlists/365`,
description: "project-zero issues",
item: issues.map((issue) => ({
title: `[${statusMap[issue[2][2]] ?? issue[2][2]}] ${issue[2][5]}`,
description: issue[2][5],
pubDate: parseDate(issue[4][0], "X"),
link: `${baseUrl}/issues/${issue[1]}`,
author: issue[2][14]?.find((field) => field[0] === 1352754)?.[9]
}))
};
}
//#endregion
export { route };