diff --git a/bun.lock b/bun.lock index d0bed6c..eb403aa 100644 --- a/bun.lock +++ b/bun.lock @@ -8,6 +8,7 @@ "@sapphire/discord.js-utilities": "^7.3.2", "cheerio": "^1.0.0", "chrome-lens-ocr": "^4.0.4", + "common-tags": "^1.8.2", "deepl-node": "^1.16.0", "discord.js": "^14.18.0", "execa": "^9.5.2", @@ -25,6 +26,7 @@ "devDependencies": { "@eslint/js": "^9.20.0", "@types/bun": "latest", + "@types/common-tags": "^1.8.4", "eslint": "^9.20.1", "typescript-eslint": "^8.24.0", }, @@ -146,6 +148,8 @@ "@types/bun": ["@types/bun@1.2.2", "", { "dependencies": { "bun-types": "1.2.2" } }, "sha512-tr74gdku+AEDN5ergNiBnplr7hpDp3V1h7fqI2GcR/rsUaM39jpSeKH0TFibRvU0KwniRx5POgaYnaXbk0hU+w=="], + "@types/common-tags": ["@types/common-tags@1.8.4", "", {}, "sha512-S+1hLDJPjWNDhcGxsxEbepzaxWqURP/o+3cP4aa2w7yBXgdcmKGQtZzP8JbyfOd0m+33nh+8+kvxYE2UJtBDkg=="], + "@types/estree": ["@types/estree@1.0.6", "", {}, "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw=="], "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], @@ -222,6 +226,8 @@ "combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="], + "common-tags": ["common-tags@1.8.2", "", {}, "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA=="], + "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], diff --git a/package.json b/package.json index b3a429c..19735e6 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "@sapphire/discord.js-utilities": "^7.3.2", "cheerio": "^1.0.0", "chrome-lens-ocr": "^4.0.4", + "common-tags": "^1.8.2", "deepl-node": "^1.16.0", "discord.js": "^14.18.0", "execa": "^9.5.2", @@ -32,6 +33,7 @@ "devDependencies": { "@eslint/js": "^9.20.0", "@types/bun": "latest", + "@types/common-tags": "^1.8.4", "eslint": "^9.20.1", "typescript-eslint": "^8.24.0" }, diff --git a/src/events/messageCreate.ts b/src/events/messageCreate.ts index 5b56f04..307176f 100644 --- a/src/events/messageCreate.ts +++ b/src/events/messageCreate.ts @@ -1,7 +1,8 @@ import { Events } from "discord.js"; import { defineEvent } from "."; -import { dedent, pickRandom } from "../utils/functions"; +import { pickRandom } from "../utils/functions"; import { BAD_BOT_EMOJIS, GOOD_BOT_EMOJIS } from "../utils/constants"; +import { stripIndents } from "common-tags"; export default defineEvent({ name: Events.MessageCreate, @@ -12,11 +13,11 @@ export default defineEvent({ const command = message.content.match(/^\$[a-zA-Z]+$/); if (command) { if ( - ["lens", "lenstr", "deepl"].includes(command[0].slice(1)) && + ["ocr", "lens", "lenstr", "deepl"].includes(command[0].slice(1)) && message.reference ) { await message.reply( - dedent`The bot has migrated to application commands! + stripIndents`The bot has migrated to application commands! If you wish to OCR and/or translate someone else's message, please select the appropriate action from the context menu on their message. Desktop: Right click on the message and select the action you wish to perform. @@ -28,7 +29,7 @@ export default defineEvent({ } await message.reply( - dedent`The bot has migrated to slash commands! + stripIndents`The bot has migrated to slash commands! Start typing \`/\` to see the available commands. For example: \`/${command[0].slice(1)}\` diff --git a/src/utils/functions.ts b/src/utils/functions.ts index 9dac1d2..58323e2 100644 --- a/src/utils/functions.ts +++ b/src/utils/functions.ts @@ -49,15 +49,6 @@ export async function silently>(p?: T) { } catch {} } -export function dedent(parts: TemplateStringsArray, ...values: unknown[]) { - return parts - .flatMap((part, i) => - i < values.length ? [part, String(values[i])] : [part] - ) - .join("") - .replace(/^ +/gm, ""); -} - export function lazy(cb: () => T) { let defaultValue: T;