diff --git a/cspell-words.txt b/cspell-words.txt index b0079ce..cdd580e 100644 --- a/cspell-words.txt +++ b/cspell-words.txt @@ -9,7 +9,8 @@ grammyjs libsql listcontributors listrepos -issuelist +listissues +cmdlistissues lyja multistream nodenext diff --git a/locales/en.ftl b/locales/en.ftl index 8a07cae..c11409d 100644 --- a/locales/en.ftl +++ b/locales/en.ftl @@ -250,14 +250,14 @@ e_comment_created = { $repoHashtag } #{ $type } -cmd_issuelist_empty = 🥲 No open issues found +cmd_listissues_empty = 🥲 No open issues found -cmd_issuelist_repo = 📦 { $repoName } +cmd_listissues_repo = 📦 { $repoName } -cmd_issuelist_issue = — { $issueTitle } → { $assignee } +cmd_listissues_issue = — { $issueTitle } → { $assignee } -cmd_issuelist_unassigned = Unassigned +cmd_listissues_unassigned = Unassigned -cmd_issuelist_header = ✨ Open issues: +cmd_listissues_header = ✨ Open issues: -cmd_issuelist_total = 💎 Total: { $count } +cmd_listissues_total = 💎 Total: { $count } diff --git a/src/bot/commands/public/group.ts b/src/bot/commands/public/group.ts index b017203..ca24389 100644 --- a/src/bot/commands/public/group.ts +++ b/src/bot/commands/public/group.ts @@ -3,8 +3,8 @@ import type { BotContext } from "#bot"; import { CommandGroup } from "@grammyjs/commands"; import { cmdHelp } from "./help.ts"; -import { cmdIssuelist } from "./issuelist.ts"; import { cmdListContributors } from "./listcontributors.ts"; +import { cmdlistissues } from "./listissues.ts"; import { cmdListRepos } from "./listrepos.ts"; import { cmdWhoami } from "./whoami.ts"; @@ -13,6 +13,6 @@ export const userCommands = new CommandGroup>().add([ cmdWhoami, cmdListContributors, cmdListRepos, - cmdIssuelist, + cmdlistissues, cmdHelp, ]); diff --git a/src/bot/commands/public/issuelist.ts b/src/bot/commands/public/listissues.ts similarity index 82% rename from src/bot/commands/public/issuelist.ts rename to src/bot/commands/public/listissues.ts index 534fed2..eb67293 100644 --- a/src/bot/commands/public/issuelist.ts +++ b/src/bot/commands/public/listissues.ts @@ -16,7 +16,7 @@ interface Section { count: number; } -export async function issuelistHandler(ctx: BotContext) { +export async function listissuesHandler(ctx: BotContext) { const org = config.github.orgName; const repos = await octokit.paginate(octokit.rest.repos.listForOrg, { @@ -52,9 +52,9 @@ export async function issuelistHandler(ctx: BotContext) { const issueLines = await mapWithConcurrency(openIssues, ISSUE_CONCURRENCY, async (issue) => { const assigneeText = issue.assignee ? await resolveAssigneeCached(issue.assignee.login, issue.assignee.html_url) - : ctx.t("cmd_issuelist_unassigned"); + : ctx.t("cmd_listissues_unassigned"); - return ctx.t("cmd_issuelist_issue", { + return ctx.t("cmd_listissues_issue", { emoji: "", issueUrl: escapeHtml(issue.html_url), issueTitle: escapeHtml(issue.title), @@ -63,7 +63,7 @@ export async function issuelistHandler(ctx: BotContext) { }); return { - text: `${ctx.t("cmd_issuelist_repo", { repoName: repo.name })}\n${issueLines.join("\n")}`, + text: `${ctx.t("cmd_listissues_repo", { repoName: repo.name })}\n${issueLines.join("\n")}`, count: openIssues.length, }; }); @@ -71,22 +71,22 @@ export async function issuelistHandler(ctx: BotContext) { const sections = rawSections.filter((s): s is Section => s !== null); if (sections.length === 0) { - return await ctx.html.replyToMessage(ctx.t("cmd_issuelist_empty")); + return await ctx.html.replyToMessage(ctx.t("cmd_listissues_empty")); } const totalIssues = sections.reduce((acc, s) => acc + s.count, 0); const body = sections.map((s) => s.text).join("\n\n"); return await ctx.html.replyToMessage( - `${ctx.t("cmd_issuelist_header")}\n\n${body}\n\n${ctx.t("cmd_issuelist_total", { count: totalIssues })}`, + `${ctx.t("cmd_listissues_header")}\n\n${body}\n\n${ctx.t("cmd_listissues_total", { count: totalIssues })}`, { disable_notification: true }, ); } -export const cmdIssuelist = createCommand({ - template: "issuelist", +export const cmdlistissues = createCommand({ + template: "listissues", description: "List all open issues grouped by repository", - handler: issuelistHandler, + handler: listissuesHandler, scopes: [ { type: "chat", chat_id: config.bot.chatId }, { type: "chat_administrators", chat_id: config.bot.chatId },