From 064f58ce3be4430d82309bb135ce7b17c9554e00 Mon Sep 17 00:00:00 2001 From: Tommaso Morganti Date: Mon, 13 Apr 2026 18:35:00 +0200 Subject: [PATCH 1/6] fix(ban-all): report progress on job failure --- src/modules/moderation/ban-all.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/modules/moderation/ban-all.ts b/src/modules/moderation/ban-all.ts index b28dc90..51227c8 100644 --- a/src/modules/moderation/ban-all.ts +++ b/src/modules/moderation/ban-all.ts @@ -208,8 +208,7 @@ export class BanAllQueue extends Module { * Register event listeners when the module is loaded */ override async start() { - // set the listener to update the parent job progress - this.executor.on("completed", async (job) => { + const reportProgress = async (job: BanJob) => { // this listener recomputes the progress for the parent job every time a child job is completed const parentID = job.parent?.id if (!parentID) return @@ -237,6 +236,11 @@ export class BanAllQueue extends Module { successCount, failedCount: failed, } satisfies BanAllState) + } + + this.executor.on("completed", (job) => reportProgress(job)) + this.executor.on("failed", (job) => { + if (job) void reportProgress(job) }) // throttled call to update the message, to avoid spamming Telegram API From 38b9887c9ff58e943e6145dff85dfb89d649f33f Mon Sep 17 00:00:00 2001 From: Tommaso Morganti Date: Mon, 13 Apr 2026 18:41:31 +0200 Subject: [PATCH 2/6] fix: report error on edit failed --- src/modules/moderation/ban-all.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/moderation/ban-all.ts b/src/modules/moderation/ban-all.ts index 51227c8..6eacc22 100644 --- a/src/modules/moderation/ban-all.ts +++ b/src/modules/moderation/ban-all.ts @@ -249,8 +249,8 @@ export class BanAllQueue extends Module { void modules .get("tgLogger") .banAllProgress(banAll, messageId) - .catch(() => { - logger.warn("[BanAllQueue] Failed to update ban all progress message") + .catch((error) => { + logger.warn({ error }, "[BanAllQueue] Failed to update ban all progress message") }) }, CONFIG.UPDATE_MESSAGE_THROTTLE_MS) From 5fcb706f1c9bd50c5035b97f6b982e161d4c7757 Mon Sep 17 00:00:00 2001 From: Tommaso Morganti Date: Mon, 13 Apr 2026 18:43:51 +0200 Subject: [PATCH 3/6] dbg --- src/modules/moderation/ban-all.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/modules/moderation/ban-all.ts b/src/modules/moderation/ban-all.ts index 6eacc22..3fd1c3d 100644 --- a/src/modules/moderation/ban-all.ts +++ b/src/modules/moderation/ban-all.ts @@ -220,6 +220,9 @@ export class BanAllQueue extends Module { ignored: true, unprocessed: true, }) + + logger.debug({ parentId: parentID, ...rawNumbers }, "[BanAllQueue] Current progress for parent job") + // get child counts const { failed, ignored, processed, unprocessed } = { failed: 0, From b65cf95b1661dcae86accdbc4b1d95225bc35570 Mon Sep 17 00:00:00 2001 From: Lorenzo Corallo Date: Mon, 13 Apr 2026 18:47:36 +0200 Subject: [PATCH 4/6] fix: do not ban from hidden groups --- src/modules/moderation/ban-all.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/moderation/ban-all.ts b/src/modules/moderation/ban-all.ts index 3fd1c3d..46d2672 100644 --- a/src/modules/moderation/ban-all.ts +++ b/src/modules/moderation/ban-all.ts @@ -172,7 +172,7 @@ export class BanAllQueue extends Module { public async initiateBanAll(banAll: BanAll, messageId: number) { const allGroups = await api.tg.groups.getAll.query() - const chats = allGroups.map((g) => g.telegramId) + const chats = allGroups.filter((g) => !g.hide).map((g) => g.telegramId) const banType = banAll.type === "BAN" ? "ban" : "unban" await api.tg.auditLog.create From 86e563013384ca42487e60f71f37cf1d26040ebd Mon Sep 17 00:00:00 2001 From: Tommaso Morganti Date: Mon, 13 Apr 2026 18:53:35 +0200 Subject: [PATCH 5/6] fix: continue parent on failure --- src/modules/moderation/ban-all.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/modules/moderation/ban-all.ts b/src/modules/moderation/ban-all.ts index 3fd1c3d..154164e 100644 --- a/src/modules/moderation/ban-all.ts +++ b/src/modules/moderation/ban-all.ts @@ -195,6 +195,7 @@ export class BanAllQueue extends Module { children: chats.map((chat) => ({ name: banType, queueName: CONFIG.EXECUTOR_QUEUE, + opts: { continueParentOnFailure: true }, data: { chatId: chat, targetId: banAll.target.id, @@ -221,8 +222,6 @@ export class BanAllQueue extends Module { unprocessed: true, }) - logger.debug({ parentId: parentID, ...rawNumbers }, "[BanAllQueue] Current progress for parent job") - // get child counts const { failed, ignored, processed, unprocessed } = { failed: 0, From cd38add3373100ed95903546a9482b2b4fe5f43d Mon Sep 17 00:00:00 2001 From: Lorenzo Corallo Date: Mon, 13 Apr 2026 19:04:49 +0200 Subject: [PATCH 6/6] fix: these numbers make me go crazy --- src/modules/moderation/ban-all.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/modules/moderation/ban-all.ts b/src/modules/moderation/ban-all.ts index 7ad57b6..81fab55 100644 --- a/src/modules/moderation/ban-all.ts +++ b/src/modules/moderation/ban-all.ts @@ -231,12 +231,10 @@ export class BanAllQueue extends Module { ...rawNumbers, } - const successCount = processed - (failed + ignored) - const total = processed + unprocessed await parent.updateProgress({ - jobCount: total, - successCount, - failedCount: failed, + jobCount: processed + unprocessed + ignored + failed, + successCount: processed, + failedCount: failed + ignored, } satisfies BanAllState) }