tdlib-ruby 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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