Class: Telbe::Bot

Inherits:
Object
  • Object
show all
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

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_webhookObject



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 edit_message_live_location(edit_message_live_location_descriptor)
  Message.new(request(:editMessageLiveLocation, edit_message_live_location_descriptor))
end


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_meObject



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 ()
  UserProfilePhotos.new(request(:getUserProfilePhotos, ))
end

#get_webhookinfoObject



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 pin_chat_message(pin_chat_message_descriptor)
  request(:pinChatMessage, pin_chat_message_descriptor)
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

Raises:



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 send_message(message_descriptor)
  Message.new(request(:sendMessage, message_descriptor))
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 stop_message_live_location(stop_message_live_location_descriptor)
  Message.new(request(:stopMessageLiveLocation, stop_message_live_location_descriptor))
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 unpin_chat_message(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