utils: add shared locks, queues, rendering and message helpers

This commit is contained in:
2026-05-10 22:52:25 +03:00
parent d666244863
commit 4c2a5471df
11 changed files with 3046 additions and 1139 deletions
+7 -3
View File
@@ -3,6 +3,7 @@ import {CallbackQuery, InlineKeyboardButton} from "typescript-telegram-bot-api";
import {Requirements} from "./requirements";
import {bot} from "../index";
import {logError} from "../util/utils";
import {enqueueTelegramApiCall} from "../util/telegram-api-queue";
export abstract class CallbackCommand {
@@ -13,7 +14,7 @@ export abstract class CallbackCommand {
abstract execute(query: CallbackQuery): Promise<void>;
// eslint-disable-next-line @typescript-eslint/no-unused-vars
afterExecute(query: CallbackQuery): Promise<void> {
afterExecute(_query: CallbackQuery): Promise<void> {
return Promise.resolve();
}
@@ -23,7 +24,10 @@ export abstract class CallbackCommand {
}
async answerCallbackQuery(query: CallbackQuery): Promise<void> {
bot.answerCallbackQuery(this.getOptions(query)).catch(logError);
enqueueTelegramApiCall(
() => bot.answerCallbackQuery(this.getOptions(query)),
{method: "answerCallbackQuery", skipPerChatLimit: true}
).catch(logError);
}
asButton(): InlineKeyboardButton {
@@ -40,4 +44,4 @@ export interface AnswerCallbackQueryOptions {
show_alert?: boolean;
url?: string;
cache_time?: number;
}
}