tgsnake
Version:
Telegram MTProto framework for nodejs.
76 lines (75 loc) • 2.84 kB
JavaScript
;
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;