Class: Telbe::Bot
- Inherits:
-
Object
- Object
- Telbe::Bot
- Defined in:
- lib/telbe/bot.rb,
lib/telbe/chat.rb,
lib/telbe/poll.rb,
lib/telbe/user.rb,
lib/telbe/media.rb,
lib/telbe/inline.rb,
lib/telbe/contact.rb,
lib/telbe/sticker.rb,
lib/telbe/webhook.rb,
lib/telbe/keyboard.rb,
lib/telbe/location.rb
Constant Summary collapse
- ENDPOINT =
'https://api.telegram.org/'
Instance Method Summary collapse
- #add_sticker_to_set(add_sticker_to_set_descriptor) ⇒ Object
- #answer_callback_query(answer_callback_query_descriptor) ⇒ Object
- #answer_inline_query(answer_inline_query_descriptor) ⇒ Object
- #create_new_sticker_set(create_new_sticker_set_descriptor) ⇒ Object
- #delete_chat_photo(get_chat_descriptor) ⇒ Object
- #delete_chat_sticker_set(get_chat_descriptor) ⇒ Object
- #delete_sticker_from_set(delete_sticker_from_set_descriptor) ⇒ Object
- #delete_webhook ⇒ Object
- #edit_message_live_location(edit_message_live_location_descriptor) ⇒ Object
- #export_chat_invite_link(get_chat_descriptor) ⇒ Object
- #get_chat(get_chat_descriptor) ⇒ Object
- #get_chat_administrators(get_chat_descriptor) ⇒ Object
- #get_chat_member(chat_member_descriptor) ⇒ Object
- #get_chat_members_count(get_chat_descriptor) ⇒ Object
- #get_file(get_file_descriptor) ⇒ Object
- #get_me ⇒ Object
- #get_sticker_set(get_sticker_set_descriptor) ⇒ Object
- #get_updates(get_updates_descriptor) ⇒ Object
- #get_url(file) ⇒ Object
- #get_user_profile_photos(get_user_profile_photos_descriptor) ⇒ Object
- #get_webhookinfo ⇒ Object
-
#initialize(token:, proxy: nil) ⇒ Bot
constructor
A new instance of Bot.
- #kick_chat_member(kick_chat_member_descriptor) ⇒ Object
- #leave_chat(get_chat_descriptor) ⇒ Object
- #pin_chat_message(pin_chat_message_descriptor) ⇒ Object
- #promote_chat_member(promote_chat_member_descriptor) ⇒ Object
- #request(action, query = {}) ⇒ Object
- #restrict_chat_member(restrict_chat_member_descriptor) ⇒ Object
- #send_animation(send_animation_descriptor) ⇒ Object
- #send_audio(send_audio_descriptor) ⇒ Object
- #send_chat_action(send_chat_action_descriptor) ⇒ Object
- #send_contact(contact_descriptor) ⇒ Object
- #send_document(send_document_descriptor) ⇒ Object
- #send_location(send_location_descriptor) ⇒ Object
- #send_media_group(send_media_group_descriptor) ⇒ Object
- #send_message(message_descriptor) ⇒ Object
- #send_photo(send_photo_descriptor) ⇒ Object
- #send_poll(poll_descriptor) ⇒ Object
- #send_sticker(send_sticker_descriptor) ⇒ Object
- #send_video(send_video_descriptor) ⇒ Object
- #send_video_note(send_video_note_descriptor) ⇒ Object
- #send_voice(send_voice_descriptor) ⇒ Object
- #set_chat_description(set_chat_description_descriptor) ⇒ Object
- #set_chat_photo(set_chat_photo_descriptor) ⇒ Object
- #set_chat_sticker_set(set_chat_sticker_set_descriptor) ⇒ Object
- #set_chat_title(set_chat_title_descriptor) ⇒ Object
- #set_sticker_position_in_set(set_sticker_position_in_set_descriptor) ⇒ Object
- #set_webhook(webhook_descriptor) ⇒ Object
- #stop_message_live_location(stop_message_live_location_descriptor) ⇒ Object
- #stop_poll(stop_poll_descriptor) ⇒ Object
- #unban_chat_member(chat_member_descriptor) ⇒ Object
- #unpin_chat_message(get_chat_descriptor) ⇒ Object
- #upload_sticker_file(upload_sticker_file_descriptor) ⇒ Object
Constructor Details
#initialize(token:, proxy: nil) ⇒ Bot
Returns a new instance of Bot.
9 10 11 12 13 |
# File 'lib/telbe/bot.rb', line 9 def initialize(token:, proxy: nil) @token = token @proxy = proxy @connection = Excon.new(ENDPOINT, persistent: true, proxy: @proxy) end |
Instance Method Details
#add_sticker_to_set(add_sticker_to_set_descriptor) ⇒ Object
19 20 21 |
# File 'lib/telbe/sticker.rb', line 19 def add_sticker_to_set(add_sticker_to_set_descriptor) request(:addStickerToSet, add_sticker_to_set_descriptor) end |
#answer_callback_query(answer_callback_query_descriptor) ⇒ Object
3 4 5 |
# File 'lib/telbe/keyboard.rb', line 3 def answer_callback_query(answer_callback_query_descriptor) request(:answerCallbackQuery, answer_callback_query_descriptor) end |
#answer_inline_query(answer_inline_query_descriptor) ⇒ Object
3 4 5 |
# File 'lib/telbe/inline.rb', line 3 def answer_inline_query(answer_inline_query_descriptor) request(:answerInlineQuery, answer_inline_query_descriptor) end |
#create_new_sticker_set(create_new_sticker_set_descriptor) ⇒ Object
15 16 17 |
# File 'lib/telbe/sticker.rb', line 15 def create_new_sticker_set(create_new_sticker_set_descriptor) request(:createNewStickerSet, create_new_sticker_set_descriptor) end |
#delete_chat_photo(get_chat_descriptor) ⇒ Object
49 50 51 |
# File 'lib/telbe/chat.rb', line 49 def delete_chat_photo(get_chat_descriptor) request(:deleteChatPhoto, get_chat_descriptor) end |
#delete_chat_sticker_set(get_chat_descriptor) ⇒ Object
77 78 79 |
# File 'lib/telbe/chat.rb', line 77 def delete_chat_sticker_set(get_chat_descriptor) request(:deleteChatStickerSet, get_chat_descriptor) end |
#delete_sticker_from_set(delete_sticker_from_set_descriptor) ⇒ Object
27 28 29 |
# File 'lib/telbe/sticker.rb', line 27 def delete_sticker_from_set(delete_sticker_from_set_descriptor) request(:deleteStickerFromSet, delete_sticker_from_set_descriptor) end |
#delete_webhook ⇒ Object
7 8 9 |
# File 'lib/telbe/webhook.rb', line 7 def delete_webhook request(:deleteWebhook) end |
#edit_message_live_location(edit_message_live_location_descriptor) ⇒ Object
7 8 9 |
# File 'lib/telbe/location.rb', line 7 def () Message.new(request(:editMessageLiveLocation, )) end |
#export_chat_invite_link(get_chat_descriptor) ⇒ Object
41 42 43 |
# File 'lib/telbe/chat.rb', line 41 def export_chat_invite_link(get_chat_descriptor) request(:exportChatInviteLink, get_chat_descriptor) end |
#get_chat(get_chat_descriptor) ⇒ Object
3 4 5 |
# File 'lib/telbe/chat.rb', line 3 def get_chat(get_chat_descriptor) Chat.new(request(:getChat, get_chat_descriptor)) end |
#get_chat_administrators(get_chat_descriptor) ⇒ Object
7 8 9 10 11 |
# File 'lib/telbe/chat.rb', line 7 def get_chat_administrators(get_chat_descriptor) request(:getChatAdministrators, get_chat_descriptor).collect! do |chat_administrator| ChatMember.new(chat_administrator) end end |
#get_chat_member(chat_member_descriptor) ⇒ Object
17 18 19 |
# File 'lib/telbe/chat.rb', line 17 def get_chat_member(chat_member_descriptor) ChatMember.new(request(:getChatMember, chat_member_descriptor)) end |
#get_chat_members_count(get_chat_descriptor) ⇒ Object
13 14 15 |
# File 'lib/telbe/chat.rb', line 13 def get_chat_members_count(get_chat_descriptor) request(:getChatMembersCount, get_chat_descriptor) end |
#get_file(get_file_descriptor) ⇒ Object
7 8 9 |
# File 'lib/telbe/media.rb', line 7 def get_file(get_file_descriptor) File.new(request(:getFile, get_file_descriptor)) end |
#get_me ⇒ Object
5 6 7 |
# File 'lib/telbe/user.rb', line 5 def get_me User.new(request(:getMe)) end |
#get_sticker_set(get_sticker_set_descriptor) ⇒ Object
7 8 9 |
# File 'lib/telbe/sticker.rb', line 7 def get_sticker_set(get_sticker_set_descriptor) StickerSet.new(request(:getStickerSet, get_sticker_set_descriptor)) end |
#get_updates(get_updates_descriptor) ⇒ Object
29 30 31 32 33 |
# File 'lib/telbe/bot.rb', line 29 def get_updates(get_updates_descriptor) request(:getUpdates, get_updates_descriptor).collect do |update| Update.new(update) end end |
#get_url(file) ⇒ Object
3 4 5 |
# File 'lib/telbe/media.rb', line 3 def get_url(file) "https://api.telegram.org/file/bot#{@token}/#{file.file_path}" end |
#get_user_profile_photos(get_user_profile_photos_descriptor) ⇒ Object
9 10 11 |
# File 'lib/telbe/user.rb', line 9 def get_user_profile_photos(get_user_profile_photos_descriptor) UserProfilePhotos.new(request(:getUserProfilePhotos, get_user_profile_photos_descriptor)) end |
#get_webhookinfo ⇒ Object
11 12 13 |
# File 'lib/telbe/webhook.rb', line 11 def get_webhookinfo WebHookInfo.new(request(:getWebhookInfo)) end |
#kick_chat_member(kick_chat_member_descriptor) ⇒ Object
25 26 27 |
# File 'lib/telbe/chat.rb', line 25 def kick_chat_member(kick_chat_member_descriptor) request(:kickChatMember, kick_chat_member_descriptor) end |
#leave_chat(get_chat_descriptor) ⇒ Object
69 70 71 |
# File 'lib/telbe/chat.rb', line 69 def leave_chat(get_chat_descriptor) request(:leaveChat, get_chat_descriptor) end |
#pin_chat_message(pin_chat_message_descriptor) ⇒ Object
61 62 63 |
# File 'lib/telbe/chat.rb', line 61 def () request(:pinChatMessage, ) end |
#promote_chat_member(promote_chat_member_descriptor) ⇒ Object
37 38 39 |
# File 'lib/telbe/chat.rb', line 37 def promote_chat_member(promote_chat_member_descriptor) request(:promoteChatMember, promote_chat_member_descriptor) end |
#request(action, query = {}) ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/telbe/bot.rb', line 15 def request(action, query = {}) path = "/bot#{@token}/#{action}" response = @connection.post(path: path, query: query.to_h) raise ResponseError, response.body unless response.status == 200 body = response.body data = JSON.parse(body) data['result'] end |
#restrict_chat_member(restrict_chat_member_descriptor) ⇒ Object
33 34 35 |
# File 'lib/telbe/chat.rb', line 33 def restrict_chat_member(restrict_chat_member_descriptor) request(:restrictChatMember, restrict_chat_member_descriptor) end |
#send_animation(send_animation_descriptor) ⇒ Object
27 28 29 |
# File 'lib/telbe/media.rb', line 27 def send_animation(send_animation_descriptor) Message.new(request(:sendAnimation, send_animation_descriptor)) end |
#send_audio(send_audio_descriptor) ⇒ Object
15 16 17 |
# File 'lib/telbe/media.rb', line 15 def send_audio(send_audio_descriptor) Message.new(request(:sendAudio, send_audio_descriptor)) end |
#send_chat_action(send_chat_action_descriptor) ⇒ Object
21 22 23 |
# File 'lib/telbe/chat.rb', line 21 def send_chat_action(send_chat_action_descriptor) request(:sendChatAction, send_chat_action_descriptor) end |
#send_contact(contact_descriptor) ⇒ Object
3 4 5 |
# File 'lib/telbe/contact.rb', line 3 def send_contact(contact_descriptor) Message.new(request(:sendContact, contact_descriptor)) end |
#send_document(send_document_descriptor) ⇒ Object
19 20 21 |
# File 'lib/telbe/media.rb', line 19 def send_document(send_document_descriptor) Message.new(request(:sendDocument, send_document_descriptor)) end |
#send_location(send_location_descriptor) ⇒ Object
3 4 5 |
# File 'lib/telbe/location.rb', line 3 def send_location(send_location_descriptor) Message.new(request(:sendLocation, send_location_descriptor)) end |
#send_media_group(send_media_group_descriptor) ⇒ Object
39 40 41 42 43 |
# File 'lib/telbe/media.rb', line 39 def send_media_group(send_media_group_descriptor) request(:sendMediaGroup, send_media_group_descriptor).collect do |m| Message.new(m) end end |
#send_message(message_descriptor) ⇒ Object
25 26 27 |
# File 'lib/telbe/bot.rb', line 25 def () Message.new(request(:sendMessage, )) end |
#send_photo(send_photo_descriptor) ⇒ Object
11 12 13 |
# File 'lib/telbe/media.rb', line 11 def send_photo(send_photo_descriptor) Message.new(request(:sendPhoto, send_photo_descriptor)) end |
#send_poll(poll_descriptor) ⇒ Object
3 4 5 |
# File 'lib/telbe/poll.rb', line 3 def send_poll(poll_descriptor) Message.new(request(:sendPoll, poll_descriptor)) end |
#send_sticker(send_sticker_descriptor) ⇒ Object
3 4 5 |
# File 'lib/telbe/sticker.rb', line 3 def send_sticker(send_sticker_descriptor) Message.new(request(:sendSticker, send_sticker_descriptor)) end |
#send_video(send_video_descriptor) ⇒ Object
23 24 25 |
# File 'lib/telbe/media.rb', line 23 def send_video(send_video_descriptor) Message.new(request(:sendVideo, send_video_descriptor)) end |
#send_video_note(send_video_note_descriptor) ⇒ Object
35 36 37 |
# File 'lib/telbe/media.rb', line 35 def send_video_note(send_video_note_descriptor) Message.new(request(:sendVideoNote, send_video_note_descriptor)) end |
#send_voice(send_voice_descriptor) ⇒ Object
31 32 33 |
# File 'lib/telbe/media.rb', line 31 def send_voice(send_voice_descriptor) Message.new(request(:sendVoice, send_voice_descriptor)) end |
#set_chat_description(set_chat_description_descriptor) ⇒ Object
57 58 59 |
# File 'lib/telbe/chat.rb', line 57 def set_chat_description(set_chat_description_descriptor) request(:setChatDescription, set_chat_description_descriptor) end |
#set_chat_photo(set_chat_photo_descriptor) ⇒ Object
45 46 47 |
# File 'lib/telbe/chat.rb', line 45 def set_chat_photo(set_chat_photo_descriptor) request(:setChatPhoto, set_chat_photo_descriptor) end |
#set_chat_sticker_set(set_chat_sticker_set_descriptor) ⇒ Object
73 74 75 |
# File 'lib/telbe/chat.rb', line 73 def set_chat_sticker_set(set_chat_sticker_set_descriptor) request(:setChatStickerSet, set_chat_sticker_set_descriptor) end |
#set_chat_title(set_chat_title_descriptor) ⇒ Object
53 54 55 |
# File 'lib/telbe/chat.rb', line 53 def set_chat_title(set_chat_title_descriptor) request(:setChatTitle, set_chat_title_descriptor) end |
#set_sticker_position_in_set(set_sticker_position_in_set_descriptor) ⇒ Object
23 24 25 |
# File 'lib/telbe/sticker.rb', line 23 def set_sticker_position_in_set(set_sticker_position_in_set_descriptor) request(:setStickerPositionInSet, set_sticker_position_in_set_descriptor) end |
#set_webhook(webhook_descriptor) ⇒ Object
3 4 5 |
# File 'lib/telbe/webhook.rb', line 3 def set_webhook(webhook_descriptor) request(:setWebhook, webhook_descriptor) end |
#stop_message_live_location(stop_message_live_location_descriptor) ⇒ Object
11 12 13 |
# File 'lib/telbe/location.rb', line 11 def () Message.new(request(:stopMessageLiveLocation, )) end |
#stop_poll(stop_poll_descriptor) ⇒ Object
7 8 9 |
# File 'lib/telbe/poll.rb', line 7 def stop_poll(stop_poll_descriptor) Poll.new(request(:stopPoll, stop_poll_descriptor)) end |
#unban_chat_member(chat_member_descriptor) ⇒ Object
29 30 31 |
# File 'lib/telbe/chat.rb', line 29 def unban_chat_member(chat_member_descriptor) request(:unbanChatMember, chat_member_descriptor) end |
#unpin_chat_message(get_chat_descriptor) ⇒ Object
65 66 67 |
# File 'lib/telbe/chat.rb', line 65 def (get_chat_descriptor) request(:unpinChatMessage, get_chat_descriptor) end |
#upload_sticker_file(upload_sticker_file_descriptor) ⇒ Object
11 12 13 |
# File 'lib/telbe/sticker.rb', line 11 def upload_sticker_file(upload_sticker_file_descriptor) File.new(request(:uploadStickerFile, upload_sticker_file_descriptor)) end |