module Botomizer::Telegram
Constants
- API_URL
Attributes
chat[RW]
client[RW]
message[RW]
options[RW]
Public Class Methods
delete_message(id = nil)
click to toggle source
# File lib/botomizer/telegram.rb, line 59 def delete_message(id = nil) send(:deleteMessage, {chat_id: @chat.id, message_id: id || @message.id}) end
parse_request(request)
click to toggle source
# File lib/botomizer/telegram.rb, line 11 def parse_request(request) message_key = ['message', 'edited_message', 'channel_post', 'edited_channel_post', 'callback_query'].find do |key| request.has_key?(key) end unless message_key.nil? if message_key == 'callback_query' message = request[message_key]['message'] else message = request[message_key] end @message = Botomizer::Message.new({ id: message['message_id'], text: message['text'], data: request[message_key]['data'] }, { name: @options[:name] }) @chat = Botomizer::Chat.new({ id: message['chat']['id'], type: message['chat']['type'], title: message['chat']['title'] || nil, first_name: message['chat']['first_name'] || nil, last_name: message['chat']['last_name'] || nil, username: message['chat']['username'] }) else raise Botomizer::BotError.new("Can't parse request") end end
send(method, query = {})
click to toggle source
# File lib/botomizer/telegram.rb, line 43 def send(method, query = {}) response = HTTParty.post("#{API_URL}#{@options[:token]}/#{method}", {query: query}).parsed_response result = response['result'] || nil message_id = result.kind_of?(Hash) && result.has_key?('message_id') ? result['message_id'].to_i : nil if response['ok'] {status: :success, message_id: message_id, message: response['description'], result: result} else {status: :failed, error: response['error_code'], message: response['description']} end end
send_message(text, options = {})
click to toggle source
# File lib/botomizer/telegram.rb, line 55 def send_message(text, options = {}) send(:sendMessage, {chat_id: @chat.id, text: text, parse_mode: 'HTML'}.merge(options)) end
webhook()
click to toggle source
# File lib/botomizer/telegram.rb, line 7 def webhook Webhook.new(@client) end