@grammyjs/hydrate
Version:
Hydration plugin for grammY
109 lines (108 loc) • 4.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.installMessageMethods = installMessageMethods;
function installMessageMethods(api, message) {
const methods = {
forward: (chat_id, other, signal) => api.forwardMessage({
chat_id,
from_chat_id: message.chat.id,
message_id: message.message_id,
...other,
}, signal),
copy: (chat_id, other, signal) => api.copyMessage({
chat_id,
from_chat_id: message.chat.id,
message_id: message.message_id,
...other,
}, signal),
pin: (other, signal) => api.pinChatMessage({
business_connection_id: message.business_connection_id,
chat_id: message.chat.id,
message_id: message.message_id,
...other,
}, signal),
unpin: (other, signal) => api.unpinChatMessage({
business_connection_id: message.business_connection_id,
chat_id: message.chat.id,
message_id: message.message_id,
...other,
}, signal),
delete: (signal) => api.deleteMessage({
chat_id: message.chat.id,
message_id: message.message_id,
}, signal),
editReplyMarkup: (reply_markup, signal) => api.editMessageReplyMarkup({
business_connection_id: message.business_connection_id,
chat_id: message.chat.id,
message_id: message.message_id,
reply_markup,
}, signal),
editText: (text, other, signal) => api.editMessageText({
business_connection_id: message.business_connection_id,
chat_id: message.chat.id,
message_id: message.message_id,
text,
...other,
}, signal),
editLiveLocation: (latitude, longitude, other, signal) => api.editMessageLiveLocation({
business_connection_id: message.business_connection_id,
chat_id: message.chat.id,
message_id: message.message_id,
latitude,
longitude,
...other,
}, signal),
stopLiveLocation: (other, signal) => api.stopMessageLiveLocation({
business_connection_id: message.business_connection_id,
chat_id: message.chat.id,
message_id: message.message_id,
...other,
}, signal),
editCaption: (caption, other, signal) => api.editMessageCaption({
business_connection_id: message.business_connection_id,
chat_id: message.chat.id,
message_id: message.message_id,
caption,
...other,
}, signal),
editMedia: (media, other, signal) => api.editMessageMedia({
business_connection_id: message.business_connection_id,
chat_id: message.chat.id,
message_id: message.message_id,
media,
...other,
}, signal),
react: (reaction, other, signal) => api.setMessageReaction({
chat_id: message.chat.id,
message_id: message.message_id,
reaction: typeof reaction === "string"
? [{ type: "emoji", emoji: reaction }]
: (Array.isArray(reaction) ? reaction : [reaction])
.map((emoji) => typeof emoji === "string"
? { type: "emoji", emoji }
: emoji),
...other,
}, signal),
getCustomEmojiStickers: async (signal) => {
var _a;
const entities = (_a = message.entities) !== null && _a !== void 0 ? _a : message.caption_entities;
if (entities === undefined || entities.length === 0)
return [];
const identifiers = entities
.filter((e) => e.type === "custom_emoji")
.map((e) => e.custom_emoji_id);
return await api.getCustomEmojiStickers({ custom_emoji_ids: identifiers }, signal);
},
approveSuggestedPost: (other, signal) => api.approveSuggestedPost({
chat_id: message.chat.id,
message_id: message.message_id,
...other,
}, signal),
declineSuggestedPost: (other, signal) => api.declineSuggestedPost({
chat_id: message.chat.id,
message_id: message.message_id,
...other,
}, signal),
};
Object.assign(message, methods);
}