UNPKG

@grammyjs/auto-chat-action

Version:

A plugin for automatic sending a chat action

77 lines (76 loc) 2.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getChatActionsForRequest = void 0; const deps_js_1 = require("./deps.js"); const extractors = { sendPhoto(payload) { return (payload.photo instanceof deps_js_1.InputFile) ? ["upload_photo"] : []; }, sendAudio(payload) { return (payload.audio instanceof deps_js_1.InputFile || payload.thumbnail instanceof deps_js_1.InputFile) ? ["upload_document"] : []; }, sendDocument(payload) { return (payload.document instanceof deps_js_1.InputFile || payload.thumbnail instanceof deps_js_1.InputFile) ? ["upload_document"] : []; }, sendVideo(payload) { return (payload.video instanceof deps_js_1.InputFile || payload.thumbnail instanceof deps_js_1.InputFile) ? ["upload_video"] : []; }, sendAnimation(payload) { return (payload.animation instanceof deps_js_1.InputFile || payload.thumbnail instanceof deps_js_1.InputFile) ? ["upload_video"] : []; }, sendVoice(payload) { return (payload.voice instanceof deps_js_1.InputFile) ? ["upload_voice"] : []; }, sendVideoNote(payload) { return (payload.video_note instanceof deps_js_1.InputFile || payload.thumbnail instanceof deps_js_1.InputFile) ? ["upload_video_note"] : []; }, sendSticker(payload) { return (payload.sticker instanceof deps_js_1.InputFile) ? ["choose_sticker"] : []; }, sendMediaGroup(payload) { return payload.media.map((media) => { if (media.type === "audio") { return "upload_document"; } if (media.type === "document") { return "upload_document"; } if (media.type === "photo") { return "upload_photo"; } if (media.type === "video") { return "upload_video"; } }).filter((item) => item); }, }; function getChatActionsForRequest(method, payload) { if (!(method in extractors)) { return [false, []]; } // @ts-expect-error existence of method has been checked const chatActions = extractors[method](payload); return [chatActions.length > 0, chatActions]; } exports.getChatActionsForRequest = getChatActionsForRequest;