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.
- checksums.yaml +4 -4
- data/LICENSE.txt +1 -1
- data/README.md +108 -3
- data/Rakefile +0 -9
- data/lib/api.yaml +4052 -0
- data/lib/tgbot.rb +290 -4
- data/lib/tgbot/version.rb +2 -2
- data/tgbot.gemspec +3 -3
- data/tool/gen.rb +32 -0
- metadata +8 -23
- data/example.rb +0 -110
- data/lib/methods.json +0 -1
- data/lib/tgbot/core.rb +0 -145
- data/lib/tgbot/dsl.rb +0 -59
- data/lib/tgbot/runner.rb +0 -46
- data/lib/tgbot/update.rb +0 -83
- data/lib/types.json +0 -1
- data/tools/gen_methods_json.rb +0 -19
- data/tools/gen_methods_txt.rb +0 -15
- data/tools/gen_types_json.rb +0 -15
- data/tools/gen_types_txt.rb +0 -21
- data/tools/methods.json +0 -1
- data/tools/methods.txt +0 -372
- data/tools/types.json +0 -1
- data/tools/types.txt +0 -605
- data/usage.md +0 -97
data/lib/methods.json
DELETED
@@ -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}}}}
|
data/lib/tgbot/core.rb
DELETED
@@ -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
|
data/lib/tgbot/dsl.rb
DELETED
@@ -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
|
data/lib/tgbot/runner.rb
DELETED
@@ -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
|
data/lib/tgbot/update.rb
DELETED
@@ -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
|
data/lib/types.json
DELETED
@@ -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}}}
|
data/tools/gen_methods_json.rb
DELETED
@@ -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
|
data/tools/gen_methods_txt.rb
DELETED
@@ -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
|
data/tools/gen_types_json.rb
DELETED
@@ -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
|
data/tools/gen_types_txt.rb
DELETED
@@ -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
|
data/tools/methods.json
DELETED
@@ -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}}}}
|
data/tools/methods.txt
DELETED
@@ -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
|