Class Reply
Обертка для вызова API методов Telegram
-- Использование из любого места в коде: bot.reply(123456).text("Hello") -- где bot это объект бота, а 123456 это chat_id -- Доступ внутри хендлеров происходит через context объект bot.command("test", function(ctx) ctx.reply.text("Hello") end) -- chat_id уже забинджен -- Еще несколько примеров: ctx.reply.text("*Жирный текст*", "Markdown") ctx.reply.markdown("*Аналогичная запись*") ctx.reply.silent().text("Будет отправлено без звука") ctx.reply.setParameter("disable_notification", true).text("Аналогичный вариант без звука")
Functions
REPLY_MT.__index (self, sMethod) | чтобы методы можно было вызывать через точку, а не двоеточие |
Main Methods
REPLY_MT:sendGeneric (method[, additionalParameters]) | Отправить запрос на Telegram API |
REPLY_MT:sendMultipart (method[, additionalParameters]) | Отправить запрос, используя multipart/form-data Аналогично до sendGeneric, но умеет отправлять файлы |
REPLY_MT:send (method[, additionalParameters]) | Отправить запрос. |
Функции методов
Модификаторы
REPLY_MT:setParameter (key, value) | Модификатор, устанавливает параметр запроса |
REPLY_MT:setFile (name, raw_content, file_name, content_type) | Модификатор, добавляет файл для отправки через multipart/form-data |
REPLY_MT:reply (msg) | Модификатор, добавляет параметр reply_to_message_id |
REPLY_MT:selective (bForce) | Модификатор, добавляет параметр selective |
REPLY_MT:forceReply (bForce) | Модификатор, добавляет параметр force_reply |
REPLY_MT:keyboard (tKeys, bResize, bOneTime) | Модификатор, добавляет параметр keyboard, resize_keyboard , one_time_keyboard |
REPLY_MT:inlineKeyboard (tKeys) | Модификатор, добавляет параметр inline_keyboard |
REPLY_MT:disablePreview (bDisable) | Модификатор, добавляет параметр disable_web_page_preview (чтобы ссылки в сообщении не создавали превью) |
REPLY_MT:protect (bProtect) | Модификатор, запрещает пересылать или сохранять контент на устройство |
REPLY_MT:silent (bMute) | Модификатор, добавляет параметр disable_notification (отправка сообщений без звука) |
Functions
Methods- REPLY_MT.__index (self, sMethod)
-
чтобы методы можно было вызывать через точку, а не двоеточие
Parameters:
- self
- sMethod
Main Methods
Отправка запросов из reply объекта на сервера телеграм
- REPLY_MT:sendGeneric (method[, additionalParameters])
-
Отправить запрос на Telegram API
Parameters:
- method string API метод
- additionalParameters table набор параметров, которые не были указаны через reply.setParameter (optional)
See also:
- REPLY_MT:sendMultipart (method[, additionalParameters])
-
Отправить запрос, используя multipart/form-data
Аналогично до sendGeneric, но умеет отправлять файлы
Parameters:
- method string API метод
- additionalParameters table набор параметров, которые не были указаны через reply.setParameter (optional)
See also:
- REPLY_MT:send (method[, additionalParameters])
-
Отправить запрос.
Если есть self.files, то использует sendMultipart, иначе через sendGeneric
Parameters:
- method string API метод
- additionalParameters table набор параметров, которые не были указаны через reply.setParameter (optional)
See also:
Функции методов
Выполнение этих функций отправляет запрос к Telegram API
- REPLY_MT:text (text, mode)
-
Отправка sendMessage
Parameters:
- text
- mode
- REPLY_MT:markdown (text)
-
Alias для ctx.reply.text(text, "Markdown")
Parameters:
- text
- REPLY_MT:html (text)
-
Alias для ctx.reply.text(text, "HTML")
Parameters:
- text
- REPLY_MT:photo (file_url_or_id, caption, captionMode)
-
Отправка sendPhoto
Parameters:
- file_url_or_id
- caption
- captionMode
Usage:
-- Отправка по ссылке ctx.reply.photo("https://file.def.pm/n9784Dep.jpg") -- Отправка multipart ctx.reply.setFile("photo", raw_content, "anyname").photo() -- raw_content = io.open("file.png", "r"):read("*all") -- Альтернативный вариант ctx.reply.photo({raw_data})
- REPLY_MT:document (file_url_or_id, caption, captionMode)
-
Отправка sendDocument
Parameters:
- file_url_or_id
- caption
- captionMode
Usage:
ctx.reply.document({raw_content, "file.zip"})
- REPLY_MT:video (file_url_or_id, caption, captionMode, duration, width, height, streaming)
-
Отправка sendVideo
Parameters:
- file_url_or_id
- caption
- captionMode
- duration
- width
- height
- streaming
See also:
Usage:
-- https://github.com/TRIGONIM/lua-requests-async local http_fetch = require("http_async").get local bot = require("ggram")("token") -- your bot's token local reply = bot.reply(123456) -- your chat_id http_fetch("https://file.def.pm/file_50mb.mp4", function(video) http_fetch("https://file.def.pm/bfUL7owI.jpg", function(thumb) reply.setFile("thumbnail", thumb, "thumb.jpg").video({video, "file.mp4"}, "*bold* caption", "markdown", 29, 1920, 1080) end) end)
- REPLY_MT:animation (file_url_or_id, caption, captionMode)
-
Отправка sendAnimation
Parameters:
- file_url_or_id
- caption
- captionMode
See also:
- REPLY_MT:mediaGroup (media_group)
-
Отправка sendMediaGroup
Может отправлять как raw_data файлы, так и файлы по file_id и ссылке
Parameters:
- media_group {{type = "photo", media = RAW_DATA, [caption]...}, ...}
Usage:
local media = { {type = "photo", media = "https://file.def.pm/n9784Dep.jpg", caption = "cap"}, -- sending photo by url {type = "photo", media = {raw_data}}, -- sending raw_data photo } ctx.reply.mediaGroup(media)
- REPLY_MT:location (latitude, longitude)
-
Отправка sendLocation
Parameters:
- latitude
- longitude
- REPLY_MT:contact (phone, firstname, lastname)
-
Отправка sendContact
Parameters:
- phone
- firstname
- lastname
- REPLY_MT:dice ()
- Отправка sendDice
- REPLY_MT:action (action)
-
Отправка sendChatAction
Parameters:
- action
- REPLY_MT:editText (msg, text, parse_mode)
-
Отправка editMessageText
Parameters:
- msg
- text
- parse_mode
- REPLY_MT:editMarkdown (msg, text)
-
Alias для editText, force Markdown parse_mode
Parameters:
- msg
- text
- REPLY_MT:editHTML (msg, text)
-
Alias для editText, force HTML parse_mode
Parameters:
- msg
- text
- REPLY_MT:editReplyMarkup (msg)
-
Отправка editMessageReplyMarkup
Parameters:
- msg
- REPLY_MT:deleteMessage (msg)
-
Отправка deleteMessage
Parameters:
- msg
Модификаторы
Эти функции добавляют определенные параметры к запросу,
но не выполняют запрос сами по себе
- REPLY_MT:setParameter (key, value)
-
Модификатор, устанавливает параметр запроса
Parameters:
- key
- value
Usage:
ctx.reply.setParameter("disable_notification", true).text("Hello")
- REPLY_MT:setFile (name, raw_content, file_name, content_type)
-
Модификатор, добавляет файл для отправки через multipart/form-data
Parameters:
- name
- raw_content
- file_name
- content_type
See also:
- REPLY_MT:reply (msg)
-
Модификатор, добавляет параметр
reply_to_message_id
Parameters:
- msg
Usage:
ctx.reply.reply(ctx).text("Reply to message")
- REPLY_MT:selective (bForce)
-
Модификатор, добавляет параметр selective
Parameters:
- bForce
Usage:
ctx.reply.keyboard({{"button"}}, true).selective().markdown("*Hello*")
- REPLY_MT:forceReply (bForce)
-
Модификатор, добавляет параметр
force_reply
Parameters:
- bForce
- REPLY_MT:keyboard (tKeys, bResize, bOneTime)
-
Модификатор, добавляет параметр keyboard,
resize_keyboard
,one_time_keyboard
Parameters:
- tKeys
- bResize
- bOneTime
Usage:
ctx.reply.keyboard({{"button"}}, true).text("Hello")
- REPLY_MT:inlineKeyboard (tKeys)
-
Модификатор, добавляет параметр
inline_keyboard
Parameters:
- tKeys
Usage:
ctx.reply.inlineKeyboard({{ {text = "text", callback_data = "any"} }}).text("kb")
- REPLY_MT:disablePreview (bDisable)
-
Модификатор, добавляет параметр
disable_web_page_preview
(чтобы ссылки в сообщении не создавали превью)Parameters:
- bDisable
Usage:
ctx.reply.disablePreview().markdown("https://youtube.com")
- REPLY_MT:protect (bProtect)
-
Модификатор, запрещает пересылать или сохранять контент на устройство
Parameters:
- bProtect
Usage:
ctx.reply.protect().photo("https://file.def.pm/n9784Dep.jpg")
- REPLY_MT:silent (bMute)
-
Модификатор, добавляет параметр
disable_notification
(отправка сообщений без звука)Parameters:
- bMute