tgbot 0.1.6 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"getUpdates":{"ret":"[Update]","params":{"offset":{"type":"Integer","optional":true},"limit":{"type":"Integer","optional":true},"timeout":{"type":"Integer","optional":true},"allowed_updates":{"type":"[String]","optional":true}}},"setWebhook":{"ret":"True","params":{"url":{"type":"String","optional":false},"certificate":{"type":"InputFile","optional":true},"max_connections":{"type":"Integer","optional":true},"allowed_updates":{"type":"[String]","optional":true}}},"deleteWebhook":{"ret":"True","params":{}},"getWebhookInfo":{"ret":"WebhookInfo","params":{}},"getMe":{"ret":"User","params":{}},"sendMessage":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"text":{"type":"String","optional":false},"parse_mode":{"type":"String","optional":true},"disable_web_page_preview":{"type":"Boolean","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"forwardMessage":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"from_chat_id":{"type":"Integer|String","optional":false},"disable_notification":{"type":"Boolean","optional":true},"message_id":{"type":"Integer","optional":false}}},"sendPhoto":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"photo":{"type":"InputFile|String","optional":false},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"sendAudio":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"audio":{"type":"InputFile|String","optional":false},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"duration":{"type":"Integer","optional":true},"performer":{"type":"String","optional":true},"title":{"type":"String","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"sendDocument":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"document":{"type":"InputFile|String","optional":false},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"sendVideo":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"video":{"type":"InputFile|String","optional":false},"duration":{"type":"Integer","optional":true},"width":{"type":"Integer","optional":true},"height":{"type":"Integer","optional":true},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"supports_streaming":{"type":"Boolean","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"sendVoice":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"voice":{"type":"InputFile|String","optional":false},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"duration":{"type":"Integer","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"sendVideoNote":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"video_note":{"type":"InputFile|String","optional":false},"duration":{"type":"Integer","optional":true},"length":{"type":"Integer","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"sendMediaGroup":{"ret":"[Message]","params":{"chat_id":{"type":"Integer|String","optional":false},"media":{"type":"[InputMedia]","optional":false},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true}}},"sendLocation":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"latitude":{"type":"Float","optional":false},"longitude":{"type":"Float","optional":false},"live_period":{"type":"Integer","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"editMessageLiveLocation":{"ret":"Message|True","params":{"chat_id":{"type":"Integer|String","optional":true},"message_id":{"type":"Integer","optional":true},"inline_message_id":{"type":"String","optional":true},"latitude":{"type":"Float","optional":false},"longitude":{"type":"Float","optional":false},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true}}},"stopMessageLiveLocation":{"ret":"Message|True","params":{"chat_id":{"type":"Integer|String","optional":true},"message_id":{"type":"Integer","optional":true},"inline_message_id":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true}}},"sendVenue":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"latitude":{"type":"Float","optional":false},"longitude":{"type":"Float","optional":false},"title":{"type":"String","optional":false},"address":{"type":"String","optional":false},"foursquare_id":{"type":"String","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"sendContact":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"phone_number":{"type":"String","optional":false},"first_name":{"type":"String","optional":false},"last_name":{"type":"String","optional":false},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"sendChatAction":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"action":{"type":"String","optional":false}}},"getUserProfilePhotos":{"ret":"UserProfilePhotos","params":{"user_id":{"type":"Integer","optional":false},"offset":{"type":"Integer","optional":true},"limit":{"type":"Integer","optional":true}}},"getFile":{"ret":"File","params":{"file_id":{"type":"String","optional":false}}},"kickChatMember":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"user_id":{"type":"Integer","optional":false},"until_date":{"type":"Integer","optional":true}}},"unbanChatMember":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"user_id":{"type":"Integer","optional":false}}},"restrictChatMember":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"user_id":{"type":"Integer","optional":false},"until_date":{"type":"Integer","optional":true},"can_send_messages":{"type":"Boolean","optional":true},"can_send_media_messages":{"type":"Boolean","optional":true},"can_send_other_messages":{"type":"Boolean","optional":true},"can_add_web_page_previews":{"type":"Boolean","optional":true}}},"promoteChatMember":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"user_id":{"type":"Integer","optional":false},"can_change_info":{"type":"Boolean","optional":true},"can_post_messages":{"type":"Boolean","optional":true},"can_edit_messages":{"type":"Boolean","optional":true},"can_delete_messages":{"type":"Boolean","optional":true},"can_invite_users":{"type":"Boolean","optional":true},"can_restrict_members":{"type":"Boolean","optional":true},"can_pin_messages":{"type":"Boolean","optional":true},"can_promote_members":{"type":"Boolean","optional":true}}},"exportChatInviteLink":{"ret":"String","params":{"chat_id":{"type":"Integer|String","optional":false}}},"setChatPhoto":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"photo":{"type":"InputFile","optional":false}}},"deleteChatPhoto":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false}}},"setChatTitle":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"title":{"type":"String","optional":false}}},"setChatDescription":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"description":{"type":"String","optional":true}}},"pinChatMessage":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"message_id":{"type":"Integer","optional":false},"disable_notification":{"type":"Boolean","optional":true}}},"unpinChatMessage":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false}}},"leaveChat":{"ret":"Boolean","params":{"chat_id":{"type":"Integer|String","optional":false}}},"getChat":{"ret":"Chat","params":{"chat_id":{"type":"Integer|String","optional":false}}},"getChatAdministrators":{"ret":"[ChatMember]","params":{"chat_id":{"type":"Integer|String","optional":false}}},"getChatMembersCount":{"ret":"Integer","params":{"chat_id":{"type":"Integer|String","optional":false}}},"getChatMember":{"ret":"ChatMember","params":{"chat_id":{"type":"Integer|String","optional":false},"user_id":{"type":"Integer","optional":false}}},"setChatStickerSet":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"sticker_set_name":{"type":"String","optional":false}}},"deleteChatStickerSet":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false}}},"answerCallbackQuery":{"ret":"True","params":{"callback_query_id":{"type":"String","optional":false},"text":{"type":"Boolean","optional":true},"show_alert":{"type":"Boolean","optional":true},"url":{"type":"String","optional":true},"cache_time":{"type":"Integer","optional":true}}},"editMessageText":{"ret":"Message|True","params":{"chat_id":{"type":"Integer|String","optional":true},"message_id":{"type":"Integer","optional":true},"inline_message_id":{"type":"String","optional":true},"text":{"type":"String","optional":false},"parse_mode":{"type":"String","optional":true},"disable_web_page_preview":{"type":"Boolean","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true}}},"editMessageCaption":{"ret":"Message|True","params":{"chat_id":{"type":"Integer|String","optional":true},"message_id":{"type":"Integer","optional":true},"inline_message_id":{"type":"String","optional":true},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true}}},"editMessageReplyMarkup":{"ret":"Message|True","params":{"chat_id":{"type":"Integer|String","optional":true},"message_id":{"type":"Integer","optional":true},"inline_message_id":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true}}},"deleteMessage":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"message_id":{"type":"Integer","optional":false}}},"sendSticker":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"sticker":{"type":"InputFile|String","optional":false},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"getStickerSet":{"ret":"StickerSet","params":{"name":{"type":"String","optional":false}}},"uploadStickerFile":{"ret":"File","params":{"user_id":{"type":"Integer","optional":false},"png_sticker":{"type":"InputFile","optional":false}}},"createNewStickerSet":{"ret":"True","params":{"name":{"type":"String","optional":false},"title":{"type":"String","optional":false},"png_sticker":{"type":"InputFile|String","optional":false},"emojis":{"type":"String","optional":false},"contains_masks":{"type":"Boolean","optional":true},"mask_position":{"type":"MaskPosition","optional":true}}},"addStickerToSet":{"ret":"True","params":{"user_id":{"type":"Integer","optional":false},"name":{"type":"String","optional":false},"png_sticker":{"type":"InputFile|String","optional":false},"emojis":{"type":"String","optional":false},"mask_position":{"type":"MaskPosition","optional":true}}},"setStickerPositionInSet":{"ret":"True","params":{"sticker":{"type":"String","optional":false},"position":{"type":"Integer","optional":false}}},"deleteStickerFromSet":{"ret":"True","params":{"sticker":{"type":"String","optional":false}}},"answerInlineQuery":{"ret":"Boolean","params":{"inline_query_id":{"type":"String","optional":false},"results":{"type":"[InlineQueryResult]","optional":false},"cache_time":{"type":"Integer","optional":true},"is_personal":{"type":"Boolean","optional":true},"next_offset":{"type":"String","optional":true},"switch_pm_text":{"type":"String","optional":true},"switch_pm_parameter":{"type":"String","optional":true}}},"sendInvoice":{"ret":"Message","params":{"chat_id":{"type":"Integer","optional":false},"title":{"type":"String","optional":false},"description":{"type":"String","optional":false},"payload":{"type":"String","optional":false},"provider_token":{"type":"String","optional":false},"start_parameter":{"type":"String","optional":false},"currency":{"type":"String","optional":false},"prices":{"type":"[LabeledPrice]","optional":false},"provider_data":{"type":"String","optional":true},"photo_url":{"type":"String","optional":true},"photo_size":{"type":"Integer","optional":true},"photo_width":{"type":"Integer","optional":true},"photo_height":{"type":"Integer","optional":true},"need_name":{"type":"Boolean","optional":true},"need_phone_number":{"type":"Boolean","optional":true},"need_email":{"type":"Boolean","optional":true},"need_shipping_address":{"type":"Boolean","optional":true},"is_flexible":{"type":"Boolean","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true}}},"answerShippingQuery":{"ret":"True","params":{"shipping_query_id":{"type":"String","optional":false},"ok":{"type":"Boolean","optional":false},"shipping_options":{"type":"[ShippingOption]","optional":true},"error_message":{"type":"String","optional":true}}},"answerPreCheckoutQuery":{"ret":"True","params":{"pre_checkout_query_id":{"type":"String","optional":false},"ok":{"type":"Boolean","optional":false},"error_message":{"type":"String","optional":true}}},"sendGame":{"ret":"Message","params":{"chat_id":{"type":"Integer","optional":false},"game_short_name":{"type":"String","optional":false},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true}}},"setGameScore":{"ret":"Message|True","params":{"user_id":{"type":"Integer","optional":false},"score":{"type":"Integer","optional":false},"force":{"type":"Boolean","optional":true},"disable_edit_message":{"type":"Boolean","optional":true},"chat_id":{"type":"Integer","optional":true},"message_id":{"type":"Integer","optional":true},"inline_message_id":{"type":"String","optional":true}}},"getGameHighScores":{"ret":"[GameHighScore]","params":{"user_id":{"type":"Integer","optional":false},"chat_id":{"type":"Integer","optional":true},"message_id":{"type":"Integer","optional":true},"inline_message_id":{"type":"String","optional":true}}}}
@@ -1,145 +0,0 @@
1
- require 'json'
2
- require 'faraday'
3
-
4
- module Tgbot
5
- API_URL = 'https://api.telegram.org'.freeze
6
- TYPES = JSON.parse(File.read File.expand_path '../types.json' , __dir__).freeze
7
- METHODS = JSON.parse(File.read File.expand_path '../methods.json', __dir__).freeze
8
-
9
- # This bot supports a minimal usage of Telegram Bot APIs.
10
- # bot = Bot.new TOKEN, proxy: 'https://127.0.0.1:1080'
11
- #
12
- # API's methods' input and output are hash.
13
- # bot.get_updates offset: 0 #=> { 'ok' => 'true', 'result' => [] }
14
- #
15
- # It will check type of params before post method, and
16
- # if invalid, it will raise an error with detail.
17
- class Bot
18
- attr_accessor :token
19
-
20
- # Initialize a bot, and call getMe at once to see if given token is valid.
21
- # If everything ok, the bot will get its id and name and so on.
22
- # token :: String = TOKEN of your bot from botfather
23
- # opts :: Hash = Options passed to Faraday.new
24
- def initialize(token, **opts)
25
- @token = token
26
- get_connection(**opts)
27
- identify_self
28
- end
29
-
30
- # Get bot's info.
31
- def identify_self
32
- x = get_me
33
- if x['ok']
34
- @me = x['result']
35
- else
36
- raise ArgumentError, 'not found myself, check your token.'
37
- end
38
- end
39
-
40
- # Shortcuts for bot's info.
41
- def id ; @me && @me['id'] ; end
42
- def first_name; @me && @me['first_name']; end
43
- def username ; @me && @me['username'] ; end
44
- alias name first_name
45
-
46
- # Connect to API_URL. It will take few seconds.
47
- # opts :: Hash = Options passed to Faraday.new
48
- def get_connection(**opts)
49
- @conn = Faraday.new(url: API_URL, **opts) do |faraday|
50
- faraday.request :multipart
51
- faraday.request :url_encoded
52
- faraday.adapter Faraday.default_adapter
53
- end
54
- end
55
-
56
- # Verify methods and params then call(post) it.
57
- # `:get_me' and `:getMe' are both valid.
58
- def method_missing(meth, **kwargs)
59
- camelized_meth = camelize meth
60
- meth_body = METHODS[camelized_meth]
61
- super unless meth_body
62
- ret, params = meth_body.values_at 'ret', 'params'
63
- check_params! (JSON.parse JSON.generate kwargs), params
64
- call camelized_meth, kwargs
65
- end
66
-
67
- def call meth, kwargs
68
- JSON.parse @conn.post("/bot#{@token}/#{meth}", kwargs).body
69
- rescue
70
- {}
71
- end
72
-
73
- # Check args to meet method declaration. Raises error if invalid.
74
- def check_params! kwargs, params
75
- params.each do |param, info|
76
- arg = kwargs[param]
77
- type, optional = info.values_at 'type', 'optional'
78
- if (arg.nil? && !optional) || (!arg.nil? && !check_type(arg, type))
79
- raise ArgumentError, "[#{param}] should be #{type}\n#{error_message_of_type type}"
80
- end
81
- end
82
- end
83
-
84
- # Get declaration of type in form of:
85
- # User := { id :: Integer, first_name :: String }
86
- def error_message_of_type type
87
- (type.delete('[]').split('|') - ['True', 'Boolean', 'Integer', 'Float', 'String']).map { |type|
88
- "#{type} := { #{TYPES[type].map { |field, info|
89
- "#{info['optional'] ? '' : '*'}#{field} :: #{info['type']}"
90
- }.join(', ')} }"
91
- }.join(' ')
92
- end
93
-
94
- # Check arg to meet type declaration. Returns false if invalid.
95
- def check_type arg, type
96
- case type
97
- when 'True' then return arg == true
98
- when 'Boolean' then return arg == true || arg == false
99
- when 'Integer' then return arg.is_a? Integer
100
- when 'Float' then return arg.is_a? Float
101
- when 'String' then return arg.is_a? String
102
- end
103
- if type[0] == '['
104
- return arg.is_a?(Array) ? arg.all? { |a| check_type a, type[1..-2] } : false
105
- elsif type.include? '|'
106
- return type.split('|').any? { |t| check_type arg, t }
107
- end
108
- return false unless TYPES[type]
109
- check_params(arg, TYPES[type])
110
- end
111
-
112
- # Check args to meet method declaration. Returns false if invalid.
113
- def check_params kwargs, params
114
- check_params!(kwargs, params)
115
- true
116
- rescue
117
- false
118
- end
119
-
120
- def get_types
121
- TYPES.keys.map(&:to_sym)
122
- end
123
-
124
- def get_methods
125
- METHODS.keys.map { |e| underscore e }.map(&:to_sym)
126
- end
127
-
128
- # Transform 'TheName' or 'theName' to 'the_name'.
129
- def underscore str
130
- str.gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
131
- .gsub(/([a-z\d])([A-Z])/,'\1_\2').downcase
132
- end
133
-
134
- # Transform 'the_name' to 'theName'.
135
- def camelize meth
136
- ret = String(meth).split('_')
137
- ret.drop(1).map(&:capitalize!)
138
- ret.join
139
- end
140
-
141
- def inspect
142
- "#<Bot token=#{@token} id=#{id} first_name=#{first_name} username=#{username}>"
143
- end
144
- end
145
- end
@@ -1,59 +0,0 @@
1
- require 'tgbot/runner'
2
-
3
- module Tgbot
4
- class DSL
5
- attr_accessor :runner
6
- def initialize(token, **opts)
7
- @runner = Runner.new(token, **opts)
8
- @procs = { command: {} }
9
- end
10
- def start(&blk)
11
- @procs[:start] = blk
12
- end
13
- def finish(&blk)
14
- @procs[:finish] = blk
15
- end
16
- def before(&blk)
17
- @procs[:before] = blk
18
- end
19
- def after(&blk)
20
- @procs[:after] = blk
21
- end
22
- def on(*regexes, &blk)
23
- regexes.each { |regex| @procs[:command][regex] = blk }
24
- end
25
- alias get on
26
- def alias(ori, *args)
27
- args.each { |regex| @procs[:command][regex] = @procs[:command][ori] }
28
- end
29
- def run
30
- yield self if block_given?
31
- @procs[:start]&.call
32
- begin
33
- @runner.mainloop do |update|
34
- @procs[:before]&.call update
35
- update.done = true
36
- @procs[:command].each do |key, blk|
37
- x = update.text&.match key
38
- update.instance_exec(x, &blk) if x
39
- end
40
- @procs[:after]&.call update
41
- end
42
- rescue Interrupt
43
- @procs[:finish]&.call
44
- rescue => e
45
- puts e.backtrace.unshift(e.to_s).join("\n")
46
- retry
47
- end
48
- end
49
- def method_missing(meth, *args, &blk)
50
- @runner.send(meth, *args, &blk)
51
- end
52
- end
53
- def self.run(token, **opts, &blk)
54
- DSL.new(token, **opts).run(&blk)
55
- end
56
- def self.new(token, **opts)
57
- DSL.new(token, **opts)
58
- end
59
- end
@@ -1,46 +0,0 @@
1
- require 'json'
2
- require 'ostruct'
3
- require 'tgbot/core'
4
- require 'tgbot/update'
5
-
6
- module Tgbot
7
- class Runner
8
- attr_accessor :bot, :offset, :timeout, :updates
9
- def initialize(token, **opts)
10
- @bot = Bot.new(token, **opts)
11
- @offset = 0
12
- @timeout = 2
13
- @updates = []
14
- end
15
- def mainloop
16
- loop do
17
- @updates.each { |u| u.count += 1 }
18
- update_updates
19
- @updates.each { |update| yield update }
20
- end
21
- end
22
- def update_updates
23
- @updates.delete_if(&:done?)
24
- x = x
25
- t = time { x = @bot.get_updates offset: @offset + 1, limit: 7, timeout: @timeout }
26
- case
27
- when t > @timeout then @timeout += [@timeout / 2, 1].max
28
- when t < @timeout then @timeout -= 1
29
- end
30
- @timeout = [[0, @timeout].max, 15].min
31
- x['result'].each { |e| @updates.push Update.new(@bot, hash_to_ostruct(e)) } if x['ok']
32
- @offset = [*@updates.map(&:update_id), @offset].max
33
- end
34
- def hash_to_ostruct hash
35
- JSON.parse JSON.generate(hash), object_class: OpenStruct
36
- end
37
- def time
38
- t = Time.now
39
- yield
40
- Time.now - t
41
- end
42
- def method_missing(meth, *args, &blk)
43
- @bot.send(meth, *args, &blk)
44
- end
45
- end
46
- end
@@ -1,83 +0,0 @@
1
- require 'faraday'
2
- require 'mimemagic'
3
- module Tgbot
4
- class Update
5
- attr_accessor :bot, :update, :type, :done, :count
6
- def initialize bot, update
7
- @bot, @update = bot, update
8
- @type = get_type
9
- @done = false
10
- @count = 0
11
- end
12
- alias done? done
13
- def id
14
- @update.update_id
15
- end
16
- def chat_id
17
- @update[@type].chat&.id
18
- end
19
- def text
20
- @update[@type].text
21
- end
22
- def done!
23
- @done = true
24
- end
25
- def retry n = 1
26
- @done = false if @count < n
27
- end
28
- def send_message(text = nil, **kwargs)
29
- return unless chat_id
30
- return unless text = text || kwargs.delete(:text)
31
- @bot.send_message(chat_id: chat_id, text: text, **kwargs)
32
- end
33
- def reply_message(text = nil, **kwargs)
34
- return unless chat_id
35
- return unless text = text || kwargs.delete(:text)
36
- @bot.send_message(
37
- chat_id: chat_id, text: text,
38
- reply_to_message_id: @update[@type].message_id, **kwargs)
39
- end
40
- alias reply reply_message
41
- %i(photo audio document video voice video_note).each do |name|
42
- class_eval %{
43
- def send_#{name}(#{name} = nil, **kwargs)
44
- return unless chat_id
45
- return unless #{name} = #{name} || kwargs.delete(:#{name})
46
- @bot.send_#{name}(
47
- chat_id: chat_id,
48
- #{name}: Faraday::UploadIO.new(#{name}, MimeMagic.by_path(#{name}).type),
49
- **kwargs)
50
- end
51
- def reply_#{name}(#{name} = nil, **kwargs)
52
- return unless chat_id
53
- return unless #{name} = #{name} || kwargs.delete(:#{name})
54
- @bot.send_#{name}(
55
- chat_id: chat_id,
56
- #{name}: Faraday::UploadIO.new(#{name}, MimeMagic.by_path(#{name}).type),
57
- reply_to_message_id: @update[@type].message_id, **kwargs)
58
- end
59
- }
60
- end
61
- def get_type
62
- %i(
63
- message
64
- edited_message
65
- channel_post
66
- edited_channel_post
67
- inline_query
68
- chosen_inline_result
69
- callback_query
70
- shipping_query
71
- pre_checkout_query
72
- ).find { |f| @update[f] }
73
- end
74
- def method_missing(field)
75
- @update[field]
76
- end
77
- def inspect
78
- "#<Update ##{id} #{@type}=#{@update[@type]}>"
79
- end
80
- alias to_str inspect
81
- alias to_s inspect
82
- end
83
- end
@@ -1 +0,0 @@
1
- {"Update":{"update_id":{"type":"Integer","optional":false},"message":{"type":"Message","optional":true},"edited_message":{"type":"Message","optional":true},"channel_post":{"type":"Message","optional":true},"edited_channel_post":{"type":"Message","optional":true},"inline_query":{"type":"InlineQuery","optional":true},"chosen_inline_result":{"type":"ChosenInlineResult","optional":true},"callback_query":{"type":"CallbackQuery","optional":true},"shipping_query":{"type":"ShippingQuery","optional":true},"pre_checkout_query":{"type":"PreCheckoutQuery","optional":true}},"WebhookInfo":{"url":{"type":"String","optional":false},"has_custom_certificate":{"type":"Boolean","optional":false},"pending_update_count":{"type":"Integer","optional":false},"last_error_date":{"type":"Integer","optional":true},"last_error_message":{"type":"String","optional":true},"max_connections":{"type":"Integer","optional":true},"allowed_updates":{"type":"[String]","optional":true}},"User":{"id":{"type":"Integer","optional":false},"is_bot":{"type":"Boolean","optional":false},"first_name":{"type":"String","optional":false},"last_name":{"type":"String","optional":true},"username":{"type":"String","optional":true},"language_code":{"type":"String","optional":true}},"Chat":{"id":{"type":"Integer","optional":false},"type":{"type":"String","optional":false},"title":{"type":"String","optional":true},"username":{"type":"String","optional":true},"first_name":{"type":"String","optional":true},"last_name":{"type":"String","optional":true},"all_members_are_administrators":{"type":"Boolean","optional":true},"photo":{"type":"ChatPhoto","optional":true},"description":{"type":"String","optional":true},"invite_link":{"type":"String","optional":true},"pinned_message":{"type":"Message","optional":true}},"Message":{"message_id":{"type":"Integer","optional":false},"from":{"type":"User","optional":true},"date":{"type":"Integer","optional":false},"chat":{"type":"Chat","optional":false},"forward_from":{"type":"User","optional":true},"forward_from_chat":{"type":"Chat","optional":true},"forward_from_message_id":{"type":"Integer","optional":true},"forward_date":{"type":"Integer","optional":true},"reply_to_message":{"type":"Message","optional":true},"edit_date":{"type":"Integer","optional":true},"text":{"type":"String","optional":true},"entities":{"type":"[MessageEntity]","optional":true},"caption_entities":{"type":"[MessageEntity]","optional":true},"audio":{"type":"Audio","optional":true},"document":{"type":"Document","optional":true},"game":{"type":"Game","optional":true},"photo":{"type":"[PhotoSize]","optional":true},"sticker":{"type":"Sticker","optional":true},"video":{"type":"Video","optional":true},"voice":{"type":"Voice","optional":true},"video_note":{"type":"VideoNote","optional":true},"new_chat_members":{"type":"[User]","optional":true},"caption":{"type":"String","optional":true},"contact":{"type":"Contact","optional":true},"location":{"type":"Location","optional":true},"venue":{"type":"Venue","optional":true},"new_chat_member":{"type":"User","optional":true},"left_chat_member":{"type":"User","optional":true},"new_chat_title":{"type":"String","optional":true},"new_chat_photo":{"type":"[PhotoSize]","optional":true},"delete_chat_photo":{"type":"True","optional":true},"group_chat_created":{"type":"True","optional":true},"supergroup_chat_created":{"type":"True","optional":true},"channel_chat_created":{"type":"True","optional":true},"migrate_to_chat_id":{"type":"Integer","optional":true},"migrate_from_chat_id":{"type":"Integer","optional":true},"pinned_message":{"type":"Message","optional":true},"invoice":{"type":"Invoice","optional":true},"successful_payment":{"type":"SuccessfulPayment","optional":true},"connected_website":{"type":"String","optional":true}},"MessageEntity":{"type":{"type":"String","optional":false},"offset":{"type":"Integer","optional":false},"length":{"type":"Integer","optional":false},"url":{"type":"String","optional":true},"user":{"type":"User","optional":true}},"PhotoSize":{"file_id":{"type":"String","optional":false},"width":{"type":"Integer","optional":false},"height":{"type":"Integer","optional":false},"file_size":{"type":"Integer","optional":true}},"Audio":{"file_id":{"type":"String","optional":false},"duration":{"type":"Integer","optional":false},"performer":{"type":"String","optional":true},"title":{"type":"String","optional":true},"mime_type":{"type":"String","optional":true},"file_size":{"type":"Integer","optional":true}},"Document":{"file_id":{"type":"String","optional":false},"thumb":{"type":"PhotoSize","optional":true},"file_name":{"type":"String","optional":true},"mime_type":{"type":"String","optional":true},"file_size":{"type":"Integer","optional":true}},"Video":{"file_id":{"type":"String","optional":false},"width":{"type":"Integer","optional":false},"height":{"type":"Integer","optional":false},"duration":{"type":"Integer","optional":false},"thumb":{"type":"PhotoSize","optional":true},"mime_type":{"type":"String","optional":true},"file_size":{"type":"Integer","optional":true}},"Voice":{"file_id":{"type":"String","optional":false},"duration":{"type":"Integer","optional":false},"mime_type":{"type":"String","optional":true},"file_size":{"type":"Integer","optional":true}},"VideoNote":{"file_id":{"type":"String","optional":false},"length":{"type":"Integer","optional":false},"duration":{"type":"Integer","optional":false},"thumb":{"type":"PhotoSize","optional":true},"file_size":{"type":"Integer","optional":true}},"Contact":{"phone_number":{"type":"String","optional":false},"first_name":{"type":"String","optional":false},"last_name":{"type":"String","optional":true},"user_id":{"type":"Integer","optional":true}},"Location":{"longitude":{"type":"Float","optional":false},"latitude":{"type":"Float","optional":false}},"Venue":{"location":{"type":"Location","optional":false},"title":{"type":"String","optional":false},"address":{"type":"String","optional":false},"foursquare_id":{"type":"String","optional":true}},"UserProfilePhotos":{"total_count":{"type":"Integer","optional":false},"photos":{"type":"[[PhotoSize]]","optional":false}},"File":{"file_id":{"type":"String","optional":false},"file_size":{"type":"Integer","optional":true},"file_path":{"type":"String","optional":true}},"ReplyKeyboardMarkup":{"keyboard":{"type":"[[KeyboardButton]]","optional":false},"resize_keyboard":{"type":"Boolean","optional":true},"one_time_keyboard":{"type":"Boolean","optional":true},"selective":{"type":"Boolean","optional":true}},"KeyboardButton":{"text":{"type":"String","optional":false},"request_contact":{"type":"Boolean","optional":true},"request_location":{"type":"Boolean","optional":true}},"ReplyKeyboardRemove":{"remove_keyboard":{"type":"Boolean","optional":false},"selective":{"type":"Boolean","optional":true}},"InlineKeyboardMarkup":{"inline_keyboard":{"type":"[[InlineKeyboardButton]]","optional":false}},"InlineKeyboardButton":{"text":{"type":"String","optional":false},"url":{"type":"String","optional":true},"callback_data":{"type":"String","optional":true},"switch_inline_query":{"type":"String","optional":true},"switch_inline_query_current_chat":{"type":"String","optional":true},"callback_game":{"type":"CallbackGame","optional":true},"pay":{"type":"Boolean","optional":true}},"CallbackQuery":{"id":{"type":"String","optional":false},"from":{"type":"User","optional":false},"message":{"type":"Message","optional":true},"inline_message_id":{"type":"String","optional":true},"chat_instance":{"type":"String","optional":true},"data":{"type":"String","optional":true},"game_short_name":{"type":"String","optional":true}},"ForceReply":{"force_reply":{"type":"True","optional":false},"selective":{"type":"Boolean","optional":true}},"ChatPhoto":{"small_file_id":{"type":"String","optional":false},"big_file_id":{"type":"String","optional":false}},"ChatMember":{"user":{"type":"User","optional":false},"status":{"type":"String","optional":false},"until_date":{"type":"Integer","optional":true},"can_be_edited":{"type":"Boolean","optional":true},"can_change_info":{"type":"Boolean","optional":true},"can_post_messages":{"type":"Boolean","optional":true},"can_edit_messages":{"type":"Boolean","optional":true},"can_delete_messages":{"type":"Boolean","optional":true},"can_invite_users":{"type":"Boolean","optional":true},"can_restrict_members":{"type":"Boolean","optional":true},"can_pin_messages":{"type":"Boolean","optional":true},"can_promote_members":{"type":"Boolean","optional":true},"can_send_messages":{"type":"Boolean","optional":true},"can_send_media_messages":{"type":"Boolean","optional":true},"can_send_other_messages":{"type":"Boolean","optional":true},"can_add_web_page_previews":{"type":"Boolean","optional":true}},"ResponseParameters":{"migrate_to_chat_id":{"type":"Integer","optional":true},"retry_after":{"type":"Integer","optional":true}},"InputMedia":{"type":{"type":"String","optional":false},"media":{"type":"String","optional":false},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"width":{"type":"Integer","optional":true},"height":{"type":"Integer","optional":true},"duration":{"type":"Integer","optional":true},"supports_streaming":{"type":"Boolean","optional":true}},"InputFile":{},"Sticker":{"file_id":{"type":"String","optional":false},"width":{"type":"Integer","optional":false},"height":{"type":"Integer","optional":false},"thumb":{"type":"PhotoSize","optional":true},"emoji":{"type":"String","optional":true},"set_name":{"type":"String","optional":true},"mask_position":{"type":"MaskPosition","optional":true},"file_size":{"type":"Integer","optional":true}},"StickerSet":{"name":{"type":"String","optional":false},"title":{"type":"String","optional":false},"contains_masks":{"type":"Boolean","optional":false},"stickers":{"type":"[Sticker]","optional":false}},"MaskPosition":{"point":{"type":"String","optional":false},"x_shift":{"type":"Float","optional":false},"y_shift":{"type":"Float","optional":false},"scale":{"type":"Float","optional":false}},"InlineQuery":{"id":{"type":"String","optional":false},"from":{"type":"User","optional":false},"location":{"type":"Location","optional":true},"query":{"type":"String","optional":false},"offset":{"type":"String","optional":false}},"InlineQueryResultArticle":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"title":{"type":"String","optional":false},"input_message_content":{"type":"InputMessageContent","optional":false},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true},"url":{"type":"String","optional":true},"hide_url":{"type":"Boolean","optional":true},"description":{"type":"String","optional":true},"thumb_url":{"type":"String","optional":true},"thumb_width":{"type":"Integer","optional":true},"thumb_height":{"type":"Integer","optional":true}},"InlineQueryResultPhoto":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"photo_url":{"type":"String","optional":false},"thumb_url":{"type":"String","optional":false},"photo_width":{"type":"Integer","optional":true},"photo_height":{"type":"Integer","optional":true},"title":{"type":"String","optional":true},"description":{"type":"String","optional":true},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true},"input_message_content":{"type":"InputMessageContent","optional":true}},"InlineQueryResultGif":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"gif_url":{"type":"String","optional":false},"gif_width":{"type":"Integer","optional":true},"gif_height":{"type":"Integer","optional":true},"thumb_url":{"type":"String","optional":true},"title":{"type":"String","optional":true},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true},"input_message_content":{"type":"InputMessageContent","optional":true}},"InlineQueryResultMpeg4Gif":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"mpeg4_url":{"type":"String","optional":false},"mpeg4_width":{"type":"Integer","optional":true},"mpeg4_height":{"type":"Integer","optional":true},"mpeg4_duration":{"type":"Integer","optional":true},"thumb_url":{"type":"String","optional":false},"title":{"type":"String","optional":true},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true},"input_message_content":{"type":"InputMessageContent","optional":true}},"InlineQueryResultVideo":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"video_url":{"type":"String","optional":false},"mime_type":{"type":"String","optional":false},"thumb_url":{"type":"String","optional":false},"title":{"type":"String","optional":false},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"video_width":{"type":"Integer","optional":true},"video_height":{"type":"Integer","optional":true},"video_duration":{"type":"Integer","optional":true},"description":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true},"input_message_content":{"type":"InputMessageContent","optional":true}},"InlineQueryResultAudio":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"audio_url":{"type":"String","optional":false},"title":{"type":"String","optional":false},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"performer":{"type":"String","optional":true},"audio_duration":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true},"input_message_content":{"type":"InputMessageContent","optional":true}},"InlineQueryResultVoice":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"voice_url":{"type":"String","optional":false},"title":{"type":"String","optional":false},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"voice_duration":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true},"input_message_content":{"type":"InputMessageContent","optional":true}},"InlineQueryResultDocument":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"title":{"type":"String","optional":false},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"document_url":{"type":"String","optional":false},"mime_type":{"type":"String","optional":false},"description":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true},"input_message_content":{"type":"InputMessageContent","optional":true},"thumb_url":{"type":"String","optional":true},"thumb_width":{"type":"Integer","optional":true},"thumb_height":{"type":"Integer","optional":true}},"InlineQueryResultLocation":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"latitude":{"type":"Float","optional":false},"longitude":{"type":"Float","optional":false},"title":{"type":"String","optional":false},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true},"input_message_content":{"type":"InputMessageContent","optional":true},"thumb_url":{"type":"String","optional":true},"thumb_width":{"type":"Integer","optional":true},"thumb_height":{"type":"Integer","optional":true}},"InlineQueryResultVenue":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"latitude":{"type":"Float","optional":false},"longitude":{"type":"Float","optional":false},"title":{"type":"String","optional":false},"address":{"type":"String","optional":false},"foursquare_id":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true},"input_message_content":{"type":"InputMessageContent","optional":true},"thumb_url":{"type":"String","optional":true},"thumb_width":{"type":"Integer","optional":true},"thumb_height":{"type":"Integer","optional":true}},"InlineQueryResultContact":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"phone_number":{"type":"String","optional":false},"first_name":{"type":"String","optional":false},"last_name":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true},"input_message_content":{"type":"InputMessageContent","optional":true},"thumb_url":{"type":"String","optional":true},"thumb_width":{"type":"Integer","optional":true},"thumb_height":{"type":"Integer","optional":true}},"InlineQueryResultGame":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"game_short_name":{"type":"String","optional":false},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true}},"InlineQueryResultCachedPhoto":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"photo_file_id":{"type":"String","optional":false},"title":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"description":{"type":"String","optional":true},"caption":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true},"input_message_content":{"type":"InputMessageContent","optional":true}},"InlineQueryResultCachedGif":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"gif_file_id":{"type":"String","optional":false},"title":{"type":"String","optional":true},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true},"input_message_content":{"type":"InputMessageContent","optional":true}},"InlineQueryResultCachedMpeg4Gif":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"mpeg4_file_id":{"type":"String","optional":false},"title":{"type":"String","optional":true},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true},"input_message_content":{"type":"InputMessageContent","optional":true}},"InlineQueryResultCachedSticker":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"sticker_file_id":{"type":"String","optional":false},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true},"input_message_content":{"type":"InputMessageContent","optional":true}},"InlineQueryResultCachedDocument":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"title":{"type":"String","optional":false},"document_file_id":{"type":"String","optional":false},"description":{"type":"String","optional":true},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true},"input_message_content":{"type":"InputMessageContent","optional":true}},"InlineQueryResultCachedVideo":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"video_file_id":{"type":"String","optional":false},"title":{"type":"String","optional":false},"description":{"type":"String","optional":true},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true},"input_message_content":{"type":"InputMessageContent","optional":true}},"InlineQueryResultCachedVoice":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"voice_file_id":{"type":"String","optional":false},"title":{"type":"String","optional":false},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true},"input_message_content":{"type":"InputMessageContent","optional":true}},"InlineQueryResultCachedAudio":{"type":{"type":"String","optional":false},"id":{"type":"String","optional":false},"audio_file_id":{"type":"String","optional":false},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true},"input_message_content":{"type":"InputMessageContent","optional":true}},"InputMessageContent":{},"InputTextMessageContent":{"message_text":{"type":"String","optional":false},"parse_mode":{"type":"String","optional":true},"disable_web_page_preview":{"type":"Boolean","optional":true}},"InputLocationMessageContent":{"latitude":{"type":"Float","optional":false},"longitude":{"type":"Float","optional":false}},"InputVenueMessageContent":{"latitude":{"type":"Float","optional":false},"longitude":{"type":"Float","optional":false},"title":{"type":"String","optional":false},"address":{"type":"String","optional":false},"foursquare_id":{"type":"String","optional":true}},"InputContactMessageContent":{"phone_number":{"type":"String","optional":false},"first_name":{"type":"String","optional":false},"last_name":{"type":"String","optional":true}},"ChosenInlineResult":{"result_id":{"type":"String","optional":false},"from":{"type":"User","optional":false},"location":{"type":"Location","optional":true},"inline_message_id":{"type":"String","optional":true},"query":{"type":"String","optional":true}},"LabeledPrice":{"label":{"type":"String","optional":false},"amount":{"type":"Integer","optional":false}},"Invoice":{"title":{"type":"String","optional":false},"description":{"type":"String","optional":false},"start_parameter":{"type":"String","optional":false},"currency":{"type":"String","optional":false},"total_amount":{"type":"Integer","optional":false}},"ShippingAddress":{"country_code":{"type":"String","optional":false},"state":{"type":"String","optional":false},"city":{"type":"String","optional":false},"street_line1":{"type":"String","optional":false},"street_line2":{"type":"String","optional":false},"post_code":{"type":"String","optional":false}},"OrderInfo":{"name":{"type":"String","optional":true},"phone_number":{"type":"String","optional":true},"email":{"type":"String","optional":true},"shipping_address":{"type":"ShippingAddress","optional":true}},"ShippingOption":{"id":{"type":"String","optional":false},"title":{"type":"String","optional":false},"prices":{"type":"[LabeledPrice]","optional":false}},"SuccessfulPayment":{"currency":{"type":"String","optional":false},"total_amount":{"type":"Integer","optional":false},"invoice_payload":{"type":"String","optional":false},"shipping_option_id":{"type":"String","optional":true},"order_info":{"type":"OrderInfo","optional":true},"telegram_payment_charge_id":{"type":"String","optional":false},"provider_payment_charge_id":{"type":"String","optional":false}},"ShippingQuery":{"id":{"type":"String","optional":false},"from":{"type":"User","optional":false},"invoice_payload":{"type":"String","optional":false},"shipping_address":{"type":"ShippingAddress","optional":false}},"PreCheckoutQuery":{"id":{"type":"String","optional":false},"from":{"type":"User","optional":false},"currency":{"type":"String","optional":false},"total_amount":{"type":"Integer","optional":false},"invoice_payload":{"type":"String","optional":false},"shipping_option_id":{"type":"String","optional":true},"order_info":{"type":"OrderInfo","optional":true}},"Game":{"title":{"type":"String","optional":false},"description":{"type":"String","optional":false},"photo":{"type":"Array","optional":false},"text":{"type":"String","optional":true},"text_entities":{"type":"Array","optional":true},"animation":{"type":"Animation","optional":true}},"Animation":{"file_id":{"type":"String","optional":false},"thumb":{"type":"PhotoSize","optional":true},"file_name":{"type":"String","optional":true},"mime_type":{"type":"String","optional":true},"file_size":{"type":"Integer","optional":true}},"CallbackGame":{},"GameHighScore":{"position":{"type":"Integer","optional":false},"user":{"type":"User","optional":false},"score":{"type":"Integer","optional":false}}}
@@ -1,19 +0,0 @@
1
- require 'json'
2
-
3
- raw = File.read 'methods.txt'
4
- ans = JSON.generate raw.split("\n\n").map { |raw_method|
5
- method_ret, *decl = *raw_method.lines.map(&:strip).delete_if(&:empty?).map(&:split)
6
- method, ret = *method_ret
7
- {
8
- method => {
9
- ret: ret,
10
- params: decl.map { |e|
11
- case e.size
12
- when 2 then [e[0], { type: e[1], optional: true }]
13
- when 3 then [e[1], { type: e[2], optional: false }]
14
- end
15
- }.to_h
16
- }
17
- }
18
- }.inject(&:merge)
19
- open 'methods.json', 'w' do |f| f.write ans end
@@ -1,15 +0,0 @@
1
- require 'json'
2
-
3
- methods = JSON.load File.read 'methods.json'
4
- ans = methods.map { |method, decl|
5
- ret, params = decl['ret'], decl['params']
6
- max_length = [params.keys.map(&:length).max || 0, method.length - 4].max
7
- patch = -> x { if x.is_a? Array and x.size > 1 then x.join('|') else x end }
8
- <<~EOF
9
- #{"%-#{max_length + 4}s" % method} #{ret ? patch[ret].inspect.delete('"') : ''}
10
- #{params.map { |param, attr|
11
- "#{attr['optional'] ? ' ' : '*'} #{"%-#{max_length}s" % param} #{patch[attr['type']].inspect.delete('"')}"
12
- }.join("\n ")}
13
- EOF
14
- }.join("\n")
15
- open 'methods.txt', 'w' do |f| f.write ans end
@@ -1,15 +0,0 @@
1
- require 'json'
2
-
3
- raw = File.read 'types.txt'
4
- ans = JSON.generate raw.split("\n\n").map { |raw_type|
5
- type, *fields = *raw_type.lines.map(&:strip).delete_if(&:empty?).map(&:split)
6
- {
7
- type[0] => fields.map { |e|
8
- case e.size
9
- when 2 then [e[0], { type: e[1], optional: true }]
10
- when 3 then [e[1], { type: e[2], optional: false }]
11
- end
12
- }.to_h
13
- }
14
- }.inject(&:merge)
15
- open 'types.json', 'w' do |f| f.write ans end
@@ -1,21 +0,0 @@
1
- require 'json'
2
-
3
- types = JSON.load File.read 'types.json'
4
- ans = types.map { |type, fields|
5
- max_length = fields.keys.map(&:length).max
6
- # haskell (ry
7
- # <<~EOF
8
- # data #{type} = {
9
- # #{fields.map { |field, attr|
10
- # "#{"%-#{max_length}s" % field} :: #{attr['type'].inspect.delete('"')}"
11
- # }.join("\n ")}
12
- # }
13
- # EOF
14
- <<~EOF
15
- #{type}
16
- #{fields.map { |field, attr|
17
- "#{attr['optional'] ? ' ' : '*'} #{"%-#{max_length}s" % field} #{attr['type'].inspect.delete('"')}"
18
- }.join("\n ")}
19
- EOF
20
- }.join("\n")
21
- open 'types.txt', 'w' do |f| f.write ans end
@@ -1 +0,0 @@
1
- {"getUpdates":{"ret":"[Update]","params":{"offset":{"type":"Integer","optional":true},"limit":{"type":"Integer","optional":true},"timeout":{"type":"Integer","optional":true},"allowed_updates":{"type":"[String]","optional":true}}},"setWebhook":{"ret":"True","params":{"url":{"type":"String","optional":false},"certificate":{"type":"InputFile","optional":true},"max_connections":{"type":"Integer","optional":true},"allowed_updates":{"type":"[String]","optional":true}}},"deleteWebhook":{"ret":"True","params":{}},"getWebhookInfo":{"ret":"WebhookInfo","params":{}},"getMe":{"ret":"User","params":{}},"sendMessage":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"text":{"type":"String","optional":false},"parse_mode":{"type":"String","optional":true},"disable_web_page_preview":{"type":"Boolean","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"forwardMessage":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"from_chat_id":{"type":"Integer|String","optional":false},"disable_notification":{"type":"Boolean","optional":true},"message_id":{"type":"Integer","optional":false}}},"sendPhoto":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"photo":{"type":"InputFile|String","optional":false},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"sendAudio":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"audio":{"type":"InputFile|String","optional":false},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"duration":{"type":"Integer","optional":true},"performer":{"type":"String","optional":true},"title":{"type":"String","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"sendDocument":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"document":{"type":"InputFile|String","optional":false},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"sendVideo":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"video":{"type":"InputFile|String","optional":false},"duration":{"type":"Integer","optional":true},"width":{"type":"Integer","optional":true},"height":{"type":"Integer","optional":true},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"supports_streaming":{"type":"Boolean","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"sendVoice":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"voice":{"type":"InputFile|String","optional":false},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"duration":{"type":"Integer","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"sendVideoNote":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"video_note":{"type":"InputFile|String","optional":false},"duration":{"type":"Integer","optional":true},"length":{"type":"Integer","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"sendMediaGroup":{"ret":"[Message]","params":{"chat_id":{"type":"Integer|String","optional":false},"media":{"type":"[InputMedia]","optional":false},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true}}},"sendLocation":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"latitude":{"type":"Float","optional":false},"longitude":{"type":"Float","optional":false},"live_period":{"type":"Integer","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"editMessageLiveLocation":{"ret":"Message|True","params":{"chat_id":{"type":"Integer|String","optional":true},"message_id":{"type":"Integer","optional":true},"inline_message_id":{"type":"String","optional":true},"latitude":{"type":"Float","optional":false},"longitude":{"type":"Float","optional":false},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true}}},"stopMessageLiveLocation":{"ret":"Message|True","params":{"chat_id":{"type":"Integer|String","optional":true},"message_id":{"type":"Integer","optional":true},"inline_message_id":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true}}},"sendVenue":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"latitude":{"type":"Float","optional":false},"longitude":{"type":"Float","optional":false},"title":{"type":"String","optional":false},"address":{"type":"String","optional":false},"foursquare_id":{"type":"String","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"sendContact":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"phone_number":{"type":"String","optional":false},"first_name":{"type":"String","optional":false},"last_name":{"type":"String","optional":false},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"sendChatAction":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"action":{"type":"String","optional":false}}},"getUserProfilePhotos":{"ret":"UserProfilePhotos","params":{"user_id":{"type":"Integer","optional":false},"offset":{"type":"Integer","optional":true},"limit":{"type":"Integer","optional":true}}},"getFile":{"ret":"File","params":{"file_id":{"type":"String","optional":false}}},"kickChatMember":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"user_id":{"type":"Integer","optional":false},"until_date":{"type":"Integer","optional":true}}},"unbanChatMember":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"user_id":{"type":"Integer","optional":false}}},"restrictChatMember":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"user_id":{"type":"Integer","optional":false},"until_date":{"type":"Integer","optional":true},"can_send_messages":{"type":"Boolean","optional":true},"can_send_media_messages":{"type":"Boolean","optional":true},"can_send_other_messages":{"type":"Boolean","optional":true},"can_add_web_page_previews":{"type":"Boolean","optional":true}}},"promoteChatMember":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"user_id":{"type":"Integer","optional":false},"can_change_info":{"type":"Boolean","optional":true},"can_post_messages":{"type":"Boolean","optional":true},"can_edit_messages":{"type":"Boolean","optional":true},"can_delete_messages":{"type":"Boolean","optional":true},"can_invite_users":{"type":"Boolean","optional":true},"can_restrict_members":{"type":"Boolean","optional":true},"can_pin_messages":{"type":"Boolean","optional":true},"can_promote_members":{"type":"Boolean","optional":true}}},"exportChatInviteLink":{"ret":"String","params":{"chat_id":{"type":"Integer|String","optional":false}}},"setChatPhoto":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"photo":{"type":"InputFile","optional":false}}},"deleteChatPhoto":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false}}},"setChatTitle":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"title":{"type":"String","optional":false}}},"setChatDescription":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"description":{"type":"String","optional":true}}},"pinChatMessage":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"message_id":{"type":"Integer","optional":false},"disable_notification":{"type":"Boolean","optional":true}}},"unpinChatMessage":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false}}},"leaveChat":{"ret":"Boolean","params":{"chat_id":{"type":"Integer|String","optional":false}}},"getChat":{"ret":"Chat","params":{"chat_id":{"type":"Integer|String","optional":false}}},"getChatAdministrators":{"ret":"[ChatMember]","params":{"chat_id":{"type":"Integer|String","optional":false}}},"getChatMembersCount":{"ret":"Integer","params":{"chat_id":{"type":"Integer|String","optional":false}}},"getChatMember":{"ret":"ChatMember","params":{"chat_id":{"type":"Integer|String","optional":false},"user_id":{"type":"Integer","optional":false}}},"setChatStickerSet":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"sticker_set_name":{"type":"String","optional":false}}},"deleteChatStickerSet":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false}}},"answerCallbackQuery":{"ret":"True","params":{"callback_query_id":{"type":"String","optional":false},"text":{"type":"Boolean","optional":true},"show_alert":{"type":"Boolean","optional":true},"url":{"type":"String","optional":true},"cache_time":{"type":"Integer","optional":true}}},"editMessageText":{"ret":"Message|True","params":{"chat_id":{"type":"Integer|String","optional":true},"message_id":{"type":"Integer","optional":true},"inline_message_id":{"type":"String","optional":true},"text":{"type":"String","optional":false},"parse_mode":{"type":"String","optional":true},"disable_web_page_preview":{"type":"Boolean","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true}}},"editMessageCaption":{"ret":"Message|True","params":{"chat_id":{"type":"Integer|String","optional":true},"message_id":{"type":"Integer","optional":true},"inline_message_id":{"type":"String","optional":true},"caption":{"type":"String","optional":true},"parse_mode":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true}}},"editMessageReplyMarkup":{"ret":"Message|True","params":{"chat_id":{"type":"Integer|String","optional":true},"message_id":{"type":"Integer","optional":true},"inline_message_id":{"type":"String","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true}}},"deleteMessage":{"ret":"True","params":{"chat_id":{"type":"Integer|String","optional":false},"message_id":{"type":"Integer","optional":false}}},"sendSticker":{"ret":"Message","params":{"chat_id":{"type":"Integer|String","optional":false},"sticker":{"type":"InputFile|String","optional":false},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply","optional":true}}},"getStickerSet":{"ret":"StickerSet","params":{"name":{"type":"String","optional":false}}},"uploadStickerFile":{"ret":"File","params":{"user_id":{"type":"Integer","optional":false},"png_sticker":{"type":"InputFile","optional":false}}},"createNewStickerSet":{"ret":"True","params":{"name":{"type":"String","optional":false},"title":{"type":"String","optional":false},"png_sticker":{"type":"InputFile|String","optional":false},"emojis":{"type":"String","optional":false},"contains_masks":{"type":"Boolean","optional":true},"mask_position":{"type":"MaskPosition","optional":true}}},"addStickerToSet":{"ret":"True","params":{"user_id":{"type":"Integer","optional":false},"name":{"type":"String","optional":false},"png_sticker":{"type":"InputFile|String","optional":false},"emojis":{"type":"String","optional":false},"mask_position":{"type":"MaskPosition","optional":true}}},"setStickerPositionInSet":{"ret":"True","params":{"sticker":{"type":"String","optional":false},"position":{"type":"Integer","optional":false}}},"deleteStickerFromSet":{"ret":"True","params":{"sticker":{"type":"String","optional":false}}},"answerInlineQuery":{"ret":"Boolean","params":{"inline_query_id":{"type":"String","optional":false},"results":{"type":"[InlineQueryResult]","optional":false},"cache_time":{"type":"Integer","optional":true},"is_personal":{"type":"Boolean","optional":true},"next_offset":{"type":"String","optional":true},"switch_pm_text":{"type":"String","optional":true},"switch_pm_parameter":{"type":"String","optional":true}}},"sendInvoice":{"ret":"Message","params":{"chat_id":{"type":"Integer","optional":false},"title":{"type":"String","optional":false},"description":{"type":"String","optional":false},"payload":{"type":"String","optional":false},"provider_token":{"type":"String","optional":false},"start_parameter":{"type":"String","optional":false},"currency":{"type":"String","optional":false},"prices":{"type":"[LabeledPrice]","optional":false},"provider_data":{"type":"String","optional":true},"photo_url":{"type":"String","optional":true},"photo_size":{"type":"Integer","optional":true},"photo_width":{"type":"Integer","optional":true},"photo_height":{"type":"Integer","optional":true},"need_name":{"type":"Boolean","optional":true},"need_phone_number":{"type":"Boolean","optional":true},"need_email":{"type":"Boolean","optional":true},"need_shipping_address":{"type":"Boolean","optional":true},"is_flexible":{"type":"Boolean","optional":true},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true}}},"answerShippingQuery":{"ret":"True","params":{"shipping_query_id":{"type":"String","optional":false},"ok":{"type":"Boolean","optional":false},"shipping_options":{"type":"[ShippingOption]","optional":true},"error_message":{"type":"String","optional":true}}},"answerPreCheckoutQuery":{"ret":"True","params":{"pre_checkout_query_id":{"type":"String","optional":false},"ok":{"type":"Boolean","optional":false},"error_message":{"type":"String","optional":true}}},"sendGame":{"ret":"Message","params":{"chat_id":{"type":"Integer","optional":false},"game_short_name":{"type":"String","optional":false},"disable_notification":{"type":"Boolean","optional":true},"reply_to_message_id":{"type":"Integer","optional":true},"reply_markup":{"type":"InlineKeyboardMarkup","optional":true}}},"setGameScore":{"ret":"Message|True","params":{"user_id":{"type":"Integer","optional":false},"score":{"type":"Integer","optional":false},"force":{"type":"Boolean","optional":true},"disable_edit_message":{"type":"Boolean","optional":true},"chat_id":{"type":"Integer","optional":true},"message_id":{"type":"Integer","optional":true},"inline_message_id":{"type":"String","optional":true}}},"getGameHighScores":{"ret":"[GameHighScore]","params":{"user_id":{"type":"Integer","optional":false},"chat_id":{"type":"Integer","optional":true},"message_id":{"type":"Integer","optional":true},"inline_message_id":{"type":"String","optional":true}}}}
@@ -1,372 +0,0 @@
1
- getUpdates [Update]
2
- offset Integer
3
- limit Integer
4
- timeout Integer
5
- allowed_updates [String]
6
-
7
- setWebhook True
8
- * url String
9
- certificate InputFile
10
- max_connections Integer
11
- allowed_updates [String]
12
-
13
- deleteWebhook True
14
-
15
-
16
- getWebhookInfo WebhookInfo
17
-
18
-
19
- getMe User
20
-
21
-
22
- sendMessage Message
23
- * chat_id Integer|String
24
- * text String
25
- parse_mode String
26
- disable_web_page_preview Boolean
27
- disable_notification Boolean
28
- reply_to_message_id Integer
29
- reply_markup InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply
30
-
31
- forwardMessage Message
32
- * chat_id Integer|String
33
- * from_chat_id Integer|String
34
- disable_notification Boolean
35
- * message_id Integer
36
-
37
- sendPhoto Message
38
- * chat_id Integer|String
39
- * photo InputFile|String
40
- caption String
41
- parse_mode String
42
- disable_notification Boolean
43
- reply_to_message_id Integer
44
- reply_markup InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply
45
-
46
- sendAudio Message
47
- * chat_id Integer|String
48
- * audio InputFile|String
49
- caption String
50
- parse_mode String
51
- duration Integer
52
- performer String
53
- title String
54
- disable_notification Boolean
55
- reply_to_message_id Integer
56
- reply_markup InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply
57
-
58
- sendDocument Message
59
- * chat_id Integer|String
60
- * document InputFile|String
61
- caption String
62
- parse_mode String
63
- disable_notification Boolean
64
- reply_to_message_id Integer
65
- reply_markup InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply
66
-
67
- sendVideo Message
68
- * chat_id Integer|String
69
- * video InputFile|String
70
- duration Integer
71
- width Integer
72
- height Integer
73
- caption String
74
- parse_mode String
75
- supports_streaming Boolean
76
- disable_notification Boolean
77
- reply_to_message_id Integer
78
- reply_markup InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply
79
-
80
- sendVoice Message
81
- * chat_id Integer|String
82
- * voice InputFile|String
83
- caption String
84
- parse_mode String
85
- duration Integer
86
- disable_notification Boolean
87
- reply_to_message_id Integer
88
- reply_markup InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply
89
-
90
- sendVideoNote Message
91
- * chat_id Integer|String
92
- * video_note InputFile|String
93
- duration Integer
94
- length Integer
95
- disable_notification Boolean
96
- reply_to_message_id Integer
97
- reply_markup InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply
98
-
99
- sendMediaGroup [Message]
100
- * chat_id Integer|String
101
- * media [InputMedia]
102
- disable_notification Boolean
103
- reply_to_message_id Integer
104
-
105
- sendLocation Message
106
- * chat_id Integer|String
107
- * latitude Float
108
- * longitude Float
109
- live_period Integer
110
- disable_notification Boolean
111
- reply_to_message_id Integer
112
- reply_markup InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply
113
-
114
- editMessageLiveLocation Message|True
115
- chat_id Integer|String
116
- message_id Integer
117
- inline_message_id String
118
- * latitude Float
119
- * longitude Float
120
- reply_markup InlineKeyboardMarkup
121
-
122
- stopMessageLiveLocation Message|True
123
- chat_id Integer|String
124
- message_id Integer
125
- inline_message_id String
126
- reply_markup InlineKeyboardMarkup
127
-
128
- sendVenue Message
129
- * chat_id Integer|String
130
- * latitude Float
131
- * longitude Float
132
- * title String
133
- * address String
134
- foursquare_id String
135
- disable_notification Boolean
136
- reply_to_message_id Integer
137
- reply_markup InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply
138
-
139
- sendContact Message
140
- * chat_id Integer|String
141
- * phone_number String
142
- * first_name String
143
- * last_name String
144
- disable_notification Boolean
145
- reply_to_message_id Integer
146
- reply_markup InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply
147
-
148
- sendChatAction True
149
- * chat_id Integer|String
150
- * action String
151
-
152
- getUserProfilePhotos UserProfilePhotos
153
- * user_id Integer
154
- offset Integer
155
- limit Integer
156
-
157
- getFile File
158
- * file_id String
159
-
160
- kickChatMember True
161
- * chat_id Integer|String
162
- * user_id Integer
163
- until_date Integer
164
-
165
- unbanChatMember True
166
- * chat_id Integer|String
167
- * user_id Integer
168
-
169
- restrictChatMember True
170
- * chat_id Integer|String
171
- * user_id Integer
172
- until_date Integer
173
- can_send_messages Boolean
174
- can_send_media_messages Boolean
175
- can_send_other_messages Boolean
176
- can_add_web_page_previews Boolean
177
-
178
- promoteChatMember True
179
- * chat_id Integer|String
180
- * user_id Integer
181
- can_change_info Boolean
182
- can_post_messages Boolean
183
- can_edit_messages Boolean
184
- can_delete_messages Boolean
185
- can_invite_users Boolean
186
- can_restrict_members Boolean
187
- can_pin_messages Boolean
188
- can_promote_members Boolean
189
-
190
- exportChatInviteLink String
191
- * chat_id Integer|String
192
-
193
- setChatPhoto True
194
- * chat_id Integer|String
195
- * photo InputFile
196
-
197
- deleteChatPhoto True
198
- * chat_id Integer|String
199
-
200
- setChatTitle True
201
- * chat_id Integer|String
202
- * title String
203
-
204
- setChatDescription True
205
- * chat_id Integer|String
206
- description String
207
-
208
- pinChatMessage True
209
- * chat_id Integer|String
210
- * message_id Integer
211
- disable_notification Boolean
212
-
213
- unpinChatMessage True
214
- * chat_id Integer|String
215
-
216
- leaveChat Boolean
217
- * chat_id Integer|String
218
-
219
- getChat Chat
220
- * chat_id Integer|String
221
-
222
- getChatAdministrators [ChatMember]
223
- * chat_id Integer|String
224
-
225
- getChatMembersCount Integer
226
- * chat_id Integer|String
227
-
228
- getChatMember ChatMember
229
- * chat_id Integer|String
230
- * user_id Integer
231
-
232
- setChatStickerSet True
233
- * chat_id Integer|String
234
- * sticker_set_name String
235
-
236
- deleteChatStickerSet True
237
- * chat_id Integer|String
238
-
239
- answerCallbackQuery True
240
- * callback_query_id String
241
- text Boolean
242
- show_alert Boolean
243
- url String
244
- cache_time Integer
245
-
246
- editMessageText Message|True
247
- chat_id Integer|String
248
- message_id Integer
249
- inline_message_id String
250
- * text String
251
- parse_mode String
252
- disable_web_page_preview Boolean
253
- reply_markup InlineKeyboardMarkup
254
-
255
- editMessageCaption Message|True
256
- chat_id Integer|String
257
- message_id Integer
258
- inline_message_id String
259
- caption String
260
- parse_mode String
261
- reply_markup InlineKeyboardMarkup
262
-
263
- editMessageReplyMarkup Message|True
264
- chat_id Integer|String
265
- message_id Integer
266
- inline_message_id String
267
- reply_markup InlineKeyboardMarkup
268
-
269
- deleteMessage True
270
- * chat_id Integer|String
271
- * message_id Integer
272
-
273
- sendSticker Message
274
- * chat_id Integer|String
275
- * sticker InputFile|String
276
- disable_notification Boolean
277
- reply_to_message_id Integer
278
- reply_markup InlineKeyboardMarkup|ReplyKeyboardMarkup|ReplyKeyboardRemove|ForceReply
279
-
280
- getStickerSet StickerSet
281
- * name String
282
-
283
- uploadStickerFile File
284
- * user_id Integer
285
- * png_sticker InputFile
286
-
287
- createNewStickerSet True
288
- * name String
289
- * title String
290
- * png_sticker InputFile|String
291
- * emojis String
292
- contains_masks Boolean
293
- mask_position MaskPosition
294
-
295
- addStickerToSet True
296
- * user_id Integer
297
- * name String
298
- * png_sticker InputFile|String
299
- * emojis String
300
- mask_position MaskPosition
301
-
302
- setStickerPositionInSet True
303
- * sticker String
304
- * position Integer
305
-
306
- deleteStickerFromSet True
307
- * sticker String
308
-
309
- answerInlineQuery Boolean
310
- * inline_query_id String
311
- * results [InlineQueryResult]
312
- cache_time Integer
313
- is_personal Boolean
314
- next_offset String
315
- switch_pm_text String
316
- switch_pm_parameter String
317
-
318
- sendInvoice Message
319
- * chat_id Integer
320
- * title String
321
- * description String
322
- * payload String
323
- * provider_token String
324
- * start_parameter String
325
- * currency String
326
- * prices [LabeledPrice]
327
- provider_data String
328
- photo_url String
329
- photo_size Integer
330
- photo_width Integer
331
- photo_height Integer
332
- need_name Boolean
333
- need_phone_number Boolean
334
- need_email Boolean
335
- need_shipping_address Boolean
336
- is_flexible Boolean
337
- disable_notification Boolean
338
- reply_to_message_id Integer
339
- reply_markup InlineKeyboardMarkup
340
-
341
- answerShippingQuery True
342
- * shipping_query_id String
343
- * ok Boolean
344
- shipping_options [ShippingOption]
345
- error_message String
346
-
347
- answerPreCheckoutQuery True
348
- * pre_checkout_query_id String
349
- * ok Boolean
350
- error_message String
351
-
352
- sendGame Message
353
- * chat_id Integer
354
- * game_short_name String
355
- disable_notification Boolean
356
- reply_to_message_id Integer
357
- reply_markup InlineKeyboardMarkup
358
-
359
- setGameScore Message|True
360
- * user_id Integer
361
- * score Integer
362
- force Boolean
363
- disable_edit_message Boolean
364
- chat_id Integer
365
- message_id Integer
366
- inline_message_id String
367
-
368
- getGameHighScores [GameHighScore]
369
- * user_id Integer
370
- chat_id Integer
371
- message_id Integer
372
- inline_message_id String