UNPKG

tgsnake

Version:

Telegram MTProto framework for nodejs.

76 lines (75 loc) 2.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CallbackQuery = void 0; const TL_js_1 = require("../TL.js"); const platform_node_js_1 = require("../../platform.node.js"); const User_js_1 = require("../Advanced/User.js"); const Utilities_js_1 = require("../../Utilities.js"); class CallbackQuery extends TL_js_1.TLObject { id; from; message; data; chatInstance; inlineMessageId; gameShortName; constructor({ id, from, message, data, chatInstance, inlineMessageId, gameShortName, }, client) { super(client); this.id = id; this.from = from; this.message = message; this.data = data; this.chatInstance = chatInstance; this.inlineMessageId = inlineMessageId; this.gameShortName = gameShortName; } static async parse(client, update, chats, users) { if (update instanceof platform_node_js_1.Raw.UpdateInlineBotCallbackQuery) { return CallbackQuery.parseInline(client, update, chats, users); } return CallbackQuery.parseBot(client, update, chats, users); } static async parseBot(client, update, _, users) { const chatId = (0, Utilities_js_1.getPeerId)(update.peer); const cb = new CallbackQuery({ id: update.queryId, chatInstance: update.chatInstance, gameShortName: update.gameShortName, data: update.data ? update.data.toString('utf8') : undefined, from: await User_js_1.User.parse(client, users.find((user) => user.id === update.userId)), }, client); const cchat = client._cacheMessage.get(chatId); if (cchat) { const cmsg = cchat.get(update.msgId); if (cmsg) { cb.message = cmsg; } else { try { let fmsg = await client.api.getMessages(chatId, [update.msgId]); cb.message = fmsg[0]; } catch (error) { } } } else { try { let fmsg = await client.api.getMessages(chatId, [update.msgId]); cb.message = fmsg[0]; } catch (error) { } } return cb; } static async parseInline(client, update, _, users) { return new CallbackQuery({ id: update.queryId, chatInstance: update.chatInstance, gameShortName: update.gameShortName, data: update.data ? update.data.toString('utf8') : undefined, inlineMessageId: (0, Utilities_js_1.createInlineMsgId)(update.msgId), from: await User_js_1.User.parse(client, users.find((user) => user.id === update.userId)), }, client); } } exports.CallbackQuery = CallbackQuery;