tdlib-ruby 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (670) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.gitmodules +3 -0
  4. data/.travis.yml +2 -3
  5. data/ChangeLog.md +9 -0
  6. data/README.md +49 -46
  7. data/bin/build +12 -0
  8. data/bin/parser +447 -0
  9. data/lib/tdlib-ruby.rb +4 -1
  10. data/lib/tdlib/api.rb +20 -15
  11. data/lib/tdlib/client.rb +121 -123
  12. data/lib/tdlib/client_methods.rb +3474 -0
  13. data/lib/tdlib/errors.rb +29 -5
  14. data/lib/tdlib/types.rb +884 -0
  15. data/lib/tdlib/types/account_ttl.rb +10 -0
  16. data/lib/tdlib/types/address.rb +18 -0
  17. data/lib/tdlib/types/animation.rb +21 -0
  18. data/lib/tdlib/types/animations.rb +8 -0
  19. data/lib/tdlib/types/audio.rb +22 -0
  20. data/lib/tdlib/types/authentication_code_info.rb +15 -0
  21. data/lib/tdlib/types/authentication_code_type.rb +13 -0
  22. data/lib/tdlib/types/authentication_code_type/call.rb +8 -0
  23. data/lib/tdlib/types/authentication_code_type/flash_call.rb +9 -0
  24. data/lib/tdlib/types/authentication_code_type/sms.rb +8 -0
  25. data/lib/tdlib/types/authentication_code_type/telegram_message.rb +8 -0
  26. data/lib/tdlib/types/authorization_state.rb +18 -0
  27. data/lib/tdlib/types/authorization_state/closed.rb +9 -0
  28. data/lib/tdlib/types/authorization_state/closing.rb +7 -0
  29. data/lib/tdlib/types/authorization_state/logging_out.rb +5 -0
  30. data/lib/tdlib/types/authorization_state/ready.rb +6 -0
  31. data/lib/tdlib/types/authorization_state/wait_code.rb +13 -0
  32. data/lib/tdlib/types/authorization_state/wait_encryption_key.rb +8 -0
  33. data/lib/tdlib/types/authorization_state/wait_password.rb +13 -0
  34. data/lib/tdlib/types/authorization_state/wait_phone_number.rb +5 -0
  35. data/lib/tdlib/types/authorization_state/wait_tdlib_parameters.rb +5 -0
  36. data/lib/tdlib/types/base.rb +29 -0
  37. data/lib/tdlib/types/basic_group.rb +18 -0
  38. data/lib/tdlib/types/basic_group_full_info.rb +13 -0
  39. data/lib/tdlib/types/bot_command.rb +10 -0
  40. data/lib/tdlib/types/bot_info.rb +10 -0
  41. data/lib/tdlib/types/call.rb +14 -0
  42. data/lib/tdlib/types/call_connection.rb +16 -0
  43. data/lib/tdlib/types/call_discard_reason.rb +14 -0
  44. data/lib/tdlib/types/call_discard_reason/declined.rb +6 -0
  45. data/lib/tdlib/types/call_discard_reason/disconnected.rb +5 -0
  46. data/lib/tdlib/types/call_discard_reason/empty.rb +5 -0
  47. data/lib/tdlib/types/call_discard_reason/hung_up.rb +5 -0
  48. data/lib/tdlib/types/call_discard_reason/missed.rb +6 -0
  49. data/lib/tdlib/types/call_id.rb +8 -0
  50. data/lib/tdlib/types/call_protocol.rb +14 -0
  51. data/lib/tdlib/types/call_state.rb +15 -0
  52. data/lib/tdlib/types/call_state/discarded.rb +12 -0
  53. data/lib/tdlib/types/call_state/error.rb +9 -0
  54. data/lib/tdlib/types/call_state/exchanging_keys.rb +5 -0
  55. data/lib/tdlib/types/call_state/hanging_up.rb +5 -0
  56. data/lib/tdlib/types/call_state/pending.rb +10 -0
  57. data/lib/tdlib/types/call_state/ready.rb +16 -0
  58. data/lib/tdlib/types/callback_query_answer.rb +12 -0
  59. data/lib/tdlib/types/callback_query_payload.rb +11 -0
  60. data/lib/tdlib/types/callback_query_payload/data.rb +8 -0
  61. data/lib/tdlib/types/callback_query_payload/game.rb +8 -0
  62. data/lib/tdlib/types/chat.rb +51 -0
  63. data/lib/tdlib/types/chat_action.rb +22 -0
  64. data/lib/tdlib/types/chat_action/cancel.rb +5 -0
  65. data/lib/tdlib/types/chat_action/choosing_contact.rb +5 -0
  66. data/lib/tdlib/types/chat_action/choosing_location.rb +5 -0
  67. data/lib/tdlib/types/chat_action/recording_video.rb +5 -0
  68. data/lib/tdlib/types/chat_action/recording_video_note.rb +5 -0
  69. data/lib/tdlib/types/chat_action/recording_voice_note.rb +5 -0
  70. data/lib/tdlib/types/chat_action/start_playing_game.rb +5 -0
  71. data/lib/tdlib/types/chat_action/typing.rb +5 -0
  72. data/lib/tdlib/types/chat_action/uploading_document.rb +8 -0
  73. data/lib/tdlib/types/chat_action/uploading_photo.rb +8 -0
  74. data/lib/tdlib/types/chat_action/uploading_video.rb +8 -0
  75. data/lib/tdlib/types/chat_action/uploading_video_note.rb +8 -0
  76. data/lib/tdlib/types/chat_action/uploading_voice_note.rb +8 -0
  77. data/lib/tdlib/types/chat_event.rb +14 -0
  78. data/lib/tdlib/types/chat_event_action.rb +26 -0
  79. data/lib/tdlib/types/chat_event_action/description_changed.rb +10 -0
  80. data/lib/tdlib/types/chat_event_action/invites_toggled.rb +8 -0
  81. data/lib/tdlib/types/chat_event_action/is_all_history_available_toggled.rb +8 -0
  82. data/lib/tdlib/types/chat_event_action/member_invited.rb +10 -0
  83. data/lib/tdlib/types/chat_event_action/member_joined.rb +5 -0
  84. data/lib/tdlib/types/chat_event_action/member_left.rb +5 -0
  85. data/lib/tdlib/types/chat_event_action/member_promoted.rb +12 -0
  86. data/lib/tdlib/types/chat_event_action/member_restricted.rb +12 -0
  87. data/lib/tdlib/types/chat_event_action/message_deleted.rb +8 -0
  88. data/lib/tdlib/types/chat_event_action/message_edited.rb +10 -0
  89. data/lib/tdlib/types/chat_event_action/message_pinned.rb +8 -0
  90. data/lib/tdlib/types/chat_event_action/message_unpinned.rb +5 -0
  91. data/lib/tdlib/types/chat_event_action/photo_changed.rb +10 -0
  92. data/lib/tdlib/types/chat_event_action/sign_messages_toggled.rb +8 -0
  93. data/lib/tdlib/types/chat_event_action/sticker_set_changed.rb +10 -0
  94. data/lib/tdlib/types/chat_event_action/title_changed.rb +10 -0
  95. data/lib/tdlib/types/chat_event_action/username_changed.rb +10 -0
  96. data/lib/tdlib/types/chat_event_log_filters.rb +27 -0
  97. data/lib/tdlib/types/chat_events.rb +8 -0
  98. data/lib/tdlib/types/chat_invite_link.rb +8 -0
  99. data/lib/tdlib/types/chat_invite_link_info.rb +20 -0
  100. data/lib/tdlib/types/chat_member.rb +18 -0
  101. data/lib/tdlib/types/chat_member_status.rb +15 -0
  102. data/lib/tdlib/types/chat_member_status/administrator.rb +29 -0
  103. data/lib/tdlib/types/chat_member_status/banned.rb +11 -0
  104. data/lib/tdlib/types/chat_member_status/creator.rb +8 -0
  105. data/lib/tdlib/types/chat_member_status/left.rb +5 -0
  106. data/lib/tdlib/types/chat_member_status/member.rb +5 -0
  107. data/lib/tdlib/types/chat_member_status/restricted.rb +27 -0
  108. data/lib/tdlib/types/chat_members.rb +10 -0
  109. data/lib/tdlib/types/chat_members_filter.rb +14 -0
  110. data/lib/tdlib/types/chat_members_filter/administrators.rb +5 -0
  111. data/lib/tdlib/types/chat_members_filter/banned.rb +5 -0
  112. data/lib/tdlib/types/chat_members_filter/bots.rb +5 -0
  113. data/lib/tdlib/types/chat_members_filter/members.rb +5 -0
  114. data/lib/tdlib/types/chat_members_filter/restricted.rb +5 -0
  115. data/lib/tdlib/types/chat_notification_settings.rb +22 -0
  116. data/lib/tdlib/types/chat_photo.rb +10 -0
  117. data/lib/tdlib/types/chat_report_reason.rb +14 -0
  118. data/lib/tdlib/types/chat_report_reason/copyright.rb +5 -0
  119. data/lib/tdlib/types/chat_report_reason/custom.rb +8 -0
  120. data/lib/tdlib/types/chat_report_reason/pornography.rb +5 -0
  121. data/lib/tdlib/types/chat_report_reason/spam.rb +5 -0
  122. data/lib/tdlib/types/chat_report_reason/violence.rb +5 -0
  123. data/lib/tdlib/types/chat_report_spam_state.rb +8 -0
  124. data/lib/tdlib/types/chat_type.rb +13 -0
  125. data/lib/tdlib/types/chat_type/basic_group.rb +8 -0
  126. data/lib/tdlib/types/chat_type/private.rb +8 -0
  127. data/lib/tdlib/types/chat_type/secret.rb +10 -0
  128. data/lib/tdlib/types/chat_type/supergroup.rb +11 -0
  129. data/lib/tdlib/types/chats.rb +8 -0
  130. data/lib/tdlib/types/check_chat_username_result.rb +14 -0
  131. data/lib/tdlib/types/check_chat_username_result/ok.rb +5 -0
  132. data/lib/tdlib/types/check_chat_username_result/public_chats_too_much.rb +5 -0
  133. data/lib/tdlib/types/check_chat_username_result/public_groups_unavailable.rb +5 -0
  134. data/lib/tdlib/types/check_chat_username_result/username_invalid.rb +5 -0
  135. data/lib/tdlib/types/check_chat_username_result/username_occupied.rb +5 -0
  136. data/lib/tdlib/types/connected_website.rb +25 -0
  137. data/lib/tdlib/types/connected_websites.rb +8 -0
  138. data/lib/tdlib/types/connection_state.rb +14 -0
  139. data/lib/tdlib/types/connection_state/connecting.rb +5 -0
  140. data/lib/tdlib/types/connection_state/connecting_to_proxy.rb +5 -0
  141. data/lib/tdlib/types/connection_state/ready.rb +5 -0
  142. data/lib/tdlib/types/connection_state/updating.rb +5 -0
  143. data/lib/tdlib/types/connection_state/waiting_for_network.rb +6 -0
  144. data/lib/tdlib/types/contact.rb +16 -0
  145. data/lib/tdlib/types/count.rb +8 -0
  146. data/lib/tdlib/types/custom_request_result.rb +8 -0
  147. data/lib/tdlib/types/date.rb +12 -0
  148. data/lib/tdlib/types/dated_file.rb +10 -0
  149. data/lib/tdlib/types/deep_link_info.rb +10 -0
  150. data/lib/tdlib/types/device_token.rb +22 -0
  151. data/lib/tdlib/types/device_token/apple_push.rb +10 -0
  152. data/lib/tdlib/types/device_token/apple_push_vo_ip.rb +10 -0
  153. data/lib/tdlib/types/device_token/black_berry_push.rb +8 -0
  154. data/lib/tdlib/types/device_token/google_cloud_messaging.rb +8 -0
  155. data/lib/tdlib/types/device_token/microsoft_push.rb +8 -0
  156. data/lib/tdlib/types/device_token/microsoft_push_vo_ip.rb +8 -0
  157. data/lib/tdlib/types/device_token/simple_push.rb +9 -0
  158. data/lib/tdlib/types/device_token/tizen_push.rb +8 -0
  159. data/lib/tdlib/types/device_token/ubuntu_push.rb +8 -0
  160. data/lib/tdlib/types/device_token/web_push.rb +13 -0
  161. data/lib/tdlib/types/device_token/windows_push.rb +9 -0
  162. data/lib/tdlib/types/document.rb +14 -0
  163. data/lib/tdlib/types/draft_message.rb +11 -0
  164. data/lib/tdlib/types/email_address_authentication_code_info.rb +10 -0
  165. data/lib/tdlib/types/encrypted_credentials.rb +12 -0
  166. data/lib/tdlib/types/encrypted_passport_element.rb +25 -0
  167. data/lib/tdlib/types/error.rb +12 -0
  168. data/lib/tdlib/types/file.rb +18 -0
  169. data/lib/tdlib/types/file_type.rb +25 -0
  170. data/lib/tdlib/types/file_type/animation.rb +5 -0
  171. data/lib/tdlib/types/file_type/audio.rb +5 -0
  172. data/lib/tdlib/types/file_type/document.rb +5 -0
  173. data/lib/tdlib/types/file_type/none.rb +5 -0
  174. data/lib/tdlib/types/file_type/photo.rb +5 -0
  175. data/lib/tdlib/types/file_type/profile_photo.rb +5 -0
  176. data/lib/tdlib/types/file_type/secret.rb +5 -0
  177. data/lib/tdlib/types/file_type/secret_thumbnail.rb +5 -0
  178. data/lib/tdlib/types/file_type/secure.rb +5 -0
  179. data/lib/tdlib/types/file_type/sticker.rb +5 -0
  180. data/lib/tdlib/types/file_type/thumbnail.rb +5 -0
  181. data/lib/tdlib/types/file_type/unknown.rb +5 -0
  182. data/lib/tdlib/types/file_type/video.rb +5 -0
  183. data/lib/tdlib/types/file_type/video_note.rb +5 -0
  184. data/lib/tdlib/types/file_type/voice_note.rb +5 -0
  185. data/lib/tdlib/types/file_type/wallpaper.rb +5 -0
  186. data/lib/tdlib/types/formatted_text.rb +10 -0
  187. data/lib/tdlib/types/found_messages.rb +10 -0
  188. data/lib/tdlib/types/game.rb +21 -0
  189. data/lib/tdlib/types/game_high_score.rb +12 -0
  190. data/lib/tdlib/types/game_high_scores.rb +8 -0
  191. data/lib/tdlib/types/hashtags.rb +8 -0
  192. data/lib/tdlib/types/identity_document.rb +19 -0
  193. data/lib/tdlib/types/imported_contacts.rb +12 -0
  194. data/lib/tdlib/types/inline_keyboard_button.rb +10 -0
  195. data/lib/tdlib/types/inline_keyboard_button_type.rb +14 -0
  196. data/lib/tdlib/types/inline_keyboard_button_type/buy.rb +7 -0
  197. data/lib/tdlib/types/inline_keyboard_button_type/callback.rb +8 -0
  198. data/lib/tdlib/types/inline_keyboard_button_type/callback_game.rb +7 -0
  199. data/lib/tdlib/types/inline_keyboard_button_type/switch_inline.rb +10 -0
  200. data/lib/tdlib/types/inline_keyboard_button_type/url.rb +8 -0
  201. data/lib/tdlib/types/inline_query_result.rb +21 -0
  202. data/lib/tdlib/types/inline_query_result/animation.rb +12 -0
  203. data/lib/tdlib/types/inline_query_result/article.rb +18 -0
  204. data/lib/tdlib/types/inline_query_result/audio.rb +10 -0
  205. data/lib/tdlib/types/inline_query_result/contact.rb +12 -0
  206. data/lib/tdlib/types/inline_query_result/document.rb +14 -0
  207. data/lib/tdlib/types/inline_query_result/game.rb +10 -0
  208. data/lib/tdlib/types/inline_query_result/location.rb +14 -0
  209. data/lib/tdlib/types/inline_query_result/photo.rb +14 -0
  210. data/lib/tdlib/types/inline_query_result/sticker.rb +10 -0
  211. data/lib/tdlib/types/inline_query_result/venue.rb +12 -0
  212. data/lib/tdlib/types/inline_query_result/video.rb +14 -0
  213. data/lib/tdlib/types/inline_query_result/voice_note.rb +12 -0
  214. data/lib/tdlib/types/inline_query_results.rb +19 -0
  215. data/lib/tdlib/types/input_credentials.rb +13 -0
  216. data/lib/tdlib/types/input_credentials/android_pay.rb +8 -0
  217. data/lib/tdlib/types/input_credentials/apple_pay.rb +8 -0
  218. data/lib/tdlib/types/input_credentials/new.rb +10 -0
  219. data/lib/tdlib/types/input_credentials/saved.rb +9 -0
  220. data/lib/tdlib/types/input_file.rb +13 -0
  221. data/lib/tdlib/types/input_file/generated.rb +14 -0
  222. data/lib/tdlib/types/input_file/id.rb +8 -0
  223. data/lib/tdlib/types/input_file/local.rb +8 -0
  224. data/lib/tdlib/types/input_file/remote.rb +8 -0
  225. data/lib/tdlib/types/input_identity_document.rb +19 -0
  226. data/lib/tdlib/types/input_inline_query_result.rb +22 -0
  227. data/lib/tdlib/types/input_inline_query_result/animated_gif.rb +26 -0
  228. data/lib/tdlib/types/input_inline_query_result/animated_mpeg4.rb +27 -0
  229. data/lib/tdlib/types/input_inline_query_result/article.rb +28 -0
  230. data/lib/tdlib/types/input_inline_query_result/audio.rb +22 -0
  231. data/lib/tdlib/types/input_inline_query_result/contact.rb +22 -0
  232. data/lib/tdlib/types/input_inline_query_result/document.rb +29 -0
  233. data/lib/tdlib/types/input_inline_query_result/game.rb +12 -0
  234. data/lib/tdlib/types/input_inline_query_result/location.rb +27 -0
  235. data/lib/tdlib/types/input_inline_query_result/photo.rb +25 -0
  236. data/lib/tdlib/types/input_inline_query_result/sticker.rb +22 -0
  237. data/lib/tdlib/types/input_inline_query_result/venue.rb +22 -0
  238. data/lib/tdlib/types/input_inline_query_result/video.rb +31 -0
  239. data/lib/tdlib/types/input_inline_query_result/voice_note.rb +20 -0
  240. data/lib/tdlib/types/input_message_content.rb +24 -0
  241. data/lib/tdlib/types/input_message_content/animation.rb +18 -0
  242. data/lib/tdlib/types/input_message_content/audio.rb +18 -0
  243. data/lib/tdlib/types/input_message_content/contact.rb +8 -0
  244. data/lib/tdlib/types/input_message_content/document.rb +12 -0
  245. data/lib/tdlib/types/input_message_content/forwarded.rb +13 -0
  246. data/lib/tdlib/types/input_message_content/game.rb +10 -0
  247. data/lib/tdlib/types/input_message_content/invoice.rb +28 -0
  248. data/lib/tdlib/types/input_message_content/location.rb +11 -0
  249. data/lib/tdlib/types/input_message_content/photo.rb +22 -0
  250. data/lib/tdlib/types/input_message_content/sticker.rb +14 -0
  251. data/lib/tdlib/types/input_message_content/text.rb +14 -0
  252. data/lib/tdlib/types/input_message_content/venue.rb +8 -0
  253. data/lib/tdlib/types/input_message_content/video.rb +25 -0
  254. data/lib/tdlib/types/input_message_content/video_note.rb +14 -0
  255. data/lib/tdlib/types/input_message_content/voice_note.rb +14 -0
  256. data/lib/tdlib/types/input_passport_element.rb +22 -0
  257. data/lib/tdlib/types/input_passport_element/address.rb +8 -0
  258. data/lib/tdlib/types/input_passport_element/bank_statement.rb +8 -0
  259. data/lib/tdlib/types/input_passport_element/driver_license.rb +8 -0
  260. data/lib/tdlib/types/input_passport_element/email_address.rb +8 -0
  261. data/lib/tdlib/types/input_passport_element/identity_card.rb +8 -0
  262. data/lib/tdlib/types/input_passport_element/internal_passport.rb +8 -0
  263. data/lib/tdlib/types/input_passport_element/passport.rb +8 -0
  264. data/lib/tdlib/types/input_passport_element/passport_registration.rb +8 -0
  265. data/lib/tdlib/types/input_passport_element/personal_details.rb +8 -0
  266. data/lib/tdlib/types/input_passport_element/phone_number.rb +8 -0
  267. data/lib/tdlib/types/input_passport_element/rental_agreement.rb +8 -0
  268. data/lib/tdlib/types/input_passport_element/temporary_registration.rb +8 -0
  269. data/lib/tdlib/types/input_passport_element/utility_bill.rb +8 -0
  270. data/lib/tdlib/types/input_passport_element_error.rb +12 -0
  271. data/lib/tdlib/types/input_passport_element_error_source.rb +18 -0
  272. data/lib/tdlib/types/input_passport_element_error_source/data_field.rb +11 -0
  273. data/lib/tdlib/types/input_passport_element_error_source/file.rb +9 -0
  274. data/lib/tdlib/types/input_passport_element_error_source/files.rb +9 -0
  275. data/lib/tdlib/types/input_passport_element_error_source/front_side.rb +9 -0
  276. data/lib/tdlib/types/input_passport_element_error_source/reverse_side.rb +9 -0
  277. data/lib/tdlib/types/input_passport_element_error_source/selfie.rb +9 -0
  278. data/lib/tdlib/types/input_passport_element_error_source/translation_file.rb +9 -0
  279. data/lib/tdlib/types/input_passport_element_error_source/translation_files.rb +9 -0
  280. data/lib/tdlib/types/input_passport_element_error_source/unspecified.rb +9 -0
  281. data/lib/tdlib/types/input_personal_document.rb +11 -0
  282. data/lib/tdlib/types/input_sticker.rb +14 -0
  283. data/lib/tdlib/types/input_thumbnail.rb +16 -0
  284. data/lib/tdlib/types/invoice.rb +27 -0
  285. data/lib/tdlib/types/keyboard_button.rb +10 -0
  286. data/lib/tdlib/types/keyboard_button_type.rb +12 -0
  287. data/lib/tdlib/types/keyboard_button_type/request_location.rb +5 -0
  288. data/lib/tdlib/types/keyboard_button_type/request_phone_number.rb +5 -0
  289. data/lib/tdlib/types/keyboard_button_type/text.rb +5 -0
  290. data/lib/tdlib/types/labeled_price_part.rb +10 -0
  291. data/lib/tdlib/types/language_pack_info.rb +14 -0
  292. data/lib/tdlib/types/language_pack_string.rb +10 -0
  293. data/lib/tdlib/types/language_pack_string_value.rb +12 -0
  294. data/lib/tdlib/types/language_pack_string_value/deleted.rb +5 -0
  295. data/lib/tdlib/types/language_pack_string_value/ordinary.rb +8 -0
  296. data/lib/tdlib/types/language_pack_string_value/pluralized.rb +18 -0
  297. data/lib/tdlib/types/language_pack_strings.rb +8 -0
  298. data/lib/tdlib/types/link_state.rb +13 -0
  299. data/lib/tdlib/types/link_state/is_contact.rb +5 -0
  300. data/lib/tdlib/types/link_state/knows_phone_number.rb +5 -0
  301. data/lib/tdlib/types/link_state/none.rb +5 -0
  302. data/lib/tdlib/types/local_file.rb +25 -0
  303. data/lib/tdlib/types/localization_target_info.rb +8 -0
  304. data/lib/tdlib/types/location.rb +10 -0
  305. data/lib/tdlib/types/mask_point.rb +13 -0
  306. data/lib/tdlib/types/mask_point/chin.rb +5 -0
  307. data/lib/tdlib/types/mask_point/eyes.rb +5 -0
  308. data/lib/tdlib/types/mask_point/forehead.rb +5 -0
  309. data/lib/tdlib/types/mask_point/mouth.rb +5 -0
  310. data/lib/tdlib/types/mask_position.rb +17 -0
  311. data/lib/tdlib/types/message.rb +59 -0
  312. data/lib/tdlib/types/message_content.rb +48 -0
  313. data/lib/tdlib/types/message_content/animation.rb +13 -0
  314. data/lib/tdlib/types/message_content/audio.rb +10 -0
  315. data/lib/tdlib/types/message_content/basic_group_chat_create.rb +10 -0
  316. data/lib/tdlib/types/message_content/call.rb +10 -0
  317. data/lib/tdlib/types/message_content/chat_add_members.rb +8 -0
  318. data/lib/tdlib/types/message_content/chat_change_photo.rb +8 -0
  319. data/lib/tdlib/types/message_content/chat_change_title.rb +8 -0
  320. data/lib/tdlib/types/message_content/chat_delete_member.rb +8 -0
  321. data/lib/tdlib/types/message_content/chat_delete_photo.rb +5 -0
  322. data/lib/tdlib/types/message_content/chat_join_by_link.rb +5 -0
  323. data/lib/tdlib/types/message_content/chat_set_ttl.rb +8 -0
  324. data/lib/tdlib/types/message_content/chat_upgrade_from.rb +10 -0
  325. data/lib/tdlib/types/message_content/chat_upgrade_to.rb +8 -0
  326. data/lib/tdlib/types/message_content/contact.rb +8 -0
  327. data/lib/tdlib/types/message_content/contact_registered.rb +5 -0
  328. data/lib/tdlib/types/message_content/custom_service_action.rb +8 -0
  329. data/lib/tdlib/types/message_content/document.rb +10 -0
  330. data/lib/tdlib/types/message_content/expired_photo.rb +5 -0
  331. data/lib/tdlib/types/message_content/expired_video.rb +5 -0
  332. data/lib/tdlib/types/message_content/game.rb +8 -0
  333. data/lib/tdlib/types/message_content/game_score.rb +13 -0
  334. data/lib/tdlib/types/message_content/invoice.rb +26 -0
  335. data/lib/tdlib/types/message_content/location.rb +14 -0
  336. data/lib/tdlib/types/message_content/passport_data_received.rb +10 -0
  337. data/lib/tdlib/types/message_content/passport_data_sent.rb +8 -0
  338. data/lib/tdlib/types/message_content/payment_successful.rb +13 -0
  339. data/lib/tdlib/types/message_content/payment_successful_bot.rb +24 -0
  340. data/lib/tdlib/types/message_content/photo.rb +12 -0
  341. data/lib/tdlib/types/message_content/pin_message.rb +8 -0
  342. data/lib/tdlib/types/message_content/screenshot_taken.rb +5 -0
  343. data/lib/tdlib/types/message_content/sticker.rb +8 -0
  344. data/lib/tdlib/types/message_content/supergroup_chat_create.rb +8 -0
  345. data/lib/tdlib/types/message_content/text.rb +10 -0
  346. data/lib/tdlib/types/message_content/unsupported.rb +5 -0
  347. data/lib/tdlib/types/message_content/venue.rb +8 -0
  348. data/lib/tdlib/types/message_content/video.rb +13 -0
  349. data/lib/tdlib/types/message_content/video_note.rb +13 -0
  350. data/lib/tdlib/types/message_content/voice_note.rb +12 -0
  351. data/lib/tdlib/types/message_content/website_connected.rb +8 -0
  352. data/lib/tdlib/types/message_forward_info.rb +11 -0
  353. data/lib/tdlib/types/message_forward_info/message_forwarded_from_user.rb +16 -0
  354. data/lib/tdlib/types/message_forward_info/message_forwarded_post.rb +21 -0
  355. data/lib/tdlib/types/message_sending_state.rb +11 -0
  356. data/lib/tdlib/types/message_sending_state/failed.rb +5 -0
  357. data/lib/tdlib/types/message_sending_state/pending.rb +5 -0
  358. data/lib/tdlib/types/messages.rb +10 -0
  359. data/lib/tdlib/types/network_statistics.rb +10 -0
  360. data/lib/tdlib/types/network_statistics_entry.rb +11 -0
  361. data/lib/tdlib/types/network_statistics_entry/call.rb +15 -0
  362. data/lib/tdlib/types/network_statistics_entry/file.rb +15 -0
  363. data/lib/tdlib/types/network_type.rb +14 -0
  364. data/lib/tdlib/types/network_type/mobile.rb +5 -0
  365. data/lib/tdlib/types/network_type/mobile_roaming.rb +5 -0
  366. data/lib/tdlib/types/network_type/none.rb +5 -0
  367. data/lib/tdlib/types/network_type/other.rb +5 -0
  368. data/lib/tdlib/types/network_type/wi_fi.rb +5 -0
  369. data/lib/tdlib/types/notification_settings_scope.rb +11 -0
  370. data/lib/tdlib/types/notification_settings_scope/group_chats.rb +6 -0
  371. data/lib/tdlib/types/notification_settings_scope/private_chats.rb +6 -0
  372. data/lib/tdlib/types/ok.rb +5 -0
  373. data/lib/tdlib/types/option_value.rb +13 -0
  374. data/lib/tdlib/types/option_value/boolean.rb +8 -0
  375. data/lib/tdlib/types/option_value/empty.rb +5 -0
  376. data/lib/tdlib/types/option_value/integer.rb +8 -0
  377. data/lib/tdlib/types/option_value/string.rb +8 -0
  378. data/lib/tdlib/types/order_info.rb +14 -0
  379. data/lib/tdlib/types/page_block.rb +32 -0
  380. data/lib/tdlib/types/page_block/anchor.rb +8 -0
  381. data/lib/tdlib/types/page_block/animation.rb +12 -0
  382. data/lib/tdlib/types/page_block/audio.rb +10 -0
  383. data/lib/tdlib/types/page_block/author_date.rb +10 -0
  384. data/lib/tdlib/types/page_block/block_quote.rb +10 -0
  385. data/lib/tdlib/types/page_block/chat_link.rb +12 -0
  386. data/lib/tdlib/types/page_block/collage.rb +10 -0
  387. data/lib/tdlib/types/page_block/cover.rb +8 -0
  388. data/lib/tdlib/types/page_block/divider.rb +5 -0
  389. data/lib/tdlib/types/page_block/embedded.rb +22 -0
  390. data/lib/tdlib/types/page_block/embedded_post.rb +18 -0
  391. data/lib/tdlib/types/page_block/footer.rb +8 -0
  392. data/lib/tdlib/types/page_block/header.rb +8 -0
  393. data/lib/tdlib/types/page_block/list.rb +10 -0
  394. data/lib/tdlib/types/page_block/paragraph.rb +8 -0
  395. data/lib/tdlib/types/page_block/photo.rb +10 -0
  396. data/lib/tdlib/types/page_block/preformatted.rb +10 -0
  397. data/lib/tdlib/types/page_block/pull_quote.rb +10 -0
  398. data/lib/tdlib/types/page_block/slideshow.rb +10 -0
  399. data/lib/tdlib/types/page_block/subheader.rb +8 -0
  400. data/lib/tdlib/types/page_block/subtitle.rb +8 -0
  401. data/lib/tdlib/types/page_block/title.rb +8 -0
  402. data/lib/tdlib/types/page_block/video.rb +14 -0
  403. data/lib/tdlib/types/passport_authorization_form.rb +17 -0
  404. data/lib/tdlib/types/passport_element.rb +22 -0
  405. data/lib/tdlib/types/passport_element/address.rb +8 -0
  406. data/lib/tdlib/types/passport_element/bank_statement.rb +8 -0
  407. data/lib/tdlib/types/passport_element/driver_license.rb +8 -0
  408. data/lib/tdlib/types/passport_element/email_address.rb +8 -0
  409. data/lib/tdlib/types/passport_element/identity_card.rb +8 -0
  410. data/lib/tdlib/types/passport_element/internal_passport.rb +8 -0
  411. data/lib/tdlib/types/passport_element/passport.rb +8 -0
  412. data/lib/tdlib/types/passport_element/passport_registration.rb +8 -0
  413. data/lib/tdlib/types/passport_element/personal_details.rb +8 -0
  414. data/lib/tdlib/types/passport_element/phone_number.rb +8 -0
  415. data/lib/tdlib/types/passport_element/rental_agreement.rb +8 -0
  416. data/lib/tdlib/types/passport_element/temporary_registration.rb +8 -0
  417. data/lib/tdlib/types/passport_element/utility_bill.rb +8 -0
  418. data/lib/tdlib/types/passport_element_error.rb +12 -0
  419. data/lib/tdlib/types/passport_element_error_source.rb +18 -0
  420. data/lib/tdlib/types/passport_element_error_source/data_field.rb +9 -0
  421. data/lib/tdlib/types/passport_element_error_source/file.rb +6 -0
  422. data/lib/tdlib/types/passport_element_error_source/files.rb +6 -0
  423. data/lib/tdlib/types/passport_element_error_source/front_side.rb +6 -0
  424. data/lib/tdlib/types/passport_element_error_source/reverse_side.rb +6 -0
  425. data/lib/tdlib/types/passport_element_error_source/selfie.rb +6 -0
  426. data/lib/tdlib/types/passport_element_error_source/translation_file.rb +6 -0
  427. data/lib/tdlib/types/passport_element_error_source/translation_files.rb +6 -0
  428. data/lib/tdlib/types/passport_element_error_source/unspecified.rb +6 -0
  429. data/lib/tdlib/types/passport_element_type.rb +22 -0
  430. data/lib/tdlib/types/passport_element_type/address.rb +5 -0
  431. data/lib/tdlib/types/passport_element_type/bank_statement.rb +5 -0
  432. data/lib/tdlib/types/passport_element_type/driver_license.rb +5 -0
  433. data/lib/tdlib/types/passport_element_type/email_address.rb +5 -0
  434. data/lib/tdlib/types/passport_element_type/identity_card.rb +5 -0
  435. data/lib/tdlib/types/passport_element_type/internal_passport.rb +5 -0
  436. data/lib/tdlib/types/passport_element_type/passport.rb +5 -0
  437. data/lib/tdlib/types/passport_element_type/passport_registration.rb +5 -0
  438. data/lib/tdlib/types/passport_element_type/personal_details.rb +5 -0
  439. data/lib/tdlib/types/passport_element_type/phone_number.rb +5 -0
  440. data/lib/tdlib/types/passport_element_type/rental_agreement.rb +5 -0
  441. data/lib/tdlib/types/passport_element_type/temporary_registration.rb +5 -0
  442. data/lib/tdlib/types/passport_element_type/utility_bill.rb +5 -0
  443. data/lib/tdlib/types/passport_elements.rb +8 -0
  444. data/lib/tdlib/types/passport_required_element.rb +9 -0
  445. data/lib/tdlib/types/passport_suitable_element.rb +15 -0
  446. data/lib/tdlib/types/password_state.rb +17 -0
  447. data/lib/tdlib/types/payment_form.rb +23 -0
  448. data/lib/tdlib/types/payment_receipt.rb +18 -0
  449. data/lib/tdlib/types/payment_result.rb +11 -0
  450. data/lib/tdlib/types/payments_provider_stripe.rb +14 -0
  451. data/lib/tdlib/types/personal_details.rb +26 -0
  452. data/lib/tdlib/types/personal_document.rb +11 -0
  453. data/lib/tdlib/types/photo.rb +12 -0
  454. data/lib/tdlib/types/photo_size.rb +14 -0
  455. data/lib/tdlib/types/profile_photo.rb +13 -0
  456. data/lib/tdlib/types/proxies.rb +8 -0
  457. data/lib/tdlib/types/proxy.rb +18 -0
  458. data/lib/tdlib/types/proxy_type.rb +12 -0
  459. data/lib/tdlib/types/proxy_type/http.rb +13 -0
  460. data/lib/tdlib/types/proxy_type/mtproto.rb +8 -0
  461. data/lib/tdlib/types/proxy_type/socks5.rb +10 -0
  462. data/lib/tdlib/types/public_message_link.rb +10 -0
  463. data/lib/tdlib/types/recovery_email_address.rb +8 -0
  464. data/lib/tdlib/types/remote_file.rb +22 -0
  465. data/lib/tdlib/types/reply_markup.rb +13 -0
  466. data/lib/tdlib/types/reply_markup/force_reply.rb +10 -0
  467. data/lib/tdlib/types/reply_markup/inline_keyboard.rb +8 -0
  468. data/lib/tdlib/types/reply_markup/remove_keyboard.rb +11 -0
  469. data/lib/tdlib/types/reply_markup/show_keyboard.rb +16 -0
  470. data/lib/tdlib/types/rich_text.rb +18 -0
  471. data/lib/tdlib/types/rich_text/bold.rb +8 -0
  472. data/lib/tdlib/types/rich_text/email_address.rb +10 -0
  473. data/lib/tdlib/types/rich_text/fixed.rb +8 -0
  474. data/lib/tdlib/types/rich_text/italic.rb +8 -0
  475. data/lib/tdlib/types/rich_text/plain.rb +8 -0
  476. data/lib/tdlib/types/rich_text/s.rb +8 -0
  477. data/lib/tdlib/types/rich_text/strikethrough.rb +8 -0
  478. data/lib/tdlib/types/rich_text/underline.rb +8 -0
  479. data/lib/tdlib/types/rich_text/url.rb +10 -0
  480. data/lib/tdlib/types/saved_credentials.rb +10 -0
  481. data/lib/tdlib/types/scope_notification_settings.rb +13 -0
  482. data/lib/tdlib/types/search_messages_filter.rb +25 -0
  483. data/lib/tdlib/types/search_messages_filter/animation.rb +5 -0
  484. data/lib/tdlib/types/search_messages_filter/audio.rb +5 -0
  485. data/lib/tdlib/types/search_messages_filter/call.rb +5 -0
  486. data/lib/tdlib/types/search_messages_filter/chat_photo.rb +5 -0
  487. data/lib/tdlib/types/search_messages_filter/document.rb +5 -0
  488. data/lib/tdlib/types/search_messages_filter/empty.rb +5 -0
  489. data/lib/tdlib/types/search_messages_filter/mention.rb +5 -0
  490. data/lib/tdlib/types/search_messages_filter/missed_call.rb +5 -0
  491. data/lib/tdlib/types/search_messages_filter/photo.rb +5 -0
  492. data/lib/tdlib/types/search_messages_filter/photo_and_video.rb +5 -0
  493. data/lib/tdlib/types/search_messages_filter/unread_mention.rb +6 -0
  494. data/lib/tdlib/types/search_messages_filter/url.rb +5 -0
  495. data/lib/tdlib/types/search_messages_filter/video.rb +5 -0
  496. data/lib/tdlib/types/search_messages_filter/video_note.rb +5 -0
  497. data/lib/tdlib/types/search_messages_filter/voice_and_video_note.rb +5 -0
  498. data/lib/tdlib/types/search_messages_filter/voice_note.rb +5 -0
  499. data/lib/tdlib/types/seconds.rb +8 -0
  500. data/lib/tdlib/types/secret_chat.rb +26 -0
  501. data/lib/tdlib/types/secret_chat_state.rb +12 -0
  502. data/lib/tdlib/types/secret_chat_state/closed.rb +5 -0
  503. data/lib/tdlib/types/secret_chat_state/pending.rb +5 -0
  504. data/lib/tdlib/types/secret_chat_state/ready.rb +5 -0
  505. data/lib/tdlib/types/session.rb +39 -0
  506. data/lib/tdlib/types/sessions.rb +8 -0
  507. data/lib/tdlib/types/shipping_option.rb +13 -0
  508. data/lib/tdlib/types/sticker.rb +22 -0
  509. data/lib/tdlib/types/sticker_emojis.rb +10 -0
  510. data/lib/tdlib/types/sticker_set.rb +27 -0
  511. data/lib/tdlib/types/sticker_set_info.rb +29 -0
  512. data/lib/tdlib/types/sticker_sets.rb +10 -0
  513. data/lib/tdlib/types/stickers.rb +8 -0
  514. data/lib/tdlib/types/storage_statistics.rb +12 -0
  515. data/lib/tdlib/types/storage_statistics_by_chat.rb +14 -0
  516. data/lib/tdlib/types/storage_statistics_by_file_type.rb +12 -0
  517. data/lib/tdlib/types/storage_statistics_fast.rb +12 -0
  518. data/lib/tdlib/types/supergroup.rb +40 -0
  519. data/lib/tdlib/types/supergroup_full_info.rb +39 -0
  520. data/lib/tdlib/types/supergroup_members_filter.rb +15 -0
  521. data/lib/tdlib/types/supergroup_members_filter/administrators.rb +5 -0
  522. data/lib/tdlib/types/supergroup_members_filter/banned.rb +8 -0
  523. data/lib/tdlib/types/supergroup_members_filter/bots.rb +5 -0
  524. data/lib/tdlib/types/supergroup_members_filter/recent.rb +5 -0
  525. data/lib/tdlib/types/supergroup_members_filter/restricted.rb +8 -0
  526. data/lib/tdlib/types/supergroup_members_filter/search.rb +8 -0
  527. data/lib/tdlib/types/t_me_url.rb +10 -0
  528. data/lib/tdlib/types/t_me_url_type.rb +13 -0
  529. data/lib/tdlib/types/t_me_url_type/chat_invite.rb +8 -0
  530. data/lib/tdlib/types/t_me_url_type/sticker_set.rb +8 -0
  531. data/lib/tdlib/types/t_me_url_type/supergroup.rb +8 -0
  532. data/lib/tdlib/types/t_me_url_type/user.rb +8 -0
  533. data/lib/tdlib/types/t_me_urls.rb +8 -0
  534. data/lib/tdlib/types/tdlib_parameters.rb +46 -0
  535. data/lib/tdlib/types/temporary_password_state.rb +10 -0
  536. data/lib/tdlib/types/terms_of_service.rb +12 -0
  537. data/lib/tdlib/types/text.rb +8 -0
  538. data/lib/tdlib/types/text_entities.rb +8 -0
  539. data/lib/tdlib/types/text_entity.rb +12 -0
  540. data/lib/tdlib/types/text_entity_type.rb +23 -0
  541. data/lib/tdlib/types/text_entity_type/bold.rb +5 -0
  542. data/lib/tdlib/types/text_entity_type/bot_command.rb +6 -0
  543. data/lib/tdlib/types/text_entity_type/cashtag.rb +6 -0
  544. data/lib/tdlib/types/text_entity_type/code.rb +5 -0
  545. data/lib/tdlib/types/text_entity_type/email_address.rb +5 -0
  546. data/lib/tdlib/types/text_entity_type/hashtag.rb +5 -0
  547. data/lib/tdlib/types/text_entity_type/italic.rb +5 -0
  548. data/lib/tdlib/types/text_entity_type/mention.rb +5 -0
  549. data/lib/tdlib/types/text_entity_type/mention_name.rb +8 -0
  550. data/lib/tdlib/types/text_entity_type/phone_number.rb +5 -0
  551. data/lib/tdlib/types/text_entity_type/pre.rb +5 -0
  552. data/lib/tdlib/types/text_entity_type/pre_code.rb +8 -0
  553. data/lib/tdlib/types/text_entity_type/text_url.rb +8 -0
  554. data/lib/tdlib/types/text_entity_type/url.rb +5 -0
  555. data/lib/tdlib/types/text_parse_mode.rb +11 -0
  556. data/lib/tdlib/types/text_parse_mode/html.rb +5 -0
  557. data/lib/tdlib/types/text_parse_mode/markdown.rb +5 -0
  558. data/lib/tdlib/types/top_chat_category.rb +15 -0
  559. data/lib/tdlib/types/top_chat_category/bots.rb +5 -0
  560. data/lib/tdlib/types/top_chat_category/calls.rb +5 -0
  561. data/lib/tdlib/types/top_chat_category/channels.rb +5 -0
  562. data/lib/tdlib/types/top_chat_category/groups.rb +5 -0
  563. data/lib/tdlib/types/top_chat_category/inline_bots.rb +5 -0
  564. data/lib/tdlib/types/top_chat_category/users.rb +5 -0
  565. data/lib/tdlib/types/update.rb +70 -0
  566. data/lib/tdlib/types/update/authorization_state.rb +8 -0
  567. data/lib/tdlib/types/update/basic_group.rb +9 -0
  568. data/lib/tdlib/types/update/basic_group_full_info.rb +10 -0
  569. data/lib/tdlib/types/update/call.rb +8 -0
  570. data/lib/tdlib/types/update/chat_default_disable_notification.rb +10 -0
  571. data/lib/tdlib/types/update/chat_draft_message.rb +14 -0
  572. data/lib/tdlib/types/update/chat_is_marked_as_unread.rb +10 -0
  573. data/lib/tdlib/types/update/chat_is_pinned.rb +12 -0
  574. data/lib/tdlib/types/update/chat_is_sponsored.rb +12 -0
  575. data/lib/tdlib/types/update/chat_last_message.rb +14 -0
  576. data/lib/tdlib/types/update/chat_notification_settings.rb +10 -0
  577. data/lib/tdlib/types/update/chat_order.rb +11 -0
  578. data/lib/tdlib/types/update/chat_photo.rb +10 -0
  579. data/lib/tdlib/types/update/chat_read_inbox.rb +12 -0
  580. data/lib/tdlib/types/update/chat_read_outbox.rb +10 -0
  581. data/lib/tdlib/types/update/chat_reply_markup.rb +13 -0
  582. data/lib/tdlib/types/update/chat_title.rb +10 -0
  583. data/lib/tdlib/types/update/chat_unread_mention_count.rb +10 -0
  584. data/lib/tdlib/types/update/connection_state.rb +8 -0
  585. data/lib/tdlib/types/update/delete_messages.rb +16 -0
  586. data/lib/tdlib/types/update/favorite_stickers.rb +8 -0
  587. data/lib/tdlib/types/update/file.rb +8 -0
  588. data/lib/tdlib/types/update/file_generation_start.rb +17 -0
  589. data/lib/tdlib/types/update/file_generation_stop.rb +8 -0
  590. data/lib/tdlib/types/update/installed_sticker_sets.rb +10 -0
  591. data/lib/tdlib/types/update/language_pack_strings.rb +12 -0
  592. data/lib/tdlib/types/update/message_content.rb +12 -0
  593. data/lib/tdlib/types/update/message_content_opened.rb +12 -0
  594. data/lib/tdlib/types/update/message_edited.rb +15 -0
  595. data/lib/tdlib/types/update/message_mention_read.rb +12 -0
  596. data/lib/tdlib/types/update/message_send_acknowledged.rb +14 -0
  597. data/lib/tdlib/types/update/message_send_failed.rb +16 -0
  598. data/lib/tdlib/types/update/message_send_succeeded.rb +11 -0
  599. data/lib/tdlib/types/update/message_views.rb +12 -0
  600. data/lib/tdlib/types/update/new_callback_query.rb +18 -0
  601. data/lib/tdlib/types/update/new_chat.rb +10 -0
  602. data/lib/tdlib/types/update/new_chosen_inline_result.rb +16 -0
  603. data/lib/tdlib/types/update/new_custom_event.rb +8 -0
  604. data/lib/tdlib/types/update/new_custom_query.rb +12 -0
  605. data/lib/tdlib/types/update/new_inline_callback_query.rb +16 -0
  606. data/lib/tdlib/types/update/new_inline_query.rb +16 -0
  607. data/lib/tdlib/types/update/new_message.rb +12 -0
  608. data/lib/tdlib/types/update/new_pre_checkout_query.rb +22 -0
  609. data/lib/tdlib/types/update/new_shipping_query.rb +15 -0
  610. data/lib/tdlib/types/update/option.rb +10 -0
  611. data/lib/tdlib/types/update/recent_stickers.rb +11 -0
  612. data/lib/tdlib/types/update/saved_animations.rb +8 -0
  613. data/lib/tdlib/types/update/scope_notification_settings.rb +10 -0
  614. data/lib/tdlib/types/update/secret_chat.rb +9 -0
  615. data/lib/tdlib/types/update/service_notification.rb +13 -0
  616. data/lib/tdlib/types/update/supergroup.rb +9 -0
  617. data/lib/tdlib/types/update/supergroup_full_info.rb +10 -0
  618. data/lib/tdlib/types/update/terms_of_service.rb +12 -0
  619. data/lib/tdlib/types/update/trending_sticker_sets.rb +8 -0
  620. data/lib/tdlib/types/update/unread_chat_count.rb +16 -0
  621. data/lib/tdlib/types/update/unread_message_count.rb +11 -0
  622. data/lib/tdlib/types/update/user.rb +9 -0
  623. data/lib/tdlib/types/update/user_chat_action.rb +12 -0
  624. data/lib/tdlib/types/update/user_full_info.rb +10 -0
  625. data/lib/tdlib/types/update/user_privacy_setting_rules.rb +10 -0
  626. data/lib/tdlib/types/update/user_status.rb +10 -0
  627. data/lib/tdlib/types/user.rb +41 -0
  628. data/lib/tdlib/types/user_full_info.rb +21 -0
  629. data/lib/tdlib/types/user_privacy_setting.rb +12 -0
  630. data/lib/tdlib/types/user_privacy_setting/allow_calls.rb +5 -0
  631. data/lib/tdlib/types/user_privacy_setting/allow_chat_invites.rb +5 -0
  632. data/lib/tdlib/types/user_privacy_setting/show_status.rb +5 -0
  633. data/lib/tdlib/types/user_privacy_setting_rule.rb +15 -0
  634. data/lib/tdlib/types/user_privacy_setting_rule/allow_all.rb +5 -0
  635. data/lib/tdlib/types/user_privacy_setting_rule/allow_contacts.rb +5 -0
  636. data/lib/tdlib/types/user_privacy_setting_rule/allow_users.rb +8 -0
  637. data/lib/tdlib/types/user_privacy_setting_rule/restrict_all.rb +5 -0
  638. data/lib/tdlib/types/user_privacy_setting_rule/restrict_contacts.rb +5 -0
  639. data/lib/tdlib/types/user_privacy_setting_rule/restrict_users.rb +8 -0
  640. data/lib/tdlib/types/user_privacy_setting_rules.rb +11 -0
  641. data/lib/tdlib/types/user_profile_photos.rb +10 -0
  642. data/lib/tdlib/types/user_status.rb +15 -0
  643. data/lib/tdlib/types/user_status/empty.rb +5 -0
  644. data/lib/tdlib/types/user_status/last_month.rb +5 -0
  645. data/lib/tdlib/types/user_status/last_week.rb +5 -0
  646. data/lib/tdlib/types/user_status/offline.rb +8 -0
  647. data/lib/tdlib/types/user_status/online.rb +8 -0
  648. data/lib/tdlib/types/user_status/recently.rb +5 -0
  649. data/lib/tdlib/types/user_type.rb +14 -0
  650. data/lib/tdlib/types/user_type/bot.rb +18 -0
  651. data/lib/tdlib/types/user_type/deleted.rb +7 -0
  652. data/lib/tdlib/types/user_type/regular.rb +5 -0
  653. data/lib/tdlib/types/user_type/unknown.rb +7 -0
  654. data/lib/tdlib/types/users.rb +10 -0
  655. data/lib/tdlib/types/validated_order_info.rb +11 -0
  656. data/lib/tdlib/types/venue.rb +19 -0
  657. data/lib/tdlib/types/video.rb +24 -0
  658. data/lib/tdlib/types/video_note.rb +15 -0
  659. data/lib/tdlib/types/voice_note.rb +16 -0
  660. data/lib/tdlib/types/wallpaper.rb +14 -0
  661. data/lib/tdlib/types/wallpapers.rb +8 -0
  662. data/lib/tdlib/types/web_page.rb +51 -0
  663. data/lib/tdlib/types/web_page_instant_view.rb +11 -0
  664. data/lib/tdlib/update_handler.rb +36 -0
  665. data/lib/tdlib/update_manager.rb +21 -11
  666. data/lib/tdlib/version.rb +1 -1
  667. data/spec/integration/tdlib_spec.rb +20 -15
  668. data/tdlib-ruby.gemspec +7 -12
  669. metadata +720 -9
  670. data/lib/tdlib/utils.rb +0 -7
@@ -0,0 +1,18 @@
1
+ module TD::Types
2
+ # A bot (see https://core.telegram.org/bots).
3
+ #
4
+ # @attr can_join_groups [Boolean] True, if the bot can be invited to basic group and supergroup chats.
5
+ # @attr can_read_all_group_messages [Boolean] True, if the bot can read all messages in basic group or supergroup
6
+ # chats and not just those addressed to the bot.
7
+ # In private and channel chats a bot can always read all messages.
8
+ # @attr is_inline [Boolean] True, if the bot supports inline queries.
9
+ # @attr inline_query_placeholder [String] Placeholder for inline queries (displayed on the client input field).
10
+ # @attr need_location [Boolean] True, if the location of the user should be sent with every inline query to this bot.
11
+ class UserType::Bot < UserType
12
+ attribute :can_join_groups, TD::Types::Bool
13
+ attribute :can_read_all_group_messages, TD::Types::Bool
14
+ attribute :is_inline, TD::Types::Bool
15
+ attribute :inline_query_placeholder, TD::Types::String
16
+ attribute :need_location, TD::Types::Bool
17
+ end
18
+ end
@@ -0,0 +1,7 @@
1
+ module TD::Types
2
+ # A deleted user or deleted bot.
3
+ # No information on the user besides the user_id is available.
4
+ # It is not possible to perform any active actions on this type of user.
5
+ class UserType::Deleted < UserType
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ module TD::Types
2
+ # A regular user.
3
+ class UserType::Regular < UserType
4
+ end
5
+ end
@@ -0,0 +1,7 @@
1
+ module TD::Types
2
+ # No information on the user besides the user_id is available, yet this user has not been deleted.
3
+ # This object is extremely rare and must be handled like a deleted user.
4
+ # It is not possible to perform any actions on users of this type.
5
+ class UserType::Unknown < UserType
6
+ end
7
+ end
@@ -0,0 +1,10 @@
1
+ module TD::Types
2
+ # Represents a list of users.
3
+ #
4
+ # @attr total_count [Integer] Approximate total count of users found.
5
+ # @attr user_ids [Array<Integer>] A list of user identifiers.
6
+ class Users < Base
7
+ attribute :total_count, TD::Types::Integer
8
+ attribute :user_ids, TD::Types::Array.of(TD::Types::Integer)
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ module TD::Types
2
+ # Contains a temporary identifier of validated order information, which is stored for one hour.
3
+ # Also contains the available shipping options.
4
+ #
5
+ # @attr order_info_id [String] Temporary identifier of the order information.
6
+ # @attr shipping_options [Array<TD::Types::ShippingOption>] Available shipping options.
7
+ class ValidatedOrderInfo < Base
8
+ attribute :order_info_id, TD::Types::String
9
+ attribute :shipping_options, TD::Types::Array.of(TD::Types::ShippingOption)
10
+ end
11
+ end
@@ -0,0 +1,19 @@
1
+ module TD::Types
2
+ # Describes a venue.
3
+ #
4
+ # @attr location [TD::Types::Location] Venue location; as defined by the sender.
5
+ # @attr title [String] Venue name; as defined by the sender.
6
+ # @attr address [String] Venue address; as defined by the sender.
7
+ # @attr provider [String] Provider of the venue database; as defined by the sender.
8
+ # Currently only "foursquare" needs to be supported.
9
+ # @attr id [String] Identifier of the venue in the provider database; as defined by the sender.
10
+ # @attr type [String] Type of the venue in the provider database; as defined by the sender.
11
+ class Venue < Base
12
+ attribute :location, TD::Types::Location
13
+ attribute :title, TD::Types::String
14
+ attribute :address, TD::Types::String
15
+ attribute :provider, TD::Types::String
16
+ attribute :id, TD::Types::String
17
+ attribute :type, TD::Types::String
18
+ end
19
+ end
@@ -0,0 +1,24 @@
1
+ module TD::Types
2
+ # Describes a video file.
3
+ #
4
+ # @attr duration [Integer] Duration of the video, in seconds; as defined by the sender.
5
+ # @attr width [Integer] Video width; as defined by the sender.
6
+ # @attr height [Integer] Video height; as defined by the sender.
7
+ # @attr file_name [String] Original name of the file; as defined by the sender.
8
+ # @attr mime_type [String] MIME type of the file; as defined by the sender.
9
+ # @attr has_stickers [Boolean] True, if stickers were added to the photo.
10
+ # @attr supports_streaming [Boolean] True, if the video should be tried to be streamed.
11
+ # @attr thumbnail [TD::Types::PhotoSize, nil] Video thumbnail; as defined by the sender; may be null.
12
+ # @attr video [TD::Types::File] File containing the video.
13
+ class Video < Base
14
+ attribute :duration, TD::Types::Integer
15
+ attribute :width, TD::Types::Integer
16
+ attribute :height, TD::Types::Integer
17
+ attribute :file_name, TD::Types::String
18
+ attribute :mime_type, TD::Types::String
19
+ attribute :has_stickers, TD::Types::Bool
20
+ attribute :supports_streaming, TD::Types::Bool
21
+ attribute :thumbnail, TD::Types::PhotoSize.optional.default(nil)
22
+ attribute :video, TD::Types::File
23
+ end
24
+ end
@@ -0,0 +1,15 @@
1
+ module TD::Types
2
+ # Describes a video note.
3
+ # The video must be equal in width and height, cropped to a circle, and stored in MPEG4 format.
4
+ #
5
+ # @attr duration [Integer] Duration of the video, in seconds; as defined by the sender.
6
+ # @attr length [Integer] Video width and height; as defined by the sender.
7
+ # @attr thumbnail [TD::Types::PhotoSize, nil] Video thumbnail; as defined by the sender; may be null.
8
+ # @attr video [TD::Types::File] File containing the video.
9
+ class VideoNote < Base
10
+ attribute :duration, TD::Types::Integer
11
+ attribute :length, TD::Types::Integer
12
+ attribute :thumbnail, TD::Types::PhotoSize.optional.default(nil)
13
+ attribute :video, TD::Types::File
14
+ end
15
+ end
@@ -0,0 +1,16 @@
1
+ module TD::Types
2
+ # Describes a voice note.
3
+ # The voice note must be encoded with the Opus codec, and stored inside an OGG container.
4
+ # Voice notes can have only a single audio channel.
5
+ #
6
+ # @attr duration [Integer] Duration of the voice note, in seconds; as defined by the sender.
7
+ # @attr waveform [String] A waveform representation of the voice note in 5-bit format.
8
+ # @attr mime_type [String] MIME type of the file; as defined by the sender.
9
+ # @attr voice [TD::Types::File] File containing the voice note.
10
+ class VoiceNote < Base
11
+ attribute :duration, TD::Types::Integer
12
+ attribute :waveform, TD::Types::String
13
+ attribute :mime_type, TD::Types::String
14
+ attribute :voice, TD::Types::File
15
+ end
16
+ end
@@ -0,0 +1,14 @@
1
+ module TD::Types
2
+ # Contains information about a wallpaper.
3
+ #
4
+ # @attr id [Integer] Unique persistent wallpaper identifier.
5
+ # @attr sizes [Array<TD::Types::PhotoSize>] Available variants of the wallpaper in different sizes.
6
+ # These photos can only be downloaded; they can't be sent in a message.
7
+ # @attr color [Integer] Main color of the wallpaper in RGB24 format; should be treated as background color if no
8
+ # photos are specified.
9
+ class Wallpaper < Base
10
+ attribute :id, TD::Types::Integer
11
+ attribute :sizes, TD::Types::Array.of(TD::Types::PhotoSize)
12
+ attribute :color, TD::Types::Integer
13
+ end
14
+ end
@@ -0,0 +1,8 @@
1
+ module TD::Types
2
+ # Contains a list of wallpapers.
3
+ #
4
+ # @attr wallpapers [Array<TD::Types::Wallpaper>] A list of wallpapers.
5
+ class Wallpapers < Base
6
+ attribute :wallpapers, TD::Types::Array.of(TD::Types::Wallpaper)
7
+ end
8
+ end
@@ -0,0 +1,51 @@
1
+ module TD::Types
2
+ # Describes a web page preview.
3
+ #
4
+ # @attr url [String] Original URL of the link.
5
+ # @attr display_url [String] URL to display.
6
+ # @attr type [String] Type of the web page.
7
+ # Can be: article, photo, audio, video, document, profile, app, or something else.
8
+ # @attr site_name [String] Short name of the site (e.g., Google Docs, App Store).
9
+ # @attr title [String] Title of the content.
10
+ # @attr description [String] Description of the content.
11
+ # @attr photo [TD::Types::Photo, nil] Image representing the content; may be null.
12
+ # @attr embed_url [String] URL to show in the embedded preview.
13
+ # @attr embed_type [String] MIME type of the embedded preview, (e.g., text/html or video/mp4).
14
+ # @attr embed_width [Integer] Width of the embedded preview.
15
+ # @attr embed_height [Integer] Height of the embedded preview.
16
+ # @attr duration [Integer] Duration of the content, in seconds.
17
+ # @attr author [String] Author of the content.
18
+ # @attr animation [TD::Types::Animation, nil] Preview of the content as an animation, if available; may be null.
19
+ # @attr audio [TD::Types::Audio, nil] Preview of the content as an audio file, if available; may be null.
20
+ # @attr document [TD::Types::Document, nil] Preview of the content as a document, if available (currently only
21
+ # available for small PDF files and ZIP archives); may be null.
22
+ # @attr sticker [TD::Types::Sticker, nil] Preview of the content as a sticker for small WEBP files, if available; may
23
+ # be null.
24
+ # @attr video [TD::Types::Video, nil] Preview of the content as a video, if available; may be null.
25
+ # @attr video_note [TD::Types::VideoNote, nil] Preview of the content as a video note, if available; may be null.
26
+ # @attr voice_note [TD::Types::VoiceNote, nil] Preview of the content as a voice note, if available; may be null.
27
+ # @attr has_instant_view [Boolean] True, if the web page has an instant view.
28
+ class WebPage < Base
29
+ attribute :url, TD::Types::String
30
+ attribute :display_url, TD::Types::String
31
+ attribute :type, TD::Types::String
32
+ attribute :site_name, TD::Types::String
33
+ attribute :title, TD::Types::String
34
+ attribute :description, TD::Types::String
35
+ attribute :photo, TD::Types::Photo.optional.default(nil)
36
+ attribute :embed_url, TD::Types::String
37
+ attribute :embed_type, TD::Types::String
38
+ attribute :embed_width, TD::Types::Integer
39
+ attribute :embed_height, TD::Types::Integer
40
+ attribute :duration, TD::Types::Integer
41
+ attribute :author, TD::Types::String
42
+ attribute :animation, TD::Types::Animation.optional.default(nil)
43
+ attribute :audio, TD::Types::Audio.optional.default(nil)
44
+ attribute :document, TD::Types::Document.optional.default(nil)
45
+ attribute :sticker, TD::Types::Sticker.optional.default(nil)
46
+ attribute :video, TD::Types::Video.optional.default(nil)
47
+ attribute :video_note, TD::Types::VideoNote.optional.default(nil)
48
+ attribute :voice_note, TD::Types::VoiceNote.optional.default(nil)
49
+ attribute :has_instant_view, TD::Types::Bool
50
+ end
51
+ end
@@ -0,0 +1,11 @@
1
+ module TD::Types
2
+ # Describes an instant view page for a web page.
3
+ #
4
+ # @attr page_blocks [Array<TD::Types::PageBlock>] Content of the web page.
5
+ # @attr is_full [Boolean] True, if the instant view contains the full page.
6
+ # A network request might be needed to get the full web page instant view.
7
+ class WebPageInstantView < Base
8
+ attribute :page_blocks, TD::Types::Array.of(TD::Types::PageBlock)
9
+ attribute :is_full, TD::Types::Bool
10
+ end
11
+ end
@@ -0,0 +1,36 @@
1
+ class TD::UpdateHandler
2
+ include Concurrent::Async
3
+
4
+ attr_reader :update_type, :extra
5
+
6
+ def initialize(update_type, extra = nil, disposable: false, &action)
7
+ super()
8
+
9
+ @action = action
10
+ @update_type = update_type
11
+ @extra = extra
12
+ @disposable = disposable
13
+ end
14
+
15
+ def run(update)
16
+ action.call(update)
17
+ end
18
+
19
+ def match?(update, extra = nil)
20
+ update.is_a?(update_type) && (self.extra.nil? || self.extra == extra)
21
+ end
22
+
23
+ def disposable?
24
+ disposable
25
+ end
26
+
27
+ def to_s
28
+ "TD::UpdateHandler (#{update_type}#{": #{extra}" if extra})#{' disposable' if disposable?}"
29
+ end
30
+
31
+ alias inspect to_s
32
+
33
+ private
34
+
35
+ attr_reader :action, :disposable
36
+ end
@@ -1,11 +1,9 @@
1
1
  class TD::UpdateManager
2
2
  TIMEOUT = 30
3
3
 
4
- attr_reader :handlers
5
-
6
4
  def initialize(td_client)
7
5
  @td_client = td_client
8
- @handlers = []
6
+ @handlers = Concurrent::Array.new
9
7
  @mutex = Mutex.new
10
8
  end
11
9
 
@@ -13,20 +11,17 @@ class TD::UpdateManager
13
11
  @mutex.synchronize { @handlers << handler }
14
12
  end
15
13
 
16
- def remove_handler(handler)
17
- Thread.start do
18
- @mutex.synchronize { @handlers.delete(handler) }
19
- end
20
- end
14
+ alias << add_handler
21
15
 
22
16
  def run
23
- @update_loop_thread = Thread.start do
17
+ Thread.start do
24
18
  loop { stopped? ? break : handle_update }
25
19
  end
26
20
  end
27
21
 
28
22
  def stop
29
23
  @stopped = true
24
+ @mutex.synchronize { @handlers = [] }
30
25
  end
31
26
 
32
27
  def stopped?
@@ -35,9 +30,24 @@ class TD::UpdateManager
35
30
 
36
31
  private
37
32
 
33
+ attr_reader :handlers
34
+
38
35
  def handle_update
39
36
  update = TD::Api.client_receive(@td_client, TIMEOUT)
40
- @mutex.synchronize { handlers = @handlers.dup }
41
- handlers.each { |h| h.call(update) } unless update.nil?
37
+
38
+ unless update.nil?
39
+ extra = update.delete('@extra')
40
+ update = TD::Types.wrap(update)
41
+
42
+ match_handlers!(update, extra).each { |h| h.async.run(update) }
43
+ end
44
+ end
45
+
46
+ def match_handlers!(update, extra)
47
+ @mutex.synchronize do
48
+ matched_handlers = handlers.select { |h| h.match?(update, extra) }
49
+ matched_handlers.each { |h| handlers.delete(h) if h.disposable? }
50
+ matched_handlers
51
+ end
42
52
  end
43
53
  end
@@ -1,4 +1,4 @@
1
1
  module TD
2
2
  # tdlib-ruby version
3
- VERSION = "1.0.0"
3
+ VERSION = "2.0.0"
4
4
  end
@@ -2,8 +2,10 @@ require 'spec_helper'
2
2
  require 'tdlib-ruby'
3
3
 
4
4
  describe TD::Client do
5
- let(:client) { TD::Client.new }
6
- let(:payload) { { '@type': 'getTextEntities', 'text': '@telegram' } }
5
+ let(:client) { TD::Client.new(timeout: timeout).tap(&:connect) }
6
+ let!(:payload) { { '@type' => 'getTextEntities', 'text' => text } }
7
+ let!(:text) { '@telegram' }
8
+ let(:timeout) { TD::Client::TIMEOUT }
7
9
 
8
10
  before do
9
11
  TD.configure do |config|
@@ -24,32 +26,35 @@ describe TD::Client do
24
26
  it { is_expected.to include('ready') }
25
27
 
26
28
  context 'when timeout reached' do
27
- subject { client.on_ready(timeout: 0.0001) { [client, 'ready'] } }
29
+ let(:timeout) { 0.0001 }
28
30
 
29
- it { expect { subject }.to raise_error(TD::TimeoutError) }
31
+ subject { client.on_ready { [client, 'ready'] } }
32
+
33
+ it { expect { subject }.to raise_error(TD::Error) }
30
34
  end
31
35
  end
32
36
 
33
37
  describe '#broadcast' do
34
38
  context 'when no block given' do
35
- subject { client.on_ready { client.broadcast(payload) } }
39
+ subject { client.ready.then { client.get_text_entities(text) }.flat.wait }
36
40
 
37
41
  it { expect { subject }.not_to raise_error(Exception) }
38
- it { is_expected.to satisfy { |result| result.state == :pending } }
39
- it { is_expected.to satisfy { |result| sleep 1; result.state == :fulfilled } }
40
- it { is_expected.to satisfy { |result| sleep 1; result.value['@type'] == 'textEntities' } }
42
+ it { is_expected.to satisfy(&:fulfilled?) }
43
+ it { is_expected.to satisfy { |result| result.value.is_a?(TD::Types::TextEntities) } }
41
44
  end
42
45
  end
43
46
 
44
- describe '#broadcast_and_receive' do
45
- subject { client.on_ready { client.broadcast_and_receive(payload) } }
47
+ describe '#fetch' do
48
+ subject { client.on_ready { client.fetch(payload) } }
46
49
 
47
- it { is_expected.to include('@type', 'entities') }
50
+ it { is_expected.to respond_to(:entities) }
48
51
 
49
52
  context 'when timeout reached' do
50
- subject { client.on_ready(timeout: 0.0001) { client.broadcast_and_receive(payload) } }
53
+ let(:timeout) { 0.0001 }
54
+
55
+ subject { client.on_ready { client.fetch(payload) } }
51
56
 
52
- it { expect { subject }.to raise_error(TD::TimeoutError) }
57
+ it { expect { subject }.to raise_error(TD::Error) }
53
58
  end
54
59
  end
55
60
 
@@ -64,7 +69,7 @@ describe TD::Client do
64
69
  it 'runs block on update' do
65
70
  subject
66
71
  sleep 1
67
- expect(@result).to include('@type', 'entities')
72
+ expect(@result).to respond_to(:entities)
68
73
  end
69
74
  end
70
75
 
@@ -74,7 +79,7 @@ describe TD::Client do
74
79
  subject do
75
80
  client.on_ready do
76
81
  client.broadcast(payload) do
77
- client.broadcast_and_receive(payload)
82
+ client.fetch(payload)
78
83
  end
79
84
  sleep 1
80
85
  end
@@ -14,28 +14,23 @@ Gem::Specification.new do |gem|
14
14
  gem.email = "ask@southbridge.io"
15
15
  gem.homepage = "https://github.com/centosadmin/tdlib-ruby"
16
16
 
17
- gem.files = `git ls-files`.split($/)
17
+ gem.files = `git ls-files`.split($/) - ['lib/tdlib/td_api_tl_parser.rb']
18
18
 
19
- `git submodule --quiet foreach --recursive pwd`.split($/).each do |submodule|
20
- submodule.sub!("#{Dir.pwd}/",'')
21
-
22
- Dir.chdir(submodule) do
23
- `git ls-files`.split($/).map do |subpath|
24
- gem.files << File.join(submodule,subpath)
25
- end
26
- end
27
- end
28
19
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
29
20
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
30
21
  gem.require_paths = ['lib']
31
22
 
32
23
  gem.add_runtime_dependency 'dry-configurable', '~> 0.7'
33
- gem.add_runtime_dependency 'concurrent-ruby', '~> 1.0'
24
+ gem.add_runtime_dependency 'dry-struct', '~> 0.5.1'
25
+ gem.add_runtime_dependency 'dry-types', '~> 0.13.2'
26
+ gem.add_runtime_dependency 'concurrent-ruby', '~> 1.0'
27
+ gem.add_runtime_dependency 'ffi', '~> 1.0'
34
28
 
35
29
  gem.add_development_dependency 'bundler', '~> 1.10'
36
- gem.add_development_dependency 'rake', '12.3.1'
30
+ gem.add_development_dependency 'rake', '~> 12.3'
37
31
  gem.add_development_dependency 'rspec', '~> 3.0'
38
32
  gem.add_development_dependency 'rubygems-tasks', '~> 0.2'
39
33
  gem.add_development_dependency 'yard', '~> 0.9'
40
34
  gem.add_development_dependency 'pry', '~> 0.11'
35
+ gem.add_development_dependency 'activesupport', '~> 5.2'
41
36
  end