61 lines
1.3 KiB
JavaScript
61 lines
1.3 KiB
JavaScript
import { deliverQueue } from "../../../../../queue/queues.js";
|
|
import { URL } from "node:url";
|
|
import define from "../../../define.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 deliverQueue.getJobs([
|
|
"delayed"
|
|
]);
|
|
const res = [];
|
|
for (const job of jobs){
|
|
const host = new URL(job.data.to).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;
|
|
});
|