tdlib-ruby 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (257) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -2
  3. data/ChangeLog.md +5 -0
  4. data/README.md +9 -2
  5. data/bin/parser +32 -11
  6. data/lib/tdlib/client.rb +10 -5
  7. data/lib/tdlib/client_methods.rb +923 -386
  8. data/lib/tdlib/types.rb +176 -11
  9. data/lib/tdlib/types/animation.rb +2 -0
  10. data/lib/tdlib/types/audio.rb +2 -0
  11. data/lib/tdlib/types/authorization_state.rb +1 -0
  12. data/lib/tdlib/types/authorization_state/wait_code.rb +1 -6
  13. data/lib/tdlib/types/authorization_state/wait_password.rb +2 -2
  14. data/lib/tdlib/types/authorization_state/wait_registration.rb +9 -0
  15. data/lib/tdlib/types/auto_download_settings.rb +21 -0
  16. data/lib/tdlib/types/auto_download_settings_presets.rb +15 -0
  17. data/lib/tdlib/types/background.rb +19 -0
  18. data/lib/tdlib/types/background_type.rb +12 -0
  19. data/lib/tdlib/types/background_type/pattern.rb +12 -0
  20. data/lib/tdlib/types/background_type/solid.rb +8 -0
  21. data/lib/tdlib/types/background_type/wallpaper.rb +11 -0
  22. data/lib/tdlib/types/backgrounds.rb +8 -0
  23. data/lib/tdlib/types/basic_group.rb +0 -2
  24. data/lib/tdlib/types/basic_group_full_info.rb +2 -0
  25. data/lib/tdlib/types/call_problem.rb +16 -0
  26. data/lib/tdlib/types/call_problem/distorted_speech.rb +5 -0
  27. data/lib/tdlib/types/call_problem/dropped.rb +5 -0
  28. data/lib/tdlib/types/call_problem/echo.rb +5 -0
  29. data/lib/tdlib/types/call_problem/interruptions.rb +5 -0
  30. data/lib/tdlib/types/call_problem/noise.rb +5 -0
  31. data/lib/tdlib/types/call_problem/silent_local.rb +5 -0
  32. data/lib/tdlib/types/call_problem/silent_remote.rb +5 -0
  33. data/lib/tdlib/types/call_state/ready.rb +2 -0
  34. data/lib/tdlib/types/chat.rb +10 -0
  35. data/lib/tdlib/types/chat_event_action.rb +2 -0
  36. data/lib/tdlib/types/chat_event_action/invites_toggled.rb +3 -3
  37. data/lib/tdlib/types/chat_event_action/permissions_changed.rb +10 -0
  38. data/lib/tdlib/types/chat_event_action/photo_changed.rb +4 -4
  39. data/lib/tdlib/types/chat_event_action/poll_stopped.rb +8 -0
  40. data/lib/tdlib/types/chat_invite_link_info.rb +1 -1
  41. data/lib/tdlib/types/chat_member_status/administrator.rb +3 -3
  42. data/lib/tdlib/types/chat_member_status/restricted.rb +2 -13
  43. data/lib/tdlib/types/chat_members_filter.rb +1 -0
  44. data/lib/tdlib/types/chat_members_filter/contacts.rb +5 -0
  45. data/lib/tdlib/types/chat_notification_settings.rb +12 -0
  46. data/lib/tdlib/types/chat_permissions.rb +28 -0
  47. data/lib/tdlib/types/chat_photo.rb +2 -0
  48. data/lib/tdlib/types/chat_report_reason.rb +1 -0
  49. data/lib/tdlib/types/chat_report_reason/child_abuse.rb +5 -0
  50. data/lib/tdlib/types/check_chat_username_result/public_chats_too_much.rb +1 -1
  51. data/lib/tdlib/types/connection_state/waiting_for_network.rb +1 -1
  52. data/lib/tdlib/types/database_statistics.rb +8 -0
  53. data/lib/tdlib/types/device_token.rb +2 -2
  54. data/lib/tdlib/types/device_token/apple_push_vo_ip.rb +2 -0
  55. data/lib/tdlib/types/device_token/firebase_cloud_messaging.rb +10 -0
  56. data/lib/tdlib/types/document.rb +4 -1
  57. data/lib/tdlib/types/emojis.rb +8 -0
  58. data/lib/tdlib/types/file_part.rb +8 -0
  59. data/lib/tdlib/types/file_type/wallpaper.rb +1 -1
  60. data/lib/tdlib/types/http_url.rb +8 -0
  61. data/lib/tdlib/types/inline_keyboard_button_type.rb +1 -0
  62. data/lib/tdlib/types/inline_keyboard_button_type/login_url.rb +12 -0
  63. data/lib/tdlib/types/input_background.rb +11 -0
  64. data/lib/tdlib/types/input_background/local.rb +10 -0
  65. data/lib/tdlib/types/input_background/remote.rb +8 -0
  66. data/lib/tdlib/types/input_file/generated.rb +1 -0
  67. data/lib/tdlib/types/input_inline_query_result/animated_gif.rb +5 -4
  68. data/lib/tdlib/types/input_inline_query_result/animated_mpeg4.rb +5 -4
  69. data/lib/tdlib/types/input_inline_query_result/article.rb +5 -4
  70. data/lib/tdlib/types/input_inline_query_result/audio.rb +5 -4
  71. data/lib/tdlib/types/input_inline_query_result/contact.rb +5 -4
  72. data/lib/tdlib/types/input_inline_query_result/document.rb +5 -4
  73. data/lib/tdlib/types/input_inline_query_result/game.rb +2 -1
  74. data/lib/tdlib/types/input_inline_query_result/location.rb +5 -4
  75. data/lib/tdlib/types/input_inline_query_result/photo.rb +5 -3
  76. data/lib/tdlib/types/input_inline_query_result/sticker.rb +7 -6
  77. data/lib/tdlib/types/input_inline_query_result/venue.rb +5 -4
  78. data/lib/tdlib/types/input_inline_query_result/video.rb +5 -4
  79. data/lib/tdlib/types/input_inline_query_result/voice_note.rb +5 -4
  80. data/lib/tdlib/types/input_message_content.rb +1 -0
  81. data/lib/tdlib/types/input_message_content/forwarded.rb +7 -0
  82. data/lib/tdlib/types/input_message_content/poll.rb +11 -0
  83. data/lib/tdlib/types/input_thumbnail.rb +2 -2
  84. data/lib/tdlib/types/json_object_member.rb +10 -0
  85. data/lib/tdlib/types/json_value.rb +15 -0
  86. data/lib/tdlib/types/json_value/array.rb +8 -0
  87. data/lib/tdlib/types/json_value/boolean.rb +8 -0
  88. data/lib/tdlib/types/json_value/null.rb +5 -0
  89. data/lib/tdlib/types/json_value/number.rb +8 -0
  90. data/lib/tdlib/types/json_value/object.rb +8 -0
  91. data/lib/tdlib/types/json_value/string.rb +8 -0
  92. data/lib/tdlib/types/language_pack_info.rb +21 -0
  93. data/lib/tdlib/types/language_pack_string_value/pluralized.rb +1 -0
  94. data/lib/tdlib/types/link_state/is_contact.rb +1 -1
  95. data/lib/tdlib/types/link_state/knows_phone_number.rb +1 -1
  96. data/lib/tdlib/types/local_file.rb +5 -2
  97. data/lib/tdlib/types/log_stream.rb +12 -0
  98. data/lib/tdlib/types/log_stream/default.rb +5 -0
  99. data/lib/tdlib/types/log_stream/empty.rb +5 -0
  100. data/lib/tdlib/types/log_stream/file.rb +11 -0
  101. data/lib/tdlib/types/log_tags.rb +8 -0
  102. data/lib/tdlib/types/log_verbosity_level.rb +8 -0
  103. data/lib/tdlib/types/message.rb +3 -1
  104. data/lib/tdlib/types/message_content.rb +1 -0
  105. data/lib/tdlib/types/message_content/game_score.rb +1 -1
  106. data/lib/tdlib/types/message_content/pin_message.rb +1 -1
  107. data/lib/tdlib/types/message_content/poll.rb +8 -0
  108. data/lib/tdlib/types/message_forward_info.rb +13 -7
  109. data/lib/tdlib/types/message_forward_origin.rb +12 -0
  110. data/lib/tdlib/types/message_forward_origin/channel.rb +12 -0
  111. data/lib/tdlib/types/message_forward_origin/hidden_user.rb +8 -0
  112. data/lib/tdlib/types/message_forward_origin/user.rb +8 -0
  113. data/lib/tdlib/types/message_link_info.rb +14 -0
  114. data/lib/tdlib/types/message_sending_state/failed.rb +10 -0
  115. data/lib/tdlib/types/minithumbnail.rb +12 -0
  116. data/lib/tdlib/types/notification.rb +12 -0
  117. data/lib/tdlib/types/notification_group.rb +16 -0
  118. data/lib/tdlib/types/notification_group_type.rb +13 -0
  119. data/lib/tdlib/types/notification_group_type/calls.rb +5 -0
  120. data/lib/tdlib/types/notification_group_type/mentions.rb +6 -0
  121. data/lib/tdlib/types/notification_group_type/messages.rb +6 -0
  122. data/lib/tdlib/types/notification_group_type/secret_chat.rb +5 -0
  123. data/lib/tdlib/types/notification_settings_scope.rb +1 -0
  124. data/lib/tdlib/types/notification_settings_scope/channel_chats.rb +5 -0
  125. data/lib/tdlib/types/notification_settings_scope/group_chats.rb +2 -2
  126. data/lib/tdlib/types/notification_type.rb +13 -0
  127. data/lib/tdlib/types/notification_type/new_call.rb +8 -0
  128. data/lib/tdlib/types/notification_type/new_message.rb +8 -0
  129. data/lib/tdlib/types/notification_type/new_push_message.rb +15 -0
  130. data/lib/tdlib/types/notification_type/new_secret_chat.rb +5 -0
  131. data/lib/tdlib/types/option_value/boolean.rb +1 -1
  132. data/lib/tdlib/types/option_value/empty.rb +1 -1
  133. data/lib/tdlib/types/option_value/integer.rb +1 -1
  134. data/lib/tdlib/types/option_value/string.rb +1 -1
  135. data/lib/tdlib/types/page_block.rb +5 -0
  136. data/lib/tdlib/types/page_block/animation.rb +2 -2
  137. data/lib/tdlib/types/page_block/audio.rb +2 -2
  138. data/lib/tdlib/types/page_block/block_quote.rb +2 -2
  139. data/lib/tdlib/types/page_block/collage.rb +2 -2
  140. data/lib/tdlib/types/page_block/details.rb +12 -0
  141. data/lib/tdlib/types/page_block/embedded.rb +4 -4
  142. data/lib/tdlib/types/page_block/embedded_post.rb +4 -4
  143. data/lib/tdlib/types/page_block/kicker.rb +8 -0
  144. data/lib/tdlib/types/page_block/list.rb +3 -5
  145. data/lib/tdlib/types/page_block/map.rb +16 -0
  146. data/lib/tdlib/types/page_block/photo.rb +4 -2
  147. data/lib/tdlib/types/page_block/pull_quote.rb +2 -2
  148. data/lib/tdlib/types/page_block/related_articles.rb +10 -0
  149. data/lib/tdlib/types/page_block/slideshow.rb +2 -2
  150. data/lib/tdlib/types/page_block/table.rb +14 -0
  151. data/lib/tdlib/types/page_block/video.rb +2 -2
  152. data/lib/tdlib/types/page_block_caption.rb +10 -0
  153. data/lib/tdlib/types/page_block_horizontal_alignment.rb +12 -0
  154. data/lib/tdlib/types/page_block_horizontal_alignment/center.rb +5 -0
  155. data/lib/tdlib/types/page_block_horizontal_alignment/left.rb +5 -0
  156. data/lib/tdlib/types/page_block_horizontal_alignment/right.rb +5 -0
  157. data/lib/tdlib/types/page_block_list_item.rb +10 -0
  158. data/lib/tdlib/types/page_block_related_article.rb +18 -0
  159. data/lib/tdlib/types/page_block_table_cell.rb +18 -0
  160. data/lib/tdlib/types/page_block_vertical_alignment.rb +12 -0
  161. data/lib/tdlib/types/page_block_vertical_alignment/bottom.rb +5 -0
  162. data/lib/tdlib/types/page_block_vertical_alignment/middle.rb +5 -0
  163. data/lib/tdlib/types/page_block_vertical_alignment/top.rb +5 -0
  164. data/lib/tdlib/types/passport_authorization_form.rb +1 -5
  165. data/lib/tdlib/types/passport_element_error_source/file.rb +3 -0
  166. data/lib/tdlib/types/passport_element_error_source/translation_file.rb +3 -0
  167. data/lib/tdlib/types/passport_elements_with_errors.rb +10 -0
  168. data/lib/tdlib/types/password_state.rb +7 -7
  169. data/lib/tdlib/types/phone_number_authentication_settings.rb +16 -0
  170. data/lib/tdlib/types/photo.rb +2 -2
  171. data/lib/tdlib/types/poll.rb +16 -0
  172. data/lib/tdlib/types/poll_option.rb +16 -0
  173. data/lib/tdlib/types/profile_photo.rb +2 -0
  174. data/lib/tdlib/types/public_message_link.rb +1 -1
  175. data/lib/tdlib/types/push_message_content.rb +35 -0
  176. data/lib/tdlib/types/push_message_content/animation.rb +12 -0
  177. data/lib/tdlib/types/push_message_content/audio.rb +10 -0
  178. data/lib/tdlib/types/push_message_content/basic_group_chat_create.rb +5 -0
  179. data/lib/tdlib/types/push_message_content/chat_add_members.rb +12 -0
  180. data/lib/tdlib/types/push_message_content/chat_change_photo.rb +5 -0
  181. data/lib/tdlib/types/push_message_content/chat_change_title.rb +8 -0
  182. data/lib/tdlib/types/push_message_content/chat_delete_member.rb +12 -0
  183. data/lib/tdlib/types/push_message_content/chat_join_by_link.rb +5 -0
  184. data/lib/tdlib/types/push_message_content/contact.rb +10 -0
  185. data/lib/tdlib/types/push_message_content/contact_registered.rb +5 -0
  186. data/lib/tdlib/types/push_message_content/document.rb +10 -0
  187. data/lib/tdlib/types/push_message_content/game.rb +10 -0
  188. data/lib/tdlib/types/push_message_content/game_score.rb +12 -0
  189. data/lib/tdlib/types/push_message_content/hidden.rb +8 -0
  190. data/lib/tdlib/types/push_message_content/invoice.rb +10 -0
  191. data/lib/tdlib/types/push_message_content/location.rb +10 -0
  192. data/lib/tdlib/types/push_message_content/media_album.rb +12 -0
  193. data/lib/tdlib/types/push_message_content/message_forwards.rb +8 -0
  194. data/lib/tdlib/types/push_message_content/photo.rb +14 -0
  195. data/lib/tdlib/types/push_message_content/poll.rb +10 -0
  196. data/lib/tdlib/types/push_message_content/screenshot_taken.rb +5 -0
  197. data/lib/tdlib/types/push_message_content/sticker.rb +12 -0
  198. data/lib/tdlib/types/push_message_content/text.rb +10 -0
  199. data/lib/tdlib/types/push_message_content/video.rb +14 -0
  200. data/lib/tdlib/types/push_message_content/video_note.rb +10 -0
  201. data/lib/tdlib/types/push_message_content/voice_note.rb +10 -0
  202. data/lib/tdlib/types/push_receiver_id.rb +9 -0
  203. data/lib/tdlib/types/rich_text.rb +6 -0
  204. data/lib/tdlib/types/rich_text/anchor.rb +10 -0
  205. data/lib/tdlib/types/rich_text/icon.rb +13 -0
  206. data/lib/tdlib/types/rich_text/marked.rb +8 -0
  207. data/lib/tdlib/types/rich_text/phone_number.rb +10 -0
  208. data/lib/tdlib/types/rich_text/subscript.rb +8 -0
  209. data/lib/tdlib/types/rich_text/superscript.rb +8 -0
  210. data/lib/tdlib/types/scope_notification_settings.rb +6 -0
  211. data/lib/tdlib/types/search_messages_filter/unread_mention.rb +1 -1
  212. data/lib/tdlib/types/session.rb +3 -0
  213. data/lib/tdlib/types/sticker.rb +2 -0
  214. data/lib/tdlib/types/sticker_set.rb +10 -2
  215. data/lib/tdlib/types/sticker_set_info.rb +5 -0
  216. data/lib/tdlib/types/storage_statistics_fast.rb +4 -0
  217. data/lib/tdlib/types/supergroup.rb +2 -3
  218. data/lib/tdlib/types/supergroup_full_info.rb +2 -2
  219. data/lib/tdlib/types/supergroup_members_filter.rb +1 -0
  220. data/lib/tdlib/types/supergroup_members_filter/contacts.rb +8 -0
  221. data/lib/tdlib/types/terms_of_service.rb +1 -1
  222. data/lib/tdlib/types/update.rb +9 -0
  223. data/lib/tdlib/types/update/active_notifications.rb +10 -0
  224. data/lib/tdlib/types/update/chat_online_member_count.rb +12 -0
  225. data/lib/tdlib/types/update/chat_order.rb +1 -1
  226. data/lib/tdlib/types/update/chat_permissions.rb +10 -0
  227. data/lib/tdlib/types/update/chat_pinned_message.rb +11 -0
  228. data/lib/tdlib/types/update/delete_messages.rb +1 -1
  229. data/lib/tdlib/types/update/have_pending_notifications.rb +13 -0
  230. data/lib/tdlib/types/update/message_send_failed.rb +1 -1
  231. data/lib/tdlib/types/update/new_message.rb +0 -4
  232. data/lib/tdlib/types/update/notification.rb +10 -0
  233. data/lib/tdlib/types/update/notification_group.rb +26 -0
  234. data/lib/tdlib/types/update/poll.rb +8 -0
  235. data/lib/tdlib/types/update/selected_background.rb +10 -0
  236. data/lib/tdlib/types/updates.rb +8 -0
  237. data/lib/tdlib/types/user.rb +4 -0
  238. data/lib/tdlib/types/user_privacy_setting.rb +3 -0
  239. data/lib/tdlib/types/user_privacy_setting/allow_peer_to_peer_calls.rb +5 -0
  240. data/lib/tdlib/types/user_privacy_setting/show_link_in_forwarded_messages.rb +5 -0
  241. data/lib/tdlib/types/user_privacy_setting/show_profile_photo.rb +5 -0
  242. data/lib/tdlib/types/user_profile_photo.rb +12 -0
  243. data/lib/tdlib/types/user_profile_photos.rb +2 -2
  244. data/lib/tdlib/types/video.rb +2 -0
  245. data/lib/tdlib/types/video_note.rb +2 -0
  246. data/lib/tdlib/types/web_page.rb +3 -2
  247. data/lib/tdlib/types/web_page_instant_view.rb +7 -0
  248. data/lib/tdlib/update_manager.rb +5 -12
  249. data/lib/tdlib/version.rb +1 -1
  250. data/spec/integration/tdlib_spec.rb +8 -0
  251. metadata +139 -9
  252. data/lib/tdlib/types/device_token/google_cloud_messaging.rb +0 -8
  253. data/lib/tdlib/types/message_forward_info/message_forwarded_from_user.rb +0 -16
  254. data/lib/tdlib/types/message_forward_info/message_forwarded_post.rb +0 -21
  255. data/lib/tdlib/types/sticker_emojis.rb +0 -10
  256. data/lib/tdlib/types/wallpaper.rb +0 -14
  257. data/lib/tdlib/types/wallpapers.rb +0 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c9e152ea091aaa6715f0ce9188a89f59c34e0c60600344ddb37454409956c99
4
- data.tar.gz: 83c128d9e58d4e0fdac3c04a071e5646090d77ca06be93829af437f33174a77c
3
+ metadata.gz: 549e36683b58bc5f2ab9ac8de4c50104f4abc1ab21a0a5a6777b130c0ebd80b9
4
+ data.tar.gz: ababc856edc0046ddefd04e5b2582de902dfb53d0e91c9e2f69967afa9250a4b
5
5
  SHA512:
6
- metadata.gz: 6a1bc253a33dac9e246fb897611de97436eecbdafb15cee2c4c4b7dc8630b2bd4fd5e40e8ec7085c0f6e752173dde0b56bddca4a6fbd64dd9b5e02eff47eb71d
7
- data.tar.gz: 6f9e04ecea637478035631306ea0ea8e25e78f8d5fc9e89e51d0a538ff1425b2102db6c17432558964a4d0edf6df5c10df77939b71042202667d65d8e1142cb5
6
+ metadata.gz: 31fb522fba4b1e17d15d07b00856a034e0a6914fe90ca3d9c6f7e444a6ea66affb5baee25079c81d9372fc1dc01e22e27a284adf51bed49eef7c3ac7202219e9
7
+ data.tar.gz: 6fb5e7f76a41a00d55f19c4a63b8adc9fa77d0c41299995278e9ace3b317718819a8f0ccee6351b5a8bd7b4c52108bdc0c3808caec7a228e856c6d3712386d44
data/.travis.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.3.8
4
- - 2.6.0
3
+ - 2.4.9
4
+ - 2.6.5
5
5
  addons:
6
6
  apt:
7
7
  sources:
data/ChangeLog.md CHANGED
@@ -1,3 +1,8 @@
1
+ ### 2.1.0 / 2019-10-18
2
+
3
+ * Support tdlib 1.5
4
+ * Fix TD::Client#dispose race condition and client crash
5
+
1
6
  ### 2.0.0 / 2019-02-08
2
7
 
3
8
  * Generated types and client functions
data/README.md CHANGED
@@ -8,7 +8,7 @@ Ruby bindings and client for TDLib (Telegram database library).
8
8
 
9
9
  ## Requirements
10
10
 
11
- * Ruby 2.3+
11
+ * Ruby 2.4+
12
12
  * Compiled [tdlib](https://github.com/tdlib/td)
13
13
 
14
14
  We have precompiled versions for CentOS 6 & 7 in our repositories:
@@ -29,6 +29,7 @@ http://rpms.southbridge.ru/rhel6/stable/SRPMS/
29
29
  |:-------------:|:-:| :-----------: |
30
30
  | 1.x | → | 1.0 - 1.2 |
31
31
  | 2.0 | → | 1.3 |
32
+ | 2.1 | → | 1.5 |
32
33
 
33
34
  ## Install
34
35
 
@@ -83,7 +84,7 @@ begin
83
84
  when :wait_phone_number
84
85
  puts 'Please, enter your phone number:'
85
86
  phone = STDIN.gets.strip
86
- client.set_authentication_phone_number(phone).wait
87
+ client.set_authentication_phone_number(phone, nil).wait
87
88
  when :wait_code
88
89
  puts 'Please, enter code from SMS:'
89
90
  code = STDIN.gets.strip
@@ -154,6 +155,12 @@ TD::Client.new(database_directory: 'will override value from config',
154
155
  files_directory: 'will override value from config')
155
156
  ```
156
157
 
158
+ If the tdlib schema changes, then `./bin/parse` can be run to
159
+ synchronize the Ruby types with the new schema. Please look through
160
+ `lib/tdlib/client_methods.rb` carefully, especially the set_password
161
+ method!
162
+
163
+
157
164
  ## License
158
165
 
159
166
  [MIT](https://github.com/centosadmin/tdlib-ruby/blob/master/LICENSE.txt)
data/bin/parser CHANGED
@@ -1,9 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
-
2
+ require 'open-uri'
3
3
  require 'active_support/all'
4
4
 
5
5
  AUTOLOAD_BASE_DIR = 'tdlib/types'
6
- TD_API_TL_LOCATION = File.join(File.expand_path("../../", __FILE__), %w(td td generate scheme td_api.tl))
6
+ TD_API_TL_LOCATION = "https://raw.githubusercontent.com/tdlib/td/v1.5.0/td/generate/scheme/td_api.tl"
7
+
7
8
 
8
9
  def parse_tl_type(type)
9
10
  if (vector = type.scan(/[vV]ector<(.*)>/)).length > 0
@@ -207,9 +208,12 @@ def attrs_to_yard_comment(attrs, key = 'attr')
207
208
  end.join("\n")
208
209
  end
209
210
 
210
- puts "Creating types directory"
211
+ puts "Removing lib/tdlib/types"
212
+ # `find lib/tdlib/types | grep -v base.rb | xargs rm -rf`
213
+ `rm -rf lib/tdlib/types`
211
214
 
212
- FileUtils.mkdir_p "types"
215
+ puts "MKDIR 'lib/tdlib/types'"
216
+ FileUtils.mkdir_p "lib/tdlib/types"
213
217
 
214
218
  puts "Writing Base class"
215
219
 
@@ -245,12 +249,13 @@ module TD::Types
245
249
  end
246
250
  RUBY
247
251
 
252
+ puts "Writing 'lib/tdlib/types/base.rb'"
248
253
  File.write 'lib/tdlib/types/base.rb', klass
249
254
 
250
- puts "Parsing td_api.tl"
255
+ puts "Parsing #{TD_API_TL_LOCATION}"
251
256
 
252
257
  # Reading the TL file and splitting it into classes and functions
253
- @classes, @functions = File.read(TD_API_TL_LOCATION).split("\n\n---functions---\n\n")
258
+ @classes, @functions = open(TD_API_TL_LOCATION).read.split("\n\n---functions---\n\n")
254
259
 
255
260
  # First entry in td_api.tl is typecasting, it's worthless for us.
256
261
  # Last entry before functions is a testing class, once again worthless
@@ -267,6 +272,7 @@ puts "Converting classes into Ruby types"
267
272
  @lookup_table = build_lookup_table(@classes)
268
273
  @lookup_regex = Regexp.union(@lookup_table.keys.select { |k| k.match?(/[a-z]+[A-Z][a-z]+/) }.map { |k| /\W#{k}\W/ })
269
274
 
275
+
270
276
  @classes.each do |class_info|
271
277
  class_name = normalize_class_name(class_info[:class], class_info[:super_class])
272
278
  attributes = class_info[:arguments]
@@ -292,7 +298,8 @@ puts "Converting classes into Ruby types"
292
298
  file_name = "#{super_class_name.underscore}/#{class_name.sub(super_class_name, '').underscore}"
293
299
  class_name = "#{super_class_name}::#{class_name.sub(super_class_name, '')} < #{super_class_name}"
294
300
 
295
- FileUtils.mkdir_p "types/#{super_class_name.underscore}"
301
+ puts "MKDIR 'lib/tdlib/types/#{super_class_name.underscore}'"
302
+ FileUtils.mkdir_p "lib/tdlib/types/#{super_class_name.underscore}"
296
303
  end
297
304
 
298
305
  if attributes.blank?
@@ -317,6 +324,7 @@ module TD::Types#{description}#{attributes_doc}
317
324
  end
318
325
  RUBY
319
326
 
327
+ puts "Writing 'lib/tdlib/types/#{file_name}.rb'"
320
328
  File.write "lib/tdlib/types/#{file_name}.rb", klass
321
329
  end
322
330
 
@@ -384,6 +392,7 @@ module TD::Types
384
392
  end
385
393
  RUBY
386
394
 
395
+ puts "Writing 'lib/tdlib/types.rb'"
387
396
  File.write 'lib/tdlib/types.rb', klass
388
397
 
389
398
  puts "Converting functions"
@@ -407,10 +416,21 @@ puts "Converting functions"
407
416
  else
408
417
  params_doc = "\n" + attrs_to_yard_comment(params, 'param')
409
418
 
410
- # TODO: Fix mixup of =nil params (only in set_password)
411
- method_params = params.map do |attr, info|
412
- "#{attr}#{ " = nil" if info[:optional] }"
413
- end.join(", ")
419
+ if method_name == 'set_password'
420
+ method_params = params.map do |attr, info|
421
+ #set default value to false
422
+ if attr == 'set_recovery_email_address'
423
+ "#{attr}: false"
424
+ else
425
+ # use named arguments
426
+ "#{attr}#{ ": nil" if info[:optional] }"
427
+ end
428
+ end.join(", ")
429
+ else
430
+ method_params = params.map do |attr, info|
431
+ "#{attr}#{ " = nil" if info[:optional] }"
432
+ end.join(", ")
433
+ end
414
434
 
415
435
  method_params = "(#{wrap_params(method_params, 118 - (method_name.length + 5), method_name.length + 7)})"
416
436
 
@@ -442,6 +462,7 @@ module TD::ClientMethods
442
462
  #{@functions.join(" \n")}end
443
463
  RUBY
444
464
 
465
+ puts "Writing 'lib/tdlib/client_methods.rb'"
445
466
  File.write 'lib/tdlib/client_methods.rb', klass
446
467
 
447
468
  puts "Done. Please look through client_methods.rb carefully, especially the set_password method!"
data/lib/tdlib/client.rb CHANGED
@@ -49,7 +49,7 @@ class TD::Client
49
49
  end
50
50
  end
51
51
 
52
- @update_manager.run
52
+ @update_manager.run(callback: method(:handle_update))
53
53
  ready
54
54
  end
55
55
 
@@ -149,10 +149,7 @@ class TD::Client
149
149
  # Stops update manager and destroys TDLib client
150
150
  def dispose
151
151
  return if dead?
152
- @update_manager.stop
153
- @alive = false
154
- @ready = false
155
- TD::Api.client_destroy(@td_client)
152
+ close.then { get_authorization_state }
156
153
  end
157
154
 
158
155
  def alive?
@@ -169,6 +166,14 @@ class TD::Client
169
166
 
170
167
  private
171
168
 
169
+ def handle_update(update)
170
+ return unless update.is_a?(TD::Types::AuthorizationState::Closed)
171
+ @alive = false
172
+ @ready = false
173
+ TD::Api.client_destroy(@td_client)
174
+ throw(:client_closed)
175
+ end
176
+
172
177
  def send_to_td_client(query)
173
178
  return unless alive?
174
179
  TD::Api.client_send(@td_client, query)
@@ -28,10 +28,10 @@ module TD::ClientMethods
28
28
  # @param chat_id [Integer] Chat identifier.
29
29
  # @param user_id [Integer] Identifier of the user.
30
30
  # @param forward_limit [Integer] The number of earlier messages from the chat to be forwarded to the new member; up
31
- # to 300.
31
+ # to 100.
32
32
  # Ignored for supergroups and channels.
33
33
  # @return [TD::Types::Ok]
34
- def add_chat_member(chat_id, user_id, forward_limit: 300)
34
+ def add_chat_member(chat_id, user_id, forward_limit)
35
35
  broadcast('@type' => 'addChatMember',
36
36
  'chat_id' => chat_id,
37
37
  'user_id' => user_id,
@@ -53,6 +53,17 @@ module TD::ClientMethods
53
53
  'user_ids' => user_ids)
54
54
  end
55
55
 
56
+ # Adds a custom server language pack to the list of installed language packs in current localization target.
57
+ # Can be called before authorization.
58
+ #
59
+ # @param language_pack_id [String] Identifier of a language pack to be added; may be different from a name that is
60
+ # used in an "https://t.me/setlanguage/" link.
61
+ # @return [TD::Types::Ok]
62
+ def add_custom_server_language_pack(language_pack_id)
63
+ broadcast('@type' => 'addCustomServerLanguagePack',
64
+ 'language_pack_id' => language_pack_id)
65
+ end
66
+
56
67
  # Adds a new sticker to the list of favorite stickers.
57
68
  # The new sticker is added to the top of the list.
58
69
  # If the sticker was already in the list, it is removed from the list first.
@@ -67,6 +78,7 @@ module TD::ClientMethods
67
78
 
68
79
  # Adds a local message to a chat.
69
80
  # The message is persistent across application restarts only if the message database is used.
81
+ # Returns the added message.
70
82
  #
71
83
  # @param chat_id [Integer] Target chat.
72
84
  # @param sender_user_id [Integer] Identifier of the user who will be shown as the sender of the message; may be 0 for
@@ -74,9 +86,8 @@ module TD::ClientMethods
74
86
  # @param reply_to_message_id [Integer] Identifier of the message to reply to or 0.
75
87
  # @param disable_notification [Boolean] Pass true to disable notification for the message.
76
88
  # @param input_message_content [TD::Types::InputMessageContent] The content of the message to be added.
77
- # @return [TD::Types::Message] the added message.
78
- def add_local_message(chat_id, input_message_content,
79
- sender_user_id: 0, reply_to_message_id: 0, disable_notification: false)
89
+ # @return [TD::Types::Message]
90
+ def add_local_message(chat_id, sender_user_id, reply_to_message_id, disable_notification, input_message_content)
80
91
  broadcast('@type' => 'addLocalMessage',
81
92
  'chat_id' => chat_id,
82
93
  'sender_user_id' => sender_user_id,
@@ -85,6 +96,20 @@ module TD::ClientMethods
85
96
  'input_message_content' => input_message_content)
86
97
  end
87
98
 
99
+ # Adds a message to TDLib internal log.
100
+ # This is an offline method.
101
+ # Can be called before authorization.
102
+ # Can be called synchronously.
103
+ #
104
+ # @param verbosity_level [Integer] Minimum verbosity level needed for the message to be logged, 0-1023.
105
+ # @param text [String] Text of a message to log.
106
+ # @return [TD::Types::Ok]
107
+ def add_log_message(verbosity_level, text)
108
+ broadcast('@type' => 'addLogMessage',
109
+ 'verbosity_level' => verbosity_level,
110
+ 'text' => text)
111
+ end
112
+
88
113
  # Adds the specified data to data usage statistics.
89
114
  # Can be called before authorization.
90
115
  #
@@ -104,7 +129,7 @@ module TD::ClientMethods
104
129
  # @param enable [Boolean] True, if the proxy should be enabled.
105
130
  # @param type [TD::Types::ProxyType] Proxy type.
106
131
  # @return [TD::Types::Proxy]
107
- def add_proxy(server, port, type, enable = false)
132
+ def add_proxy(server, port, enable, type)
108
133
  broadcast('@type' => 'addProxy',
109
134
  'server' => server,
110
135
  'port' => port,
@@ -121,7 +146,7 @@ module TD::ClientMethods
121
146
  # video files; pass false to add the sticker to the list of recently sent stickers.
122
147
  # @param sticker [TD::Types::InputFile] Sticker file to add.
123
148
  # @return [TD::Types::Stickers]
124
- def add_recent_sticker(sticker, is_attached: false)
149
+ def add_recent_sticker(is_attached, sticker)
125
150
  broadcast('@type' => 'addRecentSticker',
126
151
  'is_attached' => is_attached,
127
152
  'sticker' => sticker)
@@ -144,7 +169,8 @@ module TD::ClientMethods
144
169
  # Only non-secret video animations with MIME type "video/mp4" can be added to the list.
145
170
  #
146
171
  # @param animation [TD::Types::InputFile] The animation file to be added.
147
- # Only animations known to the server (i.e. successfully sent via a message) can be added to the list.
172
+ # Only animations known to the server (i.e.
173
+ # successfully sent via a message) can be added to the list.
148
174
  # @return [TD::Types::Ok]
149
175
  def add_saved_animation(animation)
150
176
  broadcast('@type' => 'addSavedAnimation',
@@ -152,11 +178,12 @@ module TD::ClientMethods
152
178
  end
153
179
 
154
180
  # Adds a new sticker to a set; for bots only.
181
+ # Returns the sticker set.
155
182
  #
156
183
  # @param user_id [Integer] Sticker set owner.
157
184
  # @param name [String] Sticker set name.
158
185
  # @param sticker [TD::Types::InputSticker] Sticker to add to the set.
159
- # @return [TD::Types::StickerSet] the sticker set.
186
+ # @return [TD::Types::StickerSet]
160
187
  def add_sticker_to_set(user_id, name, sticker)
161
188
  broadcast('@type' => 'addStickerToSet',
162
189
  'user_id' => user_id,
@@ -218,9 +245,9 @@ module TD::ClientMethods
218
245
  # Sets the result of a pre-checkout query; for bots only.
219
246
  #
220
247
  # @param pre_checkout_query_id [Integer] Identifier of the pre-checkout query.
221
- # @param error_message [String, nil] An error message, empty on success.
248
+ # @param error_message [String] An error message, empty on success.
222
249
  # @return [TD::Types::Ok]
223
- def answer_pre_checkout_query(pre_checkout_query_id, error_message: nil)
250
+ def answer_pre_checkout_query(pre_checkout_query_id, error_message)
224
251
  broadcast('@type' => 'answerPreCheckoutQuery',
225
252
  'pre_checkout_query_id' => pre_checkout_query_id,
226
253
  'error_message' => error_message)
@@ -230,9 +257,9 @@ module TD::ClientMethods
230
257
  #
231
258
  # @param shipping_query_id [Integer] Identifier of the shipping query.
232
259
  # @param shipping_options [Array<TD::Types::ShippingOption>] Available shipping options.
233
- # @param error_message [String, nil] An error message, empty on success.
260
+ # @param error_message [String] An error message, empty on success.
234
261
  # @return [TD::Types::Ok]
235
- def answer_shipping_query(shipping_query_id, shipping_options, error_message: nil)
262
+ def answer_shipping_query(shipping_query_id, shipping_options, error_message)
236
263
  broadcast('@type' => 'answerShippingQuery',
237
264
  'shipping_query_id' => shipping_query_id,
238
265
  'shipping_options' => shipping_options,
@@ -255,14 +282,14 @@ module TD::ClientMethods
255
282
  # @param only_if_pending [Boolean] Pass true to stop downloading only if it hasn't been started, i.e.
256
283
  # request hasn't been sent to server.
257
284
  # @return [TD::Types::Ok]
258
- def cancel_download_file(file_id, only_if_pending: false)
285
+ def cancel_download_file(file_id, only_if_pending)
259
286
  broadcast('@type' => 'cancelDownloadFile',
260
287
  'file_id' => file_id,
261
288
  'only_if_pending' => only_if_pending)
262
289
  end
263
290
 
264
291
  # Stops the uploading of a file.
265
- # Supported only for files uploaded by using {#upload_file}.
292
+ # Supported only for files uploaded by using uploadFile.
266
293
  # For other files the behavior is undefined.
267
294
  #
268
295
  # @param file_id [Integer] Identifier of the file to stop uploading.
@@ -272,9 +299,9 @@ module TD::ClientMethods
272
299
  'file_id' => file_id)
273
300
  end
274
301
 
275
- # Used to let the server know whether a chat is spam or not.
276
- # Can be used only if {TD::Types::ChatReportSpamState#can_report_spam} is true.
277
- # After this request, {TD::Types::ChatReportSpamState#can_report_spam} becomes false forever.
302
+ # Reports to the server whether a chat is a spam chat or not.
303
+ # Can be used only if ChatReportSpamState.can_report_spam is true.
304
+ # After this request, ChatReportSpamState.can_report_spam becomes false forever.
278
305
  #
279
306
  # @param chat_id [Integer] Chat identifier.
280
307
  # @param is_spam_chat [Boolean] If true, the chat will be reported as spam; otherwise it will be marked as not spam.
@@ -298,17 +325,16 @@ module TD::ClientMethods
298
325
  end
299
326
 
300
327
  # Changes the phone number of the user and sends an authentication code to the user's new phone number.
328
+ # On success, returns information about the sent code.
301
329
  #
302
330
  # @param phone_number [String] The new phone number of the user in international format.
303
- # @param allow_flash_call [Boolean] Pass true if the code can be sent via flash call to the specified phone number.
304
- # @param is_current_phone_number [Boolean] Pass true if the phone number is used on the current device.
305
- # Ignored if allow_flash_call is false.
306
- # @return [TD::Types::AuthenticationCodeInfo] On success, returns information about the sent code.
307
- def change_phone_number(phone_number, allow_flash_call: false, is_current_phone_number: false)
308
- broadcast('@type' => 'changePhoneNumber',
309
- 'phone_number' => phone_number,
310
- 'allow_flash_call' => allow_flash_call,
311
- 'is_current_phone_number' => is_current_phone_number)
331
+ # @param settings [TD::Types::PhoneNumberAuthenticationSettings] Settings for the authentication of the user's phone
332
+ # number.
333
+ # @return [TD::Types::AuthenticationCodeInfo]
334
+ def change_phone_number(phone_number, settings)
335
+ broadcast('@type' => 'changePhoneNumber',
336
+ 'phone_number' => phone_number,
337
+ 'settings' => settings)
312
338
  end
313
339
 
314
340
  # Installs/uninstalls or activates/archives a sticker set.
@@ -326,8 +352,8 @@ module TD::ClientMethods
326
352
  end
327
353
 
328
354
  # Checks the authentication token of a bot; to log in as a bot.
329
- # Works only when the current authorization state is {TD::Types::AuthorizationState::WaitPhoneNumber}.
330
- # Can be used instead of {#set_authentication_phone_number} and {#check_authentication_code} to log in.
355
+ # Works only when the current authorization state is authorizationStateWaitPhoneNumber.
356
+ # Can be used instead of setAuthenticationPhoneNumber and checkAuthenticationCode to log in.
331
357
  #
332
358
  # @param token [String] The bot token.
333
359
  # @return [TD::Types::Ok]
@@ -337,22 +363,17 @@ module TD::ClientMethods
337
363
  end
338
364
 
339
365
  # Checks the authentication code.
340
- # Works only when the current authorization state is {TD::Types::AuthorizationState::WaitCode}.
366
+ # Works only when the current authorization state is authorizationStateWaitCode.
341
367
  #
342
368
  # @param code [String] The verification code received via SMS, Telegram message, phone call, or flash call.
343
- # @param first_name [String, nil] If the user is not yet registered, the first name of the user; 1-255 characters.
344
- # @param last_name [String, nil] If the user is not yet registered; the last name of the user; optional; 0-255
345
- # characters.
346
369
  # @return [TD::Types::Ok]
347
- def check_authentication_code(code, first_name = nil, last_name = nil)
348
- broadcast('@type' => 'checkAuthenticationCode',
349
- 'code' => code,
350
- 'first_name' => first_name,
351
- 'last_name' => last_name)
370
+ def check_authentication_code(code)
371
+ broadcast('@type' => 'checkAuthenticationCode',
372
+ 'code' => code)
352
373
  end
353
374
 
354
375
  # Checks the authentication password for correctness.
355
- # Works only when the current authorization state is {TD::Types::AuthorizationState::WaitPassword}.
376
+ # Works only when the current authorization state is authorizationStateWaitPassword.
356
377
  #
357
378
  # @param password [String] The password to check.
358
379
  # @return [TD::Types::Ok]
@@ -393,7 +414,7 @@ module TD::ClientMethods
393
414
  end
394
415
 
395
416
  # Checks the database encryption key for correctness.
396
- # Works only when the current authorization state is {TD::Types::AuthorizationState::WaitEncryptionKey}.
417
+ # Works only when the current authorization state is authorizationStateWaitEncryptionKey.
397
418
  #
398
419
  # @param encryption_key [String] Encryption key to check or set up.
399
420
  # @return [TD::Types::Ok]
@@ -429,6 +450,15 @@ module TD::ClientMethods
429
450
  'code' => code)
430
451
  end
431
452
 
453
+ # Checks the 2-step verification recovery email address verification code.
454
+ #
455
+ # @param code [String] Verification code.
456
+ # @return [TD::Types::PasswordState]
457
+ def check_recovery_email_address_code(code)
458
+ broadcast('@type' => 'checkRecoveryEmailAddressCode',
459
+ 'code' => code)
460
+ end
461
+
432
462
  # Removes potentially dangerous characters from the name of a file.
433
463
  # The encoding of the file name is supposed to be UTF-8.
434
464
  # Returns an empty string on failure.
@@ -452,7 +482,7 @@ module TD::ClientMethods
452
482
  'exclude_secret_chats' => exclude_secret_chats)
453
483
  end
454
484
 
455
- # Clears all imported contacts, contacts list remains unchanged.
485
+ # Clears all imported contacts, contact list remains unchanged.
456
486
  #
457
487
  # @return [TD::Types::Ok]
458
488
  def clear_imported_contacts
@@ -464,7 +494,7 @@ module TD::ClientMethods
464
494
  # @param is_attached [Boolean] Pass true to clear the list of stickers recently attached to photo or video files;
465
495
  # pass false to clear the list of recently sent stickers.
466
496
  # @return [TD::Types::Ok]
467
- def clear_recent_stickers(is_attached = false)
497
+ def clear_recent_stickers(is_attached)
468
498
  broadcast('@type' => 'clearRecentStickers',
469
499
  'is_attached' => is_attached)
470
500
  end
@@ -478,15 +508,14 @@ module TD::ClientMethods
478
508
 
479
509
  # Closes the TDLib instance.
480
510
  # All databases will be flushed to disk and properly closed.
481
- # After the close completes, {TD::Types::Update::AuthorizationState} with {TD::Types::AuthorizationState::Closed}
482
- # will be sent.
511
+ # After the close completes, updateAuthorizationState with authorizationStateClosed will be sent.
483
512
  #
484
513
  # @return [TD::Types::Ok]
485
514
  def close
486
515
  broadcast('@type' => 'close')
487
516
  end
488
517
 
489
- # This method should be called if the chat is closed by the user.
518
+ # Informs TDLib that the chat is closed by the user.
490
519
  # Many useful activities depend on the chat being opened or closed.
491
520
  #
492
521
  # @param chat_id [Integer] Chat identifier.
@@ -496,7 +525,7 @@ module TD::ClientMethods
496
525
  'chat_id' => chat_id)
497
526
  end
498
527
 
499
- # Closes a secret chat, effectively transfering its state to {TD::Types::SecretChatState::Closed}.
528
+ # Closes a secret chat, effectively transfering its state to secretChatStateClosed.
500
529
  #
501
530
  # @param secret_chat_id [Integer] Secret chat identifier.
502
531
  # @return [TD::Types::Ok]
@@ -511,7 +540,7 @@ module TD::ClientMethods
511
540
  # @param force [Boolean] If true, the chat will be created without network request.
512
541
  # In this case all information about the chat except its type, title and photo can be incorrect.
513
542
  # @return [TD::Types::Chat]
514
- def create_basic_group_chat(basic_group_id, force = false)
543
+ def create_basic_group_chat(basic_group_id, force)
515
544
  broadcast('@type' => 'createBasicGroupChat',
516
545
  'basic_group_id' => basic_group_id,
517
546
  'force' => force)
@@ -528,11 +557,12 @@ module TD::ClientMethods
528
557
  'protocol' => protocol)
529
558
  end
530
559
 
531
- # Creates a new basic group and sends a corresponding {TD::Types::MessageContent::BasicGroupChatCreate}.
560
+ # Creates a new basic group and sends a corresponding messageBasicGroupChatCreate.
561
+ # Returns the newly created chat.
532
562
  #
533
563
  # @param user_ids [Array<Integer>] Identifiers of users to be added to the basic group.
534
- # @param title [String] Title of the new basic group; 1-255 characters.
535
- # @return [TD::Types::Chat] the newly created chat.
564
+ # @param title [String] Title of the new basic group; 1-128 characters.
565
+ # @return [TD::Types::Chat]
536
566
  def create_new_basic_group_chat(user_ids, title)
537
567
  broadcast('@type' => 'createNewBasicGroupChat',
538
568
  'user_ids' => user_ids,
@@ -540,15 +570,17 @@ module TD::ClientMethods
540
570
  end
541
571
 
542
572
  # Creates a new secret chat.
573
+ # Returns the newly created chat.
543
574
  #
544
575
  # @param user_id [Integer] Identifier of the target user.
545
- # @return [TD::Types::Chat] the newly created chat.
576
+ # @return [TD::Types::Chat]
546
577
  def create_new_secret_chat(user_id)
547
578
  broadcast('@type' => 'createNewSecretChat',
548
579
  'user_id' => user_id)
549
580
  end
550
581
 
551
582
  # Creates a new sticker set; for bots only.
583
+ # Returns the newly created sticker set.
552
584
  #
553
585
  # @param user_id [Integer] Sticker set owner.
554
586
  # @param title [String] Sticker set title; 1-64 characters.
@@ -557,8 +589,8 @@ module TD::ClientMethods
557
589
  # Must end with *"_by_<bot username>"* (*<bot_username>* is case insensitive); 1-64 characters.
558
590
  # @param is_masks [Boolean] True, if stickers are masks.
559
591
  # @param stickers [Array<TD::Types::InputSticker>] List of stickers to be added to the set.
560
- # @return [TD::Types::StickerSet] the newly created sticker set.
561
- def create_new_sticker_set(user_id, title, name, stickers, is_masks: false)
592
+ # @return [TD::Types::StickerSet]
593
+ def create_new_sticker_set(user_id, title, name, is_masks, stickers)
562
594
  broadcast('@type' => 'createNewStickerSet',
563
595
  'user_id' => user_id,
564
596
  'title' => title,
@@ -567,13 +599,14 @@ module TD::ClientMethods
567
599
  'stickers' => stickers)
568
600
  end
569
601
 
570
- # Creates a new supergroup or channel and sends a corresponding {TD::Types::MessageContent::SupergroupChatCreate}.
602
+ # Creates a new supergroup or channel and sends a corresponding messageSupergroupChatCreate.
603
+ # Returns the newly created chat.
571
604
  #
572
- # @param title [String] Title of the new chat; 1-255 characters.
605
+ # @param title [String] Title of the new chat; 1-128 characters.
573
606
  # @param is_channel [Boolean] True, if a channel chat should be created.
574
607
  # @param description [String] Chat description; 0-255 characters.
575
- # @return [TD::Types::Chat] the newly created chat.
576
- def create_new_supergroup_chat(title, description, is_channel: false)
608
+ # @return [TD::Types::Chat]
609
+ def create_new_supergroup_chat(title, is_channel, description)
577
610
  broadcast('@type' => 'createNewSupergroupChat',
578
611
  'title' => title,
579
612
  'is_channel' => is_channel,
@@ -586,7 +619,7 @@ module TD::ClientMethods
586
619
  # @param force [Boolean] If true, the chat will be created without network request.
587
620
  # In this case all information about the chat except its type, title and photo can be incorrect.
588
621
  # @return [TD::Types::Chat]
589
- def create_private_chat(user_id, force = false)
622
+ def create_private_chat(user_id, force)
590
623
  broadcast('@type' => 'createPrivateChat',
591
624
  'user_id' => user_id,
592
625
  'force' => force)
@@ -607,7 +640,7 @@ module TD::ClientMethods
607
640
  # @param force [Boolean] If true, the chat will be created without network request.
608
641
  # In this case all information about the chat except its type, title and photo can be incorrect.
609
642
  # @return [TD::Types::Chat]
610
- def create_supergroup_chat(supergroup_id, force = false)
643
+ def create_supergroup_chat(supergroup_id, force)
611
644
  broadcast('@type' => 'createSupergroupChat',
612
645
  'supergroup_id' => supergroup_id,
613
646
  'force' => force)
@@ -627,8 +660,7 @@ module TD::ClientMethods
627
660
 
628
661
  # Deletes the account of the current user, deleting all information associated with the user from the server.
629
662
  # The phone number of the account can be used to create a new account.
630
- # Can be called before authorization when the current authorization state is
631
- # {TD::Types::AuthorizationState::WaitPassword}.
663
+ # Can be called before authorization when the current authorization state is authorizationStateWaitPassword.
632
664
  #
633
665
  # @param reason [String, nil] The reason why the account was deleted; optional.
634
666
  # @return [TD::Types::Ok]
@@ -637,16 +669,19 @@ module TD::ClientMethods
637
669
  'reason' => reason)
638
670
  end
639
671
 
640
- # Deletes all messages in the chat only for the user.
641
- # Cannot be used in channels and public supergroups.
672
+ # Deletes all messages in the chat.
673
+ # Use Chat.can_be_deleted_only_for_self and Chat.can_be_deleted_for_all_users fields to find whether and how the
674
+ # method can be applied to the chat.
642
675
  #
643
676
  # @param chat_id [Integer] Chat identifier.
644
- # @param remove_from_chat_list [Boolean] Pass true if the chat should be removed from the chats list.
677
+ # @param remove_from_chat_list [Boolean] Pass true if the chat should be removed from the chat list.
678
+ # @param revoke [Boolean] Pass true to try to delete chat history for all users.
645
679
  # @return [TD::Types::Ok]
646
- def delete_chat_history(chat_id, remove_from_chat_list = false)
680
+ def delete_chat_history(chat_id, remove_from_chat_list, revoke)
647
681
  broadcast('@type' => 'deleteChatHistory',
648
682
  'chat_id' => chat_id,
649
- 'remove_from_chat_list' => remove_from_chat_list)
683
+ 'remove_from_chat_list' => remove_from_chat_list,
684
+ 'revoke' => revoke)
650
685
  end
651
686
 
652
687
  # Deletes all messages sent by the specified user to a chat.
@@ -684,7 +719,9 @@ module TD::ClientMethods
684
719
  end
685
720
 
686
721
  # Deletes all information about a language pack in the current localization target.
687
- # The language pack that is currently in use can't be deleted.
722
+ # The language pack which is currently in use (including base language pack) or is being synchronized can't be
723
+ # deleted.
724
+ # Can be called before authorization.
688
725
  #
689
726
  # @param language_pack_id [String] Identifier of the language pack to delete.
690
727
  # @return [TD::Types::Ok]
@@ -697,11 +734,10 @@ module TD::ClientMethods
697
734
  #
698
735
  # @param chat_id [Integer] Chat identifier.
699
736
  # @param message_ids [Array<Integer>] Identifiers of the messages to be deleted.
700
- # @param revoke [Boolean] Pass true to try to delete outgoing messages for all chat members (may fail if messages are
701
- # too old).
737
+ # @param revoke [Boolean] Pass true to try to delete messages for all chat members.
702
738
  # Always true for supergroups, channels and secret chats.
703
739
  # @return [TD::Types::Ok]
704
- def delete_messages(chat_id, message_ids, revoke = false)
740
+ def delete_messages(chat_id, message_ids, revoke)
705
741
  broadcast('@type' => 'deleteMessages',
706
742
  'chat_id' => chat_id,
707
743
  'message_ids' => message_ids,
@@ -718,7 +754,7 @@ module TD::ClientMethods
718
754
  end
719
755
 
720
756
  # Deletes a profile photo.
721
- # If something changes, {TD::Types::Update::User} will be sent.
757
+ # If something changes, updateUser will be sent.
722
758
  #
723
759
  # @param profile_photo_id [Integer] Identifier of the profile photo to delete.
724
760
  # @return [TD::Types::Ok]
@@ -756,8 +792,7 @@ module TD::ClientMethods
756
792
  # Closes the TDLib instance, destroying all local data without a proper logout.
757
793
  # The current user session will remain in the list of all active sessions.
758
794
  # All local data will be destroyed.
759
- # After the destruction completes {TD::Types::Update::AuthorizationState} with {TD::Types::AuthorizationState::Closed}
760
- # will be sent.
795
+ # After the destruction completes updateAuthorizationState with authorizationStateClosed will be sent.
761
796
  #
762
797
  # @return [TD::Types::Ok]
763
798
  def destroy
@@ -779,7 +814,7 @@ module TD::ClientMethods
779
814
  # @param duration [Integer] The call duration, in seconds.
780
815
  # @param connection_id [Integer] Identifier of the connection used during the call.
781
816
  # @return [TD::Types::Ok]
782
- def discard_call(call_id, duration, connection_id, is_disconnected: false)
817
+ def discard_call(call_id, is_disconnected, duration, connection_id)
783
818
  broadcast('@type' => 'discardCall',
784
819
  'call_id' => call_id,
785
820
  'is_disconnected' => is_disconnected,
@@ -803,26 +838,34 @@ module TD::ClientMethods
803
838
  'website_id' => website_id)
804
839
  end
805
840
 
806
- # Asynchronously downloads a file from the cloud.
807
- # {TD::Types::Update::File} will be used to notify about the download progress and successful completion of the
808
- # download.
809
- # Returns file state just after the download has been started.
841
+ # Downloads a file from the cloud.
842
+ # Download progress and completion of the download will be notified through updateFile updates.
810
843
  #
811
844
  # @param file_id [Integer] Identifier of the file to download.
812
845
  # @param priority [Integer] Priority of the download (1-32).
813
846
  # The higher the priority, the earlier the file will be downloaded.
814
- # If the priorities of two files are equal, then the last one for which {#download_file} was called will be
815
- # downloaded first.
847
+ # If the priorities of two files are equal, then the last one for which downloadFile was called will be downloaded
848
+ # first.
849
+ # @param offset [Integer] The starting position from which the file should be downloaded.
850
+ # @param limit [Integer] Number of bytes which should be downloaded starting from the "offset" position before the
851
+ # download will be automatically cancelled; use 0 to download without a limit.
852
+ # @param synchronous [Boolean] If false, this request returns file state just after the download has been started.
853
+ # If true, this request returns file state only after the download has succeeded, has failed, has been cancelled or
854
+ # a new downloadFile request with different offset/limit parameters was sent.
816
855
  # @return [TD::Types::File]
817
- def download_file(file_id, priority = 1)
818
- broadcast('@type' => 'downloadFile',
819
- 'file_id' => file_id,
820
- 'priority' => priority)
856
+ def download_file(file_id, priority, offset, limit, synchronous)
857
+ broadcast('@type' => 'downloadFile',
858
+ 'file_id' => file_id,
859
+ 'priority' => priority,
860
+ 'offset' => offset,
861
+ 'limit' => limit,
862
+ 'synchronous' => synchronous)
821
863
  end
822
864
 
823
- # Edits information about a custom language pack in the current localization target.
865
+ # Edits information about a custom local language pack in the current localization target.
866
+ # Can be called before authorization.
824
867
  #
825
- # @param info [TD::Types::LanguagePackInfo] New information about the custom language pack.
868
+ # @param info [TD::Types::LanguagePackInfo] New information about the custom local language pack.
826
869
  # @return [TD::Types::Ok]
827
870
  def edit_custom_language_pack_info(info)
828
871
  broadcast('@type' => 'editCustomLanguagePackInfo',
@@ -847,8 +890,8 @@ module TD::ClientMethods
847
890
  #
848
891
  # @param inline_message_id [String] Inline message identifier.
849
892
  # @param reply_markup [TD::Types::ReplyMarkup] The new message reply markup.
850
- # @param location [TD::Types::Location, nil] New location content of the message.
851
- # Pass nil to stop sharing the live location.
893
+ # @param location [TD::Types::Location, nil] New location content of the message; may be null.
894
+ # Pass null to stop sharing the live location.
852
895
  # @return [TD::Types::Ok]
853
896
  def edit_inline_message_live_location(inline_message_id, reply_markup, location = nil)
854
897
  broadcast('@type' => 'editInlineMessageLiveLocation',
@@ -861,12 +904,12 @@ module TD::ClientMethods
861
904
  # sent via a bot; for bots only.
862
905
  #
863
906
  # @param inline_message_id [String] Inline message identifier.
864
- # @param reply_markup [TD::Types::ReplyMarkup, nil] The new message reply markup; for bots only.
865
- # @param input_message_content [TD::Types::InputMessageContent::Animation, TD::Types::InputMessageContent::Audio,
866
- # TD::Types::InputMessageContent::Document, TD::Types::InputMessageContent::Photo,
867
- # TD::Types::InputMessageContent::Video] New content of the message.
907
+ # @param reply_markup [TD::Types::ReplyMarkup] The new message reply markup; for bots only.
908
+ # @param input_message_content [TD::Types::InputMessageContent] New content of the message.
909
+ # Must be one of the following types: InputMessageAnimation, InputMessageAudio, InputMessageDocument,
910
+ # InputMessagePhoto or InputMessageVideo.
868
911
  # @return [TD::Types::Ok]
869
- def edit_inline_message_media(inline_message_id, input_message_content, reply_markup: nil)
912
+ def edit_inline_message_media(inline_message_id, reply_markup, input_message_content)
870
913
  broadcast('@type' => 'editInlineMessageMedia',
871
914
  'inline_message_id' => inline_message_id,
872
915
  'reply_markup' => reply_markup,
@@ -888,9 +931,10 @@ module TD::ClientMethods
888
931
  #
889
932
  # @param inline_message_id [String] Inline message identifier.
890
933
  # @param reply_markup [TD::Types::ReplyMarkup] The new message reply markup.
891
- # @param input_message_content [TD::Types::InputMessageContent::Text] New text content of the message.
934
+ # @param input_message_content [TD::Types::InputMessageContent] New text content of the message.
935
+ # Should be of type InputMessageText.
892
936
  # @return [TD::Types::Ok]
893
- def edit_inline_message_text(inline_message_id, input_message_content, reply_markup)
937
+ def edit_inline_message_text(inline_message_id, reply_markup, input_message_content)
894
938
  broadcast('@type' => 'editInlineMessageText',
895
939
  'inline_message_id' => inline_message_id,
896
940
  'reply_markup' => reply_markup,
@@ -898,14 +942,15 @@ module TD::ClientMethods
898
942
  end
899
943
 
900
944
  # Edits the message content caption.
945
+ # Returns the edited message after the edit is completed on the server side.
901
946
  #
902
947
  # @param chat_id [Integer] The chat the message belongs to.
903
948
  # @param message_id [Integer] Identifier of the message.
904
- # @param reply_markup [TD::Types::ReplyMarkup, nil] The new message reply markup; for bots only.
949
+ # @param reply_markup [TD::Types::ReplyMarkup] The new message reply markup; for bots only.
905
950
  # @param caption [TD::Types::FormattedText] New message content caption; 0-GetOption("message_caption_length_max")
906
951
  # characters.
907
- # @return [TD::Types::Message] the edited message after the edit is completed on the server side.
908
- def edit_message_caption(chat_id, message_id, caption, reply_markup: nil)
952
+ # @return [TD::Types::Message]
953
+ def edit_message_caption(chat_id, message_id, reply_markup, caption)
909
954
  broadcast('@type' => 'editMessageCaption',
910
955
  'chat_id' => chat_id,
911
956
  'message_id' => message_id,
@@ -915,14 +960,15 @@ module TD::ClientMethods
915
960
 
916
961
  # Edits the message content of a live location.
917
962
  # Messages can be edited for a limited period of time specified in the live location.
963
+ # Returns the edited message after the edit is completed on the server side.
918
964
  #
919
965
  # @param chat_id [Integer] The chat the message belongs to.
920
966
  # @param message_id [Integer] Identifier of the message.
921
- # @param reply_markup [TD::Types::ReplyMarkup, nil] The new message reply markup; for bots only.
922
- # @param location [TD::Types::Location, nil] New location content of the message.
923
- # Pass nil to stop sharing the live location.
924
- # @return [TD::Types::Message] the edited message after the edit is completed on the server side.
925
- def edit_message_live_location(chat_id, message_id, location = nil, reply_markup: nil)
967
+ # @param reply_markup [TD::Types::ReplyMarkup] The new message reply markup; for bots only.
968
+ # @param location [TD::Types::Location, nil] New location content of the message; may be null.
969
+ # Pass null to stop sharing the live location.
970
+ # @return [TD::Types::Message]
971
+ def edit_message_live_location(chat_id, message_id, reply_markup, location = nil)
926
972
  broadcast('@type' => 'editMessageLiveLocation',
927
973
  'chat_id' => chat_id,
928
974
  'message_id' => message_id,
@@ -934,15 +980,16 @@ module TD::ClientMethods
934
980
  # The media in the message can't be replaced if the message was set to self-destruct.
935
981
  # Media can't be replaced by self-destructing media.
936
982
  # Media in an album can be edited only to contain a photo or a video.
983
+ # Returns the edited message after the edit is completed on the server side.
937
984
  #
938
985
  # @param chat_id [Integer] The chat the message belongs to.
939
986
  # @param message_id [Integer] Identifier of the message.
940
- # @param reply_markup [TD::Types::ReplyMarkup, nil] The new message reply markup; for bots only.
941
- # @param input_message_content [TD::Types::InputMessageContent::Animation, TD::Types::InputMessageContent::Audio,
942
- # TD::Types::InputMessageContent::Document, TD::Types::InputMessageContent::Photo,
943
- # TD::Types::InputMessageContent::Video] New content of the message.
944
- # @return [TD::Types::Message] the edited message after the edit is completed on the server side.
945
- def edit_message_media(chat_id, message_id, input_message_content, reply_markup: nil)
987
+ # @param reply_markup [TD::Types::ReplyMarkup] The new message reply markup; for bots only.
988
+ # @param input_message_content [TD::Types::InputMessageContent] New content of the message.
989
+ # Must be one of the following types: InputMessageAnimation, InputMessageAudio, InputMessageDocument,
990
+ # InputMessagePhoto or InputMessageVideo.
991
+ # @return [TD::Types::Message]
992
+ def edit_message_media(chat_id, message_id, reply_markup, input_message_content)
946
993
  broadcast('@type' => 'editMessageMedia',
947
994
  'chat_id' => chat_id,
948
995
  'message_id' => message_id,
@@ -951,11 +998,12 @@ module TD::ClientMethods
951
998
  end
952
999
 
953
1000
  # Edits the message reply markup; for bots only.
1001
+ # Returns the edited message after the edit is completed on the server side.
954
1002
  #
955
1003
  # @param chat_id [Integer] The chat the message belongs to.
956
1004
  # @param message_id [Integer] Identifier of the message.
957
1005
  # @param reply_markup [TD::Types::ReplyMarkup] The new message reply markup.
958
- # @return [TD::Types::Message] the edited message after the edit is completed on the server side.
1006
+ # @return [TD::Types::Message]
959
1007
  def edit_message_reply_markup(chat_id, message_id, reply_markup)
960
1008
  broadcast('@type' => 'editMessageReplyMarkup',
961
1009
  'chat_id' => chat_id,
@@ -964,13 +1012,15 @@ module TD::ClientMethods
964
1012
  end
965
1013
 
966
1014
  # Edits the text of a message (or a text of a game message).
1015
+ # Returns the edited message after the edit is completed on the server side.
967
1016
  #
968
1017
  # @param chat_id [Integer] The chat the message belongs to.
969
1018
  # @param message_id [Integer] Identifier of the message.
970
- # @param reply_markup [TD::Types::ReplyMarkup, nil] The new message reply markup; for bots only.
971
- # @param input_message_content [TD::Types::InputMessageContent::Text] New text content of the message.
972
- # @return [TD::Types::Message] the edited message after the edit is completed on the server side.
973
- def edit_message_text(chat_id, message_id, input_message_content, reply_markup: nil)
1019
+ # @param reply_markup [TD::Types::ReplyMarkup] The new message reply markup; for bots only.
1020
+ # @param input_message_content [TD::Types::InputMessageContent] New text content of the message.
1021
+ # Should be of type InputMessageText.
1022
+ # @return [TD::Types::Message]
1023
+ def edit_message_text(chat_id, message_id, reply_markup, input_message_content)
974
1024
  broadcast('@type' => 'editMessageText',
975
1025
  'chat_id' => chat_id,
976
1026
  'message_id' => message_id,
@@ -987,7 +1037,7 @@ module TD::ClientMethods
987
1037
  # @param enable [Boolean] True, if the proxy should be enabled.
988
1038
  # @param type [TD::Types::ProxyType] Proxy type.
989
1039
  # @return [TD::Types::Proxy]
990
- def edit_proxy(proxy_id, server, port, type, enable = false)
1040
+ def edit_proxy(proxy_id, server, port, enable, type)
991
1041
  broadcast('@type' => 'editProxy',
992
1042
  'proxy_id' => proxy_id,
993
1043
  'server' => server,
@@ -1010,42 +1060,48 @@ module TD::ClientMethods
1010
1060
  # Finishes the file generation.
1011
1061
  #
1012
1062
  # @param generation_id [Integer] The identifier of the generation process.
1013
- # @param error [TD::Types::Error, nil] If set, means that file generation has failed and should be terminated.
1063
+ # @param error [TD::Types::Error] If set, means that file generation has failed and should be terminated.
1014
1064
  # @return [TD::Types::Ok]
1015
- def finish_file_generation(generation_id, error: nil)
1065
+ def finish_file_generation(generation_id, error)
1016
1066
  broadcast('@type' => 'finishFileGeneration',
1017
1067
  'generation_id' => generation_id,
1018
1068
  'error' => error)
1019
1069
  end
1020
1070
 
1021
1071
  # Forwards previously sent messages.
1072
+ # Returns the forwarded messages in the same order as the message identifiers passed in message_ids.
1073
+ # If a message can't be forwarded, null will be returned instead of the message.
1022
1074
  #
1023
1075
  # @param chat_id [Integer] Identifier of the chat to which to forward messages.
1024
1076
  # @param from_chat_id [Integer] Identifier of the chat from which to forward messages.
1025
1077
  # @param message_ids [Array<Integer>] Identifiers of the messages to forward.
1026
1078
  # @param disable_notification [Boolean] Pass true to disable notification for the message, doesn't work if messages
1027
1079
  # are forwarded to a secret chat.
1028
- # @param from_background [Boolean] Pass true if the message is sent from the background.
1080
+ # @param from_background [Boolean] Pass true if the messages are sent from the background.
1029
1081
  # @param as_album [Boolean] True, if the messages should be grouped into an album after forwarding.
1030
1082
  # For this to work, no more than 10 messages may be forwarded, and all of them must be photo or video messages.
1031
- # @return [TD::Types::Messages, nil] the forwarded messages in the same order as the message identifiers passed in
1032
- # message_ids.
1033
- # If a message can't be forwarded, nil will be returned instead of the message.
1034
- def forward_messages(chat_id, from_chat_id, message_ids,
1035
- disable_notification: false, from_background: false, as_album: false)
1083
+ # @param send_copy [Boolean] True, if content of the messages needs to be copied without links to the original
1084
+ # messages.
1085
+ # Always true if the messages are forwarded to a secret chat.
1086
+ # @param remove_caption [Boolean] True, if media captions of message copies needs to be removed.
1087
+ # Ignored if send_copy is false.
1088
+ # @return [TD::Types::Messages]
1089
+ def forward_messages(chat_id, from_chat_id, message_ids, disable_notification, from_background, as_album, send_copy,
1090
+ remove_caption)
1036
1091
  broadcast('@type' => 'forwardMessages',
1037
1092
  'chat_id' => chat_id,
1038
1093
  'from_chat_id' => from_chat_id,
1039
1094
  'message_ids' => message_ids,
1040
1095
  'disable_notification' => disable_notification,
1041
1096
  'from_background' => from_background,
1042
- 'as_album' => as_album)
1097
+ 'as_album' => as_album,
1098
+ 'send_copy' => send_copy,
1099
+ 'remove_caption' => remove_caption)
1043
1100
  end
1044
1101
 
1045
1102
  # Generates a new invite link for a chat; the previously generated link is revoked.
1046
1103
  # Available for basic groups, supergroups, and channels.
1047
- # In basic groups this can be called only by the group's creator; in supergroups and channels this requires
1048
- # appropriate administrator rights.
1104
+ # Requires administrator privileges and can_invite_users right.
1049
1105
  #
1050
1106
  # @param chat_id [Integer] Chat identifier.
1051
1107
  # @return [TD::Types::ChatInviteLink]
@@ -1085,13 +1141,21 @@ module TD::ClientMethods
1085
1141
  'password' => password)
1086
1142
  end
1087
1143
 
1144
+ # Returns application config, provided by the server.
1145
+ # Can be called before authorization.
1146
+ #
1147
+ # @return [TD::Types::JsonValue]
1148
+ def get_application_config
1149
+ broadcast('@type' => 'getApplicationConfig')
1150
+ end
1151
+
1088
1152
  # Returns a list of archived sticker sets.
1089
1153
  #
1090
1154
  # @param is_masks [Boolean] Pass true to return mask stickers sets; pass false to return ordinary sticker sets.
1091
1155
  # @param offset_sticker_set_id [Integer] Identifier of the sticker set from which to return the result.
1092
1156
  # @param limit [Integer] Maximum number of sticker sets to return.
1093
1157
  # @return [TD::Types::StickerSets]
1094
- def get_archived_sticker_sets(offset_sticker_set_id, limit = 100, is_masks: false)
1158
+ def get_archived_sticker_sets(is_masks, offset_sticker_set_id, limit)
1095
1159
  broadcast('@type' => 'getArchivedStickerSets',
1096
1160
  'is_masks' => is_masks,
1097
1161
  'offset_sticker_set_id' => offset_sticker_set_id,
@@ -1110,13 +1174,40 @@ module TD::ClientMethods
1110
1174
 
1111
1175
  # Returns the current authorization state; this is an offline request.
1112
1176
  # For informational purposes only.
1113
- # Use {TD::Types::Update::AuthorizationState} instead to maintain the current authorization state.
1177
+ # Use updateAuthorizationState instead to maintain the current authorization state.
1114
1178
  #
1115
1179
  # @return [TD::Types::AuthorizationState]
1116
1180
  def get_authorization_state
1117
1181
  broadcast('@type' => 'getAuthorizationState')
1118
1182
  end
1119
1183
 
1184
+ # Returns auto-download settings presets for the currently logged in user.
1185
+ #
1186
+ # @return [TD::Types::AutoDownloadSettingsPresets]
1187
+ def get_auto_download_settings_presets
1188
+ broadcast('@type' => 'getAutoDownloadSettingsPresets')
1189
+ end
1190
+
1191
+ # Constructs a persistent HTTP URL for a background.
1192
+ #
1193
+ # @param name [String] Background name.
1194
+ # @param type [TD::Types::BackgroundType] Background type.
1195
+ # @return [TD::Types::HttpUrl]
1196
+ def get_background_url(name, type)
1197
+ broadcast('@type' => 'getBackgroundUrl',
1198
+ 'name' => name,
1199
+ 'type' => type)
1200
+ end
1201
+
1202
+ # Returns backgrounds installed by the user.
1203
+ #
1204
+ # @param for_dark_theme [Boolean] True, if the backgrounds needs to be ordered for dark theme.
1205
+ # @return [TD::Types::Backgrounds]
1206
+ def get_backgrounds(for_dark_theme)
1207
+ broadcast('@type' => 'getBackgrounds',
1208
+ 'for_dark_theme' => for_dark_theme)
1209
+ end
1210
+
1120
1211
  # Returns information about a basic group by its identifier.
1121
1212
  # This is an offline request if the current user is not a bot.
1122
1213
  #
@@ -1141,7 +1232,7 @@ module TD::ClientMethods
1141
1232
  # @param offset [Integer] Number of users to skip in the result; must be non-negative.
1142
1233
  # @param limit [Integer] Maximum number of users to return; up to 100.
1143
1234
  # @return [TD::Types::Users]
1144
- def get_blocked_users(offset, limit = 100)
1235
+ def get_blocked_users(offset, limit)
1145
1236
  broadcast('@type' => 'getBlockedUsers',
1146
1237
  'offset' => offset,
1147
1238
  'limit' => limit)
@@ -1182,7 +1273,8 @@ module TD::ClientMethods
1182
1273
  # Returns a list of service actions taken by chat members and administrators in the last 48 hours.
1183
1274
  # Available only in supergroups and channels.
1184
1275
  # Requires administrator rights.
1185
- # Returns results in reverse chronological order (i.e., in order of decreasing event_id).
1276
+ # Returns results in reverse chronological order (i.
1277
+ # e., in order of decreasing event_id).
1186
1278
  #
1187
1279
  # @param chat_id [Integer] Chat identifier.
1188
1280
  # @param query [String] Search query by which to filter events.
@@ -1212,17 +1304,17 @@ module TD::ClientMethods
1212
1304
  # @param chat_id [Integer] Chat identifier.
1213
1305
  # @param from_message_id [Integer] Identifier of the message starting from which history must be fetched; use 0 to
1214
1306
  # get results from the last message.
1215
- # @param offset [Integer] Specify 0 to get results from exactly the from_message_id or a negative offset to get the
1216
- # specified message and some newer messages.
1307
+ # @param offset [Integer] Specify 0 to get results from exactly the from_message_id or a negative offset up to 99 to
1308
+ # get additionally some newer messages.
1217
1309
  # @param limit [Integer] The maximum number of messages to be returned; must be positive and can't be greater than
1218
1310
  # 100.
1219
- # If the offset is negative, the limit must be greater than -offset.
1311
+ # If the offset is negative, the limit must be greater or equal to -offset.
1220
1312
  # Fewer messages may be returned than specified by the limit, even if the end of the message history has not been
1221
1313
  # reached.
1222
1314
  # @param only_local [Boolean] If true, returns only messages that are available locally without sending network
1223
1315
  # requests.
1224
1316
  # @return [TD::Types::Messages]
1225
- def get_chat_history(chat_id, from_message_id, offset = 0, limit = 100, only_local: false)
1317
+ def get_chat_history(chat_id, from_message_id, offset, limit, only_local)
1226
1318
  broadcast('@type' => 'getChatHistory',
1227
1319
  'chat_id' => chat_id,
1228
1320
  'from_message_id' => from_message_id,
@@ -1256,18 +1348,30 @@ module TD::ClientMethods
1256
1348
  # Returns approximate number of messages of the specified type in the chat.
1257
1349
  #
1258
1350
  # @param chat_id [Integer] Identifier of the chat in which to count messages.
1259
- # @param filter [TD::Types::SearchMessagesFilter, nil] Filter for message content;
1351
+ # @param filter [TD::Types::SearchMessagesFilter] Filter for message content;
1260
1352
  # {TD::Types::SearchMessagesFilter::Empty} is unsupported in this function.
1261
1353
  # @param return_local [Boolean] If true, returns count that is available locally without sending network requests,
1262
1354
  # returning -1 if the number of messages is unknown.
1263
1355
  # @return [TD::Types::Count]
1264
- def get_chat_message_count(chat_id, filter = nil, return_local: false)
1356
+ def get_chat_message_count(chat_id, filter, return_local)
1265
1357
  broadcast('@type' => 'getChatMessageCount',
1266
1358
  'chat_id' => chat_id,
1267
1359
  'filter' => filter,
1268
1360
  'return_local' => return_local)
1269
1361
  end
1270
1362
 
1363
+ # Returns list of chats with non-default notification settings.
1364
+ #
1365
+ # @param scope [TD::Types::NotificationSettingsScope] If specified, only chats from the specified scope will be
1366
+ # returned.
1367
+ # @param compare_sound [Boolean] If true, also chats with non-default sound will be returned.
1368
+ # @return [TD::Types::Chats]
1369
+ def get_chat_notification_settings_exceptions(scope, compare_sound)
1370
+ broadcast('@type' => 'getChatNotificationSettingsExceptions',
1371
+ 'scope' => scope,
1372
+ 'compare_sound' => compare_sound)
1373
+ end
1374
+
1271
1375
  # Returns information about a pinned chat message.
1272
1376
  #
1273
1377
  # @param chat_id [Integer] Identifier of the chat the message belongs to.
@@ -1286,9 +1390,24 @@ module TD::ClientMethods
1286
1390
  'chat_id' => chat_id)
1287
1391
  end
1288
1392
 
1393
+ # Returns an HTTP URL with the chat statistics.
1394
+ # Currently this method can be used only for channels.
1395
+ #
1396
+ # @param chat_id [Integer] Chat identifier.
1397
+ # @param parameters [String] Parameters from "tg://statsrefresh?params=******" link.
1398
+ # @param is_dark [Boolean] Pass true if a URL with the dark theme must be returned.
1399
+ # @return [TD::Types::HttpUrl]
1400
+ def get_chat_statistics_url(chat_id, parameters, is_dark)
1401
+ broadcast('@type' => 'getChatStatisticsUrl',
1402
+ 'chat_id' => chat_id,
1403
+ 'parameters' => parameters,
1404
+ 'is_dark' => is_dark)
1405
+ end
1406
+
1289
1407
  # Returns an ordered list of chats.
1290
1408
  # Chats are sorted by the pair (order, chat_id) in decreasing order.
1291
- # (For example, to get a list of chats from the beginning, the offset_order should be equal to 2^63 - 1).
1409
+ # (For example, to get a list of chats from the beginning, the offset_order should be equal to a biggest signed
1410
+ # 64-bit number 9223372036854775807 == 2^63 - 1).
1292
1411
  # For optimal performance the number of returned chats is chosen by the library.
1293
1412
  #
1294
1413
  # @param offset_order [Integer] Chat order to return chats from.
@@ -1296,7 +1415,7 @@ module TD::ClientMethods
1296
1415
  # @param limit [Integer] The maximum number of chats to be returned.
1297
1416
  # It is possible that fewer chats than the limit are returned even if the end of the list is not reached.
1298
1417
  # @return [TD::Types::Chats]
1299
- def get_chats(offset_chat_id = 0, limit = 100, offset_order: 9223372036854775807)
1418
+ def get_chats(offset_order, offset_chat_id, limit)
1300
1419
  broadcast('@type' => 'getChats',
1301
1420
  'offset_order' => offset_order,
1302
1421
  'offset_chat_id' => offset_chat_id,
@@ -1317,21 +1436,40 @@ module TD::ClientMethods
1317
1436
  broadcast('@type' => 'getContacts')
1318
1437
  end
1319
1438
 
1320
- # Uses current user IP to found his country.
1439
+ # Uses current user IP to found their country.
1440
+ # Returns two-letter ISO 3166-1 alpha-2 country code.
1321
1441
  # Can be called before authorization.
1322
1442
  #
1323
- # @return [TD::Types::Text] two-letter ISO 3166-1 alpha-2 country code.
1443
+ # @return [TD::Types::Text]
1324
1444
  def get_country_code
1325
1445
  broadcast('@type' => 'getCountryCode')
1326
1446
  end
1327
1447
 
1328
- # Returns a list of public chats created by the user.
1448
+ # Returns a list of public chats with username created by the user.
1329
1449
  #
1330
1450
  # @return [TD::Types::Chats]
1331
1451
  def get_created_public_chats
1332
1452
  broadcast('@type' => 'getCreatedPublicChats')
1333
1453
  end
1334
1454
 
1455
+ # Returns all updates needed to restore current TDLib state, i.e.
1456
+ # all actual UpdateAuthorizationState/UpdateUser/UpdateNewChat and others.
1457
+ # This is especially usefull if TDLib is run in a separate process.
1458
+ # This is an offline method.
1459
+ # Can be called before authorization.
1460
+ #
1461
+ # @return [TD::Types::Updates]
1462
+ def get_current_state
1463
+ broadcast('@type' => 'getCurrentState')
1464
+ end
1465
+
1466
+ # Returns database statistics.
1467
+ #
1468
+ # @return [TD::Types::DatabaseStatistics]
1469
+ def get_database_statistics
1470
+ broadcast('@type' => 'getDatabaseStatistics')
1471
+ end
1472
+
1335
1473
  # Returns information about a tg:// deep link.
1336
1474
  # Use "tg://need_update_for_some_feature" or "tg:some_unsupported_feature" for testing.
1337
1475
  # Returns a 404 error for unknown links.
@@ -1344,6 +1482,17 @@ module TD::ClientMethods
1344
1482
  'link' => link)
1345
1483
  end
1346
1484
 
1485
+ # Returns an HTTP URL which can be used to automatically log in to the translation platform and suggest new emoji
1486
+ # replacements.
1487
+ # The URL will be valid for 30 seconds after generation.
1488
+ #
1489
+ # @param language_code [String] Language code for which the emoji replacements will be suggested.
1490
+ # @return [TD::Types::HttpUrl]
1491
+ def get_emoji_suggestions_url(language_code)
1492
+ broadcast('@type' => 'getEmojiSuggestionsUrl',
1493
+ 'language_code' => language_code)
1494
+ end
1495
+
1347
1496
  # Returns favorite stickers.
1348
1497
  #
1349
1498
  # @return [TD::Types::Stickers]
@@ -1360,6 +1509,17 @@ module TD::ClientMethods
1360
1509
  'file_id' => file_id)
1361
1510
  end
1362
1511
 
1512
+ # Returns file downloaded prefix size from a given offset.
1513
+ #
1514
+ # @param file_id [Integer] Identifier of the file.
1515
+ # @param offset [Integer] Offset from which downloaded prefix size should be calculated.
1516
+ # @return [TD::Types::Count]
1517
+ def get_file_downloaded_prefix_size(file_id, offset)
1518
+ broadcast('@type' => 'getFileDownloadedPrefixSize',
1519
+ 'file_id' => file_id,
1520
+ 'offset' => offset)
1521
+ end
1522
+
1363
1523
  # Returns the extension of a file, guessed by its MIME type.
1364
1524
  # Returns an empty string on failure.
1365
1525
  # This is an offline method.
@@ -1400,14 +1560,14 @@ module TD::ClientMethods
1400
1560
  'user_id' => user_id)
1401
1561
  end
1402
1562
 
1403
- # Returns a list of common chats with a given user.
1563
+ # Returns a list of common group chats with a given user.
1404
1564
  # Chats are sorted by their type and creation date.
1405
1565
  #
1406
1566
  # @param user_id [Integer] User identifier.
1407
1567
  # @param offset_chat_id [Integer] Chat identifier starting from which to return chats; use 0 for the first request.
1408
1568
  # @param limit [Integer] Maximum number of chats to be returned; up to 100.
1409
1569
  # @return [TD::Types::Chats]
1410
- def get_groups_in_common(user_id, offset_chat_id = 0, limit = 100)
1570
+ def get_groups_in_common(user_id, offset_chat_id, limit)
1411
1571
  broadcast('@type' => 'getGroupsInCommon',
1412
1572
  'user_id' => user_id,
1413
1573
  'offset_chat_id' => offset_chat_id,
@@ -1437,11 +1597,11 @@ module TD::ClientMethods
1437
1597
  #
1438
1598
  # @param bot_user_id [Integer] The identifier of the target bot.
1439
1599
  # @param chat_id [Integer] Identifier of the chat, where the query was sent.
1440
- # @param user_location [TD::Types::Location, nil] Location of the user, only if needed.
1600
+ # @param user_location [TD::Types::Location] Location of the user, only if needed.
1441
1601
  # @param query [String] Text of the query.
1442
1602
  # @param offset [String] Offset of the first entry to return.
1443
1603
  # @return [TD::Types::InlineQueryResults]
1444
- def get_inline_query_results(bot_user_id, chat_id, query, offset = '0', user_location: nil)
1604
+ def get_inline_query_results(bot_user_id, chat_id, user_location, query, offset)
1445
1605
  broadcast('@type' => 'getInlineQueryResults',
1446
1606
  'bot_user_id' => bot_user_id,
1447
1607
  'chat_id' => chat_id,
@@ -1454,7 +1614,7 @@ module TD::ClientMethods
1454
1614
  #
1455
1615
  # @param is_masks [Boolean] Pass true to return mask sticker sets; pass false to return ordinary sticker sets.
1456
1616
  # @return [TD::Types::StickerSets]
1457
- def get_installed_sticker_sets(is_masks = false)
1617
+ def get_installed_sticker_sets(is_masks)
1458
1618
  broadcast('@type' => 'getInstalledStickerSets',
1459
1619
  'is_masks' => is_masks)
1460
1620
  end
@@ -1467,6 +1627,41 @@ module TD::ClientMethods
1467
1627
  broadcast('@type' => 'getInviteText')
1468
1628
  end
1469
1629
 
1630
+ # Converts a JsonValue object to corresponding JSON-serialized string.
1631
+ # This is an offline method.
1632
+ # Can be called before authorization.
1633
+ # Can be called synchronously.
1634
+ #
1635
+ # @param json_value [TD::Types::JsonValue] The {TD::Types::JsonValue} object.
1636
+ # @return [TD::Types::Text]
1637
+ def get_json_string(json_value)
1638
+ broadcast('@type' => 'getJsonString',
1639
+ 'json_value' => json_value)
1640
+ end
1641
+
1642
+ # Converts a JSON-serialized string to corresponding JsonValue object.
1643
+ # This is an offline method.
1644
+ # Can be called before authorization.
1645
+ # Can be called synchronously.
1646
+ #
1647
+ # @param json [String] The JSON-serialized string.
1648
+ # @return [TD::Types::JsonValue]
1649
+ def get_json_value(json)
1650
+ broadcast('@type' => 'getJsonValue',
1651
+ 'json' => json)
1652
+ end
1653
+
1654
+ # Returns information about a language pack.
1655
+ # Returned language pack identifier may be different from a provided one.
1656
+ # Can be called before authorization.
1657
+ #
1658
+ # @param language_pack_id [String] Language pack identifier.
1659
+ # @return [TD::Types::LanguagePackInfo]
1660
+ def get_language_pack_info(language_pack_id)
1661
+ broadcast('@type' => 'getLanguagePackInfo',
1662
+ 'language_pack_id' => language_pack_id)
1663
+ end
1664
+
1470
1665
  # Returns a string stored in the local database from the specified localization target and language pack by its key.
1471
1666
  # Returns a 404 error if the string is not found.
1472
1667
  # This is an offline method.
@@ -1487,6 +1682,7 @@ module TD::ClientMethods
1487
1682
  end
1488
1683
 
1489
1684
  # Returns strings from a language pack in the current localization target by their keys.
1685
+ # Can be called before authorization.
1490
1686
  #
1491
1687
  # @param language_pack_id [String] Language pack identifier of the strings to be returned.
1492
1688
  # @param keys [Array<String>] Language pack keys of the strings to be returned; leave empty to request all available
@@ -1500,14 +1696,58 @@ module TD::ClientMethods
1500
1696
 
1501
1697
  # Returns information about the current localization target.
1502
1698
  # This is an offline request if only_local is true.
1699
+ # Can be called before authorization.
1503
1700
  #
1504
1701
  # @param only_local [Boolean] If true, returns only locally available information without sending network requests.
1505
1702
  # @return [TD::Types::LocalizationTargetInfo]
1506
- def get_localization_target_info(only_local = false)
1703
+ def get_localization_target_info(only_local)
1507
1704
  broadcast('@type' => 'getLocalizationTargetInfo',
1508
1705
  'only_local' => only_local)
1509
1706
  end
1510
1707
 
1708
+ # Returns information about currently used log stream for internal logging of TDLib.
1709
+ # This is an offline method.
1710
+ # Can be called before authorization.
1711
+ # Can be called synchronously.
1712
+ #
1713
+ # @return [TD::Types::LogStream]
1714
+ def get_log_stream
1715
+ broadcast('@type' => 'getLogStream')
1716
+ end
1717
+
1718
+ # Returns current verbosity level for a specified TDLib internal log tag.
1719
+ # This is an offline method.
1720
+ # Can be called before authorization.
1721
+ # Can be called synchronously.
1722
+ #
1723
+ # @param tag [String] Logging tag to change verbosity level.
1724
+ # @return [TD::Types::LogVerbosityLevel]
1725
+ def get_log_tag_verbosity_level(tag)
1726
+ broadcast('@type' => 'getLogTagVerbosityLevel',
1727
+ 'tag' => tag)
1728
+ end
1729
+
1730
+ # Returns list of available TDLib internal log tags, for example, ["actor", "binlog", "connections", "notifications",
1731
+ # "proxy"].
1732
+ # This is an offline method.
1733
+ # Can be called before authorization.
1734
+ # Can be called synchronously.
1735
+ #
1736
+ # @return [TD::Types::LogTags]
1737
+ def get_log_tags
1738
+ broadcast('@type' => 'getLogTags')
1739
+ end
1740
+
1741
+ # Returns current verbosity level of the internal logging of TDLib.
1742
+ # This is an offline method.
1743
+ # Can be called before authorization.
1744
+ # Can be called synchronously.
1745
+ #
1746
+ # @return [TD::Types::LogVerbosityLevel]
1747
+ def get_log_verbosity_level
1748
+ broadcast('@type' => 'getLogVerbosityLevel')
1749
+ end
1750
+
1511
1751
  # Returns information about a file with a map thumbnail in PNG format.
1512
1752
  # Only map thumbnail files with size less than 1MB can be downloaded.
1513
1753
  #
@@ -1519,7 +1759,7 @@ module TD::ClientMethods
1519
1759
  # @param chat_id [Integer] Identifier of a chat, in which the thumbnail will be shown.
1520
1760
  # Use 0 if unknown.
1521
1761
  # @return [TD::Types::File]
1522
- def get_map_thumbnail_file(location, zoom = 13, width = 1024, height = 1024, scale = 1, chat_id: 0)
1762
+ def get_map_thumbnail_file(location, zoom, width, height, scale, chat_id)
1523
1763
  broadcast('@type' => 'getMapThumbnailFile',
1524
1764
  'location' => location,
1525
1765
  'zoom' => zoom,
@@ -1547,8 +1787,43 @@ module TD::ClientMethods
1547
1787
  'message_id' => message_id)
1548
1788
  end
1549
1789
 
1790
+ # Returns a private HTTPS link to a message in a chat.
1791
+ # Available only for already sent messages in supergroups and channels.
1792
+ # The link will work only for members of the chat.
1793
+ #
1794
+ # @param chat_id [Integer] Identifier of the chat to which the message belongs.
1795
+ # @param message_id [Integer] Identifier of the message.
1796
+ # @return [TD::Types::HttpUrl]
1797
+ def get_message_link(chat_id, message_id)
1798
+ broadcast('@type' => 'getMessageLink',
1799
+ 'chat_id' => chat_id,
1800
+ 'message_id' => message_id)
1801
+ end
1802
+
1803
+ # Returns information about a public or private message link.
1804
+ #
1805
+ # @param url [String] The message link in the format "https://t.me/c/...", or "tg://privatepost?...", or
1806
+ # "https://t.me/username/...", or "tg://resolve?...".
1807
+ # @return [TD::Types::MessageLinkInfo]
1808
+ def get_message_link_info(url)
1809
+ broadcast('@type' => 'getMessageLinkInfo',
1810
+ 'url' => url)
1811
+ end
1812
+
1813
+ # Returns information about a message, if it is available locally without sending network request.
1814
+ # This is an offline request.
1815
+ #
1816
+ # @param chat_id [Integer] Identifier of the chat the message belongs to.
1817
+ # @param message_id [Integer] Identifier of the message to get.
1818
+ # @return [TD::Types::Message]
1819
+ def get_message_locally(chat_id, message_id)
1820
+ broadcast('@type' => 'getMessageLocally',
1821
+ 'chat_id' => chat_id,
1822
+ 'message_id' => message_id)
1823
+ end
1824
+
1550
1825
  # Returns information about messages.
1551
- # If a message is not found, returns nil on the corresponding position of the result.
1826
+ # If a message is not found, returns null on the corresponding position of the result.
1552
1827
  #
1553
1828
  # @param chat_id [Integer] Identifier of the chat the messages belong to.
1554
1829
  # @param message_ids [Array<Integer>] Identifiers of the messages to get.
@@ -1564,16 +1839,16 @@ module TD::ClientMethods
1564
1839
  #
1565
1840
  # @param only_current [Boolean] If true, returns only data for the current library launch.
1566
1841
  # @return [TD::Types::NetworkStatistics]
1567
- def get_network_statistics(only_current = false)
1842
+ def get_network_statistics(only_current)
1568
1843
  broadcast('@type' => 'getNetworkStatistics',
1569
1844
  'only_current' => only_current)
1570
1845
  end
1571
1846
 
1572
1847
  # Returns the value of an option by its name.
1573
- # Can be called before authorization.
1848
+ # (Check the list of available options on https://core.telegram.org/tdlib/options.) Can be called before
1849
+ # authorization.
1574
1850
  #
1575
1851
  # @param name [String] The name of the option.
1576
- # @see https://core.telegram.org/tdlib/options List of available options
1577
1852
  # @return [TD::Types::OptionValue]
1578
1853
  def get_option(name)
1579
1854
  broadcast('@type' => 'getOption',
@@ -1586,15 +1861,26 @@ module TD::ClientMethods
1586
1861
  # @param scope [String] Telegram Passport element types requested by the service.
1587
1862
  # @param public_key [String] Service's public_key.
1588
1863
  # @param nonce [String] Authorization form nonce provided by the service.
1589
- # @param password [String] Password of the current user.
1590
1864
  # @return [TD::Types::PassportAuthorizationForm]
1591
- def get_passport_authorization_form(bot_user_id, scope, public_key, nonce, password)
1865
+ def get_passport_authorization_form(bot_user_id, scope, public_key, nonce)
1592
1866
  broadcast('@type' => 'getPassportAuthorizationForm',
1593
1867
  'bot_user_id' => bot_user_id,
1594
1868
  'scope' => scope,
1595
1869
  'public_key' => public_key,
1596
- 'nonce' => nonce,
1597
- 'password' => password)
1870
+ 'nonce' => nonce)
1871
+ end
1872
+
1873
+ # Returns already available Telegram Passport elements suitable for completing a Telegram Passport authorization
1874
+ # form.
1875
+ # Result can be received only once for each authorization form.
1876
+ #
1877
+ # @param autorization_form_id [Integer] Authorization form identifier.
1878
+ # @param password [String] Password of the current user.
1879
+ # @return [TD::Types::PassportElementsWithErrors]
1880
+ def get_passport_authorization_form_available_elements(autorization_form_id, password)
1881
+ broadcast('@type' => 'getPassportAuthorizationFormAvailableElements',
1882
+ 'autorization_form_id' => autorization_form_id,
1883
+ 'password' => password)
1598
1884
  end
1599
1885
 
1600
1886
  # Returns one of the available Telegram Passport elements.
@@ -1616,7 +1902,7 @@ module TD::ClientMethods
1616
1902
  end
1617
1903
 
1618
1904
  # Returns an invoice payment form.
1619
- # This method should be called when the user presses {TD::Types::InlineKeyboardButton::Buy}.
1905
+ # This method should be called when the user presses inlineKeyboardButtonBuy.
1620
1906
  #
1621
1907
  # @param chat_id [Integer] Chat identifier of the Invoice message.
1622
1908
  # @param message_id [Integer] Message identifier.
@@ -1669,19 +1955,32 @@ module TD::ClientMethods
1669
1955
  end
1670
1956
 
1671
1957
  # Returns a public HTTPS link to a message.
1672
- # Available only for messages in public supergroups and channels.
1958
+ # Available only for messages in supergroups and channels with username.
1673
1959
  #
1674
1960
  # @param chat_id [Integer] Identifier of the chat to which the message belongs.
1675
1961
  # @param message_id [Integer] Identifier of the message.
1676
1962
  # @param for_album [Boolean] Pass true if a link for a whole media album should be returned.
1677
1963
  # @return [TD::Types::PublicMessageLink]
1678
- def get_public_message_link(chat_id, message_id, for_album: false)
1964
+ def get_public_message_link(chat_id, message_id, for_album)
1679
1965
  broadcast('@type' => 'getPublicMessageLink',
1680
1966
  'chat_id' => chat_id,
1681
1967
  'message_id' => message_id,
1682
1968
  'for_album' => for_album)
1683
1969
  end
1684
1970
 
1971
+ # Returns a globally unique push notification subscription identifier for identification of an account, which has
1972
+ # received a push notification.
1973
+ # This is an offline method.
1974
+ # Can be called before authorization.
1975
+ # Can be called synchronously.
1976
+ #
1977
+ # @param payload [String] JSON-encoded push notification payload.
1978
+ # @return [TD::Types::PushReceiverId]
1979
+ def get_push_receiver_id(payload)
1980
+ broadcast('@type' => 'getPushReceiverId',
1981
+ 'payload' => payload)
1982
+ end
1983
+
1685
1984
  # Returns up to 20 recently used inline bots in the order of their last usage.
1686
1985
  #
1687
1986
  # @return [TD::Types::Users]
@@ -1694,7 +1993,7 @@ module TD::ClientMethods
1694
1993
  # @param is_attached [Boolean] Pass true to return stickers and masks that were recently attached to photos or video
1695
1994
  # files; pass false to return recently sent stickers.
1696
1995
  # @return [TD::Types::Stickers]
1697
- def get_recent_stickers(is_attached = false)
1996
+ def get_recent_stickers(is_attached)
1698
1997
  broadcast('@type' => 'getRecentStickers',
1699
1998
  'is_attached' => is_attached)
1700
1999
  end
@@ -1708,7 +2007,7 @@ module TD::ClientMethods
1708
2007
  'referrer' => referrer)
1709
2008
  end
1710
2009
 
1711
- # Returns a recovery email address that was previously set up.
2010
+ # Returns a 2-step verification recovery email address that was previously set up.
1712
2011
  # This method can be used to verify a password provided by the user.
1713
2012
  #
1714
2013
  # @param password [String] The password for the current user.
@@ -1722,9 +2021,9 @@ module TD::ClientMethods
1722
2021
  # Can be used to register a URL as a file for further uploading, or sending as a message.
1723
2022
  #
1724
2023
  # @param remote_file_id [String] Remote identifier of the file to get.
1725
- # @param file_type [TD::Types::FileType, nil] File type, if known.
2024
+ # @param file_type [TD::Types::FileType] File type, if known.
1726
2025
  # @return [TD::Types::File]
1727
- def get_remote_file(remote_file_id, file_type = nil)
2026
+ def get_remote_file(remote_file_id, file_type)
1728
2027
  broadcast('@type' => 'getRemoteFile',
1729
2028
  'remote_file_id' => remote_file_id,
1730
2029
  'file_type' => file_type)
@@ -1776,9 +2075,11 @@ module TD::ClientMethods
1776
2075
  end
1777
2076
 
1778
2077
  # Returns emoji corresponding to a sticker.
2078
+ # The list is only for informational purposes, because a sticker is always sent with a fixed emoji from the
2079
+ # corresponding Sticker object.
1779
2080
  #
1780
2081
  # @param sticker [TD::Types::InputFile] Sticker file identifier.
1781
- # @return [TD::Types::StickerEmojis]
2082
+ # @return [TD::Types::Emojis]
1782
2083
  def get_sticker_emojis(sticker)
1783
2084
  broadcast('@type' => 'getStickerEmojis',
1784
2085
  'sticker' => sticker)
@@ -1800,13 +2101,14 @@ module TD::ClientMethods
1800
2101
  # If empty, returns all known installed stickers.
1801
2102
  # @param limit [Integer] Maximum number of stickers to be returned.
1802
2103
  # @return [TD::Types::Stickers]
1803
- def get_stickers(emoji, limit = 100)
2104
+ def get_stickers(emoji, limit)
1804
2105
  broadcast('@type' => 'getStickers',
1805
2106
  'emoji' => emoji,
1806
2107
  'limit' => limit)
1807
2108
  end
1808
2109
 
1809
2110
  # Returns storage usage statistics.
2111
+ # Can be called before authorization.
1810
2112
  #
1811
2113
  # @param chat_limit [Integer] Maximum number of chats with the largest storage usage for which separate statistics
1812
2114
  # should be returned.
@@ -1819,6 +2121,7 @@ module TD::ClientMethods
1819
2121
  end
1820
2122
 
1821
2123
  # Quickly returns approximate storage usage statistics.
2124
+ # Can be called before authorization.
1822
2125
  #
1823
2126
  # @return [TD::Types::StorageStatisticsFast]
1824
2127
  def get_storage_statistics_fast
@@ -1850,7 +2153,7 @@ module TD::ClientMethods
1850
2153
  #
1851
2154
  # @param supergroup_id [Integer] Identifier of the supergroup or channel.
1852
2155
  # @param filter [TD::Types::SupergroupMembersFilter] The type of users to return.
1853
- # By default, {TD::Types::SupergroupMembersFilter::Recent}.
2156
+ # By default, supergroupMembersRecent.
1854
2157
  # @param offset [Integer] Number of users to skip.
1855
2158
  # @param limit [Integer] The maximum number of users be returned; up to 200.
1856
2159
  # @return [TD::Types::ChatMembers]
@@ -1894,7 +2197,7 @@ module TD::ClientMethods
1894
2197
  # @param category [TD::Types::TopChatCategory] Category of chats to be returned.
1895
2198
  # @param limit [Integer] Maximum number of chats to be returned; up to 30.
1896
2199
  # @return [TD::Types::Chats]
1897
- def get_top_chats(category, limit = 30)
2200
+ def get_top_chats(category, limit)
1898
2201
  broadcast('@type' => 'getTopChats',
1899
2202
  'category' => category,
1900
2203
  'limit' => limit)
@@ -1942,27 +2245,20 @@ module TD::ClientMethods
1942
2245
  # @param offset [Integer] The number of photos to skip; must be non-negative.
1943
2246
  # @param limit [Integer] Maximum number of photos to be returned; up to 100.
1944
2247
  # @return [TD::Types::UserProfilePhotos]
1945
- def get_user_profile_photos(user_id, offset = 0, limit = 100)
2248
+ def get_user_profile_photos(user_id, offset, limit)
1946
2249
  broadcast('@type' => 'getUserProfilePhotos',
1947
2250
  'user_id' => user_id,
1948
2251
  'offset' => offset,
1949
2252
  'limit' => limit)
1950
2253
  end
1951
2254
 
1952
- # Returns background wallpapers.
1953
- #
1954
- # @return [TD::Types::Wallpapers]
1955
- def get_wallpapers
1956
- broadcast('@type' => 'getWallpapers')
1957
- end
1958
-
1959
2255
  # Returns an instant view version of a web page if available.
1960
2256
  # Returns a 404 error if the web page has no instant view page.
1961
2257
  #
1962
2258
  # @param url [String] The web page URL.
1963
2259
  # @param force_full [Boolean] If true, the full instant view for the web page will be returned.
1964
2260
  # @return [TD::Types::WebPageInstantView]
1965
- def get_web_page_instant_view(url, force_full = false)
2261
+ def get_web_page_instant_view(url, force_full)
1966
2262
  broadcast('@type' => 'getWebPageInstantView',
1967
2263
  'url' => url,
1968
2264
  'force_full' => force_full)
@@ -2023,15 +2319,14 @@ module TD::ClientMethods
2023
2319
  # Closes the TDLib instance after a proper logout.
2024
2320
  # Requires an available network connection.
2025
2321
  # All local data will be destroyed.
2026
- # After the logout completes, {TD::Types::Update::AuthorizationState} with {TD::Types::AuthorizationState::Closed}
2027
- # will be sent.
2322
+ # After the logout completes, updateAuthorizationState with authorizationStateClosed will be sent.
2028
2323
  #
2029
2324
  # @return [TD::Types::Ok]
2030
2325
  def log_out
2031
2326
  broadcast('@type' => 'logOut')
2032
2327
  end
2033
2328
 
2034
- # This method should be called if the chat is opened by the user.
2329
+ # Informs TDLib that the chat is opened by the user.
2035
2330
  # Many useful activities depend on the chat being opened or closed (e.g., in supergroups and channels all updates are
2036
2331
  # received only for opened chats).
2037
2332
  #
@@ -2042,9 +2337,9 @@ module TD::ClientMethods
2042
2337
  'chat_id' => chat_id)
2043
2338
  end
2044
2339
 
2045
- # This method should be called if the message content has been opened (e.g., the user has opened a photo, video,
2046
- # document, location or venue, or has listened to an audio file or voice note message).
2047
- # An {TD::Types::Update::MessageContentOpened} will be generated if something has changed.
2340
+ # Informs TDLib that the message content has been opened (e.g., the user has opened a photo, video, document,
2341
+ # location or venue, or has listened to an audio file or voice note message).
2342
+ # An updateMessageContentOpened update will be generated if something has changed.
2048
2343
  #
2049
2344
  # @param chat_id [Integer] Chat identifier of the message.
2050
2345
  # @param message_id [Integer] Identifier of the message with the opened content.
@@ -2055,7 +2350,8 @@ module TD::ClientMethods
2055
2350
  'message_id' => message_id)
2056
2351
  end
2057
2352
 
2058
- # Optimizes storage usage, i.e. deletes some files and returns new storage usage statistics.
2353
+ # Optimizes storage usage, i.e.
2354
+ # deletes some files and returns new storage usage statistics.
2059
2355
  # Secret thumbnails can't be deleted.
2060
2356
  #
2061
2357
  # @param size [Integer] Limit on the total size of files after deletion.
@@ -2068,17 +2364,16 @@ module TD::ClientMethods
2068
2364
  # @param immunity_delay [Integer] The amount of time after the creation of a file during which it can't be deleted,
2069
2365
  # in seconds.
2070
2366
  # Pass -1 to use the default value.
2071
- # @param file_types [Array<TD::Types::FileType>, nil] If not empty, only files with the given type(s) are considered.
2367
+ # @param file_types [Array<TD::Types::FileType>] If not empty, only files with the given type(s) are considered.
2072
2368
  # By default, all types except thumbnails, profile photos, stickers and wallpapers are deleted.
2073
- # @param chat_ids [Array<Integer>, nil] If not empty, only files from the given chats are considered.
2369
+ # @param chat_ids [Array<Integer>] If not empty, only files from the given chats are considered.
2074
2370
  # Use 0 as chat identifier to delete files not belonging to any chat (e.g., profile photos).
2075
- # @param exclude_chat_ids [Array<Integer>, nil] If not empty, files from the given chats are excluded.
2371
+ # @param exclude_chat_ids [Array<Integer>] If not empty, files from the given chats are excluded.
2076
2372
  # Use 0 as chat identifier to exclude all files not belonging to any chat (e.g., profile photos).
2077
- # @param chat_limit [Integer, nil] Same as in {#get_storage_statistics}.
2373
+ # @param chat_limit [Integer] Same as in getStorageStatistics.
2078
2374
  # Affects only returned statistics.
2079
2375
  # @return [TD::Types::StorageStatistics]
2080
- def optimize_storage(size: -1, ttl: -1, count: -1, immunity_delay: -1,
2081
- file_types: nil, chat_ids: nil, exclude_chat_ids: nil, chat_limit: nil)
2376
+ def optimize_storage(size, ttl, count, immunity_delay, file_types, chat_ids, exclude_chat_ids, chat_limit)
2082
2377
  broadcast('@type' => 'optimizeStorage',
2083
2378
  'size' => size,
2084
2379
  'ttl' => ttl,
@@ -2104,15 +2399,15 @@ module TD::ClientMethods
2104
2399
  'parse_mode' => parse_mode)
2105
2400
  end
2106
2401
 
2107
- # Pins a message in a supergroup or channel; requires appropriate administrator rights in the supergroup or channel.
2402
+ # Pins a message in a chat; requires can_pin_messages rights.
2108
2403
  #
2109
- # @param supergroup_id [Integer] Identifier of the supergroup or channel.
2404
+ # @param chat_id [Integer] Identifier of the chat.
2110
2405
  # @param message_id [Integer] Identifier of the new pinned message.
2111
2406
  # @param disable_notification [Boolean] True, if there should be no notification about the pinned message.
2112
2407
  # @return [TD::Types::Ok]
2113
- def pin_supergroup_message(supergroup_id, message_id, disable_notification: false)
2114
- broadcast('@type' => 'pinSupergroupMessage',
2115
- 'supergroup_id' => supergroup_id,
2408
+ def pin_chat_message(chat_id, message_id, disable_notification)
2409
+ broadcast('@type' => 'pinChatMessage',
2410
+ 'chat_id' => chat_id,
2116
2411
  'message_id' => message_id,
2117
2412
  'disable_notification' => disable_notification)
2118
2413
  end
@@ -2128,16 +2423,17 @@ module TD::ClientMethods
2128
2423
  'proxy_id' => proxy_id)
2129
2424
  end
2130
2425
 
2131
- # Handles a DC_UPDATE push service notification.
2426
+ # Handles a push notification.
2427
+ # Returns error with code 406 if the push notification is not supported and connection to the server is required to
2428
+ # fetch new data.
2132
2429
  # Can be called before authorization.
2133
2430
  #
2134
- # @param dc [String] Value of the "dc" parameter of the notification.
2135
- # @param addr [String] Value of the "addr" parameter of the notification.
2431
+ # @param payload [String] JSON-encoded push notification payload with all fields sent by the server, and
2432
+ # "google.sent_time" and "google.notification.sound" fields added.
2136
2433
  # @return [TD::Types::Ok]
2137
- def process_dc_update(dc, addr)
2138
- broadcast('@type' => 'processDcUpdate',
2139
- 'dc' => dc,
2140
- 'addr' => addr)
2434
+ def process_push_notification(payload)
2435
+ broadcast('@type' => 'processPushNotification',
2436
+ 'payload' => payload)
2141
2437
  end
2142
2438
 
2143
2439
  # Marks all mentions in a chat as read.
@@ -2149,8 +2445,26 @@ module TD::ClientMethods
2149
2445
  'chat_id' => chat_id)
2150
2446
  end
2151
2447
 
2448
+ # Reads a part of a file from the TDLib file cache and returns read bytes.
2449
+ # This method is intended to be used only if the client has no direct access to TDLib's file system, because it is
2450
+ # usually slower than a direct read from the file.
2451
+ #
2452
+ # @param file_id [Integer] Identifier of the file.
2453
+ # The file must be located in the TDLib file cache.
2454
+ # @param offset [Integer] The offset from which to read the file.
2455
+ # @param count [Integer] Number of bytes to read.
2456
+ # An error will be returned if there are not enough bytes available in the file from the specified position.
2457
+ # Pass 0 to read all available data from the specified position.
2458
+ # @return [TD::Types::FilePart]
2459
+ def read_file_part(file_id, offset, count)
2460
+ broadcast('@type' => 'readFilePart',
2461
+ 'file_id' => file_id,
2462
+ 'offset' => offset,
2463
+ 'count' => count)
2464
+ end
2465
+
2152
2466
  # Recovers the password with a password recovery code sent to an email address that was previously set up.
2153
- # Works only when the current authorization state is {TD::Types::AuthorizationState::WaitPassword}.
2467
+ # Works only when the current authorization state is authorizationStateWaitPassword.
2154
2468
  #
2155
2469
  # @param recovery_code [String] Recovery code to check.
2156
2470
  # @return [TD::Types::Ok]
@@ -2169,18 +2483,39 @@ module TD::ClientMethods
2169
2483
  end
2170
2484
 
2171
2485
  # Registers the currently used device for receiving push notifications.
2486
+ # Returns a globally unique identifier of the push notification subscription.
2172
2487
  #
2173
2488
  # @param device_token [TD::Types::DeviceToken] Device token.
2174
- # @param other_user_ids [Array<Integer>] List of at most 100 user identifiers of other users currently using the
2175
- # client.
2176
- # @return [TD::Types::Ok]
2177
- def register_device(device_token, other_user_ids = [])
2489
+ # @param other_user_ids [Array<Integer>] List of user identifiers of other users currently using the client.
2490
+ # @return [TD::Types::PushReceiverId]
2491
+ def register_device(device_token, other_user_ids)
2178
2492
  broadcast('@type' => 'registerDevice',
2179
2493
  'device_token' => device_token,
2180
2494
  'other_user_ids' => other_user_ids)
2181
2495
  end
2182
2496
 
2183
- # Removes users from the contacts list.
2497
+ # Finishes user registration.
2498
+ # Works only when the current authorization state is authorizationStateWaitRegistration.
2499
+ #
2500
+ # @param first_name [String] The first name of the user; 1-64 characters.
2501
+ # @param last_name [String] The last name of the user; 0-64 characters.
2502
+ # @return [TD::Types::Ok]
2503
+ def register_user(first_name, last_name)
2504
+ broadcast('@type' => 'registerUser',
2505
+ 'first_name' => first_name,
2506
+ 'last_name' => last_name)
2507
+ end
2508
+
2509
+ # Removes background from the list of installed backgrounds.
2510
+ #
2511
+ # @param background_id [Integer] The background indentifier.
2512
+ # @return [TD::Types::Ok]
2513
+ def remove_background(background_id)
2514
+ broadcast('@type' => 'removeBackground',
2515
+ 'background_id' => background_id)
2516
+ end
2517
+
2518
+ # Removes users from the contact list.
2184
2519
  #
2185
2520
  # @param user_ids [Array<Integer>] Identifiers of users to be deleted.
2186
2521
  # @return [TD::Types::Ok]
@@ -2198,6 +2533,30 @@ module TD::ClientMethods
2198
2533
  'sticker' => sticker)
2199
2534
  end
2200
2535
 
2536
+ # Removes an active notification from notification list.
2537
+ # Needs to be called only if the notification is removed by the current user.
2538
+ #
2539
+ # @param notification_group_id [Integer] Identifier of notification group to which the notification belongs.
2540
+ # @param notification_id [Integer] Identifier of removed notification.
2541
+ # @return [TD::Types::Ok]
2542
+ def remove_notification(notification_group_id, notification_id)
2543
+ broadcast('@type' => 'removeNotification',
2544
+ 'notification_group_id' => notification_group_id,
2545
+ 'notification_id' => notification_id)
2546
+ end
2547
+
2548
+ # Removes a group of active notifications.
2549
+ # Needs to be called only if the notification group is removed by the current user.
2550
+ #
2551
+ # @param notification_group_id [Integer] Notification group identifier.
2552
+ # @param max_notification_id [Integer] Maximum identifier of removed notifications.
2553
+ # @return [TD::Types::Ok]
2554
+ def remove_notification_group(notification_group_id, max_notification_id)
2555
+ broadcast('@type' => 'removeNotificationGroup',
2556
+ 'notification_group_id' => notification_group_id,
2557
+ 'max_notification_id' => max_notification_id)
2558
+ end
2559
+
2201
2560
  # Removes a proxy server.
2202
2561
  # Can be called before authorization.
2203
2562
  #
@@ -2223,7 +2582,7 @@ module TD::ClientMethods
2223
2582
  # or video files; pass false to remove the sticker from the list of recently sent stickers.
2224
2583
  # @param sticker [TD::Types::InputFile] Sticker file to delete.
2225
2584
  # @return [TD::Types::Ok]
2226
- def remove_recent_sticker(sticker, is_attached: false)
2585
+ def remove_recent_sticker(is_attached, sticker)
2227
2586
  broadcast('@type' => 'removeRecentSticker',
2228
2587
  'is_attached' => is_attached,
2229
2588
  'sticker' => sticker)
@@ -2275,7 +2634,7 @@ module TD::ClientMethods
2275
2634
  # ordinary sticker sets.
2276
2635
  # @param sticker_set_ids [Array<Integer>] Identifiers of installed sticker sets in the new correct order.
2277
2636
  # @return [TD::Types::Ok]
2278
- def reorder_installed_sticker_sets(sticker_set_ids, is_masks: false)
2637
+ def reorder_installed_sticker_sets(is_masks, sticker_set_ids)
2279
2638
  broadcast('@type' => 'reorderInstalledStickerSets',
2280
2639
  'is_masks' => is_masks,
2281
2640
  'sticker_set_ids' => sticker_set_ids)
@@ -2289,7 +2648,7 @@ module TD::ClientMethods
2289
2648
  # @param reason [TD::Types::ChatReportReason] The reason for reporting the chat.
2290
2649
  # @param message_ids [Array<Integer>] Identifiers of reported messages, if any.
2291
2650
  # @return [TD::Types::Ok]
2292
- def report_chat(chat_id, reason, message_ids = [])
2651
+ def report_chat(chat_id, reason, message_ids)
2293
2652
  broadcast('@type' => 'reportChat',
2294
2653
  'chat_id' => chat_id,
2295
2654
  'reason' => reason,
@@ -2303,7 +2662,7 @@ module TD::ClientMethods
2303
2662
  # @param message_ids [Array<Integer>] Identifiers of messages sent in the supergroup by the user.
2304
2663
  # This list must be non-empty.
2305
2664
  # @return [TD::Types::Ok]
2306
- def report_supergroup_spam(supergroup_id, user_id, message_ids = [])
2665
+ def report_supergroup_spam(supergroup_id, user_id, message_ids)
2307
2666
  broadcast('@type' => 'reportSupergroupSpam',
2308
2667
  'supergroup_id' => supergroup_id,
2309
2668
  'user_id' => user_id,
@@ -2311,7 +2670,7 @@ module TD::ClientMethods
2311
2670
  end
2312
2671
 
2313
2672
  # Requests to send a password recovery code to an email address that was previously set up.
2314
- # Works only when the current authorization state is {TD::Types::AuthorizationState::WaitPassword}.
2673
+ # Works only when the current authorization state is authorizationStateWaitPassword.
2315
2674
  #
2316
2675
  # @return [TD::Types::Ok]
2317
2676
  def request_authentication_password_recovery
@@ -2326,8 +2685,8 @@ module TD::ClientMethods
2326
2685
  end
2327
2686
 
2328
2687
  # Re-sends an authentication code to the user.
2329
- # Works only when the current authorization state is {TD::Types::AuthorizationState::WaitCode} and the
2330
- # {TD::Types::AuthenticationCodeInfo#next_type} of the result is not nil.
2688
+ # Works only when the current authorization state is authorizationStateWaitCode and the next_code_type of the result
2689
+ # is not null.
2331
2690
  #
2332
2691
  # @return [TD::Types::Ok]
2333
2692
  def resend_authentication_code
@@ -2335,7 +2694,7 @@ module TD::ClientMethods
2335
2694
  end
2336
2695
 
2337
2696
  # Re-sends the authentication code sent to confirm a new phone number for the user.
2338
- # Works only if the previously received {TD::Types::AuthenticationCodeInfo#next_type} was not nil.
2697
+ # Works only if the previously received authenticationCodeInfo next_code_type was not null.
2339
2698
  #
2340
2699
  # @return [TD::Types::AuthenticationCodeInfo]
2341
2700
  def resend_change_phone_number_code
@@ -2349,6 +2708,23 @@ module TD::ClientMethods
2349
2708
  broadcast('@type' => 'resendEmailAddressVerificationCode')
2350
2709
  end
2351
2710
 
2711
+ # Resends messages which failed to send.
2712
+ # Can be called only for messages for which messageSendingStateFailed.can_retry is true and after specified in
2713
+ # messageSendingStateFailed.retry_after time passed.
2714
+ # If a message is re-sent, the corresponding failed to send message is deleted.
2715
+ # Returns the sent messages in the same order as the message identifiers passed in message_ids.
2716
+ # If a message can't be re-sent, null will be returned instead of the message.
2717
+ #
2718
+ # @param chat_id [Integer] Identifier of the chat to send messages.
2719
+ # @param message_ids [Array<Integer>] Identifiers of the messages to resend.
2720
+ # Message identifiers must be in a strictly increasing order.
2721
+ # @return [TD::Types::Messages]
2722
+ def resend_messages(chat_id, message_ids)
2723
+ broadcast('@type' => 'resendMessages',
2724
+ 'chat_id' => chat_id,
2725
+ 'message_ids' => message_ids)
2726
+ end
2727
+
2352
2728
  # Resends phone number confirmation code.
2353
2729
  #
2354
2730
  # @return [TD::Types::AuthenticationCodeInfo]
@@ -2363,6 +2739,13 @@ module TD::ClientMethods
2363
2739
  broadcast('@type' => 'resendPhoneNumberVerificationCode')
2364
2740
  end
2365
2741
 
2742
+ # Resends the 2-step verification recovery email address verification code.
2743
+ #
2744
+ # @return [TD::Types::PasswordState]
2745
+ def resend_recovery_email_address_code
2746
+ broadcast('@type' => 'resendRecoveryEmailAddressCode')
2747
+ end
2748
+
2366
2749
  # Resets all notification settings to their default values.
2367
2750
  # By default, all chats are unmuted, the sound is set to "default" and message previews are shown.
2368
2751
  #
@@ -2371,6 +2754,13 @@ module TD::ClientMethods
2371
2754
  broadcast('@type' => 'resetAllNotificationSettings')
2372
2755
  end
2373
2756
 
2757
+ # Resets list of installed backgrounds to its default value.
2758
+ #
2759
+ # @return [TD::Types::Ok]
2760
+ def reset_backgrounds
2761
+ broadcast('@type' => 'resetBackgrounds')
2762
+ end
2763
+
2374
2764
  # Resets all network data usage statistics to zero.
2375
2765
  # Can be called before authorization.
2376
2766
  #
@@ -2379,8 +2769,32 @@ module TD::ClientMethods
2379
2769
  broadcast('@type' => 'resetNetworkStatistics')
2380
2770
  end
2381
2771
 
2772
+ # Saves application log event on the server.
2773
+ # Can be called before authorization.
2774
+ #
2775
+ # @param type [String] Event type.
2776
+ # @param chat_id [Integer] Optional chat identifier, associated with the event.
2777
+ # @param data [TD::Types::JsonValue] The log event data.
2778
+ # @return [TD::Types::Ok]
2779
+ def save_application_log_event(type, chat_id, data)
2780
+ broadcast('@type' => 'saveApplicationLogEvent',
2781
+ 'type' => type,
2782
+ 'chat_id' => chat_id,
2783
+ 'data' => data)
2784
+ end
2785
+
2786
+ # Searches for a background by its name.
2787
+ #
2788
+ # @param name [String] The name of the background.
2789
+ # @return [TD::Types::Background]
2790
+ def search_background(name)
2791
+ broadcast('@type' => 'searchBackground',
2792
+ 'name' => name)
2793
+ end
2794
+
2382
2795
  # Searches for call messages.
2383
- # Returns the results in reverse chronological order (i.e., in order of decreasing message_id).
2796
+ # Returns the results in reverse chronological order (i.
2797
+ # e., in order of decreasing message_id).
2384
2798
  # For optimal performance the number of returned messages is chosen by the library.
2385
2799
  #
2386
2800
  # @param from_message_id [Integer] Identifier of the message from which to search; use 0 to get results from the last
@@ -2390,7 +2804,7 @@ module TD::ClientMethods
2390
2804
  # reached.
2391
2805
  # @param only_missed [Boolean] If true, returns only messages with missed calls.
2392
2806
  # @return [TD::Types::Messages]
2393
- def search_call_messages(from_message_id, limit = 100, only_missed: false)
2807
+ def search_call_messages(from_message_id, limit, only_missed)
2394
2808
  broadcast('@type' => 'searchCallMessages',
2395
2809
  'from_message_id' => from_message_id,
2396
2810
  'limit' => limit,
@@ -2401,12 +2815,12 @@ module TD::ClientMethods
2401
2815
  # Requires administrator rights in channels.
2402
2816
  #
2403
2817
  # @param chat_id [Integer] Chat identifier.
2404
- # @param query [String, nil] Query to search for.
2818
+ # @param query [String] Query to search for.
2405
2819
  # @param limit [Integer] The maximum number of users to be returned.
2406
2820
  # @param filter [TD::Types::ChatMembersFilter] The type of users to return.
2407
- # By default, {TD::Types::ChatMembersFilter::Members}.
2821
+ # By default, chatMembersFilterMembers.
2408
2822
  # @return [TD::Types::ChatMembers]
2409
- def search_chat_members(chat_id, limit = 100, query: nil, filter: ChatMembersFilter::Members.new)
2823
+ def search_chat_members(chat_id, query, limit, filter)
2410
2824
  broadcast('@type' => 'searchChatMembers',
2411
2825
  'chat_id' => chat_id,
2412
2826
  'query' => query,
@@ -2415,13 +2829,14 @@ module TD::ClientMethods
2415
2829
  end
2416
2830
 
2417
2831
  # Searches for messages with given words in the chat.
2418
- # Returns the results in reverse chronological order, i.e. in order of decreasing message_id.
2832
+ # Returns the results in reverse chronological order, i.e.
2833
+ # in order of decreasing message_id.
2419
2834
  # Cannot be used in secret chats with a non-empty query (searchSecretMessages should be used instead), or without an
2420
2835
  # enabled message database.
2421
2836
  # For optimal performance the number of returned messages is chosen by the library.
2422
2837
  #
2423
2838
  # @param chat_id [Integer] Identifier of the chat in which to search messages.
2424
- # @param query [String, nil] Query to search for.
2839
+ # @param query [String] Query to search for.
2425
2840
  # @param sender_user_id [Integer] If not 0, only messages sent by the specified user will be returned.
2426
2841
  # Not supported in secret chats.
2427
2842
  # @param from_message_id [Integer] Identifier of the message starting from which history must be fetched; use 0 to
@@ -2435,8 +2850,7 @@ module TD::ClientMethods
2435
2850
  # reached.
2436
2851
  # @param filter [TD::Types::SearchMessagesFilter] Filter for message content in the search results.
2437
2852
  # @return [TD::Types::Messages]
2438
- def search_chat_messages(chat_id, offset = 0, limit = 100,
2439
- query: nil, sender_user_id: 0, from_message_id: 0, filter: SearchMessagesFilter::Empty.new)
2853
+ def search_chat_messages(chat_id, query, sender_user_id, from_message_id, offset, limit, filter)
2440
2854
  broadcast('@type' => 'searchChatMessages',
2441
2855
  'chat_id' => chat_id,
2442
2856
  'query' => query,
@@ -2453,7 +2867,7 @@ module TD::ClientMethods
2453
2867
  # @param chat_id [Integer] Chat identifier.
2454
2868
  # @param limit [Integer] Maximum number of messages to be returned.
2455
2869
  # @return [TD::Types::Messages]
2456
- def search_chat_recent_location_messages(chat_id, limit = 100)
2870
+ def search_chat_recent_location_messages(chat_id, limit)
2457
2871
  broadcast('@type' => 'searchChatRecentLocationMessages',
2458
2872
  'chat_id' => chat_id,
2459
2873
  'limit' => limit)
@@ -2462,11 +2876,11 @@ module TD::ClientMethods
2462
2876
  # Searches for the specified query in the title and username of already known chats, this is an offline request.
2463
2877
  # Returns chats in the order seen in the chat list.
2464
2878
  #
2465
- # @param query [String, nil] Query to search for.
2879
+ # @param query [String] Query to search for.
2466
2880
  # If the query is empty, returns up to 20 recently found chats.
2467
2881
  # @param limit [Integer] Maximum number of chats to be returned.
2468
2882
  # @return [TD::Types::Chats]
2469
- def search_chats(query = nil, limit = 100)
2883
+ def search_chats(query, limit)
2470
2884
  broadcast('@type' => 'searchChats',
2471
2885
  'query' => query,
2472
2886
  'limit' => limit)
@@ -2478,7 +2892,7 @@ module TD::ClientMethods
2478
2892
  # @param query [String] Query to search for.
2479
2893
  # @param limit [Integer] Maximum number of chats to be returned.
2480
2894
  # @return [TD::Types::Chats]
2481
- def search_chats_on_server(query, limit = 100)
2895
+ def search_chats_on_server(query, limit)
2482
2896
  broadcast('@type' => 'searchChatsOnServer',
2483
2897
  'query' => query,
2484
2898
  'limit' => limit)
@@ -2486,21 +2900,33 @@ module TD::ClientMethods
2486
2900
 
2487
2901
  # Searches for the specified query in the first names, last names and usernames of the known user contacts.
2488
2902
  #
2489
- # @param query [String, nil] Query to search for; can be empty to return all contacts.
2903
+ # @param query [String, nil] Query to search for; may be empty to return all contacts.
2490
2904
  # @param limit [Integer] Maximum number of users to be returned.
2491
2905
  # @return [TD::Types::Users]
2492
- def search_contacts(query = nil, limit = 100)
2906
+ def search_contacts(query = nil, limit)
2493
2907
  broadcast('@type' => 'searchContacts',
2494
2908
  'query' => query,
2495
2909
  'limit' => limit)
2496
2910
  end
2497
2911
 
2912
+ # Searches for emojis by keywords.
2913
+ # Supported only if the file database is enabled.
2914
+ #
2915
+ # @param text [String] Text to search for.
2916
+ # @param exact_match [Boolean] True, if only emojis, which exactly match text needs to be returned.
2917
+ # @return [TD::Types::Emojis]
2918
+ def search_emojis(text, exact_match)
2919
+ broadcast('@type' => 'searchEmojis',
2920
+ 'text' => text,
2921
+ 'exact_match' => exact_match)
2922
+ end
2923
+
2498
2924
  # Searches for recently used hashtags by their prefix.
2499
2925
  #
2500
- # @param prefix [String, nil] Hashtag prefix to search for.
2926
+ # @param prefix [String] Hashtag prefix to search for.
2501
2927
  # @param limit [Integer] Maximum number of hashtags to be returned.
2502
2928
  # @return [TD::Types::Hashtags]
2503
- def search_hashtags(prefix = nil, limit = 100)
2929
+ def search_hashtags(prefix, limit)
2504
2930
  broadcast('@type' => 'searchHashtags',
2505
2931
  'prefix' => prefix,
2506
2932
  'limit' => limit)
@@ -2509,10 +2935,10 @@ module TD::ClientMethods
2509
2935
  # Searches for installed sticker sets by looking for specified query in their title and name.
2510
2936
  #
2511
2937
  # @param is_masks [Boolean] Pass true to return mask sticker sets; pass false to return ordinary sticker sets.
2512
- # @param query [String, nil] Query to search for.
2938
+ # @param query [String] Query to search for.
2513
2939
  # @param limit [Integer] Maximum number of sticker sets to return.
2514
2940
  # @return [TD::Types::StickerSets]
2515
- def search_installed_sticker_sets(query = nil, limit = 100, is_masks: false)
2941
+ def search_installed_sticker_sets(is_masks, query, limit)
2516
2942
  broadcast('@type' => 'searchInstalledStickerSets',
2517
2943
  'is_masks' => is_masks,
2518
2944
  'query' => query,
@@ -2532,7 +2958,7 @@ module TD::ClientMethods
2532
2958
  # Fewer messages may be returned than specified by the limit, even if the end of the message history has not been
2533
2959
  # reached.
2534
2960
  # @return [TD::Types::Messages]
2535
- def search_messages(query, limit = 100, offset_date: 0, offset_chat_id: 0, offset_message_id: 0)
2961
+ def search_messages(query, offset_date, offset_chat_id, offset_message_id, limit)
2536
2962
  broadcast('@type' => 'searchMessages',
2537
2963
  'query' => query,
2538
2964
  'offset_date' => offset_date,
@@ -2572,7 +2998,7 @@ module TD::ClientMethods
2572
2998
  # @param chat_id [Integer] Identifier of the chat in which to search.
2573
2999
  # Specify 0 to search in all secret chats.
2574
3000
  # @param query [String] Query to search for.
2575
- # If empty, {#search_chat_messages} should be used instead.
3001
+ # If empty, searchChatMessages should be used instead.
2576
3002
  # @param from_search_id [Integer] The identifier from the result of a previous request, use 0 to get results from the
2577
3003
  # last message.
2578
3004
  # @param limit [Integer] Maximum number of messages to be returned; up to 100.
@@ -2580,7 +3006,7 @@ module TD::ClientMethods
2580
3006
  # reached.
2581
3007
  # @param filter [TD::Types::SearchMessagesFilter] A filter for the content of messages in the search results.
2582
3008
  # @return [TD::Types::FoundMessages]
2583
- def search_secret_messages(chat_id, query, limit = 100, from_search_id: 0, filter: SearchMessagesFilter::Empty.new)
3009
+ def search_secret_messages(chat_id, query, from_search_id, limit, filter)
2584
3010
  broadcast('@type' => 'searchSecretMessages',
2585
3011
  'chat_id' => chat_id,
2586
3012
  'query' => query,
@@ -2611,9 +3037,9 @@ module TD::ClientMethods
2611
3037
  # Searches for stickers from public sticker sets that correspond to a given emoji.
2612
3038
  #
2613
3039
  # @param emoji [String] String representation of emoji; must be non-empty.
2614
- # @param limit [Integer] Maximum number of stickers to be returned.
3040
+ # @param limit [Integer, nil] Maximum number of stickers to be returned.
2615
3041
  # @return [TD::Types::Stickers]
2616
- def search_stickers(emoji, limit = 100)
3042
+ def search_stickers(emoji, limit = nil)
2617
3043
  broadcast('@type' => 'searchStickers',
2618
3044
  'emoji' => emoji,
2619
3045
  'limit' => limit)
@@ -2622,13 +3048,14 @@ module TD::ClientMethods
2622
3048
  # Invites a bot to a chat (if it is not yet a member) and sends it the /start command.
2623
3049
  # Bots can't be invited to a private chat other than the chat with the bot.
2624
3050
  # Bots can't be invited to channels (although they can be added as admins) and secret chats.
3051
+ # Returns the sent message.
2625
3052
  #
2626
3053
  # @param bot_user_id [Integer] Identifier of the bot.
2627
3054
  # @param chat_id [Integer] Identifier of the target chat.
2628
- # @param parameter [String, nil] A hidden parameter sent to the bot for deep linking purposes
2629
- # @see https://api.telegram.org/bots#deep-linking
2630
- # @return [TD::Types::Message] the sent message.
2631
- def send_bot_start_message(bot_user_id, chat_id, parameter = nil)
3055
+ # @param parameter [String] A hidden parameter sent to the bot for deep linking purposes
3056
+ # (https://core.telegram.org/bots#deep-linking).
3057
+ # @return [TD::Types::Message]
3058
+ def send_bot_start_message(bot_user_id, chat_id, parameter)
2632
3059
  broadcast('@type' => 'sendBotStartMessage',
2633
3060
  'bot_user_id' => bot_user_id,
2634
3061
  'chat_id' => chat_id,
@@ -2650,13 +3077,16 @@ module TD::ClientMethods
2650
3077
  #
2651
3078
  # @param call_id [Integer] Call identifier.
2652
3079
  # @param rating [Integer] Call rating; 1-5.
2653
- # @param comment [String, nil] An optional user comment if the rating is less than 5.
3080
+ # @param comment [String] An optional user comment if the rating is less than 5.
3081
+ # @param problems [Array<TD::Types::CallProblem>] List of the exact types of problems with the call, specified by the
3082
+ # user.
2654
3083
  # @return [TD::Types::Ok]
2655
- def send_call_rating(call_id, rating, comment = nil)
2656
- broadcast('@type' => 'sendCallRating',
2657
- 'call_id' => call_id,
2658
- 'rating' => rating,
2659
- 'comment' => comment)
3084
+ def send_call_rating(call_id, rating, comment, problems)
3085
+ broadcast('@type' => 'sendCallRating',
3086
+ 'call_id' => call_id,
3087
+ 'rating' => rating,
3088
+ 'comment' => comment,
3089
+ 'problems' => problems)
2660
3090
  end
2661
3091
 
2662
3092
  # Sends a notification about user activity in a chat.
@@ -2723,30 +3153,35 @@ module TD::ClientMethods
2723
3153
  # @param from_background [Boolean] Pass true if the message is sent from background.
2724
3154
  # @param query_id [Integer] Identifier of the inline query.
2725
3155
  # @param result_id [String] Identifier of the inline result.
3156
+ # @param hide_via_bot [Boolean] If true, there will be no mention of a bot, via which the message is sent.
3157
+ # Can be used only for bots GetOption("animation_search_bot_username"), GetOption("photo_search_bot_username") and
3158
+ # GetOption("venue_search_bot_username").
2726
3159
  # @return [TD::Types::Message]
2727
- def send_inline_query_result_message(chat_id, query_id, result_id,
2728
- reply_to_message_id: 0, disable_notification: false, from_background: false)
3160
+ def send_inline_query_result_message(chat_id, reply_to_message_id, disable_notification, from_background, query_id,
3161
+ result_id, hide_via_bot)
2729
3162
  broadcast('@type' => 'sendInlineQueryResultMessage',
2730
3163
  'chat_id' => chat_id,
2731
3164
  'reply_to_message_id' => reply_to_message_id,
2732
3165
  'disable_notification' => disable_notification,
2733
3166
  'from_background' => from_background,
2734
3167
  'query_id' => query_id,
2735
- 'result_id' => result_id)
3168
+ 'result_id' => result_id,
3169
+ 'hide_via_bot' => hide_via_bot)
2736
3170
  end
2737
3171
 
2738
3172
  # Sends a message.
3173
+ # Returns the sent message.
2739
3174
  #
2740
3175
  # @param chat_id [Integer] Target chat.
2741
3176
  # @param reply_to_message_id [Integer] Identifier of the message to reply to or 0.
2742
3177
  # @param disable_notification [Boolean] Pass true to disable notification for the message.
2743
3178
  # Not supported in secret chats.
2744
3179
  # @param from_background [Boolean] Pass true if the message is sent from the background.
2745
- # @param reply_markup [TD::Types::ReplyMarkup, nil] Markup for replying to the message; for bots only.
3180
+ # @param reply_markup [TD::Types::ReplyMarkup] Markup for replying to the message; for bots only.
2746
3181
  # @param input_message_content [TD::Types::InputMessageContent] The content of the message to be sent.
2747
- # @return [TD::Types::Message] the sent message.
2748
- def send_message(chat_id, input_message_content,
2749
- reply_to_message_id: 0, disable_notification: false, from_background: false, reply_markup: nil)
3182
+ # @return [TD::Types::Message]
3183
+ def send_message(chat_id, reply_to_message_id, disable_notification, from_background, reply_markup,
3184
+ input_message_content)
2750
3185
  broadcast('@type' => 'sendMessage',
2751
3186
  'chat_id' => chat_id,
2752
3187
  'reply_to_message_id' => reply_to_message_id,
@@ -2758,6 +3193,7 @@ module TD::ClientMethods
2758
3193
 
2759
3194
  # Sends messages grouped together into an album.
2760
3195
  # Currently only photo and video messages can be grouped into an album.
3196
+ # Returns sent messages.
2761
3197
  #
2762
3198
  # @param chat_id [Integer] Target chat.
2763
3199
  # @param reply_to_message_id [Integer] Identifier of a message to reply to or 0.
@@ -2765,9 +3201,8 @@ module TD::ClientMethods
2765
3201
  # Not supported in secret chats.
2766
3202
  # @param from_background [Boolean] Pass true if the messages are sent from the background.
2767
3203
  # @param input_message_contents [Array<TD::Types::InputMessageContent>] Contents of messages to be sent.
2768
- # @return [TD::Types::Messages] the sent messages.
2769
- def send_message_album(chat_id, input_message_contents,
2770
- reply_to_message_id: 0, disable_notification: false, from_background: false)
3204
+ # @return [TD::Types::Messages]
3205
+ def send_message_album(chat_id, reply_to_message_id, disable_notification, from_background, input_message_contents)
2771
3206
  broadcast('@type' => 'sendMessageAlbum',
2772
3207
  'chat_id' => chat_id,
2773
3208
  'reply_to_message_id' => reply_to_message_id,
@@ -2777,6 +3212,8 @@ module TD::ClientMethods
2777
3212
  end
2778
3213
 
2779
3214
  # Sends a Telegram Passport authorization form, effectively sharing data with the service.
3215
+ # This method must be called after getPassportAuthorizationFormAvailableElements if some previously available
3216
+ # elements need to be used.
2780
3217
  #
2781
3218
  # @param autorization_form_id [Integer] Authorization form identifier.
2782
3219
  # @param types [Array<TD::Types::PassportElementType>] Types of Telegram Passport elements chosen by user to complete
@@ -2792,11 +3229,11 @@ module TD::ClientMethods
2792
3229
  #
2793
3230
  # @param chat_id [Integer] Chat identifier of the Invoice message.
2794
3231
  # @param message_id [Integer] Message identifier.
2795
- # @param order_info_id [String] Identifier returned by {#validate_order_info}, or an empty string.
2796
- # @param shipping_option_id [String, nil] Identifier of a chosen shipping option, if applicable.
3232
+ # @param order_info_id [String] Identifier returned by ValidateOrderInfo, or an empty string.
3233
+ # @param shipping_option_id [String] Identifier of a chosen shipping option, if applicable.
2797
3234
  # @param credentials [TD::Types::InputCredentials] The credentials chosen by user for payment.
2798
3235
  # @return [TD::Types::PaymentResult]
2799
- def send_payment_form(chat_id, message_id, credentials, order_info_id: "", shipping_option_id: nil)
3236
+ def send_payment_form(chat_id, message_id, order_info_id, shipping_option_id, credentials)
2800
3237
  broadcast('@type' => 'sendPaymentForm',
2801
3238
  'chat_id' => chat_id,
2802
3239
  'message_id' => message_id,
@@ -2811,32 +3248,26 @@ module TD::ClientMethods
2811
3248
  #
2812
3249
  # @param hash [String] Value of the "hash" parameter from the link.
2813
3250
  # @param phone_number [String] Value of the "phone" parameter from the link.
2814
- # @param allow_flash_call [Boolean] Pass true if the authentication code may be sent via flash call to the specified
2815
- # phone number.
2816
- # @param is_current_phone_number [Boolean] Pass true if the phone number is used on the current device.
2817
- # Ignored if allow_flash_call is false.
3251
+ # @param settings [TD::Types::PhoneNumberAuthenticationSettings] Settings for the authentication of the user's phone
3252
+ # number.
2818
3253
  # @return [TD::Types::AuthenticationCodeInfo]
2819
- def send_phone_number_confirmation_code(hash, phone_number, allow_flash_call: false, is_current_phone_number: false)
2820
- broadcast('@type' => 'sendPhoneNumberConfirmationCode',
2821
- 'hash' => hash,
2822
- 'phone_number' => phone_number,
2823
- 'allow_flash_call' => allow_flash_call,
2824
- 'is_current_phone_number' => is_current_phone_number)
3254
+ def send_phone_number_confirmation_code(hash, phone_number, settings)
3255
+ broadcast('@type' => 'sendPhoneNumberConfirmationCode',
3256
+ 'hash' => hash,
3257
+ 'phone_number' => phone_number,
3258
+ 'settings' => settings)
2825
3259
  end
2826
3260
 
2827
3261
  # Sends a code to verify a phone number to be added to a user's Telegram Passport.
2828
3262
  #
2829
3263
  # @param phone_number [String] The phone number of the user, in international format.
2830
- # @param allow_flash_call [Boolean] Pass true if the authentication code may be sent via flash call to the specified
2831
- # phone number.
2832
- # @param is_current_phone_number [Boolean] Pass true if the phone number is used on the current device.
2833
- # Ignored if allow_flash_call is false.
3264
+ # @param settings [TD::Types::PhoneNumberAuthenticationSettings] Settings for the authentication of the user's phone
3265
+ # number.
2834
3266
  # @return [TD::Types::AuthenticationCodeInfo]
2835
- def send_phone_number_verification_code(phone_number, allow_flash_call: false, is_current_phone_number: false)
2836
- broadcast('@type' => 'sendPhoneNumberVerificationCode',
2837
- 'phone_number' => phone_number,
2838
- 'allow_flash_call' => allow_flash_call,
2839
- 'is_current_phone_number' => is_current_phone_number)
3267
+ def send_phone_number_verification_code(phone_number, settings)
3268
+ broadcast('@type' => 'sendPhoneNumberVerificationCode',
3269
+ 'phone_number' => phone_number,
3270
+ 'settings' => settings)
2840
3271
  end
2841
3272
 
2842
3273
  # Changes the period of inactivity after which the account of the current user will automatically be deleted.
@@ -2860,19 +3291,43 @@ module TD::ClientMethods
2860
3291
  end
2861
3292
 
2862
3293
  # Sets the phone number of the user and sends an authentication code to the user.
2863
- # Works only when the current authorization state is {TD::Types::AuthorizationState::WaitPhoneNumber}.
3294
+ # Works only when the current authorization state is authorizationStateWaitPhoneNumber, or if there is no pending
3295
+ # authentication query and the current authorization state is authorizationStateWaitCode or
3296
+ # authorizationStateWaitPassword.
2864
3297
  #
2865
3298
  # @param phone_number [String] The phone number of the user, in international format.
2866
- # @param allow_flash_call [Boolean] Pass true if the authentication code may be sent via flash call to the specified
2867
- # phone number.
2868
- # @param is_current_phone_number [Boolean] Pass true if the phone number is used on the current device.
2869
- # Ignored if allow_flash_call is false.
3299
+ # @param settings [TD::Types::PhoneNumberAuthenticationSettings] Settings for the authentication of the user's phone
3300
+ # number.
3301
+ # @return [TD::Types::Ok]
3302
+ def set_authentication_phone_number(phone_number, settings)
3303
+ broadcast('@type' => 'setAuthenticationPhoneNumber',
3304
+ 'phone_number' => phone_number,
3305
+ 'settings' => settings)
3306
+ end
3307
+
3308
+ # Sets auto-download settings.
3309
+ #
3310
+ # @param settings [TD::Types::AutoDownloadSettings] New user auto-download settings.
3311
+ # @param type [TD::Types::NetworkType] Type of the network for which the new settings are applied.
2870
3312
  # @return [TD::Types::Ok]
2871
- def set_authentication_phone_number(phone_number, allow_flash_call: false, is_current_phone_number: false)
2872
- broadcast('@type' => 'setAuthenticationPhoneNumber',
2873
- 'phone_number' => phone_number,
2874
- 'allow_flash_call' => allow_flash_call,
2875
- 'is_current_phone_number' => is_current_phone_number)
3313
+ def set_auto_download_settings(settings, type)
3314
+ broadcast('@type' => 'setAutoDownloadSettings',
3315
+ 'settings' => settings,
3316
+ 'type' => type)
3317
+ end
3318
+
3319
+ # Changes the background selected by the user; adds background to the list of installed backgrounds.
3320
+ #
3321
+ # @param background [TD::Types::InputBackground] The input background to use, null for solid backgrounds.
3322
+ # @param type [TD::Types::BackgroundType] Background type; null for default background.
3323
+ # The method will return error 404 if type is null.
3324
+ # @param for_dark_theme [Boolean] True, if the background is chosen for dark theme.
3325
+ # @return [TD::Types::Background]
3326
+ def set_background(background, type, for_dark_theme)
3327
+ broadcast('@type' => 'setBackground',
3328
+ 'background' => background,
3329
+ 'type' => type,
3330
+ 'for_dark_theme' => for_dark_theme)
2876
3331
  end
2877
3332
 
2878
3333
  # Changes the bio of the current user.
@@ -2907,10 +3362,23 @@ module TD::ClientMethods
2907
3362
  'client_data' => client_data)
2908
3363
  end
2909
3364
 
3365
+ # Changes information about a chat.
3366
+ # Available for basic groups, supergroups, and channels.
3367
+ # Requires can_change_info rights.
3368
+ #
3369
+ # @param chat_id [Integer] Identifier of the chat.
3370
+ # @param description [String] New chat description; 0-255 characters.
3371
+ # @return [TD::Types::Ok]
3372
+ def set_chat_description(chat_id, description)
3373
+ broadcast('@type' => 'setChatDescription',
3374
+ 'chat_id' => chat_id,
3375
+ 'description' => description)
3376
+ end
3377
+
2910
3378
  # Changes the draft message in a chat.
2911
3379
  #
2912
3380
  # @param chat_id [Integer] Chat identifier.
2913
- # @param draft_message [TD::Types::DraftMessage, nil] New draft message.
3381
+ # @param draft_message [TD::Types::DraftMessage, nil] New draft message; may be null.
2914
3382
  # @return [TD::Types::Ok]
2915
3383
  def set_chat_draft_message(chat_id, draft_message = nil)
2916
3384
  broadcast('@type' => 'setChatDraftMessage',
@@ -2919,7 +3387,7 @@ module TD::ClientMethods
2919
3387
  end
2920
3388
 
2921
3389
  # Changes the status of a chat member, needs appropriate privileges.
2922
- # This function is currently not suitable for adding new members to the chat; instead, use {#add_chat_member}.
3390
+ # This function is currently not suitable for adding new members to the chat; instead, use addChatMember.
2923
3391
  # The chat member status will not be changed until it has been synchronized with the server.
2924
3392
  #
2925
3393
  # @param chat_id [Integer] Chat identifier.
@@ -2944,17 +3412,30 @@ module TD::ClientMethods
2944
3412
  'notification_settings' => notification_settings)
2945
3413
  end
2946
3414
 
3415
+ # Changes the chat members permissions.
3416
+ # Supported only for basic groups and supergroups.
3417
+ # Requires can_restrict_members administrator right.
3418
+ #
3419
+ # @param chat_id [Integer] Chat identifier.
3420
+ # @param permissions [TD::Types::ChatPermissions] New non-administrator members permissions in the chat.
3421
+ # @return [TD::Types::Ok]
3422
+ def set_chat_permissions(chat_id, permissions)
3423
+ broadcast('@type' => 'setChatPermissions',
3424
+ 'chat_id' => chat_id,
3425
+ 'permissions' => permissions)
3426
+ end
3427
+
2947
3428
  # Changes the photo of a chat.
2948
3429
  # Supported only for basic groups, supergroups and channels.
2949
- # Requires administrator rights in basic groups and the appropriate administrator rights in supergroups and channels.
3430
+ # Requires can_change_info rights.
2950
3431
  # The photo will not be changed before request to the server has been completed.
2951
3432
  #
2952
3433
  # @param chat_id [Integer] Chat identifier.
2953
3434
  # @param photo [TD::Types::InputFile] New chat photo.
2954
- # You can use a zero {TD::Types::InputFile::Id} to delete the chat photo.
3435
+ # You can use a zero InputFileId to delete the chat photo.
2955
3436
  # Files that are accessible only by HTTP URL are not acceptable.
2956
3437
  # @return [TD::Types::Ok]
2957
- def set_chat_photo(chat_id, photo = InputFile::Id.new(id: 0))
3438
+ def set_chat_photo(chat_id, photo)
2958
3439
  broadcast('@type' => 'setChatPhoto',
2959
3440
  'chat_id' => chat_id,
2960
3441
  'photo' => photo)
@@ -2962,11 +3443,11 @@ module TD::ClientMethods
2962
3443
 
2963
3444
  # Changes the chat title.
2964
3445
  # Supported only for basic groups, supergroups and channels.
2965
- # Requires administrator rights in basic groups and the appropriate administrator rights in supergroups and channels.
3446
+ # Requires can_change_info rights.
2966
3447
  # The title will not be changed until the request to the server has been completed.
2967
3448
  #
2968
3449
  # @param chat_id [Integer] Chat identifier.
2969
- # @param title [String] New title of the chat; 1-255 characters.
3450
+ # @param title [String] New title of the chat; 1-128 characters.
2970
3451
  # @return [TD::Types::Ok]
2971
3452
  def set_chat_title(chat_id, title)
2972
3453
  broadcast('@type' => 'setChatTitle',
@@ -2974,11 +3455,12 @@ module TD::ClientMethods
2974
3455
  'title' => title)
2975
3456
  end
2976
3457
 
2977
- # Adds or changes a custom language pack to the current localization target.
3458
+ # Adds or changes a custom local language pack to the current localization target.
2978
3459
  #
2979
3460
  # @param info [TD::Types::LanguagePackInfo] Information about the language pack.
2980
3461
  # Language pack ID must start with 'X', consist only of English letters, digits and hyphens, and must not exceed 64
2981
3462
  # characters.
3463
+ # Can be called before authorization.
2982
3464
  # @param strings [Array<TD::Types::LanguagePackString>] Strings of the new language pack.
2983
3465
  # @return [TD::Types::Ok]
2984
3466
  def set_custom_language_pack(info, strings)
@@ -2987,10 +3469,11 @@ module TD::ClientMethods
2987
3469
  'strings' => strings)
2988
3470
  end
2989
3471
 
2990
- # Adds, edits or deletes a string in a custom language pack.
3472
+ # Adds, edits or deletes a string in a custom local language pack.
3473
+ # Can be called before authorization.
2991
3474
  #
2992
- # @param language_pack_id [String] Identifier of a previously added custom language pack in the current localization
2993
- # target.
3475
+ # @param language_pack_id [String] Identifier of a previously added custom local language pack in the current
3476
+ # localization target.
2994
3477
  # @param new_string [TD::Types::LanguagePackString] New language pack string.
2995
3478
  # @return [TD::Types::Ok]
2996
3479
  def set_custom_language_pack_string(language_pack_id, new_string)
@@ -3009,13 +3492,13 @@ module TD::ClientMethods
3009
3492
  'new_encryption_key' => new_encryption_key)
3010
3493
  end
3011
3494
 
3012
- # The next part of a file was generated.
3495
+ # Informs TDLib on a file generation prograss.
3013
3496
  #
3014
3497
  # @param generation_id [Integer] The identifier of the generation process.
3015
3498
  # @param expected_size [Integer] Expected size of the generated file, in bytes; 0 if unknown.
3016
3499
  # @param local_prefix_size [Integer] The number of bytes already generated.
3017
3500
  # @return [TD::Types::Ok]
3018
- def set_file_generation_progress(generation_id, local_prefix_size, expected_size: 0)
3501
+ def set_file_generation_progress(generation_id, expected_size, local_prefix_size)
3019
3502
  broadcast('@type' => 'setFileGenerationProgress',
3020
3503
  'generation_id' => generation_id,
3021
3504
  'expected_size' => expected_size,
@@ -3024,7 +3507,7 @@ module TD::ClientMethods
3024
3507
 
3025
3508
  # Updates the game score of the specified user in the game; for bots only.
3026
3509
  #
3027
- # @param chat_id [Integer] The chat to which the message with the game.
3510
+ # @param chat_id [Integer] The chat to which the message with the game belongs.
3028
3511
  # @param message_id [Integer] Identifier of the message.
3029
3512
  # @param edit_message [Boolean] True, if the message should be edited.
3030
3513
  # @param user_id [Integer] User identifier.
@@ -3032,7 +3515,7 @@ module TD::ClientMethods
3032
3515
  # @param force [Boolean] Pass true to update the score even if it decreases.
3033
3516
  # If the score is 0, the user will be deleted from the high score table.
3034
3517
  # @return [TD::Types::Message]
3035
- def set_game_score(chat_id, message_id, user_id, score, edit_message: false, force: false)
3518
+ def set_game_score(chat_id, message_id, edit_message, user_id, score, force)
3036
3519
  broadcast('@type' => 'setGameScore',
3037
3520
  'chat_id' => chat_id,
3038
3521
  'message_id' => message_id,
@@ -3051,7 +3534,7 @@ module TD::ClientMethods
3051
3534
  # @param force [Boolean] Pass true to update the score even if it decreases.
3052
3535
  # If the score is 0, the user will be deleted from the high score table.
3053
3536
  # @return [TD::Types::Ok]
3054
- def set_inline_game_score(inline_message_id, user_id, score, edit_message: false, force: false)
3537
+ def set_inline_game_score(inline_message_id, edit_message, user_id, score, force)
3055
3538
  broadcast('@type' => 'setInlineGameScore',
3056
3539
  'inline_message_id' => inline_message_id,
3057
3540
  'edit_message' => edit_message,
@@ -3060,11 +3543,52 @@ module TD::ClientMethods
3060
3543
  'force' => force)
3061
3544
  end
3062
3545
 
3546
+ # Sets new log stream for internal logging of TDLib.
3547
+ # This is an offline method.
3548
+ # Can be called before authorization.
3549
+ # Can be called synchronously.
3550
+ #
3551
+ # @param log_stream [TD::Types::LogStream] New log stream.
3552
+ # @return [TD::Types::Ok]
3553
+ def set_log_stream(log_stream)
3554
+ broadcast('@type' => 'setLogStream',
3555
+ 'log_stream' => log_stream)
3556
+ end
3557
+
3558
+ # Sets the verbosity level for a specified TDLib internal log tag.
3559
+ # This is an offline method.
3560
+ # Can be called before authorization.
3561
+ # Can be called synchronously.
3562
+ #
3563
+ # @param tag [String] Logging tag to change verbosity level.
3564
+ # @param new_verbosity_level [Integer] New verbosity level; 1-1024.
3565
+ # @return [TD::Types::Ok]
3566
+ def set_log_tag_verbosity_level(tag, new_verbosity_level)
3567
+ broadcast('@type' => 'setLogTagVerbosityLevel',
3568
+ 'tag' => tag,
3569
+ 'new_verbosity_level' => new_verbosity_level)
3570
+ end
3571
+
3572
+ # Sets the verbosity level of the internal logging of TDLib.
3573
+ # This is an offline method.
3574
+ # Can be called before authorization.
3575
+ # Can be called synchronously.
3576
+ #
3577
+ # @param new_verbosity_level [Integer] New value of the verbosity level for logging.
3578
+ # Value 0 corresponds to fatal errors, value 1 corresponds to errors, value 2 corresponds to warnings and debug
3579
+ # warnings, value 3 corresponds to informational, value 4 corresponds to debug, value 5 corresponds to verbose debug,
3580
+ # value greater than 5 and up to 1023 can be used to enable even more logging.
3581
+ # @return [TD::Types::Ok]
3582
+ def set_log_verbosity_level(new_verbosity_level)
3583
+ broadcast('@type' => 'setLogVerbosityLevel',
3584
+ 'new_verbosity_level' => new_verbosity_level)
3585
+ end
3586
+
3063
3587
  # Changes the first and last name of the current user.
3064
- # If something changes, {TD::Types::Update::User} will be sent.
3588
+ # If something changes, updateUser will be sent.
3065
3589
  #
3066
- # @param first_name [String] The new value of the first name for the user; 1-255 characters.
3067
- # @param last_name [String] The new value of the optional last name for the user; 0-255 characters.
3590
+ # @param first_name [String] The new value of the first name for the user; 1-64 characters.
3591
+ # @param last_name [String] The new value of the optional last name for the user; 0-64 characters.
3068
3592
  # @return [TD::Types::Ok]
3069
3593
  def set_name(first_name, last_name)
3070
3594
  broadcast('@type' => 'setName',
@@ -3080,20 +3604,19 @@ module TD::ClientMethods
3080
3604
  # network data usage statistics.
3081
3605
  #
3082
3606
  # @param type [TD::Types::NetworkType] The new network type.
3083
- # By default, {TD::Types::NetworkType::Other}.
3607
+ # By default, networkTypeOther.
3084
3608
  # @return [TD::Types::Ok]
3085
- def set_network_type(type = NetworkType::Other)
3609
+ def set_network_type(type)
3086
3610
  broadcast('@type' => 'setNetworkType',
3087
3611
  'type' => type)
3088
3612
  end
3089
3613
 
3090
3614
  # Sets the value of an option.
3091
- # Only writable options can be set.
3615
+ # (Check the list of available options on https://core.telegram.org/tdlib/options.) Only writable options can be set.
3092
3616
  # Can be called before authorization.
3093
3617
  #
3094
3618
  # @param name [String] The name of the option.
3095
3619
  # @param value [TD::Types::OptionValue] The new value of the option.
3096
- # @see https://core.telegram.org/tdlib/options List of available options
3097
3620
  # @return [TD::Types::Ok]
3098
3621
  def set_option(name, value)
3099
3622
  broadcast('@type' => 'setOption',
@@ -3127,16 +3650,14 @@ module TD::ClientMethods
3127
3650
  end
3128
3651
 
3129
3652
  # Changes the password for the user.
3130
- # If a new recovery email address is specified, then the error EMAIL_UNCONFIRMED is returned and the password change
3131
- # will not be applied until the new recovery email address has been confirmed.
3132
- # The application should periodically call {#get_password_state} to check whether the new email address has been
3133
- # confirmed.
3653
+ # If a new recovery email address is specified, then the change will not be applied until the new recovery email
3654
+ # address is confirmed.
3134
3655
  #
3135
3656
  # @param old_password [String] Previous password of the user.
3136
3657
  # @param new_password [String, nil] New password of the user; may be empty to remove the password.
3137
- # @param new_hint [String, nil] New password hint.
3658
+ # @param new_hint [String, nil] New password hint; may be empty.
3138
3659
  # @param set_recovery_email_address [Boolean] Pass true if the recovery email address should be changed.
3139
- # @param new_recovery_email_address [String, nil] New recovery email address.
3660
+ # @param new_recovery_email_address [String, nil] New recovery email address; may be empty.
3140
3661
  # @return [TD::Types::PasswordState]
3141
3662
  def set_password(old_password, new_password: nil, new_hint: nil, set_recovery_email_address: false,
3142
3663
  new_recovery_email_address: nil)
@@ -3157,8 +3678,22 @@ module TD::ClientMethods
3157
3678
  'chat_ids' => chat_ids)
3158
3679
  end
3159
3680
 
3681
+ # Changes user answer to a poll.
3682
+ #
3683
+ # @param chat_id [Integer] Identifier of the chat to which the poll belongs.
3684
+ # @param message_id [Integer] Identifier of the message containing the poll.
3685
+ # @param option_ids [Array<Integer>] 0-based identifiers of options, chosen by the user.
3686
+ # Currently user can't choose more than 1 option.
3687
+ # @return [TD::Types::Ok]
3688
+ def set_poll_answer(chat_id, message_id, option_ids)
3689
+ broadcast('@type' => 'setPollAnswer',
3690
+ 'chat_id' => chat_id,
3691
+ 'message_id' => message_id,
3692
+ 'option_ids' => option_ids)
3693
+ end
3694
+
3160
3695
  # Uploads a new profile photo for the current user.
3161
- # If something changes, {TD::Types::Update::User} will be sent.
3696
+ # If something changes, updateUser will be sent.
3162
3697
  #
3163
3698
  # @param photo [TD::Types::InputFile] Profile photo to set.
3164
3699
  # {TD::Types::InputFile::Id} and {TD::Types::InputFile::Remote} may still be unsupported.
@@ -3168,18 +3703,16 @@ module TD::ClientMethods
3168
3703
  'photo' => photo)
3169
3704
  end
3170
3705
 
3171
- # Changes the recovery email address of the user.
3172
- # If a new recovery email address is specified, then the error EMAIL_UNCONFIRMED is returned and the email address
3173
- # will not be changed until the new email has been confirmed.
3174
- # The application should periodically call {#get_password_state} to check whether the email address has been
3175
- # confirmed.
3706
+ # Changes the 2-step verification recovery email address of the user.
3707
+ # If a new recovery email address is specified, then the change will not be applied until the new recovery email
3708
+ # address is confirmed.
3176
3709
  # If new_recovery_email_address is the same as the email address that is currently set up, this call succeeds
3177
3710
  # immediately and aborts all other requests waiting for an email confirmation.
3178
3711
  #
3179
3712
  # @param password [String] Password of the current user.
3180
3713
  # @param new_recovery_email_address [String] New recovery email address.
3181
3714
  # @return [TD::Types::PasswordState]
3182
- def set_recovery_email_address(new_recovery_email_address, password)
3715
+ def set_recovery_email_address(password, new_recovery_email_address)
3183
3716
  broadcast('@type' => 'setRecoveryEmailAddress',
3184
3717
  'password' => password,
3185
3718
  'new_recovery_email_address' => new_recovery_email_address)
@@ -3209,24 +3742,13 @@ module TD::ClientMethods
3209
3742
  'position' => position)
3210
3743
  end
3211
3744
 
3212
- # Changes information about a supergroup or channel; requires appropriate administrator rights.
3213
- #
3214
- # @param supergroup_id [Integer] Identifier of the supergroup or channel.
3215
- # @param description [String] New supergroup or channel description; 0-255 characters.
3216
- # @return [TD::Types::Ok]
3217
- def set_supergroup_description(supergroup_id, description)
3218
- broadcast('@type' => 'setSupergroupDescription',
3219
- 'supergroup_id' => supergroup_id,
3220
- 'description' => description)
3221
- end
3222
-
3223
- # Changes the sticker set of a supergroup; requires appropriate rights in the supergroup.
3745
+ # Changes the sticker set of a supergroup; requires can_change_info rights.
3224
3746
  #
3225
3747
  # @param supergroup_id [Integer] Identifier of the supergroup.
3226
3748
  # @param sticker_set_id [Integer] New value of the supergroup sticker set identifier.
3227
3749
  # Use 0 to remove the supergroup sticker set.
3228
3750
  # @return [TD::Types::Ok]
3229
- def set_supergroup_sticker_set(supergroup_id, sticker_set_id = 0)
3751
+ def set_supergroup_sticker_set(supergroup_id, sticker_set_id)
3230
3752
  broadcast('@type' => 'setSupergroupStickerSet',
3231
3753
  'supergroup_id' => supergroup_id,
3232
3754
  'sticker_set_id' => sticker_set_id)
@@ -3238,14 +3760,14 @@ module TD::ClientMethods
3238
3760
  # @param username [String] New value of the username.
3239
3761
  # Use an empty string to remove the username.
3240
3762
  # @return [TD::Types::Ok]
3241
- def set_supergroup_username(supergroup_id, username = "")
3763
+ def set_supergroup_username(supergroup_id, username)
3242
3764
  broadcast('@type' => 'setSupergroupUsername',
3243
3765
  'supergroup_id' => supergroup_id,
3244
3766
  'username' => username)
3245
3767
  end
3246
3768
 
3247
3769
  # Sets the parameters for TDLib initialization.
3248
- # Works only when the current authorization state is {TD::Types::AuthorizationState::WaitTdlibParameters}.
3770
+ # Works only when the current authorization state is authorizationStateWaitTdlibParameters.
3249
3771
  #
3250
3772
  # @param parameters [TD::Types::TdlibParameters] Parameters.
3251
3773
  # @return [TD::Types::Ok]
@@ -3266,16 +3788,41 @@ module TD::ClientMethods
3266
3788
  end
3267
3789
 
3268
3790
  # Changes the username of the current user.
3269
- # If something changes, {TD::Types::Update::User} will be sent.
3791
+ # If something changes, updateUser will be sent.
3270
3792
  #
3271
3793
  # @param username [String] The new value of the username.
3272
3794
  # Use an empty string to remove the username.
3273
3795
  # @return [TD::Types::Ok]
3274
- def set_username(username = "")
3796
+ def set_username(username)
3275
3797
  broadcast('@type' => 'setUsername',
3276
3798
  'username' => username)
3277
3799
  end
3278
3800
 
3801
+ # Stops a poll.
3802
+ # A poll in a message can be stopped when the message has can_be_edited flag set.
3803
+ #
3804
+ # @param chat_id [Integer] Identifier of the chat to which the poll belongs.
3805
+ # @param message_id [Integer] Identifier of the message containing the poll.
3806
+ # @param reply_markup [TD::Types::ReplyMarkup] The new message reply markup; for bots only.
3807
+ # @return [TD::Types::Ok]
3808
+ def stop_poll(chat_id, message_id, reply_markup)
3809
+ broadcast('@type' => 'stopPoll',
3810
+ 'chat_id' => chat_id,
3811
+ 'message_id' => message_id,
3812
+ 'reply_markup' => reply_markup)
3813
+ end
3814
+
3815
+ # Fetches the latest versions of all strings from a language pack in the current localization target from the server.
3816
+ # This method doesn't need to be called explicitly for the current used/base language packs.
3817
+ # Can be called before authorization.
3818
+ #
3819
+ # @param language_pack_id [String] Language pack identifier.
3820
+ # @return [TD::Types::Ok]
3821
+ def synchronize_language_pack(language_pack_id)
3822
+ broadcast('@type' => 'synchronizeLanguagePack',
3823
+ 'language_pack_id' => language_pack_id)
3824
+ end
3825
+
3279
3826
  # Terminates all other sessions of the current user.
3280
3827
  #
3281
3828
  # @return [TD::Types::Ok]
@@ -3292,17 +3839,6 @@ module TD::ClientMethods
3292
3839
  'session_id' => session_id)
3293
3840
  end
3294
3841
 
3295
- # Toggles the "All members are admins" setting in basic groups; requires creator privileges in the group.
3296
- #
3297
- # @param basic_group_id [Integer] Identifier of the basic group.
3298
- # @param everyone_is_administrator [Boolean] New value of everyone_is_administrator.
3299
- # @return [TD::Types::Ok]
3300
- def toggle_basic_group_administrators(basic_group_id, everyone_is_administrator)
3301
- broadcast('@type' => 'toggleBasicGroupAdministrators',
3302
- 'basic_group_id' => basic_group_id,
3303
- 'everyone_is_administrator' => everyone_is_administrator)
3304
- end
3305
-
3306
3842
  # Changes the value of the default disable_notification parameter, used when a message is sent to a chat.
3307
3843
  #
3308
3844
  # @param chat_id [Integer] Chat identifier.
@@ -3337,20 +3873,7 @@ module TD::ClientMethods
3337
3873
  'is_pinned' => is_pinned)
3338
3874
  end
3339
3875
 
3340
- # Toggles whether all members of a supergroup can add new members; requires appropriate administrator rights in the
3341
- # supergroup.
3342
- #
3343
- # @param supergroup_id [Integer] Identifier of the supergroup.
3344
- # @param anyone_can_invite [Boolean] New value of anyone_can_invite.
3345
- # @return [TD::Types::Ok]
3346
- def toggle_supergroup_invites(supergroup_id, anyone_can_invite)
3347
- broadcast('@type' => 'toggleSupergroupInvites',
3348
- 'supergroup_id' => supergroup_id,
3349
- 'anyone_can_invite' => anyone_can_invite)
3350
- end
3351
-
3352
- # Toggles whether the message history of a supergroup is available to new members; requires appropriate administrator
3353
- # rights in the supergroup.
3876
+ # Toggles whether the message history of a supergroup is available to new members; requires can_change_info rights.
3354
3877
  #
3355
3878
  # @param supergroup_id [Integer] The identifier of the supergroup.
3356
3879
  # @param is_all_history_available [Boolean] The new value of is_all_history_available.
@@ -3361,7 +3884,7 @@ module TD::ClientMethods
3361
3884
  'is_all_history_available' => is_all_history_available)
3362
3885
  end
3363
3886
 
3364
- # Toggles sender signatures messages sent in a channel; requires appropriate administrator rights in the channel.
3887
+ # Toggles sender signatures messages sent in a channel; requires can_change_info rights.
3365
3888
  #
3366
3889
  # @param supergroup_id [Integer] Identifier of the channel.
3367
3890
  # @param sign_messages [Boolean] New value of sign_messages.
@@ -3381,18 +3904,17 @@ module TD::ClientMethods
3381
3904
  'user_id' => user_id)
3382
3905
  end
3383
3906
 
3384
- # Removes the pinned message from a supergroup or channel; requires appropriate administrator rights in the
3385
- # supergroup or channel.
3907
+ # Removes the pinned message from a chat; requires can_pin_messages rights in the group or channel.
3386
3908
  #
3387
- # @param supergroup_id [Integer] Identifier of the supergroup or channel.
3909
+ # @param chat_id [Integer] Identifier of the chat.
3388
3910
  # @return [TD::Types::Ok]
3389
- def unpin_supergroup_message(supergroup_id)
3390
- broadcast('@type' => 'unpinSupergroupMessage',
3391
- 'supergroup_id' => supergroup_id)
3911
+ def unpin_chat_message(chat_id)
3912
+ broadcast('@type' => 'unpinChatMessage',
3913
+ 'chat_id' => chat_id)
3392
3914
  end
3393
3915
 
3394
- # Creates a new supergroup from an existing basic group and sends a corresponding
3395
- # {TD::Types::MessageContent::UpgradeTo} and {TD::Types::MessageContent::ChatUpgradeFrom}.
3916
+ # Creates a new supergroup from an existing basic group and sends a corresponding messageChatUpgradeTo and
3917
+ # messageChatUpgradeFrom; requires creator privileges.
3396
3918
  # Deactivates the original basic group.
3397
3919
  #
3398
3920
  # @param chat_id [Integer] Identifier of the chat to upgrade.
@@ -3403,29 +3925,29 @@ module TD::ClientMethods
3403
3925
  end
3404
3926
 
3405
3927
  # Asynchronously uploads a file to the cloud without sending it in a message.
3406
- # {TD::Types::Update::File} will be used to notify about upload progress and successful completion of the upload.
3928
+ # updateFile will be used to notify about upload progress and successful completion of the upload.
3407
3929
  # The file will not have a persistent remote identifier until it will be sent in a message.
3408
3930
  #
3409
3931
  # @param file [TD::Types::InputFile] File to upload.
3410
3932
  # @param file_type [TD::Types::FileType] File type.
3411
3933
  # @param priority [Integer] Priority of the upload (1-32).
3412
3934
  # The higher the priority, the earlier the file will be uploaded.
3413
- # If the priorities of two files are equal, then the first one for which {#upload_file} was called will be uploaded
3935
+ # If the priorities of two files are equal, then the first one for which uploadFile was called will be uploaded
3414
3936
  # first.
3415
3937
  # @return [TD::Types::File]
3416
- def upload_file(file, file_type, priority = 1)
3938
+ def upload_file(file, file_type, priority)
3417
3939
  broadcast('@type' => 'uploadFile',
3418
3940
  'file' => file,
3419
3941
  'file_type' => file_type,
3420
3942
  'priority' => priority)
3421
3943
  end
3422
3944
 
3423
- # Uploads a PNG image with a sticker; for bots only
3945
+ # Uploads a PNG image with a sticker; for bots only; returns the uploaded file.
3424
3946
  #
3425
3947
  # @param user_id [Integer] Sticker file owner.
3426
3948
  # @param png_sticker [TD::Types::InputFile] PNG image with the sticker; must be up to 512 kB in size and fit in
3427
3949
  # 512x512 square.
3428
- # @return [TD::Types::File] the uploaded file.
3950
+ # @return [TD::Types::File]
3429
3951
  def upload_sticker_file(user_id, png_sticker)
3430
3952
  broadcast('@type' => 'uploadStickerFile',
3431
3953
  'user_id' => user_id,
@@ -3440,7 +3962,7 @@ module TD::ClientMethods
3440
3962
  # @param order_info [TD::Types::OrderInfo] The order information, provided by the user.
3441
3963
  # @param allow_save [Boolean] True, if the order information can be saved.
3442
3964
  # @return [TD::Types::ValidatedOrderInfo]
3443
- def validate_order_info(chat_id, message_id, order_info, allow_save: false)
3965
+ def validate_order_info(chat_id, message_id, order_info, allow_save)
3444
3966
  broadcast('@type' => 'validateOrderInfo',
3445
3967
  'chat_id' => chat_id,
3446
3968
  'message_id' => message_id,
@@ -3448,7 +3970,7 @@ module TD::ClientMethods
3448
3970
  'allow_save' => allow_save)
3449
3971
  end
3450
3972
 
3451
- # This method should be called if messages are being viewed by the user.
3973
+ # Informs TDLib that messages are being viewed by the user.
3452
3974
  # Many useful activities depend on whether the messages are currently being viewed or not (e.g., marking messages as
3453
3975
  # read, incrementing a view counter, updating a view counter, removing deleted messages in supergroups and channels).
3454
3976
  #
@@ -3456,7 +3978,7 @@ module TD::ClientMethods
3456
3978
  # @param message_ids [Array<Integer>] The identifiers of the messages being viewed.
3457
3979
  # @param force_read [Boolean] True, if messages in closed chats should be marked as read.
3458
3980
  # @return [TD::Types::Ok]
3459
- def view_messages(chat_id, message_ids, force_read: false)
3981
+ def view_messages(chat_id, message_ids, force_read)
3460
3982
  broadcast('@type' => 'viewMessages',
3461
3983
  'chat_id' => chat_id,
3462
3984
  'message_ids' => message_ids,
@@ -3471,4 +3993,19 @@ module TD::ClientMethods
3471
3993
  broadcast('@type' => 'viewTrendingStickerSets',
3472
3994
  'sticker_set_ids' => sticker_set_ids)
3473
3995
  end
3996
+
3997
+ # Writes a part of a generated file.
3998
+ # This method is intended to be used only if the client has no direct access to TDLib's file system, because it is
3999
+ # usually slower than a direct write to the destination file.
4000
+ #
4001
+ # @param generation_id [Integer] The identifier of the generation process.
4002
+ # @param offset [Integer] The offset from which to write the data to the file.
4003
+ # @param data [String] The data to write.
4004
+ # @return [TD::Types::Ok]
4005
+ def write_generated_file_part(generation_id, offset, data)
4006
+ broadcast('@type' => 'writeGeneratedFilePart',
4007
+ 'generation_id' => generation_id,
4008
+ 'offset' => offset,
4009
+ 'data' => data)
4010
+ end
3474
4011
  end