telegram-bot-ruby 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/Gemfile +6 -2
- data/Rakefile +0 -45
- data/lib/telegram/bot/api/endpoints.rb +12 -2
- data/lib/telegram/bot/client.rb +1 -1
- data/lib/telegram/bot/exceptions/response_error.rb +1 -1
- data/lib/telegram/bot/types/background_fill.rb +16 -0
- data/lib/telegram/bot/types/background_fill_freeform_gradient.rb +12 -0
- data/lib/telegram/bot/types/background_fill_gradient.rb +14 -0
- data/lib/telegram/bot/types/background_fill_solid.rb +12 -0
- data/lib/telegram/bot/types/background_type.rb +17 -0
- data/lib/telegram/bot/types/background_type_chat_theme.rb +12 -0
- data/lib/telegram/bot/types/background_type_fill.rb +13 -0
- data/lib/telegram/bot/types/background_type_pattern.rb +16 -0
- data/lib/telegram/bot/types/background_type_wallpaper.rb +15 -0
- data/lib/telegram/bot/types/birthdate.rb +13 -0
- data/lib/telegram/bot/types/bot_command.rb +2 -2
- data/lib/telegram/bot/types/bot_command_scope.rb +20 -0
- data/lib/telegram/bot/types/business_connection.rb +16 -0
- data/lib/telegram/bot/types/business_intro.rb +13 -0
- data/lib/telegram/bot/types/business_location.rb +12 -0
- data/lib/telegram/bot/types/business_messages_deleted.rb +13 -0
- data/lib/telegram/bot/types/business_opening_hours.rb +12 -0
- data/lib/telegram/bot/types/business_opening_hours_interval.rb +12 -0
- data/lib/telegram/bot/types/chat.rb +0 -28
- data/lib/telegram/bot/types/chat_administrator_rights.rb +3 -3
- data/lib/telegram/bot/types/chat_background.rb +11 -0
- data/lib/telegram/bot/types/chat_boost_added.rb +11 -0
- data/lib/telegram/bot/types/chat_boost_source.rb +4 -1
- data/lib/telegram/bot/types/chat_boost_source_giveaway.rb +1 -0
- data/lib/telegram/bot/types/chat_full_info.rb +54 -0
- data/lib/telegram/bot/types/chat_invite_link.rb +2 -0
- data/lib/telegram/bot/types/chat_location.rb +1 -1
- data/lib/telegram/bot/types/chat_member.rb +4 -4
- data/lib/telegram/bot/types/chat_member_administrator.rb +3 -3
- data/lib/telegram/bot/types/chat_member_member.rb +1 -0
- data/lib/telegram/bot/types/chat_member_updated.rb +1 -0
- data/lib/telegram/bot/types/chat_shared.rb +3 -0
- data/lib/telegram/bot/types/copy_text_button.rb +11 -0
- data/lib/telegram/bot/types/error.rb +14 -0
- data/lib/telegram/bot/types/external_reply_info.rb +1 -0
- data/lib/telegram/bot/types/force_reply.rb +2 -2
- data/lib/telegram/bot/types/gift.rb +15 -0
- data/lib/telegram/bot/types/gifts.rb +11 -0
- data/lib/telegram/bot/types/giveaway.rb +1 -0
- data/lib/telegram/bot/types/giveaway_completed.rb +1 -0
- data/lib/telegram/bot/types/giveaway_created.rb +1 -0
- data/lib/telegram/bot/types/giveaway_winners.rb +1 -0
- data/lib/telegram/bot/types/inline_keyboard_button.rb +2 -1
- data/lib/telegram/bot/types/inline_query_result.rb +33 -0
- data/lib/telegram/bot/types/inline_query_result_cached_gif.rb +1 -0
- data/lib/telegram/bot/types/inline_query_result_cached_mpeg4_gif.rb +1 -0
- data/lib/telegram/bot/types/inline_query_result_cached_photo.rb +1 -0
- data/lib/telegram/bot/types/inline_query_result_cached_video.rb +1 -0
- data/lib/telegram/bot/types/inline_query_result_gif.rb +2 -1
- data/lib/telegram/bot/types/inline_query_result_mpeg4_gif.rb +2 -1
- data/lib/telegram/bot/types/inline_query_result_photo.rb +1 -0
- data/lib/telegram/bot/types/inline_query_result_video.rb +1 -0
- data/lib/telegram/bot/types/inline_query_results_button.rb +13 -0
- data/lib/telegram/bot/types/input_contact_message_content.rb +1 -1
- data/lib/telegram/bot/types/input_invoice_message_content.rb +5 -5
- data/lib/telegram/bot/types/input_location_message_content.rb +1 -1
- data/lib/telegram/bot/types/input_media.rb +18 -0
- data/lib/telegram/bot/types/input_media_animation.rb +1 -0
- data/lib/telegram/bot/types/input_media_photo.rb +1 -0
- data/lib/telegram/bot/types/input_media_video.rb +1 -0
- data/lib/telegram/bot/types/input_message_content.rb +10 -2
- data/lib/telegram/bot/types/input_paid_media.rb +15 -0
- data/lib/telegram/bot/types/input_paid_media_photo.rb +12 -0
- data/lib/telegram/bot/types/input_paid_media_video.rb +17 -0
- data/lib/telegram/bot/types/input_poll_option.rb +13 -0
- data/lib/telegram/bot/types/input_sticker.rb +15 -0
- data/lib/telegram/bot/types/input_text_message_content.rb +2 -2
- data/lib/telegram/bot/types/input_venue_message_content.rb +1 -1
- data/lib/telegram/bot/types/keyboard_button_request_chat.rb +3 -0
- data/lib/telegram/bot/types/keyboard_button_request_users.rb +3 -0
- data/lib/telegram/bot/types/location.rb +1 -1
- data/lib/telegram/bot/types/maybe_inaccessible_message.rb +4 -1
- data/lib/telegram/bot/types/menu_button.rb +16 -0
- data/lib/telegram/bot/types/message.rb +11 -0
- data/lib/telegram/bot/types/message_origin.rb +4 -1
- data/lib/telegram/bot/types/paid_media.rb +16 -0
- data/lib/telegram/bot/types/paid_media_info.rb +12 -0
- data/lib/telegram/bot/types/paid_media_photo.rb +12 -0
- data/lib/telegram/bot/types/paid_media_preview.rb +14 -0
- data/lib/telegram/bot/types/paid_media_purchased.rb +12 -0
- data/lib/telegram/bot/types/paid_media_video.rb +12 -0
- data/lib/telegram/bot/types/passport_element_error.rb +22 -0
- data/lib/telegram/bot/types/poll.rb +2 -1
- data/lib/telegram/bot/types/poll_option.rb +2 -1
- data/lib/telegram/bot/types/prepared_inline_message.rb +12 -0
- data/lib/telegram/bot/types/reaction_type.rb +6 -2
- data/lib/telegram/bot/types/reaction_type_paid.rb +11 -0
- data/lib/telegram/bot/types/refunded_payment.rb +15 -0
- data/lib/telegram/bot/types/reply_keyboard_markup.rb +2 -2
- data/lib/telegram/bot/types/reply_keyboard_remove.rb +1 -1
- data/lib/telegram/bot/types/response_parameters.rb +12 -0
- data/lib/telegram/bot/types/revenue_withdrawal_state.rb +16 -0
- data/lib/telegram/bot/types/revenue_withdrawal_state_failed.rb +11 -0
- data/lib/telegram/bot/types/revenue_withdrawal_state_pending.rb +11 -0
- data/lib/telegram/bot/types/revenue_withdrawal_state_succeeded.rb +13 -0
- data/lib/telegram/bot/types/shared_user.rb +15 -0
- data/lib/telegram/bot/types/star_transaction.rb +15 -0
- data/lib/telegram/bot/types/star_transactions.rb +11 -0
- data/lib/telegram/bot/types/sticker_set.rb +0 -2
- data/lib/telegram/bot/types/story.rb +4 -1
- data/lib/telegram/bot/types/successful_payment.rb +3 -0
- data/lib/telegram/bot/types/transaction_partner.rb +18 -0
- data/lib/telegram/bot/types/transaction_partner_fragment.rb +12 -0
- data/lib/telegram/bot/types/transaction_partner_other.rb +11 -0
- data/lib/telegram/bot/types/transaction_partner_telegram_ads.rb +11 -0
- data/lib/telegram/bot/types/transaction_partner_telegram_api.rb +12 -0
- data/lib/telegram/bot/types/transaction_partner_user.rb +17 -0
- data/lib/telegram/bot/types/update.rb +5 -0
- data/lib/telegram/bot/types/user.rb +2 -0
- data/lib/telegram/bot/types/users_shared.rb +1 -1
- data/lib/telegram/bot/version.rb +1 -1
- data/rakelib/parse_schema.rake +73 -0
- data/rakelib/rebuild_types.rake +90 -0
- data/utility/empty_type.erb +14 -0
- data/utility/type.erb +13 -0
- data/utility/type_attributes.json +5138 -0
- metadata +65 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce32f0e31b213f3dd24a30acb1e060fa270f490e5bd58f67bf2f6ffed48367da
|
4
|
+
data.tar.gz: eb85be8ba100f9aa6a9cac12e77747f6acd0922bfd86c6a69b5cc183046d80d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e37d51c14c8cadcb88278491aeddeb677b6d1e21c64e757226b32c1d76a7243d4080beb90d72ee35e1ada0b3583bf1e24b09c0c0f411ece3a2dc0f5955339ab
|
7
|
+
data.tar.gz: 2e7917652117aef22497d752efc92b378c89cdd8d65380670e904357a4b7514778cdccaa4c3ea2998f49770e16d362d314bb6c98d15ccfd2e75d78d0349be1a6
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
@@ -12,7 +12,11 @@ gem 'rake', '~> 13.0'
|
|
12
12
|
gem 'rspec', '~> 3.4'
|
13
13
|
gem 'vcr', '~> 6.0'
|
14
14
|
|
15
|
-
gem 'rubocop', '~> 1.
|
15
|
+
gem 'rubocop', '~> 1.66.1'
|
16
16
|
gem 'rubocop-performance', '~> 1.18'
|
17
17
|
gem 'rubocop-rake', '~> 0.6.0'
|
18
|
-
gem 'rubocop-rspec', '~>
|
18
|
+
gem 'rubocop-rspec', '~> 3.1.0'
|
19
|
+
|
20
|
+
group :development do
|
21
|
+
gem 'openapi3_parser', '~> 0.9.2'
|
22
|
+
end
|
data/Rakefile
CHANGED
@@ -15,48 +15,3 @@ end
|
|
15
15
|
RSpec::Core::RakeTask.new(:spec)
|
16
16
|
|
17
17
|
task default: :spec
|
18
|
-
|
19
|
-
desc 'Dump type definitions from docs to YAML'
|
20
|
-
task :dump_type_attributes do
|
21
|
-
require_relative 'lib/telegram/bot'
|
22
|
-
require 'nokogiri'
|
23
|
-
require 'open-uri'
|
24
|
-
require 'yaml'
|
25
|
-
|
26
|
-
# Preload every type we have
|
27
|
-
Zeitwerk::Loader.eager_load_all
|
28
|
-
types = Telegram::Bot::Types::Base.descendants.map { |c| c.name.split('::').last }
|
29
|
-
|
30
|
-
# Fetch and parse docs
|
31
|
-
doc = Nokogiri::HTML(URI.open('https://core.telegram.org/bots/api').read)
|
32
|
-
|
33
|
-
next_type_element_names = %w[table h4]
|
34
|
-
|
35
|
-
result = types.to_h do |type|
|
36
|
-
# This is very hacky but working way to find table containing attributes for
|
37
|
-
# given type. Basic idea is to find heading with type and then iterate until
|
38
|
-
# we find table with attributes or next heading (because sometimes type
|
39
|
-
# doesn't have any attributes).
|
40
|
-
element = doc.at_xpath(%{//h4[text() = "#{type}"]})
|
41
|
-
loop do
|
42
|
-
element = element.next_element
|
43
|
-
break if next_type_element_names.include?(element.name)
|
44
|
-
end
|
45
|
-
|
46
|
-
attributes = element.xpath('.//tbody//tr').map do |el|
|
47
|
-
cells = el.children.select { |c| c.name == 'td' }
|
48
|
-
{
|
49
|
-
'name' => cells[0].text,
|
50
|
-
'type' => cells[1].text,
|
51
|
-
'required' => !cells[2].text.start_with?('Optional.'),
|
52
|
-
'required_value' =>
|
53
|
-
cells[2].text.match(/^.+, (?:must be (?<found_type>\w+)|always “(?<found_type>\w+)”)$/)&.[](:found_type)
|
54
|
-
}.compact
|
55
|
-
end
|
56
|
-
|
57
|
-
[type, attributes]
|
58
|
-
end
|
59
|
-
|
60
|
-
# Write everything to fixture file
|
61
|
-
File.write "#{__dir__}/spec/support/type_attributes.yml", result.to_yaml
|
62
|
-
end
|
@@ -33,7 +33,7 @@ module Telegram
|
|
33
33
|
'restrictChatMember' => Types::Bool,
|
34
34
|
'promoteChatMember' => Types::Bool,
|
35
35
|
'leaveChat' => Types::Bool,
|
36
|
-
'getChat' => Types::
|
36
|
+
'getChat' => Types::ChatFullInfo,
|
37
37
|
'getChatAdministrators' => Types::Array.of(Types::ChatMember),
|
38
38
|
'exportChatInviteLink' => Types::String,
|
39
39
|
'setChatPhoto' => Types::Bool,
|
@@ -107,7 +107,17 @@ module Telegram
|
|
107
107
|
'setMyDescription' => Types::Bool,
|
108
108
|
'getMyDescription' => Types::BotDescription,
|
109
109
|
'setMyShortDescription' => Types::Bool,
|
110
|
-
'getMyShortDescription' => Types::BotShortDescription
|
110
|
+
'getMyShortDescription' => Types::BotShortDescription,
|
111
|
+
'refundStarPayment' => Types::Bool,
|
112
|
+
'getStarTransactions' => Types::StarTransactions,
|
113
|
+
'sendPaidMedia' => Types::Message,
|
114
|
+
'createChatSubscriptionInviteLink' => Types::ChatInviteLink,
|
115
|
+
'editChatSubscriptionInviteLink' => Types::ChatInviteLink,
|
116
|
+
'getAvailableGifts' => Types::Gifts,
|
117
|
+
'sendGift' => Types::Bool,
|
118
|
+
'savePreparedInlineMessage' => Types::PreparedInlineMessage,
|
119
|
+
'editUserStarSubscription' => Types::Bool,
|
120
|
+
'setUserEmojiStatus' => Types::Bool
|
111
121
|
}.freeze
|
112
122
|
end
|
113
123
|
end
|
data/lib/telegram/bot/client.rb
CHANGED
@@ -9,7 +9,7 @@ module Telegram
|
|
9
9
|
def initialize(response:)
|
10
10
|
@response = response
|
11
11
|
|
12
|
-
super
|
12
|
+
super("Telegram API has returned the error. (#{data.map { |k, v| %(#{k}: #{v.inspect}) }.join(', ')})")
|
13
13
|
end
|
14
14
|
|
15
15
|
def error_code
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telegram
|
4
|
+
module Bot
|
5
|
+
module Types
|
6
|
+
## Just for classes consistency
|
7
|
+
# rubocop:disable Naming/ConstantName
|
8
|
+
BackgroundFill = (
|
9
|
+
BackgroundFillSolid |
|
10
|
+
BackgroundFillGradient |
|
11
|
+
BackgroundFillFreeformGradient
|
12
|
+
)
|
13
|
+
# rubocop:enable Naming/ConstantName
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telegram
|
4
|
+
module Bot
|
5
|
+
module Types
|
6
|
+
class BackgroundFillFreeformGradient < Base
|
7
|
+
attribute :type, Types::String.constrained(eql: 'freeform_gradient').default('freeform_gradient')
|
8
|
+
attribute :colors, Types::Array.of(Types::Integer)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telegram
|
4
|
+
module Bot
|
5
|
+
module Types
|
6
|
+
class BackgroundFillGradient < Base
|
7
|
+
attribute :type, Types::String.constrained(eql: 'gradient').default('gradient')
|
8
|
+
attribute :top_color, Types::Integer
|
9
|
+
attribute :bottom_color, Types::Integer
|
10
|
+
attribute :rotation_angle, Types::Integer
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telegram
|
4
|
+
module Bot
|
5
|
+
module Types
|
6
|
+
## Just for classes consistency
|
7
|
+
# rubocop:disable Naming/ConstantName
|
8
|
+
BackgroundType = (
|
9
|
+
BackgroundTypeFill |
|
10
|
+
BackgroundTypeWallpaper |
|
11
|
+
BackgroundTypePattern |
|
12
|
+
BackgroundTypeChatTheme
|
13
|
+
)
|
14
|
+
# rubocop:enable Naming/ConstantName
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telegram
|
4
|
+
module Bot
|
5
|
+
module Types
|
6
|
+
class BackgroundTypeChatTheme < Base
|
7
|
+
attribute :type, Types::String.constrained(eql: 'chat_theme').default('chat_theme')
|
8
|
+
attribute :theme_name, Types::String
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telegram
|
4
|
+
module Bot
|
5
|
+
module Types
|
6
|
+
class BackgroundTypeFill < Base
|
7
|
+
attribute :type, Types::String.constrained(eql: 'fill').default('fill')
|
8
|
+
attribute :fill, BackgroundFill
|
9
|
+
attribute :dark_theme_dimming, Types::Integer
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telegram
|
4
|
+
module Bot
|
5
|
+
module Types
|
6
|
+
class BackgroundTypePattern < Base
|
7
|
+
attribute :type, Types::String.constrained(eql: 'pattern').default('pattern')
|
8
|
+
attribute :document, Document
|
9
|
+
attribute :fill, BackgroundFill
|
10
|
+
attribute :intensity, Types::Integer
|
11
|
+
attribute? :is_inverted, Types::True
|
12
|
+
attribute? :is_moving, Types::True
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telegram
|
4
|
+
module Bot
|
5
|
+
module Types
|
6
|
+
class BackgroundTypeWallpaper < Base
|
7
|
+
attribute :type, Types::String.constrained(eql: 'wallpaper').default('wallpaper')
|
8
|
+
attribute :document, Document
|
9
|
+
attribute :dark_theme_dimming, Types::Integer
|
10
|
+
attribute? :is_blurred, Types::True
|
11
|
+
attribute? :is_moving, Types::True
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -4,8 +4,8 @@ module Telegram
|
|
4
4
|
module Bot
|
5
5
|
module Types
|
6
6
|
class BotCommand < Base
|
7
|
-
attribute :command, Types::String
|
8
|
-
attribute :description, Types::String
|
7
|
+
attribute :command, Types::String.constrained(min_size: 1, max_size: 32)
|
8
|
+
attribute :description, Types::String.constrained(min_size: 1, max_size: 256)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telegram
|
4
|
+
module Bot
|
5
|
+
module Types
|
6
|
+
## Just for classes consistency
|
7
|
+
# rubocop:disable Naming/ConstantName
|
8
|
+
BotCommandScope = (
|
9
|
+
BotCommandScopeDefault |
|
10
|
+
BotCommandScopeAllPrivateChats |
|
11
|
+
BotCommandScopeAllGroupChats |
|
12
|
+
BotCommandScopeAllChatAdministrators |
|
13
|
+
BotCommandScopeChat |
|
14
|
+
BotCommandScopeChatAdministrators |
|
15
|
+
BotCommandScopeChatMember
|
16
|
+
)
|
17
|
+
# rubocop:enable Naming/ConstantName
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telegram
|
4
|
+
module Bot
|
5
|
+
module Types
|
6
|
+
class BusinessConnection < Base
|
7
|
+
attribute :id, Types::String
|
8
|
+
attribute :user, User
|
9
|
+
attribute :user_chat_id, Types::Integer
|
10
|
+
attribute :date, Types::Integer
|
11
|
+
attribute :can_reply, Types::Bool
|
12
|
+
attribute :is_enabled, Types::Bool
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telegram
|
4
|
+
module Bot
|
5
|
+
module Types
|
6
|
+
class BusinessMessagesDeleted < Base
|
7
|
+
attribute :business_connection_id, Types::String
|
8
|
+
attribute :chat, Chat
|
9
|
+
attribute :message_ids, Types::Array.of(Types::Integer)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telegram
|
4
|
+
module Bot
|
5
|
+
module Types
|
6
|
+
class BusinessOpeningHours < Base
|
7
|
+
attribute :time_zone_name, Types::String
|
8
|
+
attribute :opening_hours, Types::Array.of(BusinessOpeningHoursInterval)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -11,34 +11,6 @@ module Telegram
|
|
11
11
|
attribute? :first_name, Types::String
|
12
12
|
attribute? :last_name, Types::String
|
13
13
|
attribute? :is_forum, Types::True
|
14
|
-
attribute? :photo, ChatPhoto
|
15
|
-
attribute? :active_usernames, Types::Array.of(Types::String)
|
16
|
-
attribute? :available_reactions, Types::Array.of(ReactionType)
|
17
|
-
attribute? :accent_color_id, Types::Integer
|
18
|
-
attribute? :background_custom_emoji_id, Types::String
|
19
|
-
attribute? :profile_accent_color_id, Types::Integer
|
20
|
-
attribute? :profile_background_custom_emoji_id, Types::String
|
21
|
-
attribute? :emoji_status_custom_emoji_id, Types::String
|
22
|
-
attribute? :emoji_status_expiration_date, Types::Integer
|
23
|
-
attribute? :bio, Types::String
|
24
|
-
attribute? :has_private_forwards, Types::True
|
25
|
-
attribute? :has_restricted_voice_and_video_messages, Types::True
|
26
|
-
attribute? :join_to_send_messages, Types::True
|
27
|
-
attribute? :join_by_request, Types::True
|
28
|
-
attribute? :description, Types::String
|
29
|
-
attribute? :invite_link, Types::String
|
30
|
-
attribute? :pinned_message, Message
|
31
|
-
attribute? :permissions, ChatPermissions
|
32
|
-
attribute? :slow_mode_delay, Types::Integer
|
33
|
-
attribute? :message_auto_delete_time, Types::Integer
|
34
|
-
attribute? :has_aggressive_anti_spam_enabled, Types::True
|
35
|
-
attribute? :has_hidden_members, Types::True
|
36
|
-
attribute? :has_protected_content, Types::True
|
37
|
-
attribute? :has_visible_history, Types::True
|
38
|
-
attribute? :sticker_set_name, Types::String
|
39
|
-
attribute? :can_set_sticker_set, Types::True
|
40
|
-
attribute? :linked_chat_id, Types::Integer
|
41
|
-
attribute? :location, ChatLocation
|
42
14
|
end
|
43
15
|
end
|
44
16
|
end
|
@@ -12,12 +12,12 @@ module Telegram
|
|
12
12
|
attribute :can_promote_members, Types::Bool
|
13
13
|
attribute :can_change_info, Types::Bool
|
14
14
|
attribute :can_invite_users, Types::Bool
|
15
|
+
attribute :can_post_stories, Types::Bool
|
16
|
+
attribute :can_edit_stories, Types::Bool
|
17
|
+
attribute :can_delete_stories, Types::Bool
|
15
18
|
attribute? :can_post_messages, Types::Bool
|
16
19
|
attribute? :can_edit_messages, Types::Bool
|
17
20
|
attribute? :can_pin_messages, Types::Bool
|
18
|
-
attribute? :can_post_stories, Types::Bool
|
19
|
-
attribute? :can_edit_stories, Types::Bool
|
20
|
-
attribute? :can_delete_stories, Types::Bool
|
21
21
|
attribute? :can_manage_topics, Types::Bool
|
22
22
|
end
|
23
23
|
end
|
@@ -3,11 +3,14 @@
|
|
3
3
|
module Telegram
|
4
4
|
module Bot
|
5
5
|
module Types
|
6
|
-
|
6
|
+
## Just for classes consistency
|
7
|
+
# rubocop:disable Naming/ConstantName
|
8
|
+
ChatBoostSource = (
|
7
9
|
ChatBoostSourcePremium |
|
8
10
|
ChatBoostSourceGiftCode |
|
9
11
|
ChatBoostSourceGiveaway
|
10
12
|
)
|
13
|
+
# rubocop:enable Naming/ConstantName
|
11
14
|
end
|
12
15
|
end
|
13
16
|
end
|
@@ -7,6 +7,7 @@ module Telegram
|
|
7
7
|
attribute :source, Types::String.constrained(eql: 'giveaway').default('giveaway')
|
8
8
|
attribute :giveaway_message_id, Types::Integer
|
9
9
|
attribute? :user, User
|
10
|
+
attribute? :prize_star_count, Types::Integer
|
10
11
|
attribute? :is_unclaimed, Types::True
|
11
12
|
end
|
12
13
|
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telegram
|
4
|
+
module Bot
|
5
|
+
module Types
|
6
|
+
class ChatFullInfo < Base
|
7
|
+
attribute :id, Types::Integer
|
8
|
+
attribute :type, Types::String
|
9
|
+
attribute? :title, Types::String
|
10
|
+
attribute? :username, Types::String
|
11
|
+
attribute? :first_name, Types::String
|
12
|
+
attribute? :last_name, Types::String
|
13
|
+
attribute? :is_forum, Types::True
|
14
|
+
attribute :accent_color_id, Types::Integer
|
15
|
+
attribute :max_reaction_count, Types::Integer
|
16
|
+
attribute? :photo, ChatPhoto
|
17
|
+
attribute? :active_usernames, Types::Array.of(Types::String)
|
18
|
+
attribute? :birthdate, Birthdate
|
19
|
+
attribute? :business_intro, BusinessIntro
|
20
|
+
attribute? :business_location, BusinessLocation
|
21
|
+
attribute? :business_opening_hours, BusinessOpeningHours
|
22
|
+
attribute? :personal_chat, Chat
|
23
|
+
attribute? :available_reactions, Types::Array.of(ReactionType)
|
24
|
+
attribute? :background_custom_emoji_id, Types::String
|
25
|
+
attribute? :profile_accent_color_id, Types::Integer
|
26
|
+
attribute? :profile_background_custom_emoji_id, Types::String
|
27
|
+
attribute? :emoji_status_custom_emoji_id, Types::String
|
28
|
+
attribute? :emoji_status_expiration_date, Types::Integer
|
29
|
+
attribute? :bio, Types::String
|
30
|
+
attribute? :has_private_forwards, Types::True
|
31
|
+
attribute? :has_restricted_voice_and_video_messages, Types::True
|
32
|
+
attribute? :join_to_send_messages, Types::True
|
33
|
+
attribute? :join_by_request, Types::True
|
34
|
+
attribute? :description, Types::String
|
35
|
+
attribute? :invite_link, Types::String
|
36
|
+
attribute? :pinned_message, Message
|
37
|
+
attribute? :permissions, ChatPermissions
|
38
|
+
attribute? :can_send_paid_media, Types::True
|
39
|
+
attribute? :slow_mode_delay, Types::Integer
|
40
|
+
attribute? :unrestrict_boost_count, Types::Integer
|
41
|
+
attribute? :message_auto_delete_time, Types::Integer
|
42
|
+
attribute? :has_aggressive_anti_spam_enabled, Types::True
|
43
|
+
attribute? :has_hidden_members, Types::True
|
44
|
+
attribute? :has_protected_content, Types::True
|
45
|
+
attribute? :has_visible_history, Types::True
|
46
|
+
attribute? :sticker_set_name, Types::String
|
47
|
+
attribute? :can_set_sticker_set, Types::True
|
48
|
+
attribute? :custom_emoji_sticker_set_name, Types::String
|
49
|
+
attribute? :linked_chat_id, Types::Integer
|
50
|
+
attribute? :location, ChatLocation
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -13,6 +13,8 @@ module Telegram
|
|
13
13
|
attribute? :expire_date, Types::Integer
|
14
14
|
attribute? :member_limit, Types::Integer
|
15
15
|
attribute? :pending_join_request_count, Types::Integer
|
16
|
+
attribute? :subscription_period, Types::Integer
|
17
|
+
attribute? :subscription_price, Types::Integer
|
16
18
|
end
|
17
19
|
end
|
18
20
|
end
|
@@ -6,12 +6,12 @@ module Telegram
|
|
6
6
|
## Just for classes consistency
|
7
7
|
# rubocop:disable Naming/ConstantName
|
8
8
|
ChatMember = (
|
9
|
+
ChatMemberOwner |
|
9
10
|
ChatMemberAdministrator |
|
10
|
-
ChatMemberBanned |
|
11
|
-
ChatMemberLeft |
|
12
11
|
ChatMemberMember |
|
13
|
-
|
14
|
-
|
12
|
+
ChatMemberRestricted |
|
13
|
+
ChatMemberLeft |
|
14
|
+
ChatMemberBanned
|
15
15
|
)
|
16
16
|
# rubocop:enable Naming/ConstantName
|
17
17
|
end
|
@@ -15,12 +15,12 @@ module Telegram
|
|
15
15
|
attribute :can_promote_members, Types::Bool
|
16
16
|
attribute :can_change_info, Types::Bool
|
17
17
|
attribute :can_invite_users, Types::Bool
|
18
|
+
attribute :can_post_stories, Types::Bool
|
19
|
+
attribute :can_edit_stories, Types::Bool
|
20
|
+
attribute :can_delete_stories, Types::Bool
|
18
21
|
attribute? :can_post_messages, Types::Bool
|
19
22
|
attribute? :can_edit_messages, Types::Bool
|
20
23
|
attribute? :can_pin_messages, Types::Bool
|
21
|
-
attribute? :can_post_stories, Types::Bool
|
22
|
-
attribute? :can_edit_stories, Types::Bool
|
23
|
-
attribute? :can_delete_stories, Types::Bool
|
24
24
|
attribute? :can_manage_topics, Types::Bool
|
25
25
|
attribute? :custom_title, Types::String
|
26
26
|
end
|