UNPKG

vvlad1973-telegram-framework

Version:
355 lines (334 loc) 9.28 kB
/** * @fileoverview Definitions of enums * @author Vlad Vnukovskiy <vvlad1973@gmail.com> * */ /** * @module enums */ 'use strict' export const UserLinks = { USERNAME: 'https://t.me/%s', USER_ID: 'tg://user?id=%s', }; /** * Enum definitions of request poll button types * * @enum {string} */ export const ChatPermissionsTypes = { CAN_SEND_MESSAGES: 'can_send_messages', CAN_SEND_AUDIOS: 'can_send_audios', CAN_SEND_DOCUMENTS: 'can_send_documents', CAN_SEND_PHOTOS: 'can_send_photos', CAN_SEND_VIDEOS: 'can_send_videos', CAN_SEND_VIDEO_NOTES: 'can_send_video_notes', CAN_SEND_VOICE_NOTES: 'can_send_voice_notes', CAN_SEND_POLLS: 'can_send_polls', CAN_SEND_OTHER_MESSAGES: 'can_send_other_messages', CAN_ADD_WEB_PAGE_PREVIEWS: 'can_add_web_page_previews', CAN_CHANGE_INFO: 'can_change_info', CAN_INVITE_USERS: 'can_invite_users', CAN_PIN_MESSAGES: 'can_pin_messages', CAN_MANAGE_TOPICS: 'can_manage_topics', } /** * Enum definitions of request poll button types * * @enum {string} */ export const KeyboardButtonPollTypes = { QUIZ: 'quiz', REGULAR: 'regular', ANY: 'any', } /** * Enum definitions of bot commands scope types * * @enum {string} */ export const BotCommandScopeTypes = { DEFAULT: 'default', ALL_PRIVATE_CHATS: 'all_private_chats', ALL_GROUP_CHATS: 'all_group_chats', ALL_CHAT_ADMINISTRATORS: 'all_chat_administrators', CHAT: 'chat', CHAT_ADMINISTRATORS: 'chat_administrators', CHAT_MEMBER: 'chat_member', } /** * Enum definitions of media types * * @enum {string} */ export const MediaTypes = { PHOTO: 'photo', AUDIO: 'audio', VIDEO: 'video', VIDEO_NOTE: 'video_note', VOICE: 'voice', ANIMATION: 'animation', DOCUMENT: 'document', STICKER: 'sticker', THUMBNAIL: 'thumbnail', } /** * Emum definition for chat actions * * @enum {number} */ export const DiceTypes = { DICE: '🎲', TARGET: '🎯', BASKETBALL: '🏀', FOOTBALL: '⚽', BOWLING: '🎳', SLOT_MACHINE: '🎰', } /** * Emum definition for chat actions * * @enum {number} */ export const ChatActions = { TYPING: 'typing', UPLOAD_PHOTO: 'upload_photo', RECORD_VIDEO: 'record_video', UPLOAD_VIDEO: 'upload_video', RECORD_VOICE: 'record_voice', UPLOAD_VOICE: 'upload_voice', UPLOAD_DOCUMENT: 'upload_document', CHOOSE_STICKER: 'choose_sticker', FIND_LOCATION: 'find_location', RECORD_VIDEO_NOTE: 'record_video_note', UPLOAD_VIDEO_NOTE: 'upload_video_note', } /** * Emum definition for HTTP status codes * * @enum {number} */ export const StatusCodes = { OK: 200, BAD_REQUEST: 400, NOT_FOUND: 404, METHOD_NOT_ALLOWED: 405, INTERNAL_SERVER_ERROR: 500, NOT_IMPLEMENTED: 501, } /** * Enum definition fo Telegram Update types * * @enum {string} */ export const UpdateTypes = { MESSAGE: 'message', CALLBACK_QUERY: 'callback_query', MY_CHAT_MEMBER: 'my_chat_member', CHAT_MEMBER: 'chat_member', CHAT_JOIN_REQUEST: 'chat_join_request', EDITED_MESSAGE: 'edited_message', CHANNEL_POST: 'channel_post', EDITED_CHANNEL_POST: 'edited_chattel_post', INLINE_QUERY: 'inline_query', CHOSEN_INLINE_RESULT: 'chosen_inline_result', PRE_CHECKOUT_QUERY: 'pre_checkout_query', POLL: 'poll', POLL_ANSWER: 'poll_answer', SHIPPING_QUERY: 'shipping_query', UNKNOWN: 'unknown', } /** * Enum definition fo Telegram Poll types * * @enum {string} */ export const PollTypes = { REGULAR: 'regular', QUIZ: 'quiz', } /** * Enum definition fo Telegram Message types * * @enum {string} */ export const MessageTypes = { COMMAND: 'command', TEXT: 'message.text', AUDIO: 'message.audio', ANIMATION: 'message.animation', VIDEO: 'message.video', PHOTO: 'message.photo', DOCUMENT: 'message.document', CONTACT: 'message.contact', LOCATION: 'message.location', POLL: 'message.poll', NEW_CHAT_MEMBER: 'message.new_chat_member', LEFT_CHAT_MEMBER: 'message.left_chat_member', STICKER: 'message.sticker', VIDEO_NOTE: 'message.video_note', VOICE: 'message.voice', DICE: 'message.dice', GAME: 'message.game', VENUE: 'message.venue', INVOICE: 'message.invoice', PINNED_MESSAGE: 'message.pinned_message', USER_SHARED: 'message.user_shared', CHAT_SHARED: 'message.chat_shared', WEB_APP_DATA: 'message.web_app_data', CONNECTED_WEBSITE: 'message.connected_website', SUCCESSFUL_PAYMENT: 'message.successful_payment', MIGRATE_CHAT: 'message.migrate_chat', PASSPORT_DATA: 'message.passport_data', NEW_CHAT_TITLE: 'message.new_chat_title', NEW_CHAT_PHOTO: 'message.new_chat_photo', DELETE_CHAT_PHOTO: 'message.delete_chat_photo', GROUP_CHAT_CREATED: 'message.group_chat_created', MESSAGE_AUTO_DELETE_TIMER_CHANGED: 'message.message_auto_delete_timer_changed', PROXIMITY_ALERT_TRIGGERED: 'message.proximity_alert_triggered', VIDEO_CHAT_SCHEDULED: 'message.video_chat_scheduled', VIDEO_CHAT_STARTED: 'message.video_chat_started', VIDEO_CHAT_PARTICIPANTS_INVITED: 'message.video_chat_participants_invited', VIDEO_CHAT_ENDED: 'message.video_chat_ended', SERVICE_MESSAGE: 'service_message', } export const ServiceMessages = [ MessageTypes.NEW_CHAT_MEMBER, MessageTypes.LEFT_CHAT_MEMBER, MessageTypes.NEW_CHAT_TITLE, MessageTypes.NEW_CHAT_PHOTO, MessageTypes.DELETE_CHAT_PHOTO, MessageTypes.GROUP_CHAT_CREATED, MessageTypes.MESSAGE_AUTO_DELETE_TIMER_CHANGED, MessageTypes.MIGRATE_CHAT, MessageTypes.MIGRATE_CHAT, MessageTypes.PINNED_MESSAGE, MessageTypes.SUCCESSFUL_PAYMENT, MessageTypes.PROXIMITY_ALERT_TRIGGERED, MessageTypes.VIDEO_CHAT_SCHEDULED, MessageTypes.VIDEO_CHAT_STARTED, MessageTypes.VIDEO_CHAT_ENDED, MessageTypes.VIDEO_CHAT_PARTICIPANTS_INVITED, MessageTypes.WEB_APP_DATA, ] /** * Enum definition fo Telegram Bot API methods * * @enum {string} */ export const TelegramBotApiMethods = { SEND_MESSAGE: 'sendMessage', ANSWER_CALLBACK_QUERY: 'answerCallbackQuery', FORWARD_MESSAGE: 'forwardMessage', COPY_MESSAGE: 'copyMessage', GET_ME: 'getMe', CLOSE: 'close', LOG_OUT: 'logOut', GET_UPDATES: 'getUpdates', GET_WEBHOOK_INFO: 'getWebhookInfo', DELETE_WEBHOOK: 'deleteWebhook', SET_WEBHOOK: 'setWebhook', SEND_PHOTO: 'sendPhoto', DELETE_MESSAGE: 'deleteMessage', PIN_CHAT_MESSAGE: 'pinChatMessage', UNPIN_CHAT_MESSAGE: 'unpinChatMessage', UNPIN_ALL_CHAT_MESSAGES: 'unpinAllChatMessages', GET_MY_COMMANDS: 'getMyCommands', SET_MY_COMMANDS: 'setMyCommands', DELETE_MY_COMMANDS: 'deleteMyCommands', EDIT_MESSAGE_TEXT: 'editMessageText', EDIT_MESSAGE_CAPTION: 'editMessageCaption', EDIT_MESSAGE_REPLY_MARKUP: 'editMessageReplyMarkup', EDIT_MESSAGE_MEDIA: 'editMessageMedia', SEND_CHAT_ACTION: 'sendChatAction', SEND_DICE: 'sendDice', SEND_VIDEO: 'sendVideo', SEND_VIDEO_NOTE: 'sendVideoNote', SEND_CONTACT: 'sendContact', SEND_AUDIO: 'sendAudio', SEND_VOICE: 'sendVoice', SEND_DOCUMENT: 'sendDocument', SEND_ANIMATION: 'sendAnimation', SEND_MEDIA_GROUP: 'sendMediaGroup', GET_CHAT: 'getChat', GET_CHAT_ADMINISTRATORS: 'getChatAdministrators', GET_CHAT_MEMBER_COUNT: 'getChatMemberCount', GET_CHAT_MEMBER: 'getChatMember', GET_FILE: 'getFile', SEND_POLL: 'sendPoll', STOP_POLL: 'stopPoll', SEND_STICKER: 'sendSticker', BAN_CHAT_MEMBER: 'banChatMember', UNBAN_CHAT_MEMBER: 'unbanChatMember', RESTRICT_CHAT_MEMBER: 'restrictChatMember', PROMOTE_CHAT_MEMBER: 'promoteChatMember', APPROVE_CHAT_JOIN_REQUEST: 'approveChatJoinRequest', DECLINE_CHAT_JOIN_REQUEST: 'declineChatJoinRequest', } /** * Enum definitions methods with media * * @enum {string} */ export const TelegramBotApiMethodsWithMedia = { SEND_VIDEO: 'sendVideo', SEND_AUDIO: 'sendAudio', SEND_VOICE: 'sendVoice', SEND_DOCUMENT: 'sendDocument', SEND_ANIMATION: 'sendAnimation', EDIT_MESSAGE_MEDIA: 'editMessageMedia', SEND_MEDIA_GROUP: 'sendMediaGroup', SEND_VIDEO_NOTE: 'sendVideoNote', SET_CHAT_PHOTO: 'setChatPhoto', SEND_PHOTO: 'sendPhoto', } /** * Enum definitions properties with media * * @enum {string} */ export const MediaProperties = { PHOTO: 'photo', AUDIO: 'audio', VIDEO: 'video', VOICE: 'voice', ANIMATION: 'animation', MEDIA: 'media', DOCUMENT: 'document', THUMBNAIL: 'thumbnail', VIDEO_NOTE: 'video_note', } /** * Enum definition for Telegram entity types * * @enum {string} */ export const EntityTypes = { BOLD: 'bold', ITALIC: 'italic', UNDERLINE: 'underline', STRIKETHROUGH: 'strikethrough', CODE: 'code', PRE: 'pre', TEXT_LINK: 'text_link', TEXT_MENTION: 'text_mention', EMAIL: 'email', PHONE_NUMBER: 'phone_number', URL: 'url', BOT_COMMAND: 'bot_command', CASHTAG: 'cashtag', HASHTAG: 'hashtag', MENTION: 'mention', SPOILER: 'spoiler', } /** * Enum definition for Telegram parse modes * * @enum {string} */ export const ParseModes = { NONE: '', MARKDOWN2: 'MarkdownV2', MARKDOWN: 'Markdown', HTML: 'HTML', }