зеркало из
https://github.com/glebtv/telegram-bot.git
synced 2026-09-07 19:35:52 +03:00
Controller#respond_with to reply without reply_to_message_id
Этот коммит содержится в:
@@ -2,21 +2,23 @@ module Telegram
|
||||
module Bot
|
||||
class UpdatesController
|
||||
module ReplyHelpers
|
||||
# Helper to call bot's `send_#{type}` method with already set `chat_id` and
|
||||
# `reply_to_message_id`:
|
||||
# Helper to call bot's `send_#{type}` method with already set `chat_id`:
|
||||
#
|
||||
# reply_with :message, text: 'Hello!'
|
||||
# reply_with :message, text: '__Hello!__', parse_mode: :Markdown
|
||||
# reply_with :photo, photo: File.open(photo_to_send), caption: "It's incredible!"
|
||||
def reply_with(type, params)
|
||||
method = "send_#{type}"
|
||||
# respond_with :message, text: 'Hello!'
|
||||
# respond_with :message, text: '__Hello!__', parse_mode: :Markdown
|
||||
# respond_with :photo, photo: File.open(photo_to_send), caption: "It's incredible!"
|
||||
def respond_with(type, params)
|
||||
chat = self.chat
|
||||
chat_id = chat && chat['id'] or raise 'Can not respond_with when chat is not present'
|
||||
bot.public_send("send_#{type}", params.merge(chat_id: chat_id))
|
||||
end
|
||||
|
||||
# Same as respond_with but also sets `reply_to_message_id`.
|
||||
def reply_with(type, params)
|
||||
payload = self.payload
|
||||
params = params.merge(
|
||||
chat_id: (chat && chat['id'] or raise 'Can not reply_with when chat is not present'),
|
||||
reply_to_message_id: payload && payload['message_id'],
|
||||
)
|
||||
bot.public_send(method, params)
|
||||
message_id = payload && payload['message_id']
|
||||
params = params.merge(reply_to_message_id: message_id) if message_id
|
||||
respond_with(type, params)
|
||||
end
|
||||
|
||||
# Same as reply_with, but for inline queries.
|
||||
|
||||
Ссылка в новой задаче
Block a user