Files
2026-07-26 18:25:37 +09:00

61 lines
1.3 KiB
JavaScript

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
]
]
}
};
export const paramDef = {
type: "object",
properties: {},
required: []
};
export default define(meta, paramDef, async (ps)=>{
const jobs = await inboxQueue.getJobs([
"delayed"
]);
const res = [];
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;
});