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;
});
