import { URL } from "node:url"; import define from "../../../define.js"; import { inboxQueue } from "@/queue/queues.js"; export const meta = { tags: ["admin"], requireCredential: true, requireModerator: true, res: { type: "array", optional: false, nullable: false, items: { type: "array", optional: false, nullable: false, items: { anyOf: [ { type: "string", }, { type: "number", }, ], }, }, example: [["example.com", 12]], }, } as const; export const paramDef = { type: "object", properties: {}, required: [], } as const; export default define(meta, paramDef, async (ps) => { const jobs = await inboxQueue.getJobs(["delayed"]); const res = [] as [string, number][]; for (const job of jobs) { const host = new URL(job.data.signature.keyId).host; if (res.find((x) => x[0] === host)) { res.find((x) => x[0] === host)![1]++; } else { res.push([host, 1]); } } res.sort((a, b) => b[1] - a[1]); return res; });