utils: add shared locks, queues, rendering and message helpers
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -51,8 +51,8 @@ export function createCommandRegExp(
|
||||
argsMode === "none"
|
||||
? "\\s*$"
|
||||
: argsMode === "required"
|
||||
? "\\s+([\\s\\S]+)\\s*$" // (3)=args обязателен
|
||||
: "(?:\\s+([\\s\\S]+))?\\s*$"; // (3)=args опционален
|
||||
? "\\s+([\\s\\S]+)\\s*$" // (3)=args required
|
||||
: "(?:\\s+([\\s\\S]+))?\\s*$"; // (3)=args optional
|
||||
|
||||
return new RegExp(base + tail, "i");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user