diff --git a/src/functions/algoliaResponse.ts b/src/functions/algoliaResponse.ts index c310054..77e4c2c 100644 --- a/src/functions/algoliaResponse.ts +++ b/src/functions/algoliaResponse.ts @@ -20,7 +20,6 @@ export async function algoliaResponse( algoliaObjectId: string, emojiId: string, emojiName: string, - target?: string, ephemeral?: boolean, ): Promise { const full = `http://${algoliaAppId}.${API_BASE_ALGOLIA}/1/indexes/${algoliaIndex}/${encodeURIComponent( @@ -43,14 +42,13 @@ export async function algoliaResponse( : null; const contentParts = [ - target ? `${italic(`Suggestion for ${userMention(target)}:`)}` : null, `<:${emojiName}:${emojiId}> ${bold(resolveHitToNamestring(hit))}${headlineSuffix ? ` ${headlineSuffix}` : ''}`, hit.content?.length ? `${truncate(decode(hit.content), 300)}` : null, docsBody?.lines.length ? docsBody.lines.at(0) : null, `${hyperlink('read more', hideLinkEmbed(hit.url))}`, ].filter(Boolean) as string[]; - prepareResponse(res, contentParts.join('\n'), ephemeral ?? false, target ? [target] : []); + prepareResponse(res, contentParts.join('\n'), ephemeral ?? false); } catch { prepareErrorResponse(res, 'Invalid result. Make sure to select an entry from the autocomplete.'); } diff --git a/src/functions/mdn.ts b/src/functions/mdn.ts index 52ed4e8..5587f6b 100644 --- a/src/functions/mdn.ts +++ b/src/functions/mdn.ts @@ -11,7 +11,7 @@ function escape(text: string) { return text.replaceAll('||', '|\u200B|').replaceAll('*', '\\*'); } -export async function mdnSearch(res: Response, query: string, target?: string, ephemeral?: boolean): Promise { +export async function mdnSearch(res: Response, query: string, ephemeral?: boolean): Promise { const trimmedQuery = query.trim(); try { const qString = `${API_BASE_MDN}/${trimmedQuery}/index.json`; @@ -41,12 +41,7 @@ export async function mdnSearch(res: Response, query: string, target?: string, e intro, ]; - prepareResponse( - res, - `${target ? `${italic(`Documentation suggestion for ${userMention(target)}:`)}\n` : ''}${parts.join('\n')}`, - ephemeral ?? false, - target ? [target] : [], - ); + prepareResponse(res, parts.join('\n'), ephemeral ?? false); return res; } catch (error) { diff --git a/src/functions/node.ts b/src/functions/node.ts index db1affb..77ae486 100644 --- a/src/functions/node.ts +++ b/src/functions/node.ts @@ -72,7 +72,6 @@ export async function nodeSearch( res: Response, query: string, version = 'latest-v18.x', - target?: string, ephemeral?: boolean, ): Promise { const trimmedQuery = query.trim(); @@ -117,12 +116,7 @@ export async function nodeSearch( .replaceAll(boldCodeBlockRegex, bold(inlineCode('$1'))), ); - prepareResponse( - res, - `${target ? `${italic(`Documentation suggestion for ${userMention(target)}:`)}\n` : ''}${parts.join('\n')}`, - ephemeral ?? false, - target ? [target] : [], - ); + prepareResponse(res, parts.join('\n'), ephemeral ?? false); return res; } catch (error) { diff --git a/src/functions/tag.ts b/src/functions/tag.ts index de165ea..f410cdd 100644 --- a/src/functions/tag.ts +++ b/src/functions/tag.ts @@ -9,7 +9,6 @@ import { fetch } from 'undici'; import { REMOTE_TAG_URL, PREFIX_SUCCESS } from '../util/constants.js'; import { logger } from '../util/logger.js'; import { prepareResponse, prepareErrorResponse } from '../util/respond.js'; -import { suggestionString } from '../util/suggestionString.js'; export type Tag = { content: string; @@ -49,11 +48,11 @@ export async function loadTags(tagCache: Collection, remote = false } } -export function findTag(tagCache: Collection, query: string, target?: string): string | null { +export function findTag(tagCache: Collection, query: string): string | null { const cleanQuery = query.replaceAll(/\s+/g, '-'); const tag = tagCache.get(cleanQuery) ?? tagCache.find((tag) => tag.keywords.includes(cleanQuery)); if (!tag) return null; - return suggestionString('tag', tag.content, target); + return tag.content; } export async function reloadTags(res: Response, tagCache: Collection, remote = true) { @@ -84,13 +83,12 @@ export function showTag( res: Response, query: string, tagCache: Collection, - target?: string, ephemeral?: boolean, ): Response { const trimmedQuery = query.trim().toLowerCase(); - const content = findTag(tagCache, trimmedQuery, target); + const content = findTag(tagCache, trimmedQuery); if (content) { - prepareResponse(res, content, ephemeral ?? false, target ? [target] : []); + prepareResponse(res, content, ephemeral ?? false); } else { prepareErrorResponse(res, `Could not find a tag with name or alias similar to \`${trimmedQuery}\`.`); } diff --git a/src/handling/handleApplicationCommand.ts b/src/handling/handleApplicationCommand.ts index 9132f8f..ddff801 100644 --- a/src/handling/handleApplicationCommand.ts +++ b/src/handling/handleApplicationCommand.ts @@ -73,7 +73,6 @@ export async function handleApplicationCommand( castArgs.query, EMOJI_ID_CLYDE_BLURPLE, 'discord', - castArgs.target, castArgs.hide, ); break; @@ -90,7 +89,6 @@ export async function handleApplicationCommand( castArgs.query, EMOJI_ID_DTYPES, 'dtypes', - castArgs.target, castArgs.hide, ); @@ -107,7 +105,6 @@ export async function handleApplicationCommand( castArgs.query, EMOJI_ID_GUIDE, 'guide', - castArgs.target, castArgs.hide, ); break; @@ -115,19 +112,19 @@ export async function handleApplicationCommand( case 'mdn': { const castArgs = args as ArgumentsOf; - await mdnSearch(res, castArgs.query, castArgs.target, castArgs.hide); + await mdnSearch(res, castArgs.query, castArgs.hide); break; } case 'node': { const castArgs = args as ArgumentsOf; - await nodeSearch(res, castArgs.query, castArgs.version, castArgs.target, castArgs.hide); + await nodeSearch(res, castArgs.query, castArgs.version, castArgs.hide); break; } case 'tag': { const castArgs = args as ArgumentsOf; - showTag(res, castArgs.query, tagCache, castArgs.target, castArgs.hide); + showTag(res, castArgs.query, tagCache, castArgs.hide); break; } diff --git a/src/interactions/discorddocs.ts b/src/interactions/discorddocs.ts index f50f606..2c313bf 100644 --- a/src/interactions/discorddocs.ts +++ b/src/interactions/discorddocs.ts @@ -11,12 +11,6 @@ export const DiscordDocsCommand = { autocomplete: true, required: true, }, - { - type: ApplicationCommandOptionType.User, - name: 'target', - description: 'User to mention', - required: false, - }, { type: ApplicationCommandOptionType.Boolean, name: 'hide', diff --git a/src/interactions/discordtypes.ts b/src/interactions/discordtypes.ts index fac0041..be85205 100644 --- a/src/interactions/discordtypes.ts +++ b/src/interactions/discordtypes.ts @@ -1,7 +1,6 @@ import { ApplicationCommandOptionType } from 'discord-api-types/v10'; const QUERY_DESCRIPTION = 'Type, Enum or Interface to search for' as const; -const TARGET_DESCRIPTION = 'User to mention' as const; const VERSION_DESCRIPTION = 'Attempts to filter the results to the specified version' as const; const EPHEMERAL_DESCRIPTION = 'Hide command output' as const; @@ -16,12 +15,6 @@ export const DTypesCommand = { required: true, autocomplete: true, }, - { - type: ApplicationCommandOptionType.User, - name: 'target', - description: TARGET_DESCRIPTION, - required: false, - }, { type: ApplicationCommandOptionType.String, name: 'version', diff --git a/src/interactions/guide.ts b/src/interactions/guide.ts index fc298e4..3609c42 100644 --- a/src/interactions/guide.ts +++ b/src/interactions/guide.ts @@ -11,12 +11,6 @@ export const GuideCommand = { autocomplete: true, required: true, }, - { - type: ApplicationCommandOptionType.User, - name: 'target', - description: 'User to mention', - required: false, - }, { type: ApplicationCommandOptionType.Boolean, name: 'hide', diff --git a/src/interactions/mdn.ts b/src/interactions/mdn.ts index 11316f7..ec227f6 100644 --- a/src/interactions/mdn.ts +++ b/src/interactions/mdn.ts @@ -11,12 +11,6 @@ export const MdnCommand = { required: true, autocomplete: true, }, - { - type: ApplicationCommandOptionType.User, - name: 'target', - description: 'User to mention', - required: false, - }, { type: ApplicationCommandOptionType.Boolean, name: 'hide', diff --git a/src/interactions/node.ts b/src/interactions/node.ts index 16f7e8e..7d51922 100644 --- a/src/interactions/node.ts +++ b/src/interactions/node.ts @@ -30,12 +30,6 @@ export const NodeCommand = { }, ], }, - { - type: ApplicationCommandOptionType.User, - name: 'target', - description: 'User to mention', - required: false, - }, { type: ApplicationCommandOptionType.Boolean, name: 'hide', diff --git a/src/interactions/tag.ts b/src/interactions/tag.ts index 9293941..ff1005c 100644 --- a/src/interactions/tag.ts +++ b/src/interactions/tag.ts @@ -11,12 +11,6 @@ export const TagCommand = { required: true, autocomplete: true, }, - { - type: ApplicationCommandOptionType.User, - name: 'target', - description: 'User to mention', - required: false, - }, { type: ApplicationCommandOptionType.Boolean, name: 'hide', diff --git a/src/util/suggestionString.ts b/src/util/suggestionString.ts deleted file mode 100644 index dd99c10..0000000 --- a/src/util/suggestionString.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { userMention } from '@discordjs/builders'; - -function stripLinkEscapes(text: string) { - return text.replaceAll(/<<(.+?)>>/gi, '$1'); -} - -export function suggestionString(suggestionType: string, guaranteed?: string, target?: string): string { - const [first, ...rest] = suggestionType; - const messageParts = []; - if (target) { - messageParts.push(`*${first.toUpperCase()}${rest.join('')} suggestion for ${userMention(target)}:*\n`); - } - - if (guaranteed) { - messageParts.push(guaranteed); - } - - return stripLinkEscapes(messageParts.join('')); -}