import { In } from "typeorm"; import { Mutings } from "../../../models/index.js"; import { queueLogger } from "../../logger.js"; import { publishUserEvent } from "../../../services/stream.js"; const logger = queueLogger.createSubLogger("check-expired-mutings"); export async function checkExpiredMutings() { logger.info("Checking expired mutings..."); const expired = await Mutings.createQueryBuilder("muting").where("muting.expiresAt IS NOT NULL").andWhere("muting.expiresAt < :now", { now: new Date() }).innerJoinAndSelect("muting.mutee", "mutee").getMany(); if (expired.length > 0) { await Mutings.delete({ id: In(expired.map((m)=>m.id)) }); for (const m of expired){ publishUserEvent(m.muterId, "unmute", m.mutee); } } logger.succ("All expired mutings checked."); return "Success"; }