tgd-telegram-service/src/bot/handlers.ts
2024-11-25 20:56:19 +04:00

37 lines
No EOL
1.4 KiB
TypeScript

import {Logger} from "@nestjs/common";
import {ClientProxy} from "@nestjs/microservices";
export class TGHandlers {
static async handleCallback(ctx:any, logger: Logger, gameService: ClientProxy) {
let data = undefined;
try {
data = JSON.parse(ctx.update.callback_query.data);
} catch(error) {
logger.verbose(`[onInlineQuery]: can't parse json callback, checking content for other payload`);
}
if(data) {
gameService.emit({ cmd: 'ApplyDebuff'}, { ...ctx.callbackQuery, from: ctx.from.id });
await ctx.editMessageReplyMarkup(undefined);
await ctx.editMessageText(ctx.update.callback_query.data);
}
if(ctx.update.callback_query.message.text.indexOf('Внимание') !== -1) {
const answer =ctx.update.callback_query.data;
gameService.emit({ cmd: "QuestionAnswer"}, { user: ctx.from.id, answer: answer, name: ctx.from.first_name });
try {
await ctx.editMessageReplyMarkup(undefined);
} catch (err) {
}
await ctx.editMessageText(answer);
} else if(ctx.update.callback_query.data.startsWith('card/')) {
const cardtoplay = ctx.update.callback_query.data.substring('card/'.length);
gameService.emit({cmd: 'CardPlayed'}, {text: cardtoplay, user: ctx.update.callback_query.from.id})
await ctx.editMessageReplyMarkup(undefined);
await ctx.editMessageText("карта выбрана");
} else
{
console.log(ctx.update);
}
}
}