mirror of
https://github.com/artiemis/artemis.js.git
synced 2026-02-14 10:21:54 +00:00
send errors to owner
This commit is contained in:
parent
6846371810
commit
bb88e335fd
@ -52,6 +52,10 @@ export class ArtemisClient extends Client {
|
|||||||
Promise.all([this.loadCommands(), this.registerEvents()]);
|
Promise.all([this.loadCommands(), this.registerEvents()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async getOwner() {
|
||||||
|
return this.users.fetch(this.ownerId);
|
||||||
|
}
|
||||||
|
|
||||||
async loadCommands() {
|
async loadCommands() {
|
||||||
const commandsDir = path.join(import.meta.dir, "commands");
|
const commandsDir = path.join(import.meta.dir, "commands");
|
||||||
const categories = await fs
|
const categories = await fs
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import {
|
|||||||
isTargetLanguage,
|
isTargetLanguage,
|
||||||
translate as translateDeepl,
|
translate as translateDeepl,
|
||||||
} from "../../utils/deepl";
|
} from "../../utils/deepl";
|
||||||
import { abort, notifyError } from "../../utils/error";
|
import { abort, sendErrorAlert } from "../../utils/error";
|
||||||
import type { OCRResult } from "../../types/ocr";
|
import type { OCRResult } from "../../types/ocr";
|
||||||
import { capitalize, languageCodeToName } from "../../utils/functions";
|
import { capitalize, languageCodeToName } from "../../utils/functions";
|
||||||
import { translate as translateGoogle } from "../../utils/gtrans";
|
import { translate as translateGoogle } from "../../utils/gtrans";
|
||||||
@ -52,7 +52,7 @@ export async function translateImpl(
|
|||||||
target
|
target
|
||||||
).catch(err => {
|
).catch(err => {
|
||||||
logger.error(err, "DeepL error, falling back to Google Translate");
|
logger.error(err, "DeepL error, falling back to Google Translate");
|
||||||
notifyError(err);
|
sendErrorAlert(err);
|
||||||
return translateGoogle(text, "auto", "en");
|
return translateGoogle(text, "auto", "en");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import {
|
|||||||
} from "discord.js";
|
} from "discord.js";
|
||||||
import { defineCommand } from "..";
|
import { defineCommand } from "..";
|
||||||
import { downloadFile } from "../../utils/http";
|
import { downloadFile } from "../../utils/http";
|
||||||
import { abort, notifyError } from "../../utils/error";
|
import { abort, sendErrorAlert } from "../../utils/error";
|
||||||
import { yandexOcr } from "../../utils/yandex";
|
import { yandexOcr } from "../../utils/yandex";
|
||||||
import sharp from "sharp";
|
import sharp from "sharp";
|
||||||
import {
|
import {
|
||||||
@ -88,7 +88,7 @@ export async function ocrImpl(url: string) {
|
|||||||
const result = await lensOcr(compressed)
|
const result = await lensOcr(compressed)
|
||||||
.catch(err => {
|
.catch(err => {
|
||||||
logger.error(err, "Google Lens error, falling back to Yandex");
|
logger.error(err, "Google Lens error, falling back to Yandex");
|
||||||
notifyError(err);
|
sendErrorAlert(err);
|
||||||
return yandexOcr(compressed, type.mime);
|
return yandexOcr(compressed, type.mime);
|
||||||
})
|
})
|
||||||
.catch(() => abort("Failed to OCR the image"));
|
.catch(() => abort("Failed to OCR the image"));
|
||||||
|
|||||||
@ -12,7 +12,7 @@ import {
|
|||||||
import { client } from "../client";
|
import { client } from "../client";
|
||||||
import { logger } from "../utils/logger";
|
import { logger } from "../utils/logger";
|
||||||
import { defineEvent } from ".";
|
import { defineEvent } from ".";
|
||||||
import { isExplicitCommandError, notifyError } from "../utils/error";
|
import { isExplicitCommandError, sendErrorAlert } from "../utils/error";
|
||||||
import { nanoid } from "../utils/functions";
|
import { nanoid } from "../utils/functions";
|
||||||
import type { Command } from "../types/command";
|
import type { Command } from "../types/command";
|
||||||
|
|
||||||
@ -75,7 +75,7 @@ async function handleChatInputCommand(
|
|||||||
const trace = nanoid();
|
const trace = nanoid();
|
||||||
content += `\ntrace: ${inlineCode(trace)}`;
|
content += `\ntrace: ${inlineCode(trace)}`;
|
||||||
logger.error({ trace, err });
|
logger.error({ trace, err });
|
||||||
notifyError(err, trace);
|
sendErrorAlert(err, trace);
|
||||||
}
|
}
|
||||||
|
|
||||||
await interaction[
|
await interaction[
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import { codeBlock, type TextChannel } from "discord.js";
|
import { codeBlock } from "discord.js";
|
||||||
import { client } from "../client";
|
import { client } from "../client";
|
||||||
import { env } from "../env";
|
|
||||||
|
|
||||||
export class ExplicitCommandError extends Error {}
|
export class ExplicitCommandError extends Error {}
|
||||||
|
|
||||||
@ -14,8 +13,9 @@ export function isExplicitCommandError(
|
|||||||
return error instanceof ExplicitCommandError;
|
return error instanceof ExplicitCommandError;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function notifyError(error: any, trace?: string) {
|
export async function sendErrorAlert(error: any, trace?: string) {
|
||||||
return (client.channels.cache.get(env.DEV_CHANNEL_ID) as TextChannel).send({
|
return client.getOwner().then(owner =>
|
||||||
|
owner.send({
|
||||||
content: trace,
|
content: trace,
|
||||||
embeds: [
|
embeds: [
|
||||||
{
|
{
|
||||||
@ -24,5 +24,6 @@ export async function notifyError(error: any, trace?: string) {
|
|||||||
color: 0xff0000,
|
color: 0xff0000,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
});
|
})
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user