chore(auto): task completed - unknown

This commit is contained in:
MythEclipse
2026-06-13 13:35:11 +07:00
parent d569ffa2db
commit 2e14b5e4ed
22 changed files with 516 additions and 172 deletions
@@ -85,7 +85,10 @@ function getTextCaptureTargets(): TextCaptureTarget[] {
const { EFFECTIVE_MONITOR_GUILD_IDS, TEXT_CHANNEL_ID } = config as any;
if (EFFECTIVE_MONITOR_GUILD_IDS?.length) {
if (TEXT_CHANNEL_ID) {
return EFFECTIVE_MONITOR_GUILD_IDS.map((guildId: string) => ({ guildId, channelId: TEXT_CHANNEL_ID }));
return EFFECTIVE_MONITOR_GUILD_IDS.map((guildId: string) => ({
guildId,
channelId: TEXT_CHANNEL_ID,
}));
}
return EFFECTIVE_MONITOR_GUILD_IDS.map((guildId: string) => ({ guildId }));
}
@@ -99,7 +102,9 @@ function shouldCaptureForAnyTarget(
targets: TextCaptureTarget[],
): boolean {
if (targets.length === 0) return false;
return targets.some((target) => shouldCaptureMessageLocation(message, target));
return targets.some((target) =>
shouldCaptureMessageLocation(message, target),
);
}
function requireMessageGuildId(message: Message): string {
@@ -292,8 +297,7 @@ export function registerMessageCapture(client: Client): void {
});
client.on("messageUpdate", async (_oldMessage, newMessage) => {
if (!shouldCaptureForAnyTarget(newMessage, targets))
return;
if (!shouldCaptureForAnyTarget(newMessage, targets)) return;
if (newMessage.author?.bot) return;
if (isAgeRestrictedMessage(newMessage as Message)) return;
@@ -321,9 +325,14 @@ export function registerMessageCapture(client: Client): void {
// Save edit history snapshot before overwriting
if (oldContent) {
insertMessageEdit(newMessage.id, oldContent, editedAt).catch((err: unknown) => {
logger.error({ messageId: newMessage.id, error: err }, "Failed to save edit history");
});
insertMessageEdit(newMessage.id, oldContent, editedAt).catch(
(err: unknown) => {
logger.error(
{ messageId: newMessage.id, error: err },
"Failed to save edit history",
);
},
);
}
await updateMessageAsEdited(
@@ -53,7 +53,11 @@ export class MessageStore {
// ── Edit History ────────────────────────────────────────────────────────
insertMessageEdit(messageId: string, oldContent: string, editedAt: number): Promise<void> {
insertMessageEdit(
messageId: string,
oldContent: string,
editedAt: number,
): Promise<void> {
return this.messages.insertMessageEdit(messageId, oldContent, editedAt);
}
@@ -313,7 +317,8 @@ export const insertMessageEdit = (
messageId: string,
oldContent: string,
editedAt: number,
): Promise<void> => getInstance().insertMessageEdit(messageId, oldContent, editedAt);
): Promise<void> =>
getInstance().insertMessageEdit(messageId, oldContent, editedAt);
// Messages
export const insertMessage = (message: MessageRecord): Promise<void> =>
@@ -2,7 +2,10 @@ import { createChildLogger, type Logger } from "@bete/shared/logger";
import { and, desc, eq, or, type SQL } from "drizzle-orm";
import type { NodePgDatabase } from "drizzle-orm/node-postgres";
import type * as schema from "../../shared/database/schema.js";
import { messagesTable, messageEditsTable } from "../../shared/database/schema.js";
import {
messageEditsTable,
messagesTable,
} from "../../shared/database/schema.js";
import type { MessageRecord } from "../message-capture/types.js";
// ─── Shared Helpers ──────────────────────────────────────────────────────────
@@ -152,11 +155,18 @@ export class MessagesCrud {
try {
await this.db
.insert(messageEditsTable)
.values({ message_id: messageId, old_content: oldContent, edited_at: editedAt })
.values({
message_id: messageId,
old_content: oldContent,
edited_at: editedAt,
})
.onConflictDoNothing();
} catch (error) {
this.logger.error(
{ messageId, error: error instanceof Error ? error.message : String(error) },
{
messageId,
error: error instanceof Error ? error.message : String(error),
},
"Failed to insert message edit",
);
throw error;
@@ -128,7 +128,11 @@ export class MessagesDb {
// ── Edit History ─────────────────────────────────────────────────────────
insertMessageEdit(messageId: string, oldContent: string, editedAt: number): Promise<void> {
insertMessageEdit(
messageId: string,
oldContent: string,
editedAt: number,
): Promise<void> {
return this.crud.insertMessageEdit(messageId, oldContent, editedAt);
}