telegram-bot-ruby 0.10.1 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +7 -10
  3. data/.travis.yml +2 -1
  4. data/CHANGELOG.md +22 -0
  5. data/Rakefile +2 -2
  6. data/lib/telegram/bot/api.rb +6 -3
  7. data/lib/telegram/bot/client.rb +10 -6
  8. data/lib/telegram/bot/null_logger.rb +2 -4
  9. data/lib/telegram/bot/types.rb +14 -1
  10. data/lib/telegram/bot/types/animation.rb +4 -0
  11. data/lib/telegram/bot/types/audio.rb +2 -0
  12. data/lib/telegram/bot/types/chat.rb +4 -0
  13. data/lib/telegram/bot/types/chat_invite_link.rb +14 -0
  14. data/lib/telegram/bot/types/chat_location.rb +10 -0
  15. data/lib/telegram/bot/types/chat_member.rb +9 -4
  16. data/lib/telegram/bot/types/chat_member_updated.rb +14 -0
  17. data/lib/telegram/bot/types/chat_permissions.rb +16 -0
  18. data/lib/telegram/bot/types/chat_photo.rb +2 -0
  19. data/lib/telegram/bot/types/dice.rb +10 -0
  20. data/lib/telegram/bot/types/document.rb +1 -0
  21. data/lib/telegram/bot/types/file.rb +1 -0
  22. data/lib/telegram/bot/types/inline_query_result_audio.rb +1 -0
  23. data/lib/telegram/bot/types/inline_query_result_cached_audio.rb +1 -0
  24. data/lib/telegram/bot/types/inline_query_result_cached_document.rb +1 -0
  25. data/lib/telegram/bot/types/inline_query_result_cached_gif.rb +1 -0
  26. data/lib/telegram/bot/types/inline_query_result_cached_mpeg4_gif.rb +1 -0
  27. data/lib/telegram/bot/types/inline_query_result_cached_photo.rb +1 -0
  28. data/lib/telegram/bot/types/inline_query_result_cached_video.rb +1 -0
  29. data/lib/telegram/bot/types/inline_query_result_cached_voice.rb +1 -0
  30. data/lib/telegram/bot/types/inline_query_result_document.rb +1 -0
  31. data/lib/telegram/bot/types/inline_query_result_gif.rb +1 -0
  32. data/lib/telegram/bot/types/inline_query_result_location.rb +4 -0
  33. data/lib/telegram/bot/types/inline_query_result_mpeg4_gif.rb +2 -0
  34. data/lib/telegram/bot/types/inline_query_result_photo.rb +1 -0
  35. data/lib/telegram/bot/types/inline_query_result_venue.rb +2 -0
  36. data/lib/telegram/bot/types/inline_query_result_video.rb +1 -0
  37. data/lib/telegram/bot/types/inline_query_result_voice.rb +1 -0
  38. data/lib/telegram/bot/types/input_location_message_content.rb +4 -0
  39. data/lib/telegram/bot/types/input_media_document.rb +2 -0
  40. data/lib/telegram/bot/types/input_media_photo.rb +1 -0
  41. data/lib/telegram/bot/types/input_media_video.rb +1 -0
  42. data/lib/telegram/bot/types/input_venue_message_content.rb +2 -0
  43. data/lib/telegram/bot/types/keyboard_button.rb +1 -0
  44. data/lib/telegram/bot/types/keyboard_button_poll_type.rb +9 -0
  45. data/lib/telegram/bot/types/location.rb +4 -0
  46. data/lib/telegram/bot/types/message.rb +8 -0
  47. data/lib/telegram/bot/types/message_auto_delete_timer_changed.rb +9 -0
  48. data/lib/telegram/bot/types/message_entity.rb +1 -0
  49. data/lib/telegram/bot/types/passport_file.rb +1 -0
  50. data/lib/telegram/bot/types/photo_size.rb +1 -0
  51. data/lib/telegram/bot/types/poll.rb +9 -0
  52. data/lib/telegram/bot/types/poll_answer.rb +11 -0
  53. data/lib/telegram/bot/types/proximity_alert_triggered.rb +11 -0
  54. data/lib/telegram/bot/types/sticker.rb +2 -0
  55. data/lib/telegram/bot/types/sticker_set.rb +2 -0
  56. data/lib/telegram/bot/types/update.rb +3 -0
  57. data/lib/telegram/bot/types/user.rb +3 -0
  58. data/lib/telegram/bot/types/venue.rb +2 -0
  59. data/lib/telegram/bot/types/video.rb +2 -0
  60. data/lib/telegram/bot/types/video_note.rb +1 -0
  61. data/lib/telegram/bot/types/voice.rb +1 -0
  62. data/lib/telegram/bot/types/voice_chat_ended.rb +9 -0
  63. data/lib/telegram/bot/types/voice_chat_participants_invited.rb +9 -0
  64. data/lib/telegram/bot/types/voice_chat_started.rb +8 -0
  65. data/lib/telegram/bot/types/webhook_info.rb +17 -0
  66. data/lib/telegram/bot/version.rb +1 -1
  67. data/telegram-bot-ruby.gemspec +1 -1
  68. metadata +22 -10
  69. data/.rubocop_todo.yml +0 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a87221e415aba44c089fa62eb3d564c3c8bbe8f316e54e3d43d588a63acaff7b
4
- data.tar.gz: 9684c05063fd9df14820b6b6e38e9de8301588c693ada65cfba718a5a9265f63
3
+ metadata.gz: 9b39d62dd4efff4ab96664e0cc4a0ce3eee6631ea8b96c3b90be993f8bae6d34
4
+ data.tar.gz: e7afcb7986690e5e512faa9caec4abe13f85e21252e86f13af48968ae990bca0
5
5
  SHA512:
6
- metadata.gz: e352351f200f9b5d868132ba54d82ceb2842ead6383f2bd65a16ce42a895d6b80347273638f812b90842a88f053d93e727af9bed29162fbd3d76798520309694
7
- data.tar.gz: 659407229bbcfd9e9d30ce5dc202597e6571271883ea0bc83ca7d755092762825e25942d325618f8bcffe75935c703ea2ab5c2a494ec6c1df954508a84197644
6
+ metadata.gz: 527a11835b057bc29fdbeecd22350b86b1f3bfdd9bc3c328e11b5fe275fd47847c946bc4bf7b3f804f25b9f9dee8a693c54bb3d6ebf8d64a1a009995b59d03e9
7
+ data.tar.gz: 839b7b1c0c03c4109ebcdc6f777af0f90013393f35407b113c6805d7740bc9326dc2e4236b465f76387db38656832aa615178bcc96b5c13a0fdb1ebbbedbc356
data/.rubocop.yml CHANGED
@@ -1,18 +1,15 @@
1
- inherit_from: .rubocop_todo.yml
1
+ ---
2
2
  require: rubocop-rspec
3
3
 
4
+ Style/Documentation:
5
+ Enabled: false
6
+
4
7
  Metrics/BlockLength:
5
- Exclude:
6
- - spec/**/*.rb
8
+ ExcludedMethods:
9
+ - context
10
+ - describe
7
11
 
8
12
  Metrics/LineLength:
9
13
  Exclude:
10
14
  - telegram-bot-ruby.gemspec
11
15
  - examples/*.rb
12
-
13
- Style/EmptyMethod:
14
- EnforcedStyle: expanded
15
-
16
- Style/PercentLiteralDelimiters:
17
- PreferredDelimiters:
18
- '%w': '()'
data/.travis.yml CHANGED
@@ -1,6 +1,7 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.3.0
3
+ - 2.6.6
4
+ - 2.7.2
4
5
  script:
5
6
  - bundle exec rubocop
6
7
  - bundle exec rspec
data/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.15.0
4
+
5
+ - Implement [Bot API 5.1](https://core.telegram.org/bots/api#march-9-2021)
6
+
7
+ ## 0.14.0
8
+
9
+ - Implement [Bot API 5.0](https://core.telegram.org/bots/api#november-4-2020)
10
+
11
+ ## 0.13.0
12
+
13
+ - Implement [Bot API 4.9](https://core.telegram.org/bots/api-changelog#june-4-2020)
14
+ - Implement [Bot API 4.8](https://core.telegram.org/bots/api-changelog#april-24-2020)
15
+ - Implement [Bot API 4.7](https://core.telegram.org/bots/api-changelog#march-30-2020)
16
+
17
+ ## 0.12.0
18
+
19
+ - Implement [Bot API 4.5](https://core.telegram.org/bots/api-changelog#december-31-2019) and [Bot API 4.6](https://core.telegram.org/bots/api-changelog#january-23-2020)
20
+
21
+ ## 0.11.0
22
+
23
+ - Implement [Bot API 4.4](https://core.telegram.org/bots/api#july-29-2019)
24
+
3
25
  ## 0.10.1
4
26
 
5
27
  - Fix issue #202 with `Poll` messages and logging
data/Rakefile CHANGED
@@ -5,8 +5,8 @@ require 'rspec/core/rake_task'
5
5
 
6
6
  RuboCop::RakeTask.new(:rubocop) do |task|
7
7
  task.fail_on_error = false
8
- task.options = %w(--force-exclusion)
9
- task.patterns = %w(lib/**/*.rb)
8
+ task.options = %w[--force-exclusion]
9
+ task.patterns = %w[lib/**/*.rb]
10
10
  task.requires << 'rubocop-rspec'
11
11
  end
12
12
 
@@ -1,7 +1,7 @@
1
1
  module Telegram
2
2
  module Bot
3
3
  class Api # rubocop:disable ClassLength
4
- ENDPOINTS = %w(
4
+ ENDPOINTS = %w[
5
5
  getUpdates setWebhook deleteWebhook getWebhookInfo getMe sendMessage
6
6
  forwardMessage sendPhoto sendAudio sendDocument sendVideo sendVoice
7
7
  sendVideoNote sendMediaGroup sendLocation editMessageLiveLocation
@@ -17,8 +17,11 @@ module Telegram
17
17
  setStickerPositionInSet deleteStickerFromSet answerInlineQuery
18
18
  sendInvoice answerShippingQuery answerPreCheckoutQuery
19
19
  sendGame setGameScore getGameHighScores setPassportDataErrors
20
- editMessageMedia sendAnimation sendPoll stopPoll
21
- ).freeze
20
+ editMessageMedia sendAnimation sendPoll stopPoll setChatPermissions
21
+ setChatAdministratorCustomTitle sendDice getMyCommands setMyCommands
22
+ setStickerSetThumb logOut close copyMessage createChatInviteLink
23
+ editChatInviteLink revokeChatInviteLink
24
+ ].freeze
22
25
  REPLY_MARKUP_TYPES = [
23
26
  Telegram::Bot::Types::ReplyKeyboardMarkup,
24
27
  Telegram::Bot::Types::ReplyKeyboardRemove,
@@ -31,16 +31,20 @@ module Telegram
31
31
  return unless response['ok']
32
32
 
33
33
  response['result'].each do |data|
34
- update = Types::Update.new(data)
35
- @options[:offset] = update.update_id.next
36
- message = update.current_message
37
- log_incoming_message(message)
38
- yield message
34
+ yield handle_update(Types::Update.new(data))
39
35
  end
40
- rescue Faraday::Error::TimeoutError
36
+ rescue Faraday::TimeoutError
41
37
  retry
42
38
  end
43
39
 
40
+ def handle_update(update)
41
+ @options[:offset] = update.update_id.next
42
+ message = update.current_message
43
+ log_incoming_message(message)
44
+
45
+ message
46
+ end
47
+
44
48
  private
45
49
 
46
50
  def default_options
@@ -1,11 +1,9 @@
1
1
  module Telegram
2
2
  module Bot
3
3
  class NullLogger < Logger
4
- def initialize(*)
5
- end
4
+ def initialize(*); end
6
5
 
7
- def add(*)
8
- end
6
+ def add(*); end
9
7
  end
10
8
  end
11
9
  end
@@ -11,8 +11,10 @@ require 'telegram/bot/types/video'
11
11
  require 'telegram/bot/types/voice'
12
12
  require 'telegram/bot/types/video_note'
13
13
  require 'telegram/bot/types/contact'
14
+ require 'telegram/bot/types/dice'
14
15
  require 'telegram/bot/types/location'
15
16
  require 'telegram/bot/types/chat_photo'
17
+ require 'telegram/bot/types/chat_permissions'
16
18
  require 'telegram/bot/types/chat'
17
19
  require 'telegram/bot/types/message_entity'
18
20
  require 'telegram/bot/types/venue'
@@ -25,6 +27,7 @@ require 'telegram/bot/types/shipping_address'
25
27
  require 'telegram/bot/types/order_info'
26
28
  require 'telegram/bot/types/successful_payment'
27
29
  require 'telegram/bot/types/poll_option'
30
+ require 'telegram/bot/types/poll_answer'
28
31
  require 'telegram/bot/types/poll'
29
32
  require 'telegram/bot/types/passport_file'
30
33
  require 'telegram/bot/types/encrypted_passport_element'
@@ -69,11 +72,16 @@ require 'telegram/bot/types/inline_query_result_venue'
69
72
  require 'telegram/bot/types/inline_query_result_video'
70
73
  require 'telegram/bot/types/inline_query_result_voice'
71
74
  require 'telegram/bot/types/chosen_inline_result'
75
+ require 'telegram/bot/types/proximity_alert_triggered'
76
+ require 'telegram/bot/types/voice_chat_started'
77
+ require 'telegram/bot/types/voice_chat_ended'
78
+ require 'telegram/bot/types/voice_chat_participants_invited'
79
+ require 'telegram/bot/types/message_auto_delete_timer_changed'
72
80
  require 'telegram/bot/types/message'
73
81
  require 'telegram/bot/types/callback_query'
74
82
  require 'telegram/bot/types/shipping_query'
75
83
  require 'telegram/bot/types/pre_checkout_query'
76
- require 'telegram/bot/types/update'
84
+ require 'telegram/bot/types/keyboard_button_poll_type'
77
85
  require 'telegram/bot/types/keyboard_button'
78
86
  require 'telegram/bot/types/reply_keyboard_markup'
79
87
  require 'telegram/bot/types/reply_keyboard_remove'
@@ -81,12 +89,17 @@ require 'telegram/bot/types/force_reply'
81
89
  require 'telegram/bot/types/file'
82
90
  require 'telegram/bot/types/labeled_price'
83
91
  require 'telegram/bot/types/shipping_option'
92
+ require 'telegram/bot/types/chat_invite_link'
84
93
  require 'telegram/bot/types/chat_member'
94
+ require 'telegram/bot/types/chat_member_updated'
95
+ require 'telegram/bot/types/update'
85
96
  require 'telegram/bot/types/user_profile_photos'
86
97
  require 'telegram/bot/types/input_media_photo'
87
98
  require 'telegram/bot/types/input_media_video'
88
99
  require 'telegram/bot/types/input_media_animation'
89
100
  require 'telegram/bot/types/input_media_audio'
90
101
  require 'telegram/bot/types/input_media_document'
102
+ require 'telegram/bot/types/webhook_info'
103
+ require 'telegram/bot/types/chat_location'
91
104
 
92
105
  Virtus.finalize
@@ -3,6 +3,10 @@ module Telegram
3
3
  module Types
4
4
  class Animation < Base
5
5
  attribute :file_id, String
6
+ attribute :file_unique_id, String
7
+ attribute :width, Integer
8
+ attribute :height, Integer
9
+ attribute :duration, Integer
6
10
  attribute :thumb, PhotoSize
7
11
  attribute :file_name, String
8
12
  attribute :mime_type, String
@@ -3,9 +3,11 @@ module Telegram
3
3
  module Types
4
4
  class Audio < Base
5
5
  attribute :file_id, String
6
+ attribute :file_unique_id, String
6
7
  attribute :duration, Integer
7
8
  attribute :performer, String
8
9
  attribute :title, String
10
+ attribute :file_name, String
9
11
  attribute :mime_type, String
10
12
  attribute :file_size, Integer
11
13
  attribute :thumb, PhotoSize
@@ -16,6 +16,10 @@ module Telegram
16
16
  attribute :description, String
17
17
  attribute :invite_link, String
18
18
  attribute :pinned_message, 'Telegram::Bot::Types::Message'
19
+ attribute :permissions, ChatPermissions
20
+ attribute :slow_mode_delay, Integer
21
+ attribute :sticker_set_name, String
22
+ attribute :can_set_sticker_set, Boolean
19
23
  end
20
24
  end
21
25
  end
@@ -0,0 +1,14 @@
1
+ module Telegram
2
+ module Bot
3
+ module Types
4
+ class ChatInviteLink < Base
5
+ attribute :invite_link, String
6
+ attribute :creator, User
7
+ attribute :is_primary, Boolean
8
+ attribute :is_revoked, Boolean
9
+ attribute :expire_date, Integer
10
+ attribute :member_limit, Integer
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,10 @@
1
+ module Telegram
2
+ module Bot
3
+ module Types
4
+ class ChatLocation < Base
5
+ attribute :location, Location
6
+ attribute :address, String
7
+ end
8
+ end
9
+ end
10
+ end
@@ -4,21 +4,26 @@ module Telegram
4
4
  class ChatMember < Base
5
5
  attribute :user, User
6
6
  attribute :status, String
7
- attribute :until_date, Integer
7
+ attribute :custom_title, String
8
+ attribute :is_anonymous, Boolean
8
9
  attribute :can_be_edited, Boolean
9
- attribute :can_change_info, Boolean
10
+ attribute :can_manage_chat, Boolean
10
11
  attribute :can_post_messages, Boolean
11
12
  attribute :can_edit_messages, Boolean
12
13
  attribute :can_delete_messages, Boolean
13
- attribute :can_invite_users, Boolean
14
+ attribute :can_manage_voice_chats, Boolean
14
15
  attribute :can_restrict_members, Boolean
15
- attribute :can_pin_messages, Boolean
16
16
  attribute :can_promote_members, Boolean
17
+ attribute :can_change_info, Boolean
18
+ attribute :can_invite_users, Boolean
19
+ attribute :can_pin_messages, Boolean
17
20
  attribute :is_member, Boolean
18
21
  attribute :can_send_messages, Boolean
19
22
  attribute :can_send_media_messages, Boolean
23
+ attribute :can_send_polls, Boolean
20
24
  attribute :can_send_other_messages, Boolean
21
25
  attribute :can_add_web_page_previews, Boolean
26
+ attribute :until_date, Integer
22
27
  end
23
28
  end
24
29
  end
@@ -0,0 +1,14 @@
1
+ module Telegram
2
+ module Bot
3
+ module Types
4
+ class ChatMemberUpdated < Base
5
+ attribute :chat, Chat
6
+ attribute :from, User
7
+ attribute :date, Integer
8
+ attribute :old_chat_member, ChatMember
9
+ attribute :new_chat_member, ChatMember
10
+ attribute :invite_link, ChatInviteLink
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ module Telegram
2
+ module Bot
3
+ module Types
4
+ class ChatPermissions < Base
5
+ attribute :can_send_messages, Boolean
6
+ attribute :can_send_media_messages, Boolean
7
+ attribute :can_send_polls, Boolean
8
+ attribute :can_send_other_messages, Boolean
9
+ attribute :can_add_web_page_previews, Boolean
10
+ attribute :can_change_info, Boolean
11
+ attribute :can_invite_users, Boolean
12
+ attribute :can_pin_messages, Boolean
13
+ end
14
+ end
15
+ end
16
+ end
@@ -3,7 +3,9 @@ module Telegram
3
3
  module Types
4
4
  class ChatPhoto < Base
5
5
  attribute :small_file_id, String
6
+ attribute :small_file_unique_id, String
6
7
  attribute :big_file_id, String
8
+ attribute :big_file_unique_id, String
7
9
  end
8
10
  end
9
11
  end
@@ -0,0 +1,10 @@
1
+ module Telegram
2
+ module Bot
3
+ module Types
4
+ class Dice < Base
5
+ attribute :emoji, String
6
+ attribute :value, Integer
7
+ end
8
+ end
9
+ end
10
+ end
@@ -3,6 +3,7 @@ module Telegram
3
3
  module Types
4
4
  class Document < Base
5
5
  attribute :file_id, String
6
+ attribute :file_unique_id, String
6
7
  attribute :thumb, PhotoSize
7
8
  attribute :file_name, String
8
9
  attribute :mime_type, String
@@ -3,6 +3,7 @@ module Telegram
3
3
  module Types
4
4
  class File < Base
5
5
  attribute :file_id, String
6
+ attribute :file_unique_id, String
6
7
  attribute :file_size, Integer
7
8
  attribute :file_path, String
8
9
  end
@@ -7,6 +7,7 @@ module Telegram
7
7
  attribute :audio_url, String
8
8
  attribute :title, String
9
9
  attribute :caption, String
10
+ attribute :parse_mode, String
10
11
  attribute :performer, String
11
12
  attribute :audio_duration, Integer
12
13
  attribute :reply_markup, InlineKeyboardMarkup
@@ -6,6 +6,7 @@ module Telegram
6
6
  attribute :id, String
7
7
  attribute :audio_file_id, String
8
8
  attribute :caption, String
9
+ attribute :parse_mode, String
9
10
  attribute :reply_markup, InlineKeyboardMarkup
10
11
  attribute :input_message_content, InputMessageContent
11
12
  end
@@ -8,6 +8,7 @@ module Telegram
8
8
  attribute :document_file_id, String
9
9
  attribute :description, String
10
10
  attribute :caption, String
11
+ attribute :parse_mode, String
11
12
  attribute :reply_markup, InlineKeyboardMarkup
12
13
  attribute :input_message_content, InputMessageContent
13
14
  end
@@ -7,6 +7,7 @@ module Telegram
7
7
  attribute :gif_file_id, String
8
8
  attribute :title, String
9
9
  attribute :caption, String
10
+ attribute :parse_mode, String
10
11
  attribute :reply_markup, InlineKeyboardMarkup
11
12
  attribute :input_message_content, InputMessageContent
12
13
  end
@@ -7,6 +7,7 @@ module Telegram
7
7
  attribute :mpeg4_file_id, String
8
8
  attribute :title, String
9
9
  attribute :caption, String
10
+ attribute :parse_mode, String
10
11
  attribute :reply_markup, InlineKeyboardMarkup
11
12
  attribute :input_message_content, InputMessageContent
12
13
  end
@@ -8,6 +8,7 @@ module Telegram
8
8
  attribute :title, String
9
9
  attribute :description, String
10
10
  attribute :caption, String
11
+ attribute :parse_mode, String
11
12
  attribute :reply_markup, InlineKeyboardMarkup
12
13
  attribute :input_message_content, InputMessageContent
13
14
  end
@@ -8,6 +8,7 @@ module Telegram
8
8
  attribute :title, String
9
9
  attribute :description, String
10
10
  attribute :caption, String
11
+ attribute :parse_mode, String
11
12
  attribute :reply_markup, InlineKeyboardMarkup
12
13
  attribute :input_message_content, InputMessageContent
13
14
  end
@@ -7,6 +7,7 @@ module Telegram
7
7
  attribute :voice_file_id, String
8
8
  attribute :title, String
9
9
  attribute :caption, String
10
+ attribute :parse_mode, String
10
11
  attribute :reply_markup, InlineKeyboardMarkup
11
12
  attribute :input_message_content, InputMessageContent
12
13
  end
@@ -6,6 +6,7 @@ module Telegram
6
6
  attribute :id, String
7
7
  attribute :title, String
8
8
  attribute :caption, String
9
+ attribute :parse_mode, String
9
10
  attribute :document_url, String
10
11
  attribute :mime_type, String
11
12
  attribute :description, String
@@ -9,6 +9,7 @@ module Telegram
9
9
  attribute :gif_height, Integer
10
10
  attribute :gif_duration, Integer
11
11
  attribute :thumb_url, String
12
+ attribute :thumb_mime_type, String
12
13
  attribute :title, String
13
14
  attribute :caption, String
14
15
  attribute :reply_markup, InlineKeyboardMarkup
@@ -7,6 +7,10 @@ module Telegram
7
7
  attribute :latitude, Float
8
8
  attribute :longitude, Float
9
9
  attribute :title, String
10
+ attribute :horizontal_accuracy, Float
11
+ attribute :live_period, Integer
12
+ attribute :heading, Integer
13
+ attribute :proximity_alert_radius, Integer
10
14
  attribute :reply_markup, InlineKeyboardMarkup
11
15
  attribute :input_message_content, InputMessageContent
12
16
  attribute :thumb_url, String
@@ -9,8 +9,10 @@ module Telegram
9
9
  attribute :mpeg4_height, Integer
10
10
  attribute :mpeg4_duration, Integer
11
11
  attribute :thumb_url, String
12
+ attribute :thumb_mime_type, String
12
13
  attribute :title, String
13
14
  attribute :caption, String
15
+ attribute :parse_mode, String
14
16
  attribute :reply_markup, InlineKeyboardMarkup
15
17
  attribute :input_message_content, InputMessageContent
16
18
  end
@@ -11,6 +11,7 @@ module Telegram
11
11
  attribute :title, String
12
12
  attribute :description, String
13
13
  attribute :caption, String
14
+ attribute :parse_mode, String
14
15
  attribute :reply_markup, InlineKeyboardMarkup
15
16
  attribute :input_message_content, InputMessageContent
16
17
  end
@@ -10,6 +10,8 @@ module Telegram
10
10
  attribute :address, String
11
11
  attribute :foursquare_id, String
12
12
  attribute :foursquare_type, String
13
+ attribute :google_place_id, String
14
+ attribute :google_place_type, String
13
15
  attribute :reply_markup, InlineKeyboardMarkup
14
16
  attribute :input_message_content, InputMessageContent
15
17
  attribute :thumb_url, String
@@ -9,6 +9,7 @@ module Telegram
9
9
  attribute :thumb_url, String
10
10
  attribute :title, String
11
11
  attribute :caption, String
12
+ attribute :parse_mode, String
12
13
  attribute :video_width, Integer
13
14
  attribute :video_height, Integer
14
15
  attribute :video_duration, Integer
@@ -7,6 +7,7 @@ module Telegram
7
7
  attribute :voice_url, String
8
8
  attribute :title, String
9
9
  attribute :caption, String
10
+ attribute :parse_mode, String
10
11
  attribute :voice_duration, Integer
11
12
  attribute :reply_markup, InlineKeyboardMarkup
12
13
  attribute :input_message_content, InputMessageContent
@@ -4,6 +4,10 @@ module Telegram
4
4
  class InputLocationMessageContent < InputMessageContent
5
5
  attribute :latitude, Float
6
6
  attribute :longitude, Float
7
+ attribute :horizontal_accuracy, Float
8
+ attribute :live_period, Integer
9
+ attribute :heading, Integer
10
+ attribute :proximity_alert_radius, Integer
7
11
  end
8
12
  end
9
13
  end
@@ -7,6 +7,8 @@ module Telegram
7
7
  attribute :thumb, String
8
8
  attribute :caption, String
9
9
  attribute :parse_mode, String
10
+ attribute :caption_entities, Array[MessageEntity]
11
+ attribute :disable_content_type_detection, Boolean
10
12
  end
11
13
  end
12
14
  end
@@ -5,6 +5,7 @@ module Telegram
5
5
  attribute :type, String, default: 'photo'
6
6
  attribute :media, String
7
7
  attribute :caption, String
8
+ attribute :parse_mode, String
8
9
  end
9
10
  end
10
11
  end
@@ -5,6 +5,7 @@ module Telegram
5
5
  attribute :type, String, default: 'video'
6
6
  attribute :media, String
7
7
  attribute :caption, String
8
+ attribute :parse_mode, String
8
9
  attribute :width, Integer
9
10
  attribute :height, Integer
10
11
  attribute :duration, Integer
@@ -8,6 +8,8 @@ module Telegram
8
8
  attribute :address, String
9
9
  attribute :foursquare_id, String
10
10
  attribute :foursquare_type, String
11
+ attribute :google_place_id, String
12
+ attribute :google_place_type, String
11
13
  end
12
14
  end
13
15
  end
@@ -5,6 +5,7 @@ module Telegram
5
5
  attribute :text, String
6
6
  attribute :request_contact, Boolean
7
7
  attribute :request_location, Boolean
8
+ attribute :request_poll, KeyboardButtonPollType
8
9
  end
9
10
  end
10
11
  end
@@ -0,0 +1,9 @@
1
+ module Telegram
2
+ module Bot
3
+ module Types
4
+ class KeyboardButtonPollType < Base
5
+ attribute :type, String
6
+ end
7
+ end
8
+ end
9
+ end
@@ -4,6 +4,10 @@ module Telegram
4
4
  class Location < Base
5
5
  attribute :longitude, Float
6
6
  attribute :latitude, Float
7
+ attribute :horizontal_accuracy, Float
8
+ attribute :live_period, Integer
9
+ attribute :heading, Integer
10
+ attribute :proximity_alert_radius, Integer
7
11
  end
8
12
  end
9
13
  end
@@ -4,6 +4,7 @@ module Telegram
4
4
  class Message < Base
5
5
  attribute :message_id, Integer
6
6
  attribute :from, User
7
+ attribute :sender_chat, Chat
7
8
  attribute :date, Integer
8
9
  attribute :chat, Chat
9
10
  attribute :forward_from, User
@@ -13,6 +14,7 @@ module Telegram
13
14
  attribute :forward_sender_name, String
14
15
  attribute :forward_date, Integer
15
16
  attribute :reply_to_message, Message
17
+ attribute :via_bot, User
16
18
  attribute :edit_date, Integer
17
19
  attribute :media_group_id, String
18
20
  attribute :author_signature, String
@@ -30,6 +32,7 @@ module Telegram
30
32
  attribute :video_note, VideoNote
31
33
  attribute :caption, String
32
34
  attribute :contact, Contact
35
+ attribute :dice, Dice
33
36
  attribute :location, Location
34
37
  attribute :venue, Venue
35
38
  attribute :poll, Poll
@@ -41,6 +44,7 @@ module Telegram
41
44
  attribute :group_chat_created, Boolean
42
45
  attribute :supergroup_chat_created, Boolean
43
46
  attribute :channel_chat_created, Boolean
47
+ attribute :message_auto_delete_timer_changed, MessageAutoDeleteTimerChanged
44
48
  attribute :migrate_to_chat_id, Integer
45
49
  attribute :migrate_from_chat_id, Integer
46
50
  attribute :pinned_message, Message
@@ -48,6 +52,10 @@ module Telegram
48
52
  attribute :successful_payment, SuccessfulPayment
49
53
  attribute :connected_website, String
50
54
  attribute :passport_data, PassportData
55
+ attribute :proximity_alert_triggered, ProximityAlertTriggered
56
+ attribute :voice_chat_started, VoiceChatStarted
57
+ attribute :voice_chat_ended, VoiceChatEnded
58
+ attribute :voice_chat_participants_invited, VoiceChatParticipantsInvited
51
59
  attribute :reply_markup, InlineKeyboardMarkup
52
60
 
53
61
  alias to_s text
@@ -0,0 +1,9 @@
1
+ module Telegram
2
+ module Bot
3
+ module Types
4
+ class MessageAutoDeleteTimerChanged < Base
5
+ attribute :message_auto_delete_time, Integer
6
+ end
7
+ end
8
+ end
9
+ end
@@ -7,6 +7,7 @@ module Telegram
7
7
  attribute :length, Integer
8
8
  attribute :url, String
9
9
  attribute :user, User
10
+ attribute :language, String
10
11
  end
11
12
  end
12
13
  end
@@ -3,6 +3,7 @@ module Telegram
3
3
  module Types
4
4
  class PassportFile < Base
5
5
  attribute :file_id, String
6
+ attribute :file_unique_id, String
6
7
  attribute :file_size, Integer
7
8
  attribute :file_date, Integer
8
9
  end
@@ -3,6 +3,7 @@ module Telegram
3
3
  module Types
4
4
  class PhotoSize < Base
5
5
  attribute :file_id, String
6
+ attribute :file_unique_id, String
6
7
  attribute :width, Integer
7
8
  attribute :height, Integer
8
9
  attribute :file_size, Integer
@@ -5,7 +5,16 @@ module Telegram
5
5
  attribute :id, String
6
6
  attribute :question, String
7
7
  attribute :options, Array[PollOption]
8
+ attribute :total_voter_count, Integer
8
9
  attribute :is_closed, Boolean
10
+ attribute :is_anonymous, Boolean
11
+ attribute :type, String
12
+ attribute :allows_multiple_answers, Boolean
13
+ attribute :correct_option_id, Integer
14
+ attribute :explanation, String
15
+ attribute :explanation_entities, Array[MessageEntity]
16
+ attribute :open_period, Integer
17
+ attribute :close_date, Integer
9
18
  end
10
19
  end
11
20
  end
@@ -0,0 +1,11 @@
1
+ module Telegram
2
+ module Bot
3
+ module Types
4
+ class PollAnswer < Base
5
+ attribute :poll_id, String
6
+ attribute :user, User
7
+ attribute :option_ids, Array[Integer]
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module Telegram
2
+ module Bot
3
+ module Types
4
+ class ProximityAlertTriggered < Base
5
+ attribute :traveler, User
6
+ attribute :watcher, User
7
+ attribute :distance, Integer
8
+ end
9
+ end
10
+ end
11
+ end
@@ -3,8 +3,10 @@ module Telegram
3
3
  module Types
4
4
  class Sticker < Base
5
5
  attribute :file_id, String
6
+ attribute :file_unique_id, String
6
7
  attribute :width, Integer
7
8
  attribute :height, Integer
9
+ attribute :is_animated, Boolean
8
10
  attribute :thumb, PhotoSize
9
11
  attribute :emoji, String
10
12
  attribute :set_name, String
@@ -4,8 +4,10 @@ module Telegram
4
4
  class StickerSet < Base
5
5
  attribute :name, String
6
6
  attribute :title, String
7
+ attribute :is_animated, Boolean
7
8
  attribute :contains_masks, Boolean
8
9
  attribute :stickers, Array[Sticker]
10
+ attribute :thumb, PhotoSize
9
11
  end
10
12
  end
11
13
  end
@@ -13,6 +13,9 @@ module Telegram
13
13
  attribute :shipping_query, ShippingQuery
14
14
  attribute :pre_checkout_query, PreCheckoutQuery
15
15
  attribute :poll, Poll
16
+ attribute :poll_answer, PollAnswer
17
+ attribute :my_chat_member, ChatMemberUpdated
18
+ attribute :chat_member, ChatMemberUpdated
16
19
 
17
20
  def current_message
18
21
  @current_message ||=
@@ -8,6 +8,9 @@ module Telegram
8
8
  attribute :last_name, String
9
9
  attribute :username, String
10
10
  attribute :language_code, String
11
+ attribute :can_join_groups, Boolean
12
+ attribute :can_read_all_group_messages, Boolean
13
+ attribute :supports_inline_queries, Boolean
11
14
  end
12
15
  end
13
16
  end
@@ -7,6 +7,8 @@ module Telegram
7
7
  attribute :address, String
8
8
  attribute :foursquare_id, String
9
9
  attribute :foursquare_type, String
10
+ attribute :google_place_id, String
11
+ attribute :google_place_type, String
10
12
  end
11
13
  end
12
14
  end
@@ -3,10 +3,12 @@ module Telegram
3
3
  module Types
4
4
  class Video < Base
5
5
  attribute :file_id, String
6
+ attribute :file_unique_id, String
6
7
  attribute :width, Integer
7
8
  attribute :height, Integer
8
9
  attribute :duration, Integer
9
10
  attribute :thumb, PhotoSize
11
+ attribute :file_name, String
10
12
  attribute :mime_type, String
11
13
  attribute :file_size, Integer
12
14
  end
@@ -3,6 +3,7 @@ module Telegram
3
3
  module Types
4
4
  class VideoNote < Base
5
5
  attribute :file_id, String
6
+ attribute :file_unique_id, String
6
7
  attribute :length, Integer
7
8
  attribute :duration, Integer
8
9
  attribute :thumb, PhotoSize
@@ -3,6 +3,7 @@ module Telegram
3
3
  module Types
4
4
  class Voice < Base
5
5
  attribute :file_id, String
6
+ attribute :file_unique_id, String
6
7
  attribute :duration, Integer
7
8
  attribute :mime_type, String
8
9
  attribute :file_size, Integer
@@ -0,0 +1,9 @@
1
+ module Telegram
2
+ module Bot
3
+ module Types
4
+ class VoiceChatEnded < Base
5
+ attribute :duration, Integer
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module Telegram
2
+ module Bot
3
+ module Types
4
+ class VoiceChatParticipantsInvited < Base
5
+ attribute :users, Array[User]
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ module Telegram
2
+ module Bot
3
+ module Types
4
+ class VoiceChatStarted < Base
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,17 @@
1
+ module Telegram
2
+ module Bot
3
+ module Types
4
+ class WebhookInfo < Base
5
+ attribute :url, String
6
+ attribute :has_custom_certificate, Boolean
7
+ attribute :pending_update_count, Integer
8
+ attribute :ip_address, String
9
+ attribute :last_error_date, Integer
10
+ attribute :last_error_message, String
11
+ attribute :max_connections, String
12
+ attribute :max_connections, Integer
13
+ attribute :allowed_updates, Array[String]
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,5 +1,5 @@
1
1
  module Telegram
2
2
  module Bot
3
- VERSION = '0.10.1'.freeze
3
+ VERSION = '0.15.0'.freeze
4
4
  end
5
5
  end
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.add_dependency 'virtus'
22
22
  spec.add_dependency 'inflecto'
23
23
 
24
- spec.add_development_dependency 'rake', '~> 10.0'
24
+ spec.add_development_dependency 'rake', '~> 13.0'
25
25
  spec.add_development_dependency 'pry'
26
26
  spec.add_development_dependency 'rubocop', '~> 0.48.1'
27
27
  spec.add_development_dependency 'rspec', '~> 3.4'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: telegram-bot-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Tipugin
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-06-03 00:00:00.000000000 Z
11
+ date: 2021-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: '13.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: '13.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: pry
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -122,7 +122,7 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '1.8'
125
- description:
125
+ description:
126
126
  email:
127
127
  - atipugin@gmail.com
128
128
  executables: []
@@ -132,7 +132,6 @@ files:
132
132
  - ".gitignore"
133
133
  - ".rspec"
134
134
  - ".rubocop.yml"
135
- - ".rubocop_todo.yml"
136
135
  - ".travis.yml"
137
136
  - CHANGELOG.md
138
137
  - Gemfile
@@ -157,11 +156,16 @@ files:
157
156
  - lib/telegram/bot/types/callback_game.rb
158
157
  - lib/telegram/bot/types/callback_query.rb
159
158
  - lib/telegram/bot/types/chat.rb
159
+ - lib/telegram/bot/types/chat_invite_link.rb
160
+ - lib/telegram/bot/types/chat_location.rb
160
161
  - lib/telegram/bot/types/chat_member.rb
162
+ - lib/telegram/bot/types/chat_member_updated.rb
163
+ - lib/telegram/bot/types/chat_permissions.rb
161
164
  - lib/telegram/bot/types/chat_photo.rb
162
165
  - lib/telegram/bot/types/chosen_inline_result.rb
163
166
  - lib/telegram/bot/types/compactable.rb
164
167
  - lib/telegram/bot/types/contact.rb
168
+ - lib/telegram/bot/types/dice.rb
165
169
  - lib/telegram/bot/types/document.rb
166
170
  - lib/telegram/bot/types/encrypted_credentials.rb
167
171
  - lib/telegram/bot/types/encrypted_passport_element.rb
@@ -204,11 +208,13 @@ files:
204
208
  - lib/telegram/bot/types/input_venue_message_content.rb
205
209
  - lib/telegram/bot/types/invoice.rb
206
210
  - lib/telegram/bot/types/keyboard_button.rb
211
+ - lib/telegram/bot/types/keyboard_button_poll_type.rb
207
212
  - lib/telegram/bot/types/labeled_price.rb
208
213
  - lib/telegram/bot/types/location.rb
209
214
  - lib/telegram/bot/types/login_url.rb
210
215
  - lib/telegram/bot/types/mask_position.rb
211
216
  - lib/telegram/bot/types/message.rb
217
+ - lib/telegram/bot/types/message_auto_delete_timer_changed.rb
212
218
  - lib/telegram/bot/types/message_entity.rb
213
219
  - lib/telegram/bot/types/order_info.rb
214
220
  - lib/telegram/bot/types/passport_data.rb
@@ -224,8 +230,10 @@ files:
224
230
  - lib/telegram/bot/types/passport_file.rb
225
231
  - lib/telegram/bot/types/photo_size.rb
226
232
  - lib/telegram/bot/types/poll.rb
233
+ - lib/telegram/bot/types/poll_answer.rb
227
234
  - lib/telegram/bot/types/poll_option.rb
228
235
  - lib/telegram/bot/types/pre_checkout_query.rb
236
+ - lib/telegram/bot/types/proximity_alert_triggered.rb
229
237
  - lib/telegram/bot/types/reply_keyboard_markup.rb
230
238
  - lib/telegram/bot/types/reply_keyboard_remove.rb
231
239
  - lib/telegram/bot/types/shipping_address.rb
@@ -241,12 +249,16 @@ files:
241
249
  - lib/telegram/bot/types/video.rb
242
250
  - lib/telegram/bot/types/video_note.rb
243
251
  - lib/telegram/bot/types/voice.rb
252
+ - lib/telegram/bot/types/voice_chat_ended.rb
253
+ - lib/telegram/bot/types/voice_chat_participants_invited.rb
254
+ - lib/telegram/bot/types/voice_chat_started.rb
255
+ - lib/telegram/bot/types/webhook_info.rb
244
256
  - lib/telegram/bot/version.rb
245
257
  - telegram-bot-ruby.gemspec
246
258
  homepage: https://github.com/atipugin/telegram-bot
247
259
  licenses: []
248
260
  metadata: {}
249
- post_install_message:
261
+ post_install_message:
250
262
  rdoc_options: []
251
263
  require_paths:
252
264
  - lib
@@ -261,8 +273,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
261
273
  - !ruby/object:Gem::Version
262
274
  version: '0'
263
275
  requirements: []
264
- rubygems_version: 3.0.3
265
- signing_key:
276
+ rubygems_version: 3.2.3
277
+ signing_key:
266
278
  specification_version: 4
267
279
  summary: Ruby wrapper for Telegram's Bot API
268
280
  test_files: []
data/.rubocop_todo.yml DELETED
@@ -1,13 +0,0 @@
1
- # This configuration was generated by `rubocop --auto-gen-config`
2
- # on 2015-06-27 20:51:46 +0300 using RuboCop version 0.32.1.
3
- # The point is for the user to remove these configuration records
4
- # one by one as the offenses are removed from the code base.
5
- # Note that changes in the inspected code, or installation of new
6
- # versions of RuboCop, may require this file to be generated again.
7
-
8
- Metrics/MethodLength:
9
- Max: 11
10
-
11
- # Offense count: 15
12
- Style/Documentation:
13
- Enabled: false