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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.gitmodules +3 -0
- data/.travis.yml +2 -3
- data/ChangeLog.md +9 -0
- data/README.md +49 -46
- data/bin/build +12 -0
- data/bin/parser +447 -0
- data/lib/tdlib-ruby.rb +4 -1
- data/lib/tdlib/api.rb +20 -15
- data/lib/tdlib/client.rb +121 -123
- data/lib/tdlib/client_methods.rb +3474 -0
- data/lib/tdlib/errors.rb +29 -5
- data/lib/tdlib/types.rb +884 -0
- data/lib/tdlib/types/account_ttl.rb +10 -0
- data/lib/tdlib/types/address.rb +18 -0
- data/lib/tdlib/types/animation.rb +21 -0
- data/lib/tdlib/types/animations.rb +8 -0
- data/lib/tdlib/types/audio.rb +22 -0
- data/lib/tdlib/types/authentication_code_info.rb +15 -0
- data/lib/tdlib/types/authentication_code_type.rb +13 -0
- data/lib/tdlib/types/authentication_code_type/call.rb +8 -0
- data/lib/tdlib/types/authentication_code_type/flash_call.rb +9 -0
- data/lib/tdlib/types/authentication_code_type/sms.rb +8 -0
- data/lib/tdlib/types/authentication_code_type/telegram_message.rb +8 -0
- data/lib/tdlib/types/authorization_state.rb +18 -0
- data/lib/tdlib/types/authorization_state/closed.rb +9 -0
- data/lib/tdlib/types/authorization_state/closing.rb +7 -0
- data/lib/tdlib/types/authorization_state/logging_out.rb +5 -0
- data/lib/tdlib/types/authorization_state/ready.rb +6 -0
- data/lib/tdlib/types/authorization_state/wait_code.rb +13 -0
- data/lib/tdlib/types/authorization_state/wait_encryption_key.rb +8 -0
- data/lib/tdlib/types/authorization_state/wait_password.rb +13 -0
- data/lib/tdlib/types/authorization_state/wait_phone_number.rb +5 -0
- data/lib/tdlib/types/authorization_state/wait_tdlib_parameters.rb +5 -0
- data/lib/tdlib/types/base.rb +29 -0
- data/lib/tdlib/types/basic_group.rb +18 -0
- data/lib/tdlib/types/basic_group_full_info.rb +13 -0
- data/lib/tdlib/types/bot_command.rb +10 -0
- data/lib/tdlib/types/bot_info.rb +10 -0
- data/lib/tdlib/types/call.rb +14 -0
- data/lib/tdlib/types/call_connection.rb +16 -0
- data/lib/tdlib/types/call_discard_reason.rb +14 -0
- data/lib/tdlib/types/call_discard_reason/declined.rb +6 -0
- data/lib/tdlib/types/call_discard_reason/disconnected.rb +5 -0
- data/lib/tdlib/types/call_discard_reason/empty.rb +5 -0
- data/lib/tdlib/types/call_discard_reason/hung_up.rb +5 -0
- data/lib/tdlib/types/call_discard_reason/missed.rb +6 -0
- data/lib/tdlib/types/call_id.rb +8 -0
- data/lib/tdlib/types/call_protocol.rb +14 -0
- data/lib/tdlib/types/call_state.rb +15 -0
- data/lib/tdlib/types/call_state/discarded.rb +12 -0
- data/lib/tdlib/types/call_state/error.rb +9 -0
- data/lib/tdlib/types/call_state/exchanging_keys.rb +5 -0
- data/lib/tdlib/types/call_state/hanging_up.rb +5 -0
- data/lib/tdlib/types/call_state/pending.rb +10 -0
- data/lib/tdlib/types/call_state/ready.rb +16 -0
- data/lib/tdlib/types/callback_query_answer.rb +12 -0
- data/lib/tdlib/types/callback_query_payload.rb +11 -0
- data/lib/tdlib/types/callback_query_payload/data.rb +8 -0
- data/lib/tdlib/types/callback_query_payload/game.rb +8 -0
- data/lib/tdlib/types/chat.rb +51 -0
- data/lib/tdlib/types/chat_action.rb +22 -0
- data/lib/tdlib/types/chat_action/cancel.rb +5 -0
- data/lib/tdlib/types/chat_action/choosing_contact.rb +5 -0
- data/lib/tdlib/types/chat_action/choosing_location.rb +5 -0
- data/lib/tdlib/types/chat_action/recording_video.rb +5 -0
- data/lib/tdlib/types/chat_action/recording_video_note.rb +5 -0
- data/lib/tdlib/types/chat_action/recording_voice_note.rb +5 -0
- data/lib/tdlib/types/chat_action/start_playing_game.rb +5 -0
- data/lib/tdlib/types/chat_action/typing.rb +5 -0
- data/lib/tdlib/types/chat_action/uploading_document.rb +8 -0
- data/lib/tdlib/types/chat_action/uploading_photo.rb +8 -0
- data/lib/tdlib/types/chat_action/uploading_video.rb +8 -0
- data/lib/tdlib/types/chat_action/uploading_video_note.rb +8 -0
- data/lib/tdlib/types/chat_action/uploading_voice_note.rb +8 -0
- data/lib/tdlib/types/chat_event.rb +14 -0
- data/lib/tdlib/types/chat_event_action.rb +26 -0
- data/lib/tdlib/types/chat_event_action/description_changed.rb +10 -0
- data/lib/tdlib/types/chat_event_action/invites_toggled.rb +8 -0
- data/lib/tdlib/types/chat_event_action/is_all_history_available_toggled.rb +8 -0
- data/lib/tdlib/types/chat_event_action/member_invited.rb +10 -0
- data/lib/tdlib/types/chat_event_action/member_joined.rb +5 -0
- data/lib/tdlib/types/chat_event_action/member_left.rb +5 -0
- data/lib/tdlib/types/chat_event_action/member_promoted.rb +12 -0
- data/lib/tdlib/types/chat_event_action/member_restricted.rb +12 -0
- data/lib/tdlib/types/chat_event_action/message_deleted.rb +8 -0
- data/lib/tdlib/types/chat_event_action/message_edited.rb +10 -0
- data/lib/tdlib/types/chat_event_action/message_pinned.rb +8 -0
- data/lib/tdlib/types/chat_event_action/message_unpinned.rb +5 -0
- data/lib/tdlib/types/chat_event_action/photo_changed.rb +10 -0
- data/lib/tdlib/types/chat_event_action/sign_messages_toggled.rb +8 -0
- data/lib/tdlib/types/chat_event_action/sticker_set_changed.rb +10 -0
- data/lib/tdlib/types/chat_event_action/title_changed.rb +10 -0
- data/lib/tdlib/types/chat_event_action/username_changed.rb +10 -0
- data/lib/tdlib/types/chat_event_log_filters.rb +27 -0
- data/lib/tdlib/types/chat_events.rb +8 -0
- data/lib/tdlib/types/chat_invite_link.rb +8 -0
- data/lib/tdlib/types/chat_invite_link_info.rb +20 -0
- data/lib/tdlib/types/chat_member.rb +18 -0
- data/lib/tdlib/types/chat_member_status.rb +15 -0
- data/lib/tdlib/types/chat_member_status/administrator.rb +29 -0
- data/lib/tdlib/types/chat_member_status/banned.rb +11 -0
- data/lib/tdlib/types/chat_member_status/creator.rb +8 -0
- data/lib/tdlib/types/chat_member_status/left.rb +5 -0
- data/lib/tdlib/types/chat_member_status/member.rb +5 -0
- data/lib/tdlib/types/chat_member_status/restricted.rb +27 -0
- data/lib/tdlib/types/chat_members.rb +10 -0
- data/lib/tdlib/types/chat_members_filter.rb +14 -0
- data/lib/tdlib/types/chat_members_filter/administrators.rb +5 -0
- data/lib/tdlib/types/chat_members_filter/banned.rb +5 -0
- data/lib/tdlib/types/chat_members_filter/bots.rb +5 -0
- data/lib/tdlib/types/chat_members_filter/members.rb +5 -0
- data/lib/tdlib/types/chat_members_filter/restricted.rb +5 -0
- data/lib/tdlib/types/chat_notification_settings.rb +22 -0
- data/lib/tdlib/types/chat_photo.rb +10 -0
- data/lib/tdlib/types/chat_report_reason.rb +14 -0
- data/lib/tdlib/types/chat_report_reason/copyright.rb +5 -0
- data/lib/tdlib/types/chat_report_reason/custom.rb +8 -0
- data/lib/tdlib/types/chat_report_reason/pornography.rb +5 -0
- data/lib/tdlib/types/chat_report_reason/spam.rb +5 -0
- data/lib/tdlib/types/chat_report_reason/violence.rb +5 -0
- data/lib/tdlib/types/chat_report_spam_state.rb +8 -0
- data/lib/tdlib/types/chat_type.rb +13 -0
- data/lib/tdlib/types/chat_type/basic_group.rb +8 -0
- data/lib/tdlib/types/chat_type/private.rb +8 -0
- data/lib/tdlib/types/chat_type/secret.rb +10 -0
- data/lib/tdlib/types/chat_type/supergroup.rb +11 -0
- data/lib/tdlib/types/chats.rb +8 -0
- data/lib/tdlib/types/check_chat_username_result.rb +14 -0
- data/lib/tdlib/types/check_chat_username_result/ok.rb +5 -0
- data/lib/tdlib/types/check_chat_username_result/public_chats_too_much.rb +5 -0
- data/lib/tdlib/types/check_chat_username_result/public_groups_unavailable.rb +5 -0
- data/lib/tdlib/types/check_chat_username_result/username_invalid.rb +5 -0
- data/lib/tdlib/types/check_chat_username_result/username_occupied.rb +5 -0
- data/lib/tdlib/types/connected_website.rb +25 -0
- data/lib/tdlib/types/connected_websites.rb +8 -0
- data/lib/tdlib/types/connection_state.rb +14 -0
- data/lib/tdlib/types/connection_state/connecting.rb +5 -0
- data/lib/tdlib/types/connection_state/connecting_to_proxy.rb +5 -0
- data/lib/tdlib/types/connection_state/ready.rb +5 -0
- data/lib/tdlib/types/connection_state/updating.rb +5 -0
- data/lib/tdlib/types/connection_state/waiting_for_network.rb +6 -0
- data/lib/tdlib/types/contact.rb +16 -0
- data/lib/tdlib/types/count.rb +8 -0
- data/lib/tdlib/types/custom_request_result.rb +8 -0
- data/lib/tdlib/types/date.rb +12 -0
- data/lib/tdlib/types/dated_file.rb +10 -0
- data/lib/tdlib/types/deep_link_info.rb +10 -0
- data/lib/tdlib/types/device_token.rb +22 -0
- data/lib/tdlib/types/device_token/apple_push.rb +10 -0
- data/lib/tdlib/types/device_token/apple_push_vo_ip.rb +10 -0
- data/lib/tdlib/types/device_token/black_berry_push.rb +8 -0
- data/lib/tdlib/types/device_token/google_cloud_messaging.rb +8 -0
- data/lib/tdlib/types/device_token/microsoft_push.rb +8 -0
- data/lib/tdlib/types/device_token/microsoft_push_vo_ip.rb +8 -0
- data/lib/tdlib/types/device_token/simple_push.rb +9 -0
- data/lib/tdlib/types/device_token/tizen_push.rb +8 -0
- data/lib/tdlib/types/device_token/ubuntu_push.rb +8 -0
- data/lib/tdlib/types/device_token/web_push.rb +13 -0
- data/lib/tdlib/types/device_token/windows_push.rb +9 -0
- data/lib/tdlib/types/document.rb +14 -0
- data/lib/tdlib/types/draft_message.rb +11 -0
- data/lib/tdlib/types/email_address_authentication_code_info.rb +10 -0
- data/lib/tdlib/types/encrypted_credentials.rb +12 -0
- data/lib/tdlib/types/encrypted_passport_element.rb +25 -0
- data/lib/tdlib/types/error.rb +12 -0
- data/lib/tdlib/types/file.rb +18 -0
- data/lib/tdlib/types/file_type.rb +25 -0
- data/lib/tdlib/types/file_type/animation.rb +5 -0
- data/lib/tdlib/types/file_type/audio.rb +5 -0
- data/lib/tdlib/types/file_type/document.rb +5 -0
- data/lib/tdlib/types/file_type/none.rb +5 -0
- data/lib/tdlib/types/file_type/photo.rb +5 -0
- data/lib/tdlib/types/file_type/profile_photo.rb +5 -0
- data/lib/tdlib/types/file_type/secret.rb +5 -0
- data/lib/tdlib/types/file_type/secret_thumbnail.rb +5 -0
- data/lib/tdlib/types/file_type/secure.rb +5 -0
- data/lib/tdlib/types/file_type/sticker.rb +5 -0
- data/lib/tdlib/types/file_type/thumbnail.rb +5 -0
- data/lib/tdlib/types/file_type/unknown.rb +5 -0
- data/lib/tdlib/types/file_type/video.rb +5 -0
- data/lib/tdlib/types/file_type/video_note.rb +5 -0
- data/lib/tdlib/types/file_type/voice_note.rb +5 -0
- data/lib/tdlib/types/file_type/wallpaper.rb +5 -0
- data/lib/tdlib/types/formatted_text.rb +10 -0
- data/lib/tdlib/types/found_messages.rb +10 -0
- data/lib/tdlib/types/game.rb +21 -0
- data/lib/tdlib/types/game_high_score.rb +12 -0
- data/lib/tdlib/types/game_high_scores.rb +8 -0
- data/lib/tdlib/types/hashtags.rb +8 -0
- data/lib/tdlib/types/identity_document.rb +19 -0
- data/lib/tdlib/types/imported_contacts.rb +12 -0
- data/lib/tdlib/types/inline_keyboard_button.rb +10 -0
- data/lib/tdlib/types/inline_keyboard_button_type.rb +14 -0
- data/lib/tdlib/types/inline_keyboard_button_type/buy.rb +7 -0
- data/lib/tdlib/types/inline_keyboard_button_type/callback.rb +8 -0
- data/lib/tdlib/types/inline_keyboard_button_type/callback_game.rb +7 -0
- data/lib/tdlib/types/inline_keyboard_button_type/switch_inline.rb +10 -0
- data/lib/tdlib/types/inline_keyboard_button_type/url.rb +8 -0
- data/lib/tdlib/types/inline_query_result.rb +21 -0
- data/lib/tdlib/types/inline_query_result/animation.rb +12 -0
- data/lib/tdlib/types/inline_query_result/article.rb +18 -0
- data/lib/tdlib/types/inline_query_result/audio.rb +10 -0
- data/lib/tdlib/types/inline_query_result/contact.rb +12 -0
- data/lib/tdlib/types/inline_query_result/document.rb +14 -0
- data/lib/tdlib/types/inline_query_result/game.rb +10 -0
- data/lib/tdlib/types/inline_query_result/location.rb +14 -0
- data/lib/tdlib/types/inline_query_result/photo.rb +14 -0
- data/lib/tdlib/types/inline_query_result/sticker.rb +10 -0
- data/lib/tdlib/types/inline_query_result/venue.rb +12 -0
- data/lib/tdlib/types/inline_query_result/video.rb +14 -0
- data/lib/tdlib/types/inline_query_result/voice_note.rb +12 -0
- data/lib/tdlib/types/inline_query_results.rb +19 -0
- data/lib/tdlib/types/input_credentials.rb +13 -0
- data/lib/tdlib/types/input_credentials/android_pay.rb +8 -0
- data/lib/tdlib/types/input_credentials/apple_pay.rb +8 -0
- data/lib/tdlib/types/input_credentials/new.rb +10 -0
- data/lib/tdlib/types/input_credentials/saved.rb +9 -0
- data/lib/tdlib/types/input_file.rb +13 -0
- data/lib/tdlib/types/input_file/generated.rb +14 -0
- data/lib/tdlib/types/input_file/id.rb +8 -0
- data/lib/tdlib/types/input_file/local.rb +8 -0
- data/lib/tdlib/types/input_file/remote.rb +8 -0
- data/lib/tdlib/types/input_identity_document.rb +19 -0
- data/lib/tdlib/types/input_inline_query_result.rb +22 -0
- data/lib/tdlib/types/input_inline_query_result/animated_gif.rb +26 -0
- data/lib/tdlib/types/input_inline_query_result/animated_mpeg4.rb +27 -0
- data/lib/tdlib/types/input_inline_query_result/article.rb +28 -0
- data/lib/tdlib/types/input_inline_query_result/audio.rb +22 -0
- data/lib/tdlib/types/input_inline_query_result/contact.rb +22 -0
- data/lib/tdlib/types/input_inline_query_result/document.rb +29 -0
- data/lib/tdlib/types/input_inline_query_result/game.rb +12 -0
- data/lib/tdlib/types/input_inline_query_result/location.rb +27 -0
- data/lib/tdlib/types/input_inline_query_result/photo.rb +25 -0
- data/lib/tdlib/types/input_inline_query_result/sticker.rb +22 -0
- data/lib/tdlib/types/input_inline_query_result/venue.rb +22 -0
- data/lib/tdlib/types/input_inline_query_result/video.rb +31 -0
- data/lib/tdlib/types/input_inline_query_result/voice_note.rb +20 -0
- data/lib/tdlib/types/input_message_content.rb +24 -0
- data/lib/tdlib/types/input_message_content/animation.rb +18 -0
- data/lib/tdlib/types/input_message_content/audio.rb +18 -0
- data/lib/tdlib/types/input_message_content/contact.rb +8 -0
- data/lib/tdlib/types/input_message_content/document.rb +12 -0
- data/lib/tdlib/types/input_message_content/forwarded.rb +13 -0
- data/lib/tdlib/types/input_message_content/game.rb +10 -0
- data/lib/tdlib/types/input_message_content/invoice.rb +28 -0
- data/lib/tdlib/types/input_message_content/location.rb +11 -0
- data/lib/tdlib/types/input_message_content/photo.rb +22 -0
- data/lib/tdlib/types/input_message_content/sticker.rb +14 -0
- data/lib/tdlib/types/input_message_content/text.rb +14 -0
- data/lib/tdlib/types/input_message_content/venue.rb +8 -0
- data/lib/tdlib/types/input_message_content/video.rb +25 -0
- data/lib/tdlib/types/input_message_content/video_note.rb +14 -0
- data/lib/tdlib/types/input_message_content/voice_note.rb +14 -0
- data/lib/tdlib/types/input_passport_element.rb +22 -0
- data/lib/tdlib/types/input_passport_element/address.rb +8 -0
- data/lib/tdlib/types/input_passport_element/bank_statement.rb +8 -0
- data/lib/tdlib/types/input_passport_element/driver_license.rb +8 -0
- data/lib/tdlib/types/input_passport_element/email_address.rb +8 -0
- data/lib/tdlib/types/input_passport_element/identity_card.rb +8 -0
- data/lib/tdlib/types/input_passport_element/internal_passport.rb +8 -0
- data/lib/tdlib/types/input_passport_element/passport.rb +8 -0
- data/lib/tdlib/types/input_passport_element/passport_registration.rb +8 -0
- data/lib/tdlib/types/input_passport_element/personal_details.rb +8 -0
- data/lib/tdlib/types/input_passport_element/phone_number.rb +8 -0
- data/lib/tdlib/types/input_passport_element/rental_agreement.rb +8 -0
- data/lib/tdlib/types/input_passport_element/temporary_registration.rb +8 -0
- data/lib/tdlib/types/input_passport_element/utility_bill.rb +8 -0
- data/lib/tdlib/types/input_passport_element_error.rb +12 -0
- data/lib/tdlib/types/input_passport_element_error_source.rb +18 -0
- data/lib/tdlib/types/input_passport_element_error_source/data_field.rb +11 -0
- data/lib/tdlib/types/input_passport_element_error_source/file.rb +9 -0
- data/lib/tdlib/types/input_passport_element_error_source/files.rb +9 -0
- data/lib/tdlib/types/input_passport_element_error_source/front_side.rb +9 -0
- data/lib/tdlib/types/input_passport_element_error_source/reverse_side.rb +9 -0
- data/lib/tdlib/types/input_passport_element_error_source/selfie.rb +9 -0
- data/lib/tdlib/types/input_passport_element_error_source/translation_file.rb +9 -0
- data/lib/tdlib/types/input_passport_element_error_source/translation_files.rb +9 -0
- data/lib/tdlib/types/input_passport_element_error_source/unspecified.rb +9 -0
- data/lib/tdlib/types/input_personal_document.rb +11 -0
- data/lib/tdlib/types/input_sticker.rb +14 -0
- data/lib/tdlib/types/input_thumbnail.rb +16 -0
- data/lib/tdlib/types/invoice.rb +27 -0
- data/lib/tdlib/types/keyboard_button.rb +10 -0
- data/lib/tdlib/types/keyboard_button_type.rb +12 -0
- data/lib/tdlib/types/keyboard_button_type/request_location.rb +5 -0
- data/lib/tdlib/types/keyboard_button_type/request_phone_number.rb +5 -0
- data/lib/tdlib/types/keyboard_button_type/text.rb +5 -0
- data/lib/tdlib/types/labeled_price_part.rb +10 -0
- data/lib/tdlib/types/language_pack_info.rb +14 -0
- data/lib/tdlib/types/language_pack_string.rb +10 -0
- data/lib/tdlib/types/language_pack_string_value.rb +12 -0
- data/lib/tdlib/types/language_pack_string_value/deleted.rb +5 -0
- data/lib/tdlib/types/language_pack_string_value/ordinary.rb +8 -0
- data/lib/tdlib/types/language_pack_string_value/pluralized.rb +18 -0
- data/lib/tdlib/types/language_pack_strings.rb +8 -0
- data/lib/tdlib/types/link_state.rb +13 -0
- data/lib/tdlib/types/link_state/is_contact.rb +5 -0
- data/lib/tdlib/types/link_state/knows_phone_number.rb +5 -0
- data/lib/tdlib/types/link_state/none.rb +5 -0
- data/lib/tdlib/types/local_file.rb +25 -0
- data/lib/tdlib/types/localization_target_info.rb +8 -0
- data/lib/tdlib/types/location.rb +10 -0
- data/lib/tdlib/types/mask_point.rb +13 -0
- data/lib/tdlib/types/mask_point/chin.rb +5 -0
- data/lib/tdlib/types/mask_point/eyes.rb +5 -0
- data/lib/tdlib/types/mask_point/forehead.rb +5 -0
- data/lib/tdlib/types/mask_point/mouth.rb +5 -0
- data/lib/tdlib/types/mask_position.rb +17 -0
- data/lib/tdlib/types/message.rb +59 -0
- data/lib/tdlib/types/message_content.rb +48 -0
- data/lib/tdlib/types/message_content/animation.rb +13 -0
- data/lib/tdlib/types/message_content/audio.rb +10 -0
- data/lib/tdlib/types/message_content/basic_group_chat_create.rb +10 -0
- data/lib/tdlib/types/message_content/call.rb +10 -0
- data/lib/tdlib/types/message_content/chat_add_members.rb +8 -0
- data/lib/tdlib/types/message_content/chat_change_photo.rb +8 -0
- data/lib/tdlib/types/message_content/chat_change_title.rb +8 -0
- data/lib/tdlib/types/message_content/chat_delete_member.rb +8 -0
- data/lib/tdlib/types/message_content/chat_delete_photo.rb +5 -0
- data/lib/tdlib/types/message_content/chat_join_by_link.rb +5 -0
- data/lib/tdlib/types/message_content/chat_set_ttl.rb +8 -0
- data/lib/tdlib/types/message_content/chat_upgrade_from.rb +10 -0
- data/lib/tdlib/types/message_content/chat_upgrade_to.rb +8 -0
- data/lib/tdlib/types/message_content/contact.rb +8 -0
- data/lib/tdlib/types/message_content/contact_registered.rb +5 -0
- data/lib/tdlib/types/message_content/custom_service_action.rb +8 -0
- data/lib/tdlib/types/message_content/document.rb +10 -0
- data/lib/tdlib/types/message_content/expired_photo.rb +5 -0
- data/lib/tdlib/types/message_content/expired_video.rb +5 -0
- data/lib/tdlib/types/message_content/game.rb +8 -0
- data/lib/tdlib/types/message_content/game_score.rb +13 -0
- data/lib/tdlib/types/message_content/invoice.rb +26 -0
- data/lib/tdlib/types/message_content/location.rb +14 -0
- data/lib/tdlib/types/message_content/passport_data_received.rb +10 -0
- data/lib/tdlib/types/message_content/passport_data_sent.rb +8 -0
- data/lib/tdlib/types/message_content/payment_successful.rb +13 -0
- data/lib/tdlib/types/message_content/payment_successful_bot.rb +24 -0
- data/lib/tdlib/types/message_content/photo.rb +12 -0
- data/lib/tdlib/types/message_content/pin_message.rb +8 -0
- data/lib/tdlib/types/message_content/screenshot_taken.rb +5 -0
- data/lib/tdlib/types/message_content/sticker.rb +8 -0
- data/lib/tdlib/types/message_content/supergroup_chat_create.rb +8 -0
- data/lib/tdlib/types/message_content/text.rb +10 -0
- data/lib/tdlib/types/message_content/unsupported.rb +5 -0
- data/lib/tdlib/types/message_content/venue.rb +8 -0
- data/lib/tdlib/types/message_content/video.rb +13 -0
- data/lib/tdlib/types/message_content/video_note.rb +13 -0
- data/lib/tdlib/types/message_content/voice_note.rb +12 -0
- data/lib/tdlib/types/message_content/website_connected.rb +8 -0
- data/lib/tdlib/types/message_forward_info.rb +11 -0
- data/lib/tdlib/types/message_forward_info/message_forwarded_from_user.rb +16 -0
- data/lib/tdlib/types/message_forward_info/message_forwarded_post.rb +21 -0
- data/lib/tdlib/types/message_sending_state.rb +11 -0
- data/lib/tdlib/types/message_sending_state/failed.rb +5 -0
- data/lib/tdlib/types/message_sending_state/pending.rb +5 -0
- data/lib/tdlib/types/messages.rb +10 -0
- data/lib/tdlib/types/network_statistics.rb +10 -0
- data/lib/tdlib/types/network_statistics_entry.rb +11 -0
- data/lib/tdlib/types/network_statistics_entry/call.rb +15 -0
- data/lib/tdlib/types/network_statistics_entry/file.rb +15 -0
- data/lib/tdlib/types/network_type.rb +14 -0
- data/lib/tdlib/types/network_type/mobile.rb +5 -0
- data/lib/tdlib/types/network_type/mobile_roaming.rb +5 -0
- data/lib/tdlib/types/network_type/none.rb +5 -0
- data/lib/tdlib/types/network_type/other.rb +5 -0
- data/lib/tdlib/types/network_type/wi_fi.rb +5 -0
- data/lib/tdlib/types/notification_settings_scope.rb +11 -0
- data/lib/tdlib/types/notification_settings_scope/group_chats.rb +6 -0
- data/lib/tdlib/types/notification_settings_scope/private_chats.rb +6 -0
- data/lib/tdlib/types/ok.rb +5 -0
- data/lib/tdlib/types/option_value.rb +13 -0
- data/lib/tdlib/types/option_value/boolean.rb +8 -0
- data/lib/tdlib/types/option_value/empty.rb +5 -0
- data/lib/tdlib/types/option_value/integer.rb +8 -0
- data/lib/tdlib/types/option_value/string.rb +8 -0
- data/lib/tdlib/types/order_info.rb +14 -0
- data/lib/tdlib/types/page_block.rb +32 -0
- data/lib/tdlib/types/page_block/anchor.rb +8 -0
- data/lib/tdlib/types/page_block/animation.rb +12 -0
- data/lib/tdlib/types/page_block/audio.rb +10 -0
- data/lib/tdlib/types/page_block/author_date.rb +10 -0
- data/lib/tdlib/types/page_block/block_quote.rb +10 -0
- data/lib/tdlib/types/page_block/chat_link.rb +12 -0
- data/lib/tdlib/types/page_block/collage.rb +10 -0
- data/lib/tdlib/types/page_block/cover.rb +8 -0
- data/lib/tdlib/types/page_block/divider.rb +5 -0
- data/lib/tdlib/types/page_block/embedded.rb +22 -0
- data/lib/tdlib/types/page_block/embedded_post.rb +18 -0
- data/lib/tdlib/types/page_block/footer.rb +8 -0
- data/lib/tdlib/types/page_block/header.rb +8 -0
- data/lib/tdlib/types/page_block/list.rb +10 -0
- data/lib/tdlib/types/page_block/paragraph.rb +8 -0
- data/lib/tdlib/types/page_block/photo.rb +10 -0
- data/lib/tdlib/types/page_block/preformatted.rb +10 -0
- data/lib/tdlib/types/page_block/pull_quote.rb +10 -0
- data/lib/tdlib/types/page_block/slideshow.rb +10 -0
- data/lib/tdlib/types/page_block/subheader.rb +8 -0
- data/lib/tdlib/types/page_block/subtitle.rb +8 -0
- data/lib/tdlib/types/page_block/title.rb +8 -0
- data/lib/tdlib/types/page_block/video.rb +14 -0
- data/lib/tdlib/types/passport_authorization_form.rb +17 -0
- data/lib/tdlib/types/passport_element.rb +22 -0
- data/lib/tdlib/types/passport_element/address.rb +8 -0
- data/lib/tdlib/types/passport_element/bank_statement.rb +8 -0
- data/lib/tdlib/types/passport_element/driver_license.rb +8 -0
- data/lib/tdlib/types/passport_element/email_address.rb +8 -0
- data/lib/tdlib/types/passport_element/identity_card.rb +8 -0
- data/lib/tdlib/types/passport_element/internal_passport.rb +8 -0
- data/lib/tdlib/types/passport_element/passport.rb +8 -0
- data/lib/tdlib/types/passport_element/passport_registration.rb +8 -0
- data/lib/tdlib/types/passport_element/personal_details.rb +8 -0
- data/lib/tdlib/types/passport_element/phone_number.rb +8 -0
- data/lib/tdlib/types/passport_element/rental_agreement.rb +8 -0
- data/lib/tdlib/types/passport_element/temporary_registration.rb +8 -0
- data/lib/tdlib/types/passport_element/utility_bill.rb +8 -0
- data/lib/tdlib/types/passport_element_error.rb +12 -0
- data/lib/tdlib/types/passport_element_error_source.rb +18 -0
- data/lib/tdlib/types/passport_element_error_source/data_field.rb +9 -0
- data/lib/tdlib/types/passport_element_error_source/file.rb +6 -0
- data/lib/tdlib/types/passport_element_error_source/files.rb +6 -0
- data/lib/tdlib/types/passport_element_error_source/front_side.rb +6 -0
- data/lib/tdlib/types/passport_element_error_source/reverse_side.rb +6 -0
- data/lib/tdlib/types/passport_element_error_source/selfie.rb +6 -0
- data/lib/tdlib/types/passport_element_error_source/translation_file.rb +6 -0
- data/lib/tdlib/types/passport_element_error_source/translation_files.rb +6 -0
- data/lib/tdlib/types/passport_element_error_source/unspecified.rb +6 -0
- data/lib/tdlib/types/passport_element_type.rb +22 -0
- data/lib/tdlib/types/passport_element_type/address.rb +5 -0
- data/lib/tdlib/types/passport_element_type/bank_statement.rb +5 -0
- data/lib/tdlib/types/passport_element_type/driver_license.rb +5 -0
- data/lib/tdlib/types/passport_element_type/email_address.rb +5 -0
- data/lib/tdlib/types/passport_element_type/identity_card.rb +5 -0
- data/lib/tdlib/types/passport_element_type/internal_passport.rb +5 -0
- data/lib/tdlib/types/passport_element_type/passport.rb +5 -0
- data/lib/tdlib/types/passport_element_type/passport_registration.rb +5 -0
- data/lib/tdlib/types/passport_element_type/personal_details.rb +5 -0
- data/lib/tdlib/types/passport_element_type/phone_number.rb +5 -0
- data/lib/tdlib/types/passport_element_type/rental_agreement.rb +5 -0
- data/lib/tdlib/types/passport_element_type/temporary_registration.rb +5 -0
- data/lib/tdlib/types/passport_element_type/utility_bill.rb +5 -0
- data/lib/tdlib/types/passport_elements.rb +8 -0
- data/lib/tdlib/types/passport_required_element.rb +9 -0
- data/lib/tdlib/types/passport_suitable_element.rb +15 -0
- data/lib/tdlib/types/password_state.rb +17 -0
- data/lib/tdlib/types/payment_form.rb +23 -0
- data/lib/tdlib/types/payment_receipt.rb +18 -0
- data/lib/tdlib/types/payment_result.rb +11 -0
- data/lib/tdlib/types/payments_provider_stripe.rb +14 -0
- data/lib/tdlib/types/personal_details.rb +26 -0
- data/lib/tdlib/types/personal_document.rb +11 -0
- data/lib/tdlib/types/photo.rb +12 -0
- data/lib/tdlib/types/photo_size.rb +14 -0
- data/lib/tdlib/types/profile_photo.rb +13 -0
- data/lib/tdlib/types/proxies.rb +8 -0
- data/lib/tdlib/types/proxy.rb +18 -0
- data/lib/tdlib/types/proxy_type.rb +12 -0
- data/lib/tdlib/types/proxy_type/http.rb +13 -0
- data/lib/tdlib/types/proxy_type/mtproto.rb +8 -0
- data/lib/tdlib/types/proxy_type/socks5.rb +10 -0
- data/lib/tdlib/types/public_message_link.rb +10 -0
- data/lib/tdlib/types/recovery_email_address.rb +8 -0
- data/lib/tdlib/types/remote_file.rb +22 -0
- data/lib/tdlib/types/reply_markup.rb +13 -0
- data/lib/tdlib/types/reply_markup/force_reply.rb +10 -0
- data/lib/tdlib/types/reply_markup/inline_keyboard.rb +8 -0
- data/lib/tdlib/types/reply_markup/remove_keyboard.rb +11 -0
- data/lib/tdlib/types/reply_markup/show_keyboard.rb +16 -0
- data/lib/tdlib/types/rich_text.rb +18 -0
- data/lib/tdlib/types/rich_text/bold.rb +8 -0
- data/lib/tdlib/types/rich_text/email_address.rb +10 -0
- data/lib/tdlib/types/rich_text/fixed.rb +8 -0
- data/lib/tdlib/types/rich_text/italic.rb +8 -0
- data/lib/tdlib/types/rich_text/plain.rb +8 -0
- data/lib/tdlib/types/rich_text/s.rb +8 -0
- data/lib/tdlib/types/rich_text/strikethrough.rb +8 -0
- data/lib/tdlib/types/rich_text/underline.rb +8 -0
- data/lib/tdlib/types/rich_text/url.rb +10 -0
- data/lib/tdlib/types/saved_credentials.rb +10 -0
- data/lib/tdlib/types/scope_notification_settings.rb +13 -0
- data/lib/tdlib/types/search_messages_filter.rb +25 -0
- data/lib/tdlib/types/search_messages_filter/animation.rb +5 -0
- data/lib/tdlib/types/search_messages_filter/audio.rb +5 -0
- data/lib/tdlib/types/search_messages_filter/call.rb +5 -0
- data/lib/tdlib/types/search_messages_filter/chat_photo.rb +5 -0
- data/lib/tdlib/types/search_messages_filter/document.rb +5 -0
- data/lib/tdlib/types/search_messages_filter/empty.rb +5 -0
- data/lib/tdlib/types/search_messages_filter/mention.rb +5 -0
- data/lib/tdlib/types/search_messages_filter/missed_call.rb +5 -0
- data/lib/tdlib/types/search_messages_filter/photo.rb +5 -0
- data/lib/tdlib/types/search_messages_filter/photo_and_video.rb +5 -0
- data/lib/tdlib/types/search_messages_filter/unread_mention.rb +6 -0
- data/lib/tdlib/types/search_messages_filter/url.rb +5 -0
- data/lib/tdlib/types/search_messages_filter/video.rb +5 -0
- data/lib/tdlib/types/search_messages_filter/video_note.rb +5 -0
- data/lib/tdlib/types/search_messages_filter/voice_and_video_note.rb +5 -0
- data/lib/tdlib/types/search_messages_filter/voice_note.rb +5 -0
- data/lib/tdlib/types/seconds.rb +8 -0
- data/lib/tdlib/types/secret_chat.rb +26 -0
- data/lib/tdlib/types/secret_chat_state.rb +12 -0
- data/lib/tdlib/types/secret_chat_state/closed.rb +5 -0
- data/lib/tdlib/types/secret_chat_state/pending.rb +5 -0
- data/lib/tdlib/types/secret_chat_state/ready.rb +5 -0
- data/lib/tdlib/types/session.rb +39 -0
- data/lib/tdlib/types/sessions.rb +8 -0
- data/lib/tdlib/types/shipping_option.rb +13 -0
- data/lib/tdlib/types/sticker.rb +22 -0
- data/lib/tdlib/types/sticker_emojis.rb +10 -0
- data/lib/tdlib/types/sticker_set.rb +27 -0
- data/lib/tdlib/types/sticker_set_info.rb +29 -0
- data/lib/tdlib/types/sticker_sets.rb +10 -0
- data/lib/tdlib/types/stickers.rb +8 -0
- data/lib/tdlib/types/storage_statistics.rb +12 -0
- data/lib/tdlib/types/storage_statistics_by_chat.rb +14 -0
- data/lib/tdlib/types/storage_statistics_by_file_type.rb +12 -0
- data/lib/tdlib/types/storage_statistics_fast.rb +12 -0
- data/lib/tdlib/types/supergroup.rb +40 -0
- data/lib/tdlib/types/supergroup_full_info.rb +39 -0
- data/lib/tdlib/types/supergroup_members_filter.rb +15 -0
- data/lib/tdlib/types/supergroup_members_filter/administrators.rb +5 -0
- data/lib/tdlib/types/supergroup_members_filter/banned.rb +8 -0
- data/lib/tdlib/types/supergroup_members_filter/bots.rb +5 -0
- data/lib/tdlib/types/supergroup_members_filter/recent.rb +5 -0
- data/lib/tdlib/types/supergroup_members_filter/restricted.rb +8 -0
- data/lib/tdlib/types/supergroup_members_filter/search.rb +8 -0
- data/lib/tdlib/types/t_me_url.rb +10 -0
- data/lib/tdlib/types/t_me_url_type.rb +13 -0
- data/lib/tdlib/types/t_me_url_type/chat_invite.rb +8 -0
- data/lib/tdlib/types/t_me_url_type/sticker_set.rb +8 -0
- data/lib/tdlib/types/t_me_url_type/supergroup.rb +8 -0
- data/lib/tdlib/types/t_me_url_type/user.rb +8 -0
- data/lib/tdlib/types/t_me_urls.rb +8 -0
- data/lib/tdlib/types/tdlib_parameters.rb +46 -0
- data/lib/tdlib/types/temporary_password_state.rb +10 -0
- data/lib/tdlib/types/terms_of_service.rb +12 -0
- data/lib/tdlib/types/text.rb +8 -0
- data/lib/tdlib/types/text_entities.rb +8 -0
- data/lib/tdlib/types/text_entity.rb +12 -0
- data/lib/tdlib/types/text_entity_type.rb +23 -0
- data/lib/tdlib/types/text_entity_type/bold.rb +5 -0
- data/lib/tdlib/types/text_entity_type/bot_command.rb +6 -0
- data/lib/tdlib/types/text_entity_type/cashtag.rb +6 -0
- data/lib/tdlib/types/text_entity_type/code.rb +5 -0
- data/lib/tdlib/types/text_entity_type/email_address.rb +5 -0
- data/lib/tdlib/types/text_entity_type/hashtag.rb +5 -0
- data/lib/tdlib/types/text_entity_type/italic.rb +5 -0
- data/lib/tdlib/types/text_entity_type/mention.rb +5 -0
- data/lib/tdlib/types/text_entity_type/mention_name.rb +8 -0
- data/lib/tdlib/types/text_entity_type/phone_number.rb +5 -0
- data/lib/tdlib/types/text_entity_type/pre.rb +5 -0
- data/lib/tdlib/types/text_entity_type/pre_code.rb +8 -0
- data/lib/tdlib/types/text_entity_type/text_url.rb +8 -0
- data/lib/tdlib/types/text_entity_type/url.rb +5 -0
- data/lib/tdlib/types/text_parse_mode.rb +11 -0
- data/lib/tdlib/types/text_parse_mode/html.rb +5 -0
- data/lib/tdlib/types/text_parse_mode/markdown.rb +5 -0
- data/lib/tdlib/types/top_chat_category.rb +15 -0
- data/lib/tdlib/types/top_chat_category/bots.rb +5 -0
- data/lib/tdlib/types/top_chat_category/calls.rb +5 -0
- data/lib/tdlib/types/top_chat_category/channels.rb +5 -0
- data/lib/tdlib/types/top_chat_category/groups.rb +5 -0
- data/lib/tdlib/types/top_chat_category/inline_bots.rb +5 -0
- data/lib/tdlib/types/top_chat_category/users.rb +5 -0
- data/lib/tdlib/types/update.rb +70 -0
- data/lib/tdlib/types/update/authorization_state.rb +8 -0
- data/lib/tdlib/types/update/basic_group.rb +9 -0
- data/lib/tdlib/types/update/basic_group_full_info.rb +10 -0
- data/lib/tdlib/types/update/call.rb +8 -0
- data/lib/tdlib/types/update/chat_default_disable_notification.rb +10 -0
- data/lib/tdlib/types/update/chat_draft_message.rb +14 -0
- data/lib/tdlib/types/update/chat_is_marked_as_unread.rb +10 -0
- data/lib/tdlib/types/update/chat_is_pinned.rb +12 -0
- data/lib/tdlib/types/update/chat_is_sponsored.rb +12 -0
- data/lib/tdlib/types/update/chat_last_message.rb +14 -0
- data/lib/tdlib/types/update/chat_notification_settings.rb +10 -0
- data/lib/tdlib/types/update/chat_order.rb +11 -0
- data/lib/tdlib/types/update/chat_photo.rb +10 -0
- data/lib/tdlib/types/update/chat_read_inbox.rb +12 -0
- data/lib/tdlib/types/update/chat_read_outbox.rb +10 -0
- data/lib/tdlib/types/update/chat_reply_markup.rb +13 -0
- data/lib/tdlib/types/update/chat_title.rb +10 -0
- data/lib/tdlib/types/update/chat_unread_mention_count.rb +10 -0
- data/lib/tdlib/types/update/connection_state.rb +8 -0
- data/lib/tdlib/types/update/delete_messages.rb +16 -0
- data/lib/tdlib/types/update/favorite_stickers.rb +8 -0
- data/lib/tdlib/types/update/file.rb +8 -0
- data/lib/tdlib/types/update/file_generation_start.rb +17 -0
- data/lib/tdlib/types/update/file_generation_stop.rb +8 -0
- data/lib/tdlib/types/update/installed_sticker_sets.rb +10 -0
- data/lib/tdlib/types/update/language_pack_strings.rb +12 -0
- data/lib/tdlib/types/update/message_content.rb +12 -0
- data/lib/tdlib/types/update/message_content_opened.rb +12 -0
- data/lib/tdlib/types/update/message_edited.rb +15 -0
- data/lib/tdlib/types/update/message_mention_read.rb +12 -0
- data/lib/tdlib/types/update/message_send_acknowledged.rb +14 -0
- data/lib/tdlib/types/update/message_send_failed.rb +16 -0
- data/lib/tdlib/types/update/message_send_succeeded.rb +11 -0
- data/lib/tdlib/types/update/message_views.rb +12 -0
- data/lib/tdlib/types/update/new_callback_query.rb +18 -0
- data/lib/tdlib/types/update/new_chat.rb +10 -0
- data/lib/tdlib/types/update/new_chosen_inline_result.rb +16 -0
- data/lib/tdlib/types/update/new_custom_event.rb +8 -0
- data/lib/tdlib/types/update/new_custom_query.rb +12 -0
- data/lib/tdlib/types/update/new_inline_callback_query.rb +16 -0
- data/lib/tdlib/types/update/new_inline_query.rb +16 -0
- data/lib/tdlib/types/update/new_message.rb +12 -0
- data/lib/tdlib/types/update/new_pre_checkout_query.rb +22 -0
- data/lib/tdlib/types/update/new_shipping_query.rb +15 -0
- data/lib/tdlib/types/update/option.rb +10 -0
- data/lib/tdlib/types/update/recent_stickers.rb +11 -0
- data/lib/tdlib/types/update/saved_animations.rb +8 -0
- data/lib/tdlib/types/update/scope_notification_settings.rb +10 -0
- data/lib/tdlib/types/update/secret_chat.rb +9 -0
- data/lib/tdlib/types/update/service_notification.rb +13 -0
- data/lib/tdlib/types/update/supergroup.rb +9 -0
- data/lib/tdlib/types/update/supergroup_full_info.rb +10 -0
- data/lib/tdlib/types/update/terms_of_service.rb +12 -0
- data/lib/tdlib/types/update/trending_sticker_sets.rb +8 -0
- data/lib/tdlib/types/update/unread_chat_count.rb +16 -0
- data/lib/tdlib/types/update/unread_message_count.rb +11 -0
- data/lib/tdlib/types/update/user.rb +9 -0
- data/lib/tdlib/types/update/user_chat_action.rb +12 -0
- data/lib/tdlib/types/update/user_full_info.rb +10 -0
- data/lib/tdlib/types/update/user_privacy_setting_rules.rb +10 -0
- data/lib/tdlib/types/update/user_status.rb +10 -0
- data/lib/tdlib/types/user.rb +41 -0
- data/lib/tdlib/types/user_full_info.rb +21 -0
- data/lib/tdlib/types/user_privacy_setting.rb +12 -0
- data/lib/tdlib/types/user_privacy_setting/allow_calls.rb +5 -0
- data/lib/tdlib/types/user_privacy_setting/allow_chat_invites.rb +5 -0
- data/lib/tdlib/types/user_privacy_setting/show_status.rb +5 -0
- data/lib/tdlib/types/user_privacy_setting_rule.rb +15 -0
- data/lib/tdlib/types/user_privacy_setting_rule/allow_all.rb +5 -0
- data/lib/tdlib/types/user_privacy_setting_rule/allow_contacts.rb +5 -0
- data/lib/tdlib/types/user_privacy_setting_rule/allow_users.rb +8 -0
- data/lib/tdlib/types/user_privacy_setting_rule/restrict_all.rb +5 -0
- data/lib/tdlib/types/user_privacy_setting_rule/restrict_contacts.rb +5 -0
- data/lib/tdlib/types/user_privacy_setting_rule/restrict_users.rb +8 -0
- data/lib/tdlib/types/user_privacy_setting_rules.rb +11 -0
- data/lib/tdlib/types/user_profile_photos.rb +10 -0
- data/lib/tdlib/types/user_status.rb +15 -0
- data/lib/tdlib/types/user_status/empty.rb +5 -0
- data/lib/tdlib/types/user_status/last_month.rb +5 -0
- data/lib/tdlib/types/user_status/last_week.rb +5 -0
- data/lib/tdlib/types/user_status/offline.rb +8 -0
- data/lib/tdlib/types/user_status/online.rb +8 -0
- data/lib/tdlib/types/user_status/recently.rb +5 -0
- data/lib/tdlib/types/user_type.rb +14 -0
- data/lib/tdlib/types/user_type/bot.rb +18 -0
- data/lib/tdlib/types/user_type/deleted.rb +7 -0
- data/lib/tdlib/types/user_type/regular.rb +5 -0
- data/lib/tdlib/types/user_type/unknown.rb +7 -0
- data/lib/tdlib/types/users.rb +10 -0
- data/lib/tdlib/types/validated_order_info.rb +11 -0
- data/lib/tdlib/types/venue.rb +19 -0
- data/lib/tdlib/types/video.rb +24 -0
- data/lib/tdlib/types/video_note.rb +15 -0
- data/lib/tdlib/types/voice_note.rb +16 -0
- data/lib/tdlib/types/wallpaper.rb +14 -0
- data/lib/tdlib/types/wallpapers.rb +8 -0
- data/lib/tdlib/types/web_page.rb +51 -0
- data/lib/tdlib/types/web_page_instant_view.rb +11 -0
- data/lib/tdlib/update_handler.rb +36 -0
- data/lib/tdlib/update_manager.rb +21 -11
- data/lib/tdlib/version.rb +1 -1
- data/spec/integration/tdlib_spec.rb +20 -15
- data/tdlib-ruby.gemspec +7 -12
- metadata +720 -9
- data/lib/tdlib/utils.rb +0 -7
data/lib/tdlib-ruby.rb
CHANGED
@@ -20,6 +20,7 @@ module TD
|
|
20
20
|
setting :use_test_dc, false
|
21
21
|
setting :database_directory, "#{Dir.home}/.tdlib-ruby/db"
|
22
22
|
setting :files_directory, "#{Dir.home}/.tdlib-ruby/data"
|
23
|
+
setting :use_file_database, true
|
23
24
|
setting :use_chat_info_database, true
|
24
25
|
setting :use_secret_chats, true
|
25
26
|
setting :use_message_database, true
|
@@ -34,6 +35,8 @@ end
|
|
34
35
|
|
35
36
|
require 'tdlib/errors'
|
36
37
|
require 'tdlib/api'
|
37
|
-
require 'tdlib/
|
38
|
+
require 'tdlib/types'
|
39
|
+
require 'tdlib/client_methods'
|
38
40
|
require 'tdlib/client'
|
41
|
+
require 'tdlib/update_handler'
|
39
42
|
require 'tdlib/update_manager'
|
data/lib/tdlib/api.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
require 'fiddle/import'
|
2
1
|
require 'json'
|
2
|
+
require 'ffi'
|
3
3
|
|
4
4
|
module TD::Api
|
5
5
|
module_function
|
@@ -18,7 +18,7 @@ module TD::Api
|
|
18
18
|
|
19
19
|
def client_receive(client, timeout)
|
20
20
|
update = Dl.td_json_client_receive(client, timeout)
|
21
|
-
|
21
|
+
JSON.parse(update) if update
|
22
22
|
end
|
23
23
|
|
24
24
|
def client_destroy(client)
|
@@ -34,7 +34,7 @@ module TD::Api
|
|
34
34
|
end
|
35
35
|
|
36
36
|
module Dl
|
37
|
-
extend
|
37
|
+
extend FFI::Library
|
38
38
|
|
39
39
|
@mutex = Mutex.new
|
40
40
|
|
@@ -42,16 +42,18 @@ module TD::Api
|
|
42
42
|
|
43
43
|
def method_missing(method_name, *args)
|
44
44
|
@mutex.synchronize do
|
45
|
-
return if respond_to?(method_name)
|
46
|
-
dlload(find_lib)
|
45
|
+
return public_send(method_name, *args) if respond_to?(method_name)
|
47
46
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
47
|
+
find_lib
|
48
|
+
|
49
|
+
attach_function :td_json_client_create, [], :pointer
|
50
|
+
attach_function :td_json_client_receive, [:pointer, :double], :string, blocking: true
|
51
|
+
attach_function :td_json_client_send, [:pointer, :string], :pointer, blocking: true
|
52
|
+
attach_function :td_json_client_execute, [:pointer, :string], :string, blocking: true
|
53
|
+
attach_function :td_json_client_destroy, [:pointer], :void
|
54
|
+
attach_function :td_set_log_file_path, [:string], :int
|
55
|
+
attach_function :td_set_log_max_file_size, [:long_long], :void
|
56
|
+
attach_function :td_set_log_verbosity_level, [:int], :void
|
55
57
|
|
56
58
|
undef method_missing
|
57
59
|
public_send(method_name, *args)
|
@@ -66,9 +68,12 @@ module TD::Api
|
|
66
68
|
elsif defined?(Rails) && File.exist?(Rails.root.join('vendor', file_name))
|
67
69
|
Rails.root.join('vendor')
|
68
70
|
end
|
69
|
-
|
70
|
-
|
71
|
-
|
71
|
+
full_path = File.join(lib_path.to_s, file_name)
|
72
|
+
ffi_lib full_path
|
73
|
+
full_path
|
74
|
+
rescue LoadError
|
75
|
+
ffi_lib 'tdjson'
|
76
|
+
ffi_libraries.first.name
|
72
77
|
end
|
73
78
|
|
74
79
|
def lib_extension
|
data/lib/tdlib/client.rb
CHANGED
@@ -1,108 +1,91 @@
|
|
1
|
+
require 'securerandom'
|
2
|
+
|
1
3
|
# Simple client for TDLib.
|
2
|
-
# @example
|
3
|
-
# TD.configure do |config|
|
4
|
-
# config.lib_path = 'path_to_tdlibjson'
|
5
|
-
# config.encryption_key = 'your_encryption_key'
|
6
|
-
#
|
7
|
-
# config.client.api_id = your_api_id
|
8
|
-
# config.client.api_hash = 'your_api_hash'
|
9
|
-
# end
|
10
|
-
#
|
11
|
-
# client = TD::Client.new
|
12
|
-
#
|
13
|
-
# begin
|
14
|
-
# state = nil
|
15
|
-
#
|
16
|
-
# client.on('updateAuthorizationState') do |update|
|
17
|
-
# next unless update.dig('authorization_state', '@type') == 'authorizationStateWaitPhoneNumber'
|
18
|
-
# state = :wait_phone
|
19
|
-
# end
|
20
|
-
#
|
21
|
-
# client.on('updateAuthorizationState') do |update|
|
22
|
-
# next unless update.dig('authorization_state', '@type') == 'authorizationStateWaitCode'
|
23
|
-
# state = :wait_code
|
24
|
-
# end
|
25
|
-
#
|
26
|
-
# client.on('updateAuthorizationState') do |update|
|
27
|
-
# next unless update.dig('authorization_state', '@type') == 'authorizationStateReady'
|
28
|
-
# state = :ready
|
29
|
-
# end
|
30
|
-
#
|
31
|
-
# loop do
|
32
|
-
# case state
|
33
|
-
# when :wait_phone
|
34
|
-
# p 'Please, enter your phone number:'
|
35
|
-
# phone = STDIN.gets.strip
|
36
|
-
# params = {
|
37
|
-
# '@type' => 'setAuthenticationPhoneNumber',
|
38
|
-
# 'phone_number' => phone
|
39
|
-
# }
|
40
|
-
# client.broadcast_and_receive(params)
|
41
|
-
# when :wait_code
|
42
|
-
# p 'Please, enter code from SMS:'
|
43
|
-
# code = STDIN.gets.strip
|
44
|
-
# params = {
|
45
|
-
# '@type' => 'checkAuthenticationCode',
|
46
|
-
# 'code' => code
|
47
|
-
# }
|
48
|
-
# client.broadcast_and_receive(params)
|
49
|
-
# when :ready
|
50
|
-
# @me = client.broadcast_and_receive('@type' => 'getMe')
|
51
|
-
# break
|
52
|
-
# end
|
53
|
-
# end
|
54
|
-
#
|
55
|
-
# ensure
|
56
|
-
# client.close
|
57
|
-
# end
|
58
|
-
#
|
59
|
-
# p @me
|
60
4
|
class TD::Client
|
61
5
|
include Concurrent
|
6
|
+
include TD::ClientMethods
|
62
7
|
|
63
8
|
TIMEOUT = 20
|
64
9
|
|
10
|
+
def self.ready(*args)
|
11
|
+
new(*args).connect
|
12
|
+
end
|
13
|
+
|
14
|
+
# @param [FFI::Pointer] td_client
|
15
|
+
# @param [TD::UpdateManager] update_manager
|
16
|
+
# @param [Numeric] timeout
|
17
|
+
# @param [Hash] extra_config optional configuration hash that will be merged into tdlib client configuration
|
65
18
|
def initialize(td_client = TD::Api.client_create,
|
66
19
|
update_manager = TD::UpdateManager.new(td_client),
|
67
|
-
|
20
|
+
timeout: TIMEOUT,
|
68
21
|
**extra_config)
|
69
22
|
@td_client = td_client
|
23
|
+
@ready = false
|
24
|
+
@alive = true
|
70
25
|
@update_manager = update_manager
|
26
|
+
@timeout = timeout
|
71
27
|
@config = TD.config.client.to_h.merge(extra_config)
|
72
|
-
@proxy = proxy
|
73
28
|
@ready_condition_mutex = Mutex.new
|
74
29
|
@ready_condition = ConditionVariable.new
|
75
|
-
|
30
|
+
end
|
31
|
+
|
32
|
+
# Adds initial authorization state handler and runs update manager
|
33
|
+
# Returns future that will be fulfilled when client is ready
|
34
|
+
# @return [Concurrent::Promises::Future]
|
35
|
+
def connect
|
36
|
+
on TD::Types::Update::AuthorizationState do |update|
|
37
|
+
case update.authorization_state
|
38
|
+
when TD::Types::AuthorizationState::WaitTdlibParameters
|
39
|
+
set_tdlib_parameters(TD::Types::TdlibParameters.new(**@config))
|
40
|
+
when TD::Types::AuthorizationState::WaitEncryptionKey
|
41
|
+
check_database_encryption_key(TD.config.encryption_key).then do
|
42
|
+
@ready_condition_mutex.synchronize do
|
43
|
+
@ready = true
|
44
|
+
@ready_condition.broadcast
|
45
|
+
end
|
46
|
+
end
|
47
|
+
else
|
48
|
+
# do nothing
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
76
52
|
@update_manager.run
|
53
|
+
ready
|
77
54
|
end
|
78
55
|
|
79
56
|
# Sends asynchronous request to the TDLib client and returns Promise object
|
80
|
-
# @see
|
57
|
+
# @see TD::ClientMethods List of available queries as methods
|
58
|
+
# @see https://github.com/ruby-concurrency/concurrent-ruby/blob/master/docs-source/promises.in.md
|
59
|
+
# Concurrent::Promise documentation
|
81
60
|
# @example
|
82
|
-
# client.broadcast(some_query).then { |result| puts result }.rescue
|
61
|
+
# client.broadcast(some_query).then { |result| puts result }.rescue { |error| puts [error.code, error.message] }
|
83
62
|
# @param [Hash] query
|
84
|
-
# @
|
85
|
-
|
86
|
-
|
87
|
-
|
63
|
+
# @return [Concurrent::Promises::Future]
|
64
|
+
def broadcast(query)
|
65
|
+
return dead_client_promise if dead?
|
66
|
+
|
67
|
+
Promises.future do
|
88
68
|
condition = ConditionVariable.new
|
89
|
-
extra =
|
69
|
+
extra = SecureRandom.uuid
|
90
70
|
result = nil
|
91
71
|
mutex = Mutex.new
|
92
|
-
|
93
|
-
|
72
|
+
|
73
|
+
@update_manager << TD::UpdateHandler.new(TD::Types::Base, extra, disposable: true) do |update|
|
94
74
|
mutex.synchronize do
|
95
75
|
result = update
|
96
|
-
@update_manager.remove_handler(handler)
|
97
76
|
condition.signal
|
98
77
|
end
|
99
78
|
end
|
100
|
-
|
79
|
+
|
101
80
|
query['@extra'] = extra
|
81
|
+
|
102
82
|
mutex.synchronize do
|
103
|
-
|
104
|
-
condition.wait(mutex, timeout)
|
105
|
-
|
83
|
+
send_to_td_client(query)
|
84
|
+
condition.wait(mutex, @timeout)
|
85
|
+
error = nil
|
86
|
+
error = result if result.is_a?(TD::Types::Error)
|
87
|
+
error = timeout_error if result.nil?
|
88
|
+
raise TD::Error.new(error) if error
|
106
89
|
result
|
107
90
|
end
|
108
91
|
end
|
@@ -111,8 +94,8 @@ class TD::Client
|
|
111
94
|
# Sends asynchronous request to the TDLib client and returns received update synchronously
|
112
95
|
# @param [Hash] query
|
113
96
|
# @return [Hash]
|
114
|
-
def fetch(query
|
115
|
-
broadcast(query
|
97
|
+
def fetch(query)
|
98
|
+
broadcast(query).value!
|
116
99
|
end
|
117
100
|
|
118
101
|
alias broadcast_and_receive fetch
|
@@ -121,70 +104,85 @@ class TD::Client
|
|
121
104
|
# Only a few requests can be executed synchronously
|
122
105
|
# @param [Hash] query
|
123
106
|
def execute(query)
|
107
|
+
return dead_client_error if dead?
|
124
108
|
TD::Api.client_execute(@td_client, query)
|
125
109
|
end
|
126
110
|
|
127
|
-
# Returns current authorization state (it's offline request)
|
128
|
-
# @return [Hash]
|
129
|
-
def authorization_state
|
130
|
-
broadcast_and_receive('@type' => 'getAuthorizationState')
|
131
|
-
end
|
132
|
-
|
133
111
|
# Binds passed block as a handler for updates with type of *update_type*
|
134
|
-
# @param [String] update_type
|
112
|
+
# @param [String, Class] update_type
|
135
113
|
# @yield [update] yields update to the block as soon as it's received
|
136
|
-
def on(update_type, &
|
137
|
-
|
138
|
-
|
139
|
-
|
114
|
+
def on(update_type, &action)
|
115
|
+
if update_type.is_a?(String)
|
116
|
+
if (type_const = TD::Types::LOOKUP_TABLE[update_type])
|
117
|
+
update_type = TD::Types.const_get("TD::Types::#{type_const}")
|
118
|
+
else
|
119
|
+
raise ArgumentError.new("Can't find class for #{update_type}")
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
unless update_type < TD::Types::Base
|
124
|
+
raise ArgumentError.new("Wrong type specified (#{update_type}). Should be of kind TD::Types::Base")
|
140
125
|
end
|
141
|
-
|
126
|
+
|
127
|
+
@update_manager << TD::UpdateHandler.new(update_type, &action)
|
142
128
|
end
|
143
129
|
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
130
|
+
# returns future that will be fulfilled when client is ready
|
131
|
+
# @return [Concurrent::Promises::Future]
|
132
|
+
def ready
|
133
|
+
return dead_client_promise if dead?
|
134
|
+
return Promises.fulfilled_future(self) if ready?
|
135
|
+
|
136
|
+
Promises.future do
|
137
|
+
@ready_condition_mutex.synchronize do
|
138
|
+
next self if @ready || (@ready_condition.wait(@ready_condition_mutex, @timeout) && @ready)
|
139
|
+
raise TD::Error.new(timeout_error)
|
140
|
+
end
|
148
141
|
end
|
149
142
|
end
|
150
143
|
|
144
|
+
# @deprecated
|
145
|
+
def on_ready(&action)
|
146
|
+
ready.then(&action).value!
|
147
|
+
end
|
148
|
+
|
151
149
|
# Stops update manager and destroys TDLib client
|
152
|
-
def
|
150
|
+
def dispose
|
151
|
+
return if dead?
|
153
152
|
@update_manager.stop
|
153
|
+
@alive = false
|
154
|
+
@ready = false
|
154
155
|
TD::Api.client_destroy(@td_client)
|
155
156
|
end
|
156
157
|
|
158
|
+
def alive?
|
159
|
+
@alive
|
160
|
+
end
|
161
|
+
|
162
|
+
def dead?
|
163
|
+
!alive?
|
164
|
+
end
|
165
|
+
|
166
|
+
def ready?
|
167
|
+
@ready
|
168
|
+
end
|
169
|
+
|
157
170
|
private
|
158
171
|
|
159
|
-
def
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
}
|
164
|
-
encryption_key_query = {
|
165
|
-
'@type' => 'checkDatabaseEncryptionKey',
|
166
|
-
}
|
167
|
-
|
168
|
-
if TD.config.encryption_key
|
169
|
-
encryption_key_query['encryption_key'] = TD.config.encryption_key
|
170
|
-
end
|
172
|
+
def send_to_td_client(query)
|
173
|
+
return unless alive?
|
174
|
+
TD::Api.client_send(@td_client, query)
|
175
|
+
end
|
171
176
|
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
@ready_condition_mutex.synchronize do
|
183
|
-
@ready = true
|
184
|
-
@ready_condition.broadcast
|
185
|
-
end
|
186
|
-
end
|
187
|
-
end
|
188
|
-
@update_manager.add_handler(handler)
|
177
|
+
def timeout_error
|
178
|
+
TD::Types::Error.new(code: 0, message: 'Timeout error')
|
179
|
+
end
|
180
|
+
|
181
|
+
def dead_client_promise
|
182
|
+
Promises.rejected_future(dead_client_error)
|
183
|
+
end
|
184
|
+
|
185
|
+
def dead_client_error
|
186
|
+
TD::Error.new(TD::Types::Error.new(code: 0, message: 'TD client is dead'))
|
189
187
|
end
|
190
188
|
end
|
@@ -0,0 +1,3474 @@
|
|
1
|
+
# This is a generated module from current TDLib scheme
|
2
|
+
# It contains all available TDLib methods
|
3
|
+
module TD::ClientMethods
|
4
|
+
# Accepts an incoming call.
|
5
|
+
#
|
6
|
+
# @param call_id [Integer] Call identifier.
|
7
|
+
# @param protocol [TD::Types::CallProtocol] Description of the call protocols supported by the client.
|
8
|
+
# @return [TD::Types::Ok]
|
9
|
+
def accept_call(call_id, protocol)
|
10
|
+
broadcast('@type' => 'acceptCall',
|
11
|
+
'call_id' => call_id,
|
12
|
+
'protocol' => protocol)
|
13
|
+
end
|
14
|
+
|
15
|
+
# Accepts Telegram terms of services.
|
16
|
+
#
|
17
|
+
# @param terms_of_service_id [String] Terms of service identifier.
|
18
|
+
# @return [TD::Types::Ok]
|
19
|
+
def accept_terms_of_service(terms_of_service_id)
|
20
|
+
broadcast('@type' => 'acceptTermsOfService',
|
21
|
+
'terms_of_service_id' => terms_of_service_id)
|
22
|
+
end
|
23
|
+
|
24
|
+
# Adds a new member to a chat.
|
25
|
+
# Members can't be added to private or secret chats.
|
26
|
+
# Members will not be added until the chat state has been synchronized with the server.
|
27
|
+
#
|
28
|
+
# @param chat_id [Integer] Chat identifier.
|
29
|
+
# @param user_id [Integer] Identifier of the user.
|
30
|
+
# @param forward_limit [Integer] The number of earlier messages from the chat to be forwarded to the new member; up
|
31
|
+
# to 300.
|
32
|
+
# Ignored for supergroups and channels.
|
33
|
+
# @return [TD::Types::Ok]
|
34
|
+
def add_chat_member(chat_id, user_id, forward_limit: 300)
|
35
|
+
broadcast('@type' => 'addChatMember',
|
36
|
+
'chat_id' => chat_id,
|
37
|
+
'user_id' => user_id,
|
38
|
+
'forward_limit' => forward_limit)
|
39
|
+
end
|
40
|
+
|
41
|
+
# Adds multiple new members to a chat.
|
42
|
+
# Currently this option is only available for supergroups and channels.
|
43
|
+
# This option can't be used to join a chat.
|
44
|
+
# Members can't be added to a channel if it has more than 200 members.
|
45
|
+
# Members will not be added until the chat state has been synchronized with the server.
|
46
|
+
#
|
47
|
+
# @param chat_id [Integer] Chat identifier.
|
48
|
+
# @param user_ids [Array<Integer>] Identifiers of the users to be added to the chat.
|
49
|
+
# @return [TD::Types::Ok]
|
50
|
+
def add_chat_members(chat_id, user_ids)
|
51
|
+
broadcast('@type' => 'addChatMembers',
|
52
|
+
'chat_id' => chat_id,
|
53
|
+
'user_ids' => user_ids)
|
54
|
+
end
|
55
|
+
|
56
|
+
# Adds a new sticker to the list of favorite stickers.
|
57
|
+
# The new sticker is added to the top of the list.
|
58
|
+
# If the sticker was already in the list, it is removed from the list first.
|
59
|
+
# Only stickers belonging to a sticker set can be added to this list.
|
60
|
+
#
|
61
|
+
# @param sticker [TD::Types::InputFile] Sticker file to add.
|
62
|
+
# @return [TD::Types::Ok]
|
63
|
+
def add_favorite_sticker(sticker)
|
64
|
+
broadcast('@type' => 'addFavoriteSticker',
|
65
|
+
'sticker' => sticker)
|
66
|
+
end
|
67
|
+
|
68
|
+
# Adds a local message to a chat.
|
69
|
+
# The message is persistent across application restarts only if the message database is used.
|
70
|
+
#
|
71
|
+
# @param chat_id [Integer] Target chat.
|
72
|
+
# @param sender_user_id [Integer] Identifier of the user who will be shown as the sender of the message; may be 0 for
|
73
|
+
# channel posts.
|
74
|
+
# @param reply_to_message_id [Integer] Identifier of the message to reply to or 0.
|
75
|
+
# @param disable_notification [Boolean] Pass true to disable notification for the message.
|
76
|
+
# @param input_message_content [TD::Types::InputMessageContent] The content of the message to be added.
|
77
|
+
# @return [TD::Types::Message] the added message.
|
78
|
+
def add_local_message(chat_id, input_message_content,
|
79
|
+
sender_user_id: 0, reply_to_message_id: 0, disable_notification: false)
|
80
|
+
broadcast('@type' => 'addLocalMessage',
|
81
|
+
'chat_id' => chat_id,
|
82
|
+
'sender_user_id' => sender_user_id,
|
83
|
+
'reply_to_message_id' => reply_to_message_id,
|
84
|
+
'disable_notification' => disable_notification,
|
85
|
+
'input_message_content' => input_message_content)
|
86
|
+
end
|
87
|
+
|
88
|
+
# Adds the specified data to data usage statistics.
|
89
|
+
# Can be called before authorization.
|
90
|
+
#
|
91
|
+
# @param entry [TD::Types::NetworkStatisticsEntry] The network statistics entry with the data to be added to
|
92
|
+
# statistics.
|
93
|
+
# @return [TD::Types::Ok]
|
94
|
+
def add_network_statistics(entry)
|
95
|
+
broadcast('@type' => 'addNetworkStatistics',
|
96
|
+
'entry' => entry)
|
97
|
+
end
|
98
|
+
|
99
|
+
# Adds a proxy server for network requests.
|
100
|
+
# Can be called before authorization.
|
101
|
+
#
|
102
|
+
# @param server [String] Proxy server IP address.
|
103
|
+
# @param port [Integer] Proxy server port.
|
104
|
+
# @param enable [Boolean] True, if the proxy should be enabled.
|
105
|
+
# @param type [TD::Types::ProxyType] Proxy type.
|
106
|
+
# @return [TD::Types::Proxy]
|
107
|
+
def add_proxy(server, port, type, enable = false)
|
108
|
+
broadcast('@type' => 'addProxy',
|
109
|
+
'server' => server,
|
110
|
+
'port' => port,
|
111
|
+
'enable' => enable,
|
112
|
+
'type' => type)
|
113
|
+
end
|
114
|
+
|
115
|
+
# Manually adds a new sticker to the list of recently used stickers.
|
116
|
+
# The new sticker is added to the top of the list.
|
117
|
+
# If the sticker was already in the list, it is removed from the list first.
|
118
|
+
# Only stickers belonging to a sticker set can be added to this list.
|
119
|
+
#
|
120
|
+
# @param is_attached [Boolean] Pass true to add the sticker to the list of stickers recently attached to photo or
|
121
|
+
# video files; pass false to add the sticker to the list of recently sent stickers.
|
122
|
+
# @param sticker [TD::Types::InputFile] Sticker file to add.
|
123
|
+
# @return [TD::Types::Stickers]
|
124
|
+
def add_recent_sticker(sticker, is_attached: false)
|
125
|
+
broadcast('@type' => 'addRecentSticker',
|
126
|
+
'is_attached' => is_attached,
|
127
|
+
'sticker' => sticker)
|
128
|
+
end
|
129
|
+
|
130
|
+
# Adds a chat to the list of recently found chats.
|
131
|
+
# The chat is added to the beginning of the list.
|
132
|
+
# If the chat is already in the list, it will be removed from the list first.
|
133
|
+
#
|
134
|
+
# @param chat_id [Integer] Identifier of the chat to add.
|
135
|
+
# @return [TD::Types::Ok]
|
136
|
+
def add_recently_found_chat(chat_id)
|
137
|
+
broadcast('@type' => 'addRecentlyFoundChat',
|
138
|
+
'chat_id' => chat_id)
|
139
|
+
end
|
140
|
+
|
141
|
+
# Manually adds a new animation to the list of saved animations.
|
142
|
+
# The new animation is added to the beginning of the list.
|
143
|
+
# If the animation was already in the list, it is removed first.
|
144
|
+
# Only non-secret video animations with MIME type "video/mp4" can be added to the list.
|
145
|
+
#
|
146
|
+
# @param animation [TD::Types::InputFile] The animation file to be added.
|
147
|
+
# Only animations known to the server (i.e. successfully sent via a message) can be added to the list.
|
148
|
+
# @return [TD::Types::Ok]
|
149
|
+
def add_saved_animation(animation)
|
150
|
+
broadcast('@type' => 'addSavedAnimation',
|
151
|
+
'animation' => animation)
|
152
|
+
end
|
153
|
+
|
154
|
+
# Adds a new sticker to a set; for bots only.
|
155
|
+
#
|
156
|
+
# @param user_id [Integer] Sticker set owner.
|
157
|
+
# @param name [String] Sticker set name.
|
158
|
+
# @param sticker [TD::Types::InputSticker] Sticker to add to the set.
|
159
|
+
# @return [TD::Types::StickerSet] the sticker set.
|
160
|
+
def add_sticker_to_set(user_id, name, sticker)
|
161
|
+
broadcast('@type' => 'addStickerToSet',
|
162
|
+
'user_id' => user_id,
|
163
|
+
'name' => name,
|
164
|
+
'sticker' => sticker)
|
165
|
+
end
|
166
|
+
|
167
|
+
# Sets the result of a callback query; for bots only.
|
168
|
+
#
|
169
|
+
# @param callback_query_id [Integer] Identifier of the callback query.
|
170
|
+
# @param text [String] Text of the answer.
|
171
|
+
# @param show_alert [Boolean] If true, an alert should be shown to the user instead of a toast notification.
|
172
|
+
# @param url [String] URL to be opened.
|
173
|
+
# @param cache_time [Integer] Time during which the result of the query can be cached, in seconds.
|
174
|
+
# @return [TD::Types::Ok]
|
175
|
+
def answer_callback_query(callback_query_id, text, show_alert, url, cache_time)
|
176
|
+
broadcast('@type' => 'answerCallbackQuery',
|
177
|
+
'callback_query_id' => callback_query_id,
|
178
|
+
'text' => text,
|
179
|
+
'show_alert' => show_alert,
|
180
|
+
'url' => url,
|
181
|
+
'cache_time' => cache_time)
|
182
|
+
end
|
183
|
+
|
184
|
+
# Answers a custom query; for bots only.
|
185
|
+
#
|
186
|
+
# @param custom_query_id [Integer] Identifier of a custom query.
|
187
|
+
# @param data [String] JSON-serialized answer to the query.
|
188
|
+
# @return [TD::Types::Ok]
|
189
|
+
def answer_custom_query(custom_query_id, data)
|
190
|
+
broadcast('@type' => 'answerCustomQuery',
|
191
|
+
'custom_query_id' => custom_query_id,
|
192
|
+
'data' => data)
|
193
|
+
end
|
194
|
+
|
195
|
+
# Sets the result of an inline query; for bots only.
|
196
|
+
#
|
197
|
+
# @param inline_query_id [Integer] Identifier of the inline query.
|
198
|
+
# @param is_personal [Boolean] True, if the result of the query can be cached for the specified user.
|
199
|
+
# @param results [Array<TD::Types::InputInlineQueryResult>] The results of the query.
|
200
|
+
# @param cache_time [Integer] Allowed time to cache the results of the query, in seconds.
|
201
|
+
# @param next_offset [String] Offset for the next inline query; pass an empty string if there are no more results.
|
202
|
+
# @param switch_pm_text [String] If non-empty, this text should be shown on the button that opens a private chat with
|
203
|
+
# the bot and sends a start message to the bot with the parameter switch_pm_parameter.
|
204
|
+
# @param switch_pm_parameter [String] The parameter for the bot start message.
|
205
|
+
# @return [TD::Types::Ok]
|
206
|
+
def answer_inline_query(inline_query_id, is_personal, results, cache_time, next_offset, switch_pm_text,
|
207
|
+
switch_pm_parameter)
|
208
|
+
broadcast('@type' => 'answerInlineQuery',
|
209
|
+
'inline_query_id' => inline_query_id,
|
210
|
+
'is_personal' => is_personal,
|
211
|
+
'results' => results,
|
212
|
+
'cache_time' => cache_time,
|
213
|
+
'next_offset' => next_offset,
|
214
|
+
'switch_pm_text' => switch_pm_text,
|
215
|
+
'switch_pm_parameter' => switch_pm_parameter)
|
216
|
+
end
|
217
|
+
|
218
|
+
# Sets the result of a pre-checkout query; for bots only.
|
219
|
+
#
|
220
|
+
# @param pre_checkout_query_id [Integer] Identifier of the pre-checkout query.
|
221
|
+
# @param error_message [String, nil] An error message, empty on success.
|
222
|
+
# @return [TD::Types::Ok]
|
223
|
+
def answer_pre_checkout_query(pre_checkout_query_id, error_message: nil)
|
224
|
+
broadcast('@type' => 'answerPreCheckoutQuery',
|
225
|
+
'pre_checkout_query_id' => pre_checkout_query_id,
|
226
|
+
'error_message' => error_message)
|
227
|
+
end
|
228
|
+
|
229
|
+
# Sets the result of a shipping query; for bots only.
|
230
|
+
#
|
231
|
+
# @param shipping_query_id [Integer] Identifier of the shipping query.
|
232
|
+
# @param shipping_options [Array<TD::Types::ShippingOption>] Available shipping options.
|
233
|
+
# @param error_message [String, nil] An error message, empty on success.
|
234
|
+
# @return [TD::Types::Ok]
|
235
|
+
def answer_shipping_query(shipping_query_id, shipping_options, error_message: nil)
|
236
|
+
broadcast('@type' => 'answerShippingQuery',
|
237
|
+
'shipping_query_id' => shipping_query_id,
|
238
|
+
'shipping_options' => shipping_options,
|
239
|
+
'error_message' => error_message)
|
240
|
+
end
|
241
|
+
|
242
|
+
# Adds a user to the blacklist.
|
243
|
+
#
|
244
|
+
# @param user_id [Integer] User identifier.
|
245
|
+
# @return [TD::Types::Ok]
|
246
|
+
def block_user(user_id)
|
247
|
+
broadcast('@type' => 'blockUser',
|
248
|
+
'user_id' => user_id)
|
249
|
+
end
|
250
|
+
|
251
|
+
# Stops the downloading of a file.
|
252
|
+
# If a file has already been downloaded, does nothing.
|
253
|
+
#
|
254
|
+
# @param file_id [Integer] Identifier of a file to stop downloading.
|
255
|
+
# @param only_if_pending [Boolean] Pass true to stop downloading only if it hasn't been started, i.e.
|
256
|
+
# request hasn't been sent to server.
|
257
|
+
# @return [TD::Types::Ok]
|
258
|
+
def cancel_download_file(file_id, only_if_pending: false)
|
259
|
+
broadcast('@type' => 'cancelDownloadFile',
|
260
|
+
'file_id' => file_id,
|
261
|
+
'only_if_pending' => only_if_pending)
|
262
|
+
end
|
263
|
+
|
264
|
+
# Stops the uploading of a file.
|
265
|
+
# Supported only for files uploaded by using {#upload_file}.
|
266
|
+
# For other files the behavior is undefined.
|
267
|
+
#
|
268
|
+
# @param file_id [Integer] Identifier of the file to stop uploading.
|
269
|
+
# @return [TD::Types::Ok]
|
270
|
+
def cancel_upload_file(file_id)
|
271
|
+
broadcast('@type' => 'cancelUploadFile',
|
272
|
+
'file_id' => file_id)
|
273
|
+
end
|
274
|
+
|
275
|
+
# Used to let the server know whether a chat is spam or not.
|
276
|
+
# Can be used only if {TD::Types::ChatReportSpamState#can_report_spam} is true.
|
277
|
+
# After this request, {TD::Types::ChatReportSpamState#can_report_spam} becomes false forever.
|
278
|
+
#
|
279
|
+
# @param chat_id [Integer] Chat identifier.
|
280
|
+
# @param is_spam_chat [Boolean] If true, the chat will be reported as spam; otherwise it will be marked as not spam.
|
281
|
+
# @return [TD::Types::Ok]
|
282
|
+
def change_chat_report_spam_state(chat_id, is_spam_chat)
|
283
|
+
broadcast('@type' => 'changeChatReportSpamState',
|
284
|
+
'chat_id' => chat_id,
|
285
|
+
'is_spam_chat' => is_spam_chat)
|
286
|
+
end
|
287
|
+
|
288
|
+
# Changes imported contacts using the list of current user contacts saved on the device.
|
289
|
+
# Imports newly added contacts and, if at least the file database is enabled, deletes recently deleted contacts.
|
290
|
+
# Query result depends on the result of the previous query, so only one query is possible at the same time.
|
291
|
+
#
|
292
|
+
# @param contacts [Array<TD::Types::Contact>] The new list of contacts, contact's vCard are ignored and are not
|
293
|
+
# imported.
|
294
|
+
# @return [TD::Types::ImportedContacts]
|
295
|
+
def change_imported_contacts(contacts)
|
296
|
+
broadcast('@type' => 'changeImportedContacts',
|
297
|
+
'contacts' => contacts)
|
298
|
+
end
|
299
|
+
|
300
|
+
# Changes the phone number of the user and sends an authentication code to the user's new phone number.
|
301
|
+
#
|
302
|
+
# @param phone_number [String] The new phone number of the user in international format.
|
303
|
+
# @param allow_flash_call [Boolean] Pass true if the code can be sent via flash call to the specified phone number.
|
304
|
+
# @param is_current_phone_number [Boolean] Pass true if the phone number is used on the current device.
|
305
|
+
# Ignored if allow_flash_call is false.
|
306
|
+
# @return [TD::Types::AuthenticationCodeInfo] On success, returns information about the sent code.
|
307
|
+
def change_phone_number(phone_number, allow_flash_call: false, is_current_phone_number: false)
|
308
|
+
broadcast('@type' => 'changePhoneNumber',
|
309
|
+
'phone_number' => phone_number,
|
310
|
+
'allow_flash_call' => allow_flash_call,
|
311
|
+
'is_current_phone_number' => is_current_phone_number)
|
312
|
+
end
|
313
|
+
|
314
|
+
# Installs/uninstalls or activates/archives a sticker set.
|
315
|
+
#
|
316
|
+
# @param set_id [Integer] Identifier of the sticker set.
|
317
|
+
# @param is_installed [Boolean] The new value of is_installed.
|
318
|
+
# @param is_archived [Boolean] The new value of is_archived.
|
319
|
+
# A sticker set can't be installed and archived simultaneously.
|
320
|
+
# @return [TD::Types::Ok]
|
321
|
+
def change_sticker_set(set_id, is_installed, is_archived)
|
322
|
+
broadcast('@type' => 'changeStickerSet',
|
323
|
+
'set_id' => set_id,
|
324
|
+
'is_installed' => is_installed,
|
325
|
+
'is_archived' => is_archived)
|
326
|
+
end
|
327
|
+
|
328
|
+
# Checks the authentication token of a bot; to log in as a bot.
|
329
|
+
# Works only when the current authorization state is {TD::Types::AuthorizationState::WaitPhoneNumber}.
|
330
|
+
# Can be used instead of {#set_authentication_phone_number} and {#check_authentication_code} to log in.
|
331
|
+
#
|
332
|
+
# @param token [String] The bot token.
|
333
|
+
# @return [TD::Types::Ok]
|
334
|
+
def check_authentication_bot_token(token)
|
335
|
+
broadcast('@type' => 'checkAuthenticationBotToken',
|
336
|
+
'token' => token)
|
337
|
+
end
|
338
|
+
|
339
|
+
# Checks the authentication code.
|
340
|
+
# Works only when the current authorization state is {TD::Types::AuthorizationState::WaitCode}.
|
341
|
+
#
|
342
|
+
# @param code [String] The verification code received via SMS, Telegram message, phone call, or flash call.
|
343
|
+
# @param first_name [String, nil] If the user is not yet registered, the first name of the user; 1-255 characters.
|
344
|
+
# @param last_name [String, nil] If the user is not yet registered; the last name of the user; optional; 0-255
|
345
|
+
# characters.
|
346
|
+
# @return [TD::Types::Ok]
|
347
|
+
def check_authentication_code(code, first_name = nil, last_name = nil)
|
348
|
+
broadcast('@type' => 'checkAuthenticationCode',
|
349
|
+
'code' => code,
|
350
|
+
'first_name' => first_name,
|
351
|
+
'last_name' => last_name)
|
352
|
+
end
|
353
|
+
|
354
|
+
# Checks the authentication password for correctness.
|
355
|
+
# Works only when the current authorization state is {TD::Types::AuthorizationState::WaitPassword}.
|
356
|
+
#
|
357
|
+
# @param password [String] The password to check.
|
358
|
+
# @return [TD::Types::Ok]
|
359
|
+
def check_authentication_password(password)
|
360
|
+
broadcast('@type' => 'checkAuthenticationPassword',
|
361
|
+
'password' => password)
|
362
|
+
end
|
363
|
+
|
364
|
+
# Checks the authentication code sent to confirm a new phone number of the user.
|
365
|
+
#
|
366
|
+
# @param code [String] Verification code received by SMS, phone call or flash call.
|
367
|
+
# @return [TD::Types::Ok]
|
368
|
+
def check_change_phone_number_code(code)
|
369
|
+
broadcast('@type' => 'checkChangePhoneNumberCode',
|
370
|
+
'code' => code)
|
371
|
+
end
|
372
|
+
|
373
|
+
# Checks the validity of an invite link for a chat and returns information about the corresponding chat.
|
374
|
+
#
|
375
|
+
# @param invite_link [String] Invite link to be checked; should begin with "https://t.me/joinchat/",
|
376
|
+
# "https://telegram.me/joinchat/", or "https://telegram.dog/joinchat/".
|
377
|
+
# @return [TD::Types::ChatInviteLinkInfo]
|
378
|
+
def check_chat_invite_link(invite_link)
|
379
|
+
broadcast('@type' => 'checkChatInviteLink',
|
380
|
+
'invite_link' => invite_link)
|
381
|
+
end
|
382
|
+
|
383
|
+
# Checks whether a username can be set for a chat.
|
384
|
+
#
|
385
|
+
# @param chat_id [Integer] Chat identifier; should be identifier of a supergroup chat, or a channel chat, or a
|
386
|
+
# private chat with self, or zero if chat is being created.
|
387
|
+
# @param username [String] Username to be checked.
|
388
|
+
# @return [TD::Types::CheckChatUsernameResult]
|
389
|
+
def check_chat_username(chat_id, username)
|
390
|
+
broadcast('@type' => 'checkChatUsername',
|
391
|
+
'chat_id' => chat_id,
|
392
|
+
'username' => username)
|
393
|
+
end
|
394
|
+
|
395
|
+
# Checks the database encryption key for correctness.
|
396
|
+
# Works only when the current authorization state is {TD::Types::AuthorizationState::WaitEncryptionKey}.
|
397
|
+
#
|
398
|
+
# @param encryption_key [String] Encryption key to check or set up.
|
399
|
+
# @return [TD::Types::Ok]
|
400
|
+
def check_database_encryption_key(encryption_key)
|
401
|
+
broadcast('@type' => 'checkDatabaseEncryptionKey',
|
402
|
+
'encryption_key' => encryption_key)
|
403
|
+
end
|
404
|
+
|
405
|
+
# Checks the email address verification code for Telegram Passport.
|
406
|
+
#
|
407
|
+
# @param code [String] Verification code.
|
408
|
+
# @return [TD::Types::Ok]
|
409
|
+
def check_email_address_verification_code(code)
|
410
|
+
broadcast('@type' => 'checkEmailAddressVerificationCode',
|
411
|
+
'code' => code)
|
412
|
+
end
|
413
|
+
|
414
|
+
# Checks phone number confirmation code.
|
415
|
+
#
|
416
|
+
# @param code [String] The phone number confirmation code.
|
417
|
+
# @return [TD::Types::Ok]
|
418
|
+
def check_phone_number_confirmation_code(code)
|
419
|
+
broadcast('@type' => 'checkPhoneNumberConfirmationCode',
|
420
|
+
'code' => code)
|
421
|
+
end
|
422
|
+
|
423
|
+
# Checks the phone number verification code for Telegram Passport.
|
424
|
+
#
|
425
|
+
# @param code [String] Verification code.
|
426
|
+
# @return [TD::Types::Ok]
|
427
|
+
def check_phone_number_verification_code(code)
|
428
|
+
broadcast('@type' => 'checkPhoneNumberVerificationCode',
|
429
|
+
'code' => code)
|
430
|
+
end
|
431
|
+
|
432
|
+
# Removes potentially dangerous characters from the name of a file.
|
433
|
+
# The encoding of the file name is supposed to be UTF-8.
|
434
|
+
# Returns an empty string on failure.
|
435
|
+
# This is an offline method.
|
436
|
+
# Can be called before authorization.
|
437
|
+
# Can be called synchronously.
|
438
|
+
#
|
439
|
+
# @param file_name [String] File name or path to the file.
|
440
|
+
# @return [TD::Types::Text]
|
441
|
+
def clean_file_name(file_name)
|
442
|
+
broadcast('@type' => 'cleanFileName',
|
443
|
+
'file_name' => file_name)
|
444
|
+
end
|
445
|
+
|
446
|
+
# Clears draft messages in all chats.
|
447
|
+
#
|
448
|
+
# @param exclude_secret_chats [Boolean] If true, local draft messages in secret chats will not be cleared.
|
449
|
+
# @return [TD::Types::Ok]
|
450
|
+
def clear_all_draft_messages(exclude_secret_chats)
|
451
|
+
broadcast('@type' => 'clearAllDraftMessages',
|
452
|
+
'exclude_secret_chats' => exclude_secret_chats)
|
453
|
+
end
|
454
|
+
|
455
|
+
# Clears all imported contacts, contacts list remains unchanged.
|
456
|
+
#
|
457
|
+
# @return [TD::Types::Ok]
|
458
|
+
def clear_imported_contacts
|
459
|
+
broadcast('@type' => 'clearImportedContacts')
|
460
|
+
end
|
461
|
+
|
462
|
+
# Clears the list of recently used stickers.
|
463
|
+
#
|
464
|
+
# @param is_attached [Boolean] Pass true to clear the list of stickers recently attached to photo or video files;
|
465
|
+
# pass false to clear the list of recently sent stickers.
|
466
|
+
# @return [TD::Types::Ok]
|
467
|
+
def clear_recent_stickers(is_attached = false)
|
468
|
+
broadcast('@type' => 'clearRecentStickers',
|
469
|
+
'is_attached' => is_attached)
|
470
|
+
end
|
471
|
+
|
472
|
+
# Clears the list of recently found chats.
|
473
|
+
#
|
474
|
+
# @return [TD::Types::Ok]
|
475
|
+
def clear_recently_found_chats
|
476
|
+
broadcast('@type' => 'clearRecentlyFoundChats')
|
477
|
+
end
|
478
|
+
|
479
|
+
# Closes the TDLib instance.
|
480
|
+
# All databases will be flushed to disk and properly closed.
|
481
|
+
# After the close completes, {TD::Types::Update::AuthorizationState} with {TD::Types::AuthorizationState::Closed}
|
482
|
+
# will be sent.
|
483
|
+
#
|
484
|
+
# @return [TD::Types::Ok]
|
485
|
+
def close
|
486
|
+
broadcast('@type' => 'close')
|
487
|
+
end
|
488
|
+
|
489
|
+
# This method should be called if the chat is closed by the user.
|
490
|
+
# Many useful activities depend on the chat being opened or closed.
|
491
|
+
#
|
492
|
+
# @param chat_id [Integer] Chat identifier.
|
493
|
+
# @return [TD::Types::Ok]
|
494
|
+
def close_chat(chat_id)
|
495
|
+
broadcast('@type' => 'closeChat',
|
496
|
+
'chat_id' => chat_id)
|
497
|
+
end
|
498
|
+
|
499
|
+
# Closes a secret chat, effectively transfering its state to {TD::Types::SecretChatState::Closed}.
|
500
|
+
#
|
501
|
+
# @param secret_chat_id [Integer] Secret chat identifier.
|
502
|
+
# @return [TD::Types::Ok]
|
503
|
+
def close_secret_chat(secret_chat_id)
|
504
|
+
broadcast('@type' => 'closeSecretChat',
|
505
|
+
'secret_chat_id' => secret_chat_id)
|
506
|
+
end
|
507
|
+
|
508
|
+
# Returns an existing chat corresponding to a known basic group.
|
509
|
+
#
|
510
|
+
# @param basic_group_id [Integer] Basic group identifier.
|
511
|
+
# @param force [Boolean] If true, the chat will be created without network request.
|
512
|
+
# In this case all information about the chat except its type, title and photo can be incorrect.
|
513
|
+
# @return [TD::Types::Chat]
|
514
|
+
def create_basic_group_chat(basic_group_id, force = false)
|
515
|
+
broadcast('@type' => 'createBasicGroupChat',
|
516
|
+
'basic_group_id' => basic_group_id,
|
517
|
+
'force' => force)
|
518
|
+
end
|
519
|
+
|
520
|
+
# Creates a new call.
|
521
|
+
#
|
522
|
+
# @param user_id [Integer] Identifier of the user to be called.
|
523
|
+
# @param protocol [TD::Types::CallProtocol] Description of the call protocols supported by the client.
|
524
|
+
# @return [TD::Types::CallId]
|
525
|
+
def create_call(user_id, protocol)
|
526
|
+
broadcast('@type' => 'createCall',
|
527
|
+
'user_id' => user_id,
|
528
|
+
'protocol' => protocol)
|
529
|
+
end
|
530
|
+
|
531
|
+
# Creates a new basic group and sends a corresponding {TD::Types::MessageContent::BasicGroupChatCreate}.
|
532
|
+
#
|
533
|
+
# @param user_ids [Array<Integer>] Identifiers of users to be added to the basic group.
|
534
|
+
# @param title [String] Title of the new basic group; 1-255 characters.
|
535
|
+
# @return [TD::Types::Chat] the newly created chat.
|
536
|
+
def create_new_basic_group_chat(user_ids, title)
|
537
|
+
broadcast('@type' => 'createNewBasicGroupChat',
|
538
|
+
'user_ids' => user_ids,
|
539
|
+
'title' => title)
|
540
|
+
end
|
541
|
+
|
542
|
+
# Creates a new secret chat.
|
543
|
+
#
|
544
|
+
# @param user_id [Integer] Identifier of the target user.
|
545
|
+
# @return [TD::Types::Chat] the newly created chat.
|
546
|
+
def create_new_secret_chat(user_id)
|
547
|
+
broadcast('@type' => 'createNewSecretChat',
|
548
|
+
'user_id' => user_id)
|
549
|
+
end
|
550
|
+
|
551
|
+
# Creates a new sticker set; for bots only.
|
552
|
+
#
|
553
|
+
# @param user_id [Integer] Sticker set owner.
|
554
|
+
# @param title [String] Sticker set title; 1-64 characters.
|
555
|
+
# @param name [String] Sticker set name.
|
556
|
+
# Can contain only English letters, digits and underscores.
|
557
|
+
# Must end with *"_by_<bot username>"* (*<bot_username>* is case insensitive); 1-64 characters.
|
558
|
+
# @param is_masks [Boolean] True, if stickers are masks.
|
559
|
+
# @param stickers [Array<TD::Types::InputSticker>] List of stickers to be added to the set.
|
560
|
+
# @return [TD::Types::StickerSet] the newly created sticker set.
|
561
|
+
def create_new_sticker_set(user_id, title, name, stickers, is_masks: false)
|
562
|
+
broadcast('@type' => 'createNewStickerSet',
|
563
|
+
'user_id' => user_id,
|
564
|
+
'title' => title,
|
565
|
+
'name' => name,
|
566
|
+
'is_masks' => is_masks,
|
567
|
+
'stickers' => stickers)
|
568
|
+
end
|
569
|
+
|
570
|
+
# Creates a new supergroup or channel and sends a corresponding {TD::Types::MessageContent::SupergroupChatCreate}.
|
571
|
+
#
|
572
|
+
# @param title [String] Title of the new chat; 1-255 characters.
|
573
|
+
# @param is_channel [Boolean] True, if a channel chat should be created.
|
574
|
+
# @param description [String] Chat description; 0-255 characters.
|
575
|
+
# @return [TD::Types::Chat] the newly created chat.
|
576
|
+
def create_new_supergroup_chat(title, description, is_channel: false)
|
577
|
+
broadcast('@type' => 'createNewSupergroupChat',
|
578
|
+
'title' => title,
|
579
|
+
'is_channel' => is_channel,
|
580
|
+
'description' => description)
|
581
|
+
end
|
582
|
+
|
583
|
+
# Returns an existing chat corresponding to a given user.
|
584
|
+
#
|
585
|
+
# @param user_id [Integer] User identifier.
|
586
|
+
# @param force [Boolean] If true, the chat will be created without network request.
|
587
|
+
# In this case all information about the chat except its type, title and photo can be incorrect.
|
588
|
+
# @return [TD::Types::Chat]
|
589
|
+
def create_private_chat(user_id, force = false)
|
590
|
+
broadcast('@type' => 'createPrivateChat',
|
591
|
+
'user_id' => user_id,
|
592
|
+
'force' => force)
|
593
|
+
end
|
594
|
+
|
595
|
+
# Returns an existing chat corresponding to a known secret chat.
|
596
|
+
#
|
597
|
+
# @param secret_chat_id [Integer] Secret chat identifier.
|
598
|
+
# @return [TD::Types::Chat]
|
599
|
+
def create_secret_chat(secret_chat_id)
|
600
|
+
broadcast('@type' => 'createSecretChat',
|
601
|
+
'secret_chat_id' => secret_chat_id)
|
602
|
+
end
|
603
|
+
|
604
|
+
# Returns an existing chat corresponding to a known supergroup or channel.
|
605
|
+
#
|
606
|
+
# @param supergroup_id [Integer] Supergroup or channel identifier.
|
607
|
+
# @param force [Boolean] If true, the chat will be created without network request.
|
608
|
+
# In this case all information about the chat except its type, title and photo can be incorrect.
|
609
|
+
# @return [TD::Types::Chat]
|
610
|
+
def create_supergroup_chat(supergroup_id, force = false)
|
611
|
+
broadcast('@type' => 'createSupergroupChat',
|
612
|
+
'supergroup_id' => supergroup_id,
|
613
|
+
'force' => force)
|
614
|
+
end
|
615
|
+
|
616
|
+
# Creates a new temporary password for processing payments.
|
617
|
+
#
|
618
|
+
# @param password [String] Persistent user password.
|
619
|
+
# @param valid_for [Integer] Time during which the temporary password will be valid, in seconds; should be between 60
|
620
|
+
# and 86400.
|
621
|
+
# @return [TD::Types::TemporaryPasswordState]
|
622
|
+
def create_temporary_password(password, valid_for)
|
623
|
+
broadcast('@type' => 'createTemporaryPassword',
|
624
|
+
'password' => password,
|
625
|
+
'valid_for' => valid_for)
|
626
|
+
end
|
627
|
+
|
628
|
+
# Deletes the account of the current user, deleting all information associated with the user from the server.
|
629
|
+
# The phone number of the account can be used to create a new account.
|
630
|
+
# Can be called before authorization when the current authorization state is
|
631
|
+
# {TD::Types::AuthorizationState::WaitPassword}.
|
632
|
+
#
|
633
|
+
# @param reason [String, nil] The reason why the account was deleted; optional.
|
634
|
+
# @return [TD::Types::Ok]
|
635
|
+
def delete_account(reason = nil)
|
636
|
+
broadcast('@type' => 'deleteAccount',
|
637
|
+
'reason' => reason)
|
638
|
+
end
|
639
|
+
|
640
|
+
# Deletes all messages in the chat only for the user.
|
641
|
+
# Cannot be used in channels and public supergroups.
|
642
|
+
#
|
643
|
+
# @param chat_id [Integer] Chat identifier.
|
644
|
+
# @param remove_from_chat_list [Boolean] Pass true if the chat should be removed from the chats list.
|
645
|
+
# @return [TD::Types::Ok]
|
646
|
+
def delete_chat_history(chat_id, remove_from_chat_list = false)
|
647
|
+
broadcast('@type' => 'deleteChatHistory',
|
648
|
+
'chat_id' => chat_id,
|
649
|
+
'remove_from_chat_list' => remove_from_chat_list)
|
650
|
+
end
|
651
|
+
|
652
|
+
# Deletes all messages sent by the specified user to a chat.
|
653
|
+
# Supported only in supergroups; requires can_delete_messages administrator privileges.
|
654
|
+
#
|
655
|
+
# @param chat_id [Integer] Chat identifier.
|
656
|
+
# @param user_id [Integer] User identifier.
|
657
|
+
# @return [TD::Types::Ok]
|
658
|
+
def delete_chat_messages_from_user(chat_id, user_id)
|
659
|
+
broadcast('@type' => 'deleteChatMessagesFromUser',
|
660
|
+
'chat_id' => chat_id,
|
661
|
+
'user_id' => user_id)
|
662
|
+
end
|
663
|
+
|
664
|
+
# Deletes the default reply markup from a chat.
|
665
|
+
# Must be called after a one-time keyboard or a ForceReply reply markup has been used.
|
666
|
+
# UpdateChatReplyMarkup will be sent if the reply markup will be changed.
|
667
|
+
#
|
668
|
+
# @param chat_id [Integer] Chat identifier.
|
669
|
+
# @param message_id [Integer] The message identifier of the used keyboard.
|
670
|
+
# @return [TD::Types::Ok]
|
671
|
+
def delete_chat_reply_markup(chat_id, message_id)
|
672
|
+
broadcast('@type' => 'deleteChatReplyMarkup',
|
673
|
+
'chat_id' => chat_id,
|
674
|
+
'message_id' => message_id)
|
675
|
+
end
|
676
|
+
|
677
|
+
# Deletes a file from the TDLib file cache.
|
678
|
+
#
|
679
|
+
# @param file_id [Integer] Identifier of the file to delete.
|
680
|
+
# @return [TD::Types::Ok]
|
681
|
+
def delete_file(file_id)
|
682
|
+
broadcast('@type' => 'deleteFile',
|
683
|
+
'file_id' => file_id)
|
684
|
+
end
|
685
|
+
|
686
|
+
# Deletes all information about a language pack in the current localization target.
|
687
|
+
# The language pack that is currently in use can't be deleted.
|
688
|
+
#
|
689
|
+
# @param language_pack_id [String] Identifier of the language pack to delete.
|
690
|
+
# @return [TD::Types::Ok]
|
691
|
+
def delete_language_pack(language_pack_id)
|
692
|
+
broadcast('@type' => 'deleteLanguagePack',
|
693
|
+
'language_pack_id' => language_pack_id)
|
694
|
+
end
|
695
|
+
|
696
|
+
# Deletes messages.
|
697
|
+
#
|
698
|
+
# @param chat_id [Integer] Chat identifier.
|
699
|
+
# @param message_ids [Array<Integer>] Identifiers of the messages to be deleted.
|
700
|
+
# @param revoke [Boolean] Pass true to try to delete outgoing messages for all chat members (may fail if messages are
|
701
|
+
# too old).
|
702
|
+
# Always true for supergroups, channels and secret chats.
|
703
|
+
# @return [TD::Types::Ok]
|
704
|
+
def delete_messages(chat_id, message_ids, revoke = false)
|
705
|
+
broadcast('@type' => 'deleteMessages',
|
706
|
+
'chat_id' => chat_id,
|
707
|
+
'message_ids' => message_ids,
|
708
|
+
'revoke' => revoke)
|
709
|
+
end
|
710
|
+
|
711
|
+
# Deletes a Telegram Passport element.
|
712
|
+
#
|
713
|
+
# @param type [TD::Types::PassportElementType] Element type.
|
714
|
+
# @return [TD::Types::Ok]
|
715
|
+
def delete_passport_element(type)
|
716
|
+
broadcast('@type' => 'deletePassportElement',
|
717
|
+
'type' => type)
|
718
|
+
end
|
719
|
+
|
720
|
+
# Deletes a profile photo.
|
721
|
+
# If something changes, {TD::Types::Update::User} will be sent.
|
722
|
+
#
|
723
|
+
# @param profile_photo_id [Integer] Identifier of the profile photo to delete.
|
724
|
+
# @return [TD::Types::Ok]
|
725
|
+
def delete_profile_photo(profile_photo_id)
|
726
|
+
broadcast('@type' => 'deleteProfilePhoto',
|
727
|
+
'profile_photo_id' => profile_photo_id)
|
728
|
+
end
|
729
|
+
|
730
|
+
# Deletes saved credentials for all payment provider bots.
|
731
|
+
#
|
732
|
+
# @return [TD::Types::Ok]
|
733
|
+
def delete_saved_credentials
|
734
|
+
broadcast('@type' => 'deleteSavedCredentials')
|
735
|
+
end
|
736
|
+
|
737
|
+
# Deletes saved order info.
|
738
|
+
#
|
739
|
+
# @return [TD::Types::Ok]
|
740
|
+
def delete_saved_order_info
|
741
|
+
broadcast('@type' => 'deleteSavedOrderInfo')
|
742
|
+
end
|
743
|
+
|
744
|
+
# Deletes a supergroup or channel along with all messages in the corresponding chat.
|
745
|
+
# This will release the supergroup or channel username and remove all members; requires creator privileges in the
|
746
|
+
# supergroup or channel.
|
747
|
+
# Chats with more than 1000 members can't be deleted using this method.
|
748
|
+
#
|
749
|
+
# @param supergroup_id [Integer] Identifier of the supergroup or channel.
|
750
|
+
# @return [TD::Types::Ok]
|
751
|
+
def delete_supergroup(supergroup_id)
|
752
|
+
broadcast('@type' => 'deleteSupergroup',
|
753
|
+
'supergroup_id' => supergroup_id)
|
754
|
+
end
|
755
|
+
|
756
|
+
# Closes the TDLib instance, destroying all local data without a proper logout.
|
757
|
+
# The current user session will remain in the list of all active sessions.
|
758
|
+
# All local data will be destroyed.
|
759
|
+
# After the destruction completes {TD::Types::Update::AuthorizationState} with {TD::Types::AuthorizationState::Closed}
|
760
|
+
# will be sent.
|
761
|
+
#
|
762
|
+
# @return [TD::Types::Ok]
|
763
|
+
def destroy
|
764
|
+
broadcast('@type' => 'destroy')
|
765
|
+
end
|
766
|
+
|
767
|
+
# Disables the currently enabled proxy.
|
768
|
+
# Can be called before authorization.
|
769
|
+
#
|
770
|
+
# @return [TD::Types::Ok]
|
771
|
+
def disable_proxy
|
772
|
+
broadcast('@type' => 'disableProxy')
|
773
|
+
end
|
774
|
+
|
775
|
+
# Discards a call.
|
776
|
+
#
|
777
|
+
# @param call_id [Integer] Call identifier.
|
778
|
+
# @param is_disconnected [Boolean] True, if the user was disconnected.
|
779
|
+
# @param duration [Integer] The call duration, in seconds.
|
780
|
+
# @param connection_id [Integer] Identifier of the connection used during the call.
|
781
|
+
# @return [TD::Types::Ok]
|
782
|
+
def discard_call(call_id, duration, connection_id, is_disconnected: false)
|
783
|
+
broadcast('@type' => 'discardCall',
|
784
|
+
'call_id' => call_id,
|
785
|
+
'is_disconnected' => is_disconnected,
|
786
|
+
'duration' => duration,
|
787
|
+
'connection_id' => connection_id)
|
788
|
+
end
|
789
|
+
|
790
|
+
# Disconnects all websites from the current user's Telegram account.
|
791
|
+
#
|
792
|
+
# @return [TD::Types::Ok]
|
793
|
+
def disconnect_all_websites
|
794
|
+
broadcast('@type' => 'disconnectAllWebsites')
|
795
|
+
end
|
796
|
+
|
797
|
+
# Disconnects website from the current user's Telegram account.
|
798
|
+
#
|
799
|
+
# @param website_id [Integer] Website identifier.
|
800
|
+
# @return [TD::Types::Ok]
|
801
|
+
def disconnect_website(website_id)
|
802
|
+
broadcast('@type' => 'disconnectWebsite',
|
803
|
+
'website_id' => website_id)
|
804
|
+
end
|
805
|
+
|
806
|
+
# Asynchronously downloads a file from the cloud.
|
807
|
+
# {TD::Types::Update::File} will be used to notify about the download progress and successful completion of the
|
808
|
+
# download.
|
809
|
+
# Returns file state just after the download has been started.
|
810
|
+
#
|
811
|
+
# @param file_id [Integer] Identifier of the file to download.
|
812
|
+
# @param priority [Integer] Priority of the download (1-32).
|
813
|
+
# The higher the priority, the earlier the file will be downloaded.
|
814
|
+
# If the priorities of two files are equal, then the last one for which {#download_file} was called will be
|
815
|
+
# downloaded first.
|
816
|
+
# @return [TD::Types::File]
|
817
|
+
def download_file(file_id, priority = 1)
|
818
|
+
broadcast('@type' => 'downloadFile',
|
819
|
+
'file_id' => file_id,
|
820
|
+
'priority' => priority)
|
821
|
+
end
|
822
|
+
|
823
|
+
# Edits information about a custom language pack in the current localization target.
|
824
|
+
#
|
825
|
+
# @param info [TD::Types::LanguagePackInfo] New information about the custom language pack.
|
826
|
+
# @return [TD::Types::Ok]
|
827
|
+
def edit_custom_language_pack_info(info)
|
828
|
+
broadcast('@type' => 'editCustomLanguagePackInfo',
|
829
|
+
'info' => info)
|
830
|
+
end
|
831
|
+
|
832
|
+
# Edits the caption of an inline message sent via a bot; for bots only.
|
833
|
+
#
|
834
|
+
# @param inline_message_id [String] Inline message identifier.
|
835
|
+
# @param reply_markup [TD::Types::ReplyMarkup] The new message reply markup.
|
836
|
+
# @param caption [TD::Types::FormattedText] New message content caption; 0-GetOption("message_caption_length_max")
|
837
|
+
# characters.
|
838
|
+
# @return [TD::Types::Ok]
|
839
|
+
def edit_inline_message_caption(inline_message_id, reply_markup, caption)
|
840
|
+
broadcast('@type' => 'editInlineMessageCaption',
|
841
|
+
'inline_message_id' => inline_message_id,
|
842
|
+
'reply_markup' => reply_markup,
|
843
|
+
'caption' => caption)
|
844
|
+
end
|
845
|
+
|
846
|
+
# Edits the content of a live location in an inline message sent via a bot; for bots only.
|
847
|
+
#
|
848
|
+
# @param inline_message_id [String] Inline message identifier.
|
849
|
+
# @param reply_markup [TD::Types::ReplyMarkup] The new message reply markup.
|
850
|
+
# @param location [TD::Types::Location, nil] New location content of the message.
|
851
|
+
# Pass nil to stop sharing the live location.
|
852
|
+
# @return [TD::Types::Ok]
|
853
|
+
def edit_inline_message_live_location(inline_message_id, reply_markup, location = nil)
|
854
|
+
broadcast('@type' => 'editInlineMessageLiveLocation',
|
855
|
+
'inline_message_id' => inline_message_id,
|
856
|
+
'reply_markup' => reply_markup,
|
857
|
+
'location' => location)
|
858
|
+
end
|
859
|
+
|
860
|
+
# Edits the content of a message with an animation, an audio, a document, a photo or a video in an inline message
|
861
|
+
# sent via a bot; for bots only.
|
862
|
+
#
|
863
|
+
# @param inline_message_id [String] Inline message identifier.
|
864
|
+
# @param reply_markup [TD::Types::ReplyMarkup, nil] The new message reply markup; for bots only.
|
865
|
+
# @param input_message_content [TD::Types::InputMessageContent::Animation, TD::Types::InputMessageContent::Audio,
|
866
|
+
# TD::Types::InputMessageContent::Document, TD::Types::InputMessageContent::Photo,
|
867
|
+
# TD::Types::InputMessageContent::Video] New content of the message.
|
868
|
+
# @return [TD::Types::Ok]
|
869
|
+
def edit_inline_message_media(inline_message_id, input_message_content, reply_markup: nil)
|
870
|
+
broadcast('@type' => 'editInlineMessageMedia',
|
871
|
+
'inline_message_id' => inline_message_id,
|
872
|
+
'reply_markup' => reply_markup,
|
873
|
+
'input_message_content' => input_message_content)
|
874
|
+
end
|
875
|
+
|
876
|
+
# Edits the reply markup of an inline message sent via a bot; for bots only.
|
877
|
+
#
|
878
|
+
# @param inline_message_id [String] Inline message identifier.
|
879
|
+
# @param reply_markup [TD::Types::ReplyMarkup] The new message reply markup.
|
880
|
+
# @return [TD::Types::Ok]
|
881
|
+
def edit_inline_message_reply_markup(inline_message_id, reply_markup)
|
882
|
+
broadcast('@type' => 'editInlineMessageReplyMarkup',
|
883
|
+
'inline_message_id' => inline_message_id,
|
884
|
+
'reply_markup' => reply_markup)
|
885
|
+
end
|
886
|
+
|
887
|
+
# Edits the text of an inline text or game message sent via a bot; for bots only.
|
888
|
+
#
|
889
|
+
# @param inline_message_id [String] Inline message identifier.
|
890
|
+
# @param reply_markup [TD::Types::ReplyMarkup] The new message reply markup.
|
891
|
+
# @param input_message_content [TD::Types::InputMessageContent::Text] New text content of the message.
|
892
|
+
# @return [TD::Types::Ok]
|
893
|
+
def edit_inline_message_text(inline_message_id, input_message_content, reply_markup)
|
894
|
+
broadcast('@type' => 'editInlineMessageText',
|
895
|
+
'inline_message_id' => inline_message_id,
|
896
|
+
'reply_markup' => reply_markup,
|
897
|
+
'input_message_content' => input_message_content)
|
898
|
+
end
|
899
|
+
|
900
|
+
# Edits the message content caption.
|
901
|
+
#
|
902
|
+
# @param chat_id [Integer] The chat the message belongs to.
|
903
|
+
# @param message_id [Integer] Identifier of the message.
|
904
|
+
# @param reply_markup [TD::Types::ReplyMarkup, nil] The new message reply markup; for bots only.
|
905
|
+
# @param caption [TD::Types::FormattedText] New message content caption; 0-GetOption("message_caption_length_max")
|
906
|
+
# characters.
|
907
|
+
# @return [TD::Types::Message] the edited message after the edit is completed on the server side.
|
908
|
+
def edit_message_caption(chat_id, message_id, caption, reply_markup: nil)
|
909
|
+
broadcast('@type' => 'editMessageCaption',
|
910
|
+
'chat_id' => chat_id,
|
911
|
+
'message_id' => message_id,
|
912
|
+
'reply_markup' => reply_markup,
|
913
|
+
'caption' => caption)
|
914
|
+
end
|
915
|
+
|
916
|
+
# Edits the message content of a live location.
|
917
|
+
# Messages can be edited for a limited period of time specified in the live location.
|
918
|
+
#
|
919
|
+
# @param chat_id [Integer] The chat the message belongs to.
|
920
|
+
# @param message_id [Integer] Identifier of the message.
|
921
|
+
# @param reply_markup [TD::Types::ReplyMarkup, nil] The new message reply markup; for bots only.
|
922
|
+
# @param location [TD::Types::Location, nil] New location content of the message.
|
923
|
+
# Pass nil to stop sharing the live location.
|
924
|
+
# @return [TD::Types::Message] the edited message after the edit is completed on the server side.
|
925
|
+
def edit_message_live_location(chat_id, message_id, location = nil, reply_markup: nil)
|
926
|
+
broadcast('@type' => 'editMessageLiveLocation',
|
927
|
+
'chat_id' => chat_id,
|
928
|
+
'message_id' => message_id,
|
929
|
+
'reply_markup' => reply_markup,
|
930
|
+
'location' => location)
|
931
|
+
end
|
932
|
+
|
933
|
+
# Edits the content of a message with an animation, an audio, a document, a photo or a video.
|
934
|
+
# The media in the message can't be replaced if the message was set to self-destruct.
|
935
|
+
# Media can't be replaced by self-destructing media.
|
936
|
+
# Media in an album can be edited only to contain a photo or a video.
|
937
|
+
#
|
938
|
+
# @param chat_id [Integer] The chat the message belongs to.
|
939
|
+
# @param message_id [Integer] Identifier of the message.
|
940
|
+
# @param reply_markup [TD::Types::ReplyMarkup, nil] The new message reply markup; for bots only.
|
941
|
+
# @param input_message_content [TD::Types::InputMessageContent::Animation, TD::Types::InputMessageContent::Audio,
|
942
|
+
# TD::Types::InputMessageContent::Document, TD::Types::InputMessageContent::Photo,
|
943
|
+
# TD::Types::InputMessageContent::Video] New content of the message.
|
944
|
+
# @return [TD::Types::Message] the edited message after the edit is completed on the server side.
|
945
|
+
def edit_message_media(chat_id, message_id, input_message_content, reply_markup: nil)
|
946
|
+
broadcast('@type' => 'editMessageMedia',
|
947
|
+
'chat_id' => chat_id,
|
948
|
+
'message_id' => message_id,
|
949
|
+
'reply_markup' => reply_markup,
|
950
|
+
'input_message_content' => input_message_content)
|
951
|
+
end
|
952
|
+
|
953
|
+
# Edits the message reply markup; for bots only.
|
954
|
+
#
|
955
|
+
# @param chat_id [Integer] The chat the message belongs to.
|
956
|
+
# @param message_id [Integer] Identifier of the message.
|
957
|
+
# @param reply_markup [TD::Types::ReplyMarkup] The new message reply markup.
|
958
|
+
# @return [TD::Types::Message] the edited message after the edit is completed on the server side.
|
959
|
+
def edit_message_reply_markup(chat_id, message_id, reply_markup)
|
960
|
+
broadcast('@type' => 'editMessageReplyMarkup',
|
961
|
+
'chat_id' => chat_id,
|
962
|
+
'message_id' => message_id,
|
963
|
+
'reply_markup' => reply_markup)
|
964
|
+
end
|
965
|
+
|
966
|
+
# Edits the text of a message (or a text of a game message).
|
967
|
+
#
|
968
|
+
# @param chat_id [Integer] The chat the message belongs to.
|
969
|
+
# @param message_id [Integer] Identifier of the message.
|
970
|
+
# @param reply_markup [TD::Types::ReplyMarkup, nil] The new message reply markup; for bots only.
|
971
|
+
# @param input_message_content [TD::Types::InputMessageContent::Text] New text content of the message.
|
972
|
+
# @return [TD::Types::Message] the edited message after the edit is completed on the server side.
|
973
|
+
def edit_message_text(chat_id, message_id, input_message_content, reply_markup: nil)
|
974
|
+
broadcast('@type' => 'editMessageText',
|
975
|
+
'chat_id' => chat_id,
|
976
|
+
'message_id' => message_id,
|
977
|
+
'reply_markup' => reply_markup,
|
978
|
+
'input_message_content' => input_message_content)
|
979
|
+
end
|
980
|
+
|
981
|
+
# Edits an existing proxy server for network requests.
|
982
|
+
# Can be called before authorization.
|
983
|
+
#
|
984
|
+
# @param proxy_id [Integer] Proxy identifier.
|
985
|
+
# @param server [String] Proxy server IP address.
|
986
|
+
# @param port [Integer] Proxy server port.
|
987
|
+
# @param enable [Boolean] True, if the proxy should be enabled.
|
988
|
+
# @param type [TD::Types::ProxyType] Proxy type.
|
989
|
+
# @return [TD::Types::Proxy]
|
990
|
+
def edit_proxy(proxy_id, server, port, type, enable = false)
|
991
|
+
broadcast('@type' => 'editProxy',
|
992
|
+
'proxy_id' => proxy_id,
|
993
|
+
'server' => server,
|
994
|
+
'port' => port,
|
995
|
+
'enable' => enable,
|
996
|
+
'type' => type)
|
997
|
+
end
|
998
|
+
|
999
|
+
# Enables a proxy.
|
1000
|
+
# Only one proxy can be enabled at a time.
|
1001
|
+
# Can be called before authorization.
|
1002
|
+
#
|
1003
|
+
# @param proxy_id [Integer] Proxy identifier.
|
1004
|
+
# @return [TD::Types::Ok]
|
1005
|
+
def enable_proxy(proxy_id)
|
1006
|
+
broadcast('@type' => 'enableProxy',
|
1007
|
+
'proxy_id' => proxy_id)
|
1008
|
+
end
|
1009
|
+
|
1010
|
+
# Finishes the file generation.
|
1011
|
+
#
|
1012
|
+
# @param generation_id [Integer] The identifier of the generation process.
|
1013
|
+
# @param error [TD::Types::Error, nil] If set, means that file generation has failed and should be terminated.
|
1014
|
+
# @return [TD::Types::Ok]
|
1015
|
+
def finish_file_generation(generation_id, error: nil)
|
1016
|
+
broadcast('@type' => 'finishFileGeneration',
|
1017
|
+
'generation_id' => generation_id,
|
1018
|
+
'error' => error)
|
1019
|
+
end
|
1020
|
+
|
1021
|
+
# Forwards previously sent messages.
|
1022
|
+
#
|
1023
|
+
# @param chat_id [Integer] Identifier of the chat to which to forward messages.
|
1024
|
+
# @param from_chat_id [Integer] Identifier of the chat from which to forward messages.
|
1025
|
+
# @param message_ids [Array<Integer>] Identifiers of the messages to forward.
|
1026
|
+
# @param disable_notification [Boolean] Pass true to disable notification for the message, doesn't work if messages
|
1027
|
+
# are forwarded to a secret chat.
|
1028
|
+
# @param from_background [Boolean] Pass true if the message is sent from the background.
|
1029
|
+
# @param as_album [Boolean] True, if the messages should be grouped into an album after forwarding.
|
1030
|
+
# For this to work, no more than 10 messages may be forwarded, and all of them must be photo or video messages.
|
1031
|
+
# @return [TD::Types::Messages, nil] the forwarded messages in the same order as the message identifiers passed in
|
1032
|
+
# message_ids.
|
1033
|
+
# If a message can't be forwarded, nil will be returned instead of the message.
|
1034
|
+
def forward_messages(chat_id, from_chat_id, message_ids,
|
1035
|
+
disable_notification: false, from_background: false, as_album: false)
|
1036
|
+
broadcast('@type' => 'forwardMessages',
|
1037
|
+
'chat_id' => chat_id,
|
1038
|
+
'from_chat_id' => from_chat_id,
|
1039
|
+
'message_ids' => message_ids,
|
1040
|
+
'disable_notification' => disable_notification,
|
1041
|
+
'from_background' => from_background,
|
1042
|
+
'as_album' => as_album)
|
1043
|
+
end
|
1044
|
+
|
1045
|
+
# Generates a new invite link for a chat; the previously generated link is revoked.
|
1046
|
+
# Available for basic groups, supergroups, and channels.
|
1047
|
+
# In basic groups this can be called only by the group's creator; in supergroups and channels this requires
|
1048
|
+
# appropriate administrator rights.
|
1049
|
+
#
|
1050
|
+
# @param chat_id [Integer] Chat identifier.
|
1051
|
+
# @return [TD::Types::ChatInviteLink]
|
1052
|
+
def generate_chat_invite_link(chat_id)
|
1053
|
+
broadcast('@type' => 'generateChatInviteLink',
|
1054
|
+
'chat_id' => chat_id)
|
1055
|
+
end
|
1056
|
+
|
1057
|
+
# Returns the period of inactivity after which the account of the current user will automatically be deleted.
|
1058
|
+
#
|
1059
|
+
# @return [TD::Types::AccountTtl]
|
1060
|
+
def get_account_ttl
|
1061
|
+
broadcast('@type' => 'getAccountTtl')
|
1062
|
+
end
|
1063
|
+
|
1064
|
+
# Returns all active live locations that should be updated by the client.
|
1065
|
+
# The list is persistent across application restarts only if the message database is used.
|
1066
|
+
#
|
1067
|
+
# @return [TD::Types::Messages]
|
1068
|
+
def get_active_live_location_messages
|
1069
|
+
broadcast('@type' => 'getActiveLiveLocationMessages')
|
1070
|
+
end
|
1071
|
+
|
1072
|
+
# Returns all active sessions of the current user.
|
1073
|
+
#
|
1074
|
+
# @return [TD::Types::Sessions]
|
1075
|
+
def get_active_sessions
|
1076
|
+
broadcast('@type' => 'getActiveSessions')
|
1077
|
+
end
|
1078
|
+
|
1079
|
+
# Returns all available Telegram Passport elements.
|
1080
|
+
#
|
1081
|
+
# @param password [String] Password of the current user.
|
1082
|
+
# @return [TD::Types::PassportElements]
|
1083
|
+
def get_all_passport_elements(password)
|
1084
|
+
broadcast('@type' => 'getAllPassportElements',
|
1085
|
+
'password' => password)
|
1086
|
+
end
|
1087
|
+
|
1088
|
+
# Returns a list of archived sticker sets.
|
1089
|
+
#
|
1090
|
+
# @param is_masks [Boolean] Pass true to return mask stickers sets; pass false to return ordinary sticker sets.
|
1091
|
+
# @param offset_sticker_set_id [Integer] Identifier of the sticker set from which to return the result.
|
1092
|
+
# @param limit [Integer] Maximum number of sticker sets to return.
|
1093
|
+
# @return [TD::Types::StickerSets]
|
1094
|
+
def get_archived_sticker_sets(offset_sticker_set_id, limit = 100, is_masks: false)
|
1095
|
+
broadcast('@type' => 'getArchivedStickerSets',
|
1096
|
+
'is_masks' => is_masks,
|
1097
|
+
'offset_sticker_set_id' => offset_sticker_set_id,
|
1098
|
+
'limit' => limit)
|
1099
|
+
end
|
1100
|
+
|
1101
|
+
# Returns a list of sticker sets attached to a file.
|
1102
|
+
# Currently only photos and videos can have attached sticker sets.
|
1103
|
+
#
|
1104
|
+
# @param file_id [Integer] File identifier.
|
1105
|
+
# @return [TD::Types::StickerSets]
|
1106
|
+
def get_attached_sticker_sets(file_id)
|
1107
|
+
broadcast('@type' => 'getAttachedStickerSets',
|
1108
|
+
'file_id' => file_id)
|
1109
|
+
end
|
1110
|
+
|
1111
|
+
# Returns the current authorization state; this is an offline request.
|
1112
|
+
# For informational purposes only.
|
1113
|
+
# Use {TD::Types::Update::AuthorizationState} instead to maintain the current authorization state.
|
1114
|
+
#
|
1115
|
+
# @return [TD::Types::AuthorizationState]
|
1116
|
+
def get_authorization_state
|
1117
|
+
broadcast('@type' => 'getAuthorizationState')
|
1118
|
+
end
|
1119
|
+
|
1120
|
+
# Returns information about a basic group by its identifier.
|
1121
|
+
# This is an offline request if the current user is not a bot.
|
1122
|
+
#
|
1123
|
+
# @param basic_group_id [Integer] Basic group identifier.
|
1124
|
+
# @return [TD::Types::BasicGroup]
|
1125
|
+
def get_basic_group(basic_group_id)
|
1126
|
+
broadcast('@type' => 'getBasicGroup',
|
1127
|
+
'basic_group_id' => basic_group_id)
|
1128
|
+
end
|
1129
|
+
|
1130
|
+
# Returns full information about a basic group by its identifier.
|
1131
|
+
#
|
1132
|
+
# @param basic_group_id [Integer] Basic group identifier.
|
1133
|
+
# @return [TD::Types::BasicGroupFullInfo]
|
1134
|
+
def get_basic_group_full_info(basic_group_id)
|
1135
|
+
broadcast('@type' => 'getBasicGroupFullInfo',
|
1136
|
+
'basic_group_id' => basic_group_id)
|
1137
|
+
end
|
1138
|
+
|
1139
|
+
# Returns users that were blocked by the current user.
|
1140
|
+
#
|
1141
|
+
# @param offset [Integer] Number of users to skip in the result; must be non-negative.
|
1142
|
+
# @param limit [Integer] Maximum number of users to return; up to 100.
|
1143
|
+
# @return [TD::Types::Users]
|
1144
|
+
def get_blocked_users(offset, limit = 100)
|
1145
|
+
broadcast('@type' => 'getBlockedUsers',
|
1146
|
+
'offset' => offset,
|
1147
|
+
'limit' => limit)
|
1148
|
+
end
|
1149
|
+
|
1150
|
+
# Sends a callback query to a bot and returns an answer.
|
1151
|
+
# Returns an error with code 502 if the bot fails to answer the query before the query timeout expires.
|
1152
|
+
#
|
1153
|
+
# @param chat_id [Integer] Identifier of the chat with the message.
|
1154
|
+
# @param message_id [Integer] Identifier of the message from which the query originated.
|
1155
|
+
# @param payload [TD::Types::CallbackQueryPayload] Query payload.
|
1156
|
+
# @return [TD::Types::CallbackQueryAnswer]
|
1157
|
+
def get_callback_query_answer(chat_id, message_id, payload)
|
1158
|
+
broadcast('@type' => 'getCallbackQueryAnswer',
|
1159
|
+
'chat_id' => chat_id,
|
1160
|
+
'message_id' => message_id,
|
1161
|
+
'payload' => payload)
|
1162
|
+
end
|
1163
|
+
|
1164
|
+
# Returns information about a chat by its identifier, this is an offline request if the current user is not a bot.
|
1165
|
+
#
|
1166
|
+
# @param chat_id [Integer] Chat identifier.
|
1167
|
+
# @return [TD::Types::Chat]
|
1168
|
+
def get_chat(chat_id)
|
1169
|
+
broadcast('@type' => 'getChat',
|
1170
|
+
'chat_id' => chat_id)
|
1171
|
+
end
|
1172
|
+
|
1173
|
+
# Returns a list of users who are administrators of the chat.
|
1174
|
+
#
|
1175
|
+
# @param chat_id [Integer] Chat identifier.
|
1176
|
+
# @return [TD::Types::Users]
|
1177
|
+
def get_chat_administrators(chat_id)
|
1178
|
+
broadcast('@type' => 'getChatAdministrators',
|
1179
|
+
'chat_id' => chat_id)
|
1180
|
+
end
|
1181
|
+
|
1182
|
+
# Returns a list of service actions taken by chat members and administrators in the last 48 hours.
|
1183
|
+
# Available only in supergroups and channels.
|
1184
|
+
# Requires administrator rights.
|
1185
|
+
# Returns results in reverse chronological order (i.e., in order of decreasing event_id).
|
1186
|
+
#
|
1187
|
+
# @param chat_id [Integer] Chat identifier.
|
1188
|
+
# @param query [String] Search query by which to filter events.
|
1189
|
+
# @param from_event_id [Integer] Identifier of an event from which to return results.
|
1190
|
+
# Use 0 to get results from the latest events.
|
1191
|
+
# @param limit [Integer] Maximum number of events to return; up to 100.
|
1192
|
+
# @param filters [TD::Types::ChatEventLogFilters] The types of events to return.
|
1193
|
+
# By default, all types will be returned.
|
1194
|
+
# @param user_ids [Array<Integer>] User identifiers by which to filter events.
|
1195
|
+
# By default, events relating to all users will be returned.
|
1196
|
+
# @return [TD::Types::ChatEvents]
|
1197
|
+
def get_chat_event_log(chat_id, query, from_event_id, limit, filters, user_ids)
|
1198
|
+
broadcast('@type' => 'getChatEventLog',
|
1199
|
+
'chat_id' => chat_id,
|
1200
|
+
'query' => query,
|
1201
|
+
'from_event_id' => from_event_id,
|
1202
|
+
'limit' => limit,
|
1203
|
+
'filters' => filters,
|
1204
|
+
'user_ids' => user_ids)
|
1205
|
+
end
|
1206
|
+
|
1207
|
+
# Returns messages in a chat.
|
1208
|
+
# The messages are returned in a reverse chronological order (i.e., in order of decreasing message_id).
|
1209
|
+
# For optimal performance the number of returned messages is chosen by the library.
|
1210
|
+
# This is an offline request if only_local is true.
|
1211
|
+
#
|
1212
|
+
# @param chat_id [Integer] Chat identifier.
|
1213
|
+
# @param from_message_id [Integer] Identifier of the message starting from which history must be fetched; use 0 to
|
1214
|
+
# get results from the last message.
|
1215
|
+
# @param offset [Integer] Specify 0 to get results from exactly the from_message_id or a negative offset to get the
|
1216
|
+
# specified message and some newer messages.
|
1217
|
+
# @param limit [Integer] The maximum number of messages to be returned; must be positive and can't be greater than
|
1218
|
+
# 100.
|
1219
|
+
# If the offset is negative, the limit must be greater than -offset.
|
1220
|
+
# Fewer messages may be returned than specified by the limit, even if the end of the message history has not been
|
1221
|
+
# reached.
|
1222
|
+
# @param only_local [Boolean] If true, returns only messages that are available locally without sending network
|
1223
|
+
# requests.
|
1224
|
+
# @return [TD::Types::Messages]
|
1225
|
+
def get_chat_history(chat_id, from_message_id, offset = 0, limit = 100, only_local: false)
|
1226
|
+
broadcast('@type' => 'getChatHistory',
|
1227
|
+
'chat_id' => chat_id,
|
1228
|
+
'from_message_id' => from_message_id,
|
1229
|
+
'offset' => offset,
|
1230
|
+
'limit' => limit,
|
1231
|
+
'only_local' => only_local)
|
1232
|
+
end
|
1233
|
+
|
1234
|
+
# Returns information about a single member of a chat.
|
1235
|
+
#
|
1236
|
+
# @param chat_id [Integer] Chat identifier.
|
1237
|
+
# @param user_id [Integer] User identifier.
|
1238
|
+
# @return [TD::Types::ChatMember]
|
1239
|
+
def get_chat_member(chat_id, user_id)
|
1240
|
+
broadcast('@type' => 'getChatMember',
|
1241
|
+
'chat_id' => chat_id,
|
1242
|
+
'user_id' => user_id)
|
1243
|
+
end
|
1244
|
+
|
1245
|
+
# Returns the last message sent in a chat no later than the specified date.
|
1246
|
+
#
|
1247
|
+
# @param chat_id [Integer] Chat identifier.
|
1248
|
+
# @param date [Integer] Point in time (Unix timestamp) relative to which to search for messages.
|
1249
|
+
# @return [TD::Types::Message]
|
1250
|
+
def get_chat_message_by_date(chat_id, date)
|
1251
|
+
broadcast('@type' => 'getChatMessageByDate',
|
1252
|
+
'chat_id' => chat_id,
|
1253
|
+
'date' => date)
|
1254
|
+
end
|
1255
|
+
|
1256
|
+
# Returns approximate number of messages of the specified type in the chat.
|
1257
|
+
#
|
1258
|
+
# @param chat_id [Integer] Identifier of the chat in which to count messages.
|
1259
|
+
# @param filter [TD::Types::SearchMessagesFilter, nil] Filter for message content;
|
1260
|
+
# {TD::Types::SearchMessagesFilter::Empty} is unsupported in this function.
|
1261
|
+
# @param return_local [Boolean] If true, returns count that is available locally without sending network requests,
|
1262
|
+
# returning -1 if the number of messages is unknown.
|
1263
|
+
# @return [TD::Types::Count]
|
1264
|
+
def get_chat_message_count(chat_id, filter = nil, return_local: false)
|
1265
|
+
broadcast('@type' => 'getChatMessageCount',
|
1266
|
+
'chat_id' => chat_id,
|
1267
|
+
'filter' => filter,
|
1268
|
+
'return_local' => return_local)
|
1269
|
+
end
|
1270
|
+
|
1271
|
+
# Returns information about a pinned chat message.
|
1272
|
+
#
|
1273
|
+
# @param chat_id [Integer] Identifier of the chat the message belongs to.
|
1274
|
+
# @return [TD::Types::Message]
|
1275
|
+
def get_chat_pinned_message(chat_id)
|
1276
|
+
broadcast('@type' => 'getChatPinnedMessage',
|
1277
|
+
'chat_id' => chat_id)
|
1278
|
+
end
|
1279
|
+
|
1280
|
+
# Returns information on whether the current chat can be reported as spam.
|
1281
|
+
#
|
1282
|
+
# @param chat_id [Integer] Chat identifier.
|
1283
|
+
# @return [TD::Types::ChatReportSpamState]
|
1284
|
+
def get_chat_report_spam_state(chat_id)
|
1285
|
+
broadcast('@type' => 'getChatReportSpamState',
|
1286
|
+
'chat_id' => chat_id)
|
1287
|
+
end
|
1288
|
+
|
1289
|
+
# Returns an ordered list of chats.
|
1290
|
+
# Chats are sorted by the pair (order, chat_id) in decreasing order.
|
1291
|
+
# (For example, to get a list of chats from the beginning, the offset_order should be equal to 2^63 - 1).
|
1292
|
+
# For optimal performance the number of returned chats is chosen by the library.
|
1293
|
+
#
|
1294
|
+
# @param offset_order [Integer] Chat order to return chats from.
|
1295
|
+
# @param offset_chat_id [Integer] Chat identifier to return chats from.
|
1296
|
+
# @param limit [Integer] The maximum number of chats to be returned.
|
1297
|
+
# It is possible that fewer chats than the limit are returned even if the end of the list is not reached.
|
1298
|
+
# @return [TD::Types::Chats]
|
1299
|
+
def get_chats(offset_chat_id = 0, limit = 100, offset_order: 9223372036854775807)
|
1300
|
+
broadcast('@type' => 'getChats',
|
1301
|
+
'offset_order' => offset_order,
|
1302
|
+
'offset_chat_id' => offset_chat_id,
|
1303
|
+
'limit' => limit)
|
1304
|
+
end
|
1305
|
+
|
1306
|
+
# Returns all website where the current user used Telegram to log in.
|
1307
|
+
#
|
1308
|
+
# @return [TD::Types::ConnectedWebsites]
|
1309
|
+
def get_connected_websites
|
1310
|
+
broadcast('@type' => 'getConnectedWebsites')
|
1311
|
+
end
|
1312
|
+
|
1313
|
+
# Returns all user contacts.
|
1314
|
+
#
|
1315
|
+
# @return [TD::Types::Users]
|
1316
|
+
def get_contacts
|
1317
|
+
broadcast('@type' => 'getContacts')
|
1318
|
+
end
|
1319
|
+
|
1320
|
+
# Uses current user IP to found his country.
|
1321
|
+
# Can be called before authorization.
|
1322
|
+
#
|
1323
|
+
# @return [TD::Types::Text] two-letter ISO 3166-1 alpha-2 country code.
|
1324
|
+
def get_country_code
|
1325
|
+
broadcast('@type' => 'getCountryCode')
|
1326
|
+
end
|
1327
|
+
|
1328
|
+
# Returns a list of public chats created by the user.
|
1329
|
+
#
|
1330
|
+
# @return [TD::Types::Chats]
|
1331
|
+
def get_created_public_chats
|
1332
|
+
broadcast('@type' => 'getCreatedPublicChats')
|
1333
|
+
end
|
1334
|
+
|
1335
|
+
# Returns information about a tg:// deep link.
|
1336
|
+
# Use "tg://need_update_for_some_feature" or "tg:some_unsupported_feature" for testing.
|
1337
|
+
# Returns a 404 error for unknown links.
|
1338
|
+
# Can be called before authorization.
|
1339
|
+
#
|
1340
|
+
# @param link [String] The link.
|
1341
|
+
# @return [TD::Types::DeepLinkInfo]
|
1342
|
+
def get_deep_link_info(link)
|
1343
|
+
broadcast('@type' => 'getDeepLinkInfo',
|
1344
|
+
'link' => link)
|
1345
|
+
end
|
1346
|
+
|
1347
|
+
# Returns favorite stickers.
|
1348
|
+
#
|
1349
|
+
# @return [TD::Types::Stickers]
|
1350
|
+
def get_favorite_stickers
|
1351
|
+
broadcast('@type' => 'getFavoriteStickers')
|
1352
|
+
end
|
1353
|
+
|
1354
|
+
# Returns information about a file; this is an offline request.
|
1355
|
+
#
|
1356
|
+
# @param file_id [Integer] Identifier of the file to get.
|
1357
|
+
# @return [TD::Types::File]
|
1358
|
+
def get_file(file_id)
|
1359
|
+
broadcast('@type' => 'getFile',
|
1360
|
+
'file_id' => file_id)
|
1361
|
+
end
|
1362
|
+
|
1363
|
+
# Returns the extension of a file, guessed by its MIME type.
|
1364
|
+
# Returns an empty string on failure.
|
1365
|
+
# This is an offline method.
|
1366
|
+
# Can be called before authorization.
|
1367
|
+
# Can be called synchronously.
|
1368
|
+
#
|
1369
|
+
# @param mime_type [String] The MIME type of the file.
|
1370
|
+
# @return [TD::Types::Text]
|
1371
|
+
def get_file_extension(mime_type)
|
1372
|
+
broadcast('@type' => 'getFileExtension',
|
1373
|
+
'mime_type' => mime_type)
|
1374
|
+
end
|
1375
|
+
|
1376
|
+
# Returns the MIME type of a file, guessed by its extension.
|
1377
|
+
# Returns an empty string on failure.
|
1378
|
+
# This is an offline method.
|
1379
|
+
# Can be called before authorization.
|
1380
|
+
# Can be called synchronously.
|
1381
|
+
#
|
1382
|
+
# @param file_name [String] The name of the file or path to the file.
|
1383
|
+
# @return [TD::Types::Text]
|
1384
|
+
def get_file_mime_type(file_name)
|
1385
|
+
broadcast('@type' => 'getFileMimeType',
|
1386
|
+
'file_name' => file_name)
|
1387
|
+
end
|
1388
|
+
|
1389
|
+
# Returns the high scores for a game and some part of the high score table in the range of the specified user; for
|
1390
|
+
# bots only.
|
1391
|
+
#
|
1392
|
+
# @param chat_id [Integer] The chat that contains the message with the game.
|
1393
|
+
# @param message_id [Integer] Identifier of the message.
|
1394
|
+
# @param user_id [Integer] User identifier.
|
1395
|
+
# @return [TD::Types::GameHighScores]
|
1396
|
+
def get_game_high_scores(chat_id, message_id, user_id)
|
1397
|
+
broadcast('@type' => 'getGameHighScores',
|
1398
|
+
'chat_id' => chat_id,
|
1399
|
+
'message_id' => message_id,
|
1400
|
+
'user_id' => user_id)
|
1401
|
+
end
|
1402
|
+
|
1403
|
+
# Returns a list of common chats with a given user.
|
1404
|
+
# Chats are sorted by their type and creation date.
|
1405
|
+
#
|
1406
|
+
# @param user_id [Integer] User identifier.
|
1407
|
+
# @param offset_chat_id [Integer] Chat identifier starting from which to return chats; use 0 for the first request.
|
1408
|
+
# @param limit [Integer] Maximum number of chats to be returned; up to 100.
|
1409
|
+
# @return [TD::Types::Chats]
|
1410
|
+
def get_groups_in_common(user_id, offset_chat_id = 0, limit = 100)
|
1411
|
+
broadcast('@type' => 'getGroupsInCommon',
|
1412
|
+
'user_id' => user_id,
|
1413
|
+
'offset_chat_id' => offset_chat_id,
|
1414
|
+
'limit' => limit)
|
1415
|
+
end
|
1416
|
+
|
1417
|
+
# Returns the total number of imported contacts.
|
1418
|
+
#
|
1419
|
+
# @return [TD::Types::Count]
|
1420
|
+
def get_imported_contact_count
|
1421
|
+
broadcast('@type' => 'getImportedContactCount')
|
1422
|
+
end
|
1423
|
+
|
1424
|
+
# Returns game high scores and some part of the high score table in the range of the specified user; for bots only.
|
1425
|
+
#
|
1426
|
+
# @param inline_message_id [String] Inline message identifier.
|
1427
|
+
# @param user_id [Integer] User identifier.
|
1428
|
+
# @return [TD::Types::GameHighScores]
|
1429
|
+
def get_inline_game_high_scores(inline_message_id, user_id)
|
1430
|
+
broadcast('@type' => 'getInlineGameHighScores',
|
1431
|
+
'inline_message_id' => inline_message_id,
|
1432
|
+
'user_id' => user_id)
|
1433
|
+
end
|
1434
|
+
|
1435
|
+
# Sends an inline query to a bot and returns its results.
|
1436
|
+
# Returns an error with code 502 if the bot fails to answer the query before the query timeout expires.
|
1437
|
+
#
|
1438
|
+
# @param bot_user_id [Integer] The identifier of the target bot.
|
1439
|
+
# @param chat_id [Integer] Identifier of the chat, where the query was sent.
|
1440
|
+
# @param user_location [TD::Types::Location, nil] Location of the user, only if needed.
|
1441
|
+
# @param query [String] Text of the query.
|
1442
|
+
# @param offset [String] Offset of the first entry to return.
|
1443
|
+
# @return [TD::Types::InlineQueryResults]
|
1444
|
+
def get_inline_query_results(bot_user_id, chat_id, query, offset = '0', user_location: nil)
|
1445
|
+
broadcast('@type' => 'getInlineQueryResults',
|
1446
|
+
'bot_user_id' => bot_user_id,
|
1447
|
+
'chat_id' => chat_id,
|
1448
|
+
'user_location' => user_location,
|
1449
|
+
'query' => query,
|
1450
|
+
'offset' => offset)
|
1451
|
+
end
|
1452
|
+
|
1453
|
+
# Returns a list of installed sticker sets.
|
1454
|
+
#
|
1455
|
+
# @param is_masks [Boolean] Pass true to return mask sticker sets; pass false to return ordinary sticker sets.
|
1456
|
+
# @return [TD::Types::StickerSets]
|
1457
|
+
def get_installed_sticker_sets(is_masks = false)
|
1458
|
+
broadcast('@type' => 'getInstalledStickerSets',
|
1459
|
+
'is_masks' => is_masks)
|
1460
|
+
end
|
1461
|
+
|
1462
|
+
# Returns the default text for invitation messages to be used as a placeholder when the current user invites friends
|
1463
|
+
# to Telegram.
|
1464
|
+
#
|
1465
|
+
# @return [TD::Types::Text]
|
1466
|
+
def get_invite_text
|
1467
|
+
broadcast('@type' => 'getInviteText')
|
1468
|
+
end
|
1469
|
+
|
1470
|
+
# Returns a string stored in the local database from the specified localization target and language pack by its key.
|
1471
|
+
# Returns a 404 error if the string is not found.
|
1472
|
+
# This is an offline method.
|
1473
|
+
# Can be called before authorization.
|
1474
|
+
# Can be called synchronously.
|
1475
|
+
#
|
1476
|
+
# @param language_pack_database_path [String] Path to the language pack database in which strings are stored.
|
1477
|
+
# @param localization_target [String] Localization target to which the language pack belongs.
|
1478
|
+
# @param language_pack_id [String] Language pack identifier.
|
1479
|
+
# @param key [String] Language pack key of the string to be returned.
|
1480
|
+
# @return [TD::Types::LanguagePackStringValue]
|
1481
|
+
def get_language_pack_string(language_pack_database_path, localization_target, language_pack_id, key)
|
1482
|
+
broadcast('@type' => 'getLanguagePackString',
|
1483
|
+
'language_pack_database_path' => language_pack_database_path,
|
1484
|
+
'localization_target' => localization_target,
|
1485
|
+
'language_pack_id' => language_pack_id,
|
1486
|
+
'key' => key)
|
1487
|
+
end
|
1488
|
+
|
1489
|
+
# Returns strings from a language pack in the current localization target by their keys.
|
1490
|
+
#
|
1491
|
+
# @param language_pack_id [String] Language pack identifier of the strings to be returned.
|
1492
|
+
# @param keys [Array<String>] Language pack keys of the strings to be returned; leave empty to request all available
|
1493
|
+
# strings.
|
1494
|
+
# @return [TD::Types::LanguagePackStrings]
|
1495
|
+
def get_language_pack_strings(language_pack_id, keys)
|
1496
|
+
broadcast('@type' => 'getLanguagePackStrings',
|
1497
|
+
'language_pack_id' => language_pack_id,
|
1498
|
+
'keys' => keys)
|
1499
|
+
end
|
1500
|
+
|
1501
|
+
# Returns information about the current localization target.
|
1502
|
+
# This is an offline request if only_local is true.
|
1503
|
+
#
|
1504
|
+
# @param only_local [Boolean] If true, returns only locally available information without sending network requests.
|
1505
|
+
# @return [TD::Types::LocalizationTargetInfo]
|
1506
|
+
def get_localization_target_info(only_local = false)
|
1507
|
+
broadcast('@type' => 'getLocalizationTargetInfo',
|
1508
|
+
'only_local' => only_local)
|
1509
|
+
end
|
1510
|
+
|
1511
|
+
# Returns information about a file with a map thumbnail in PNG format.
|
1512
|
+
# Only map thumbnail files with size less than 1MB can be downloaded.
|
1513
|
+
#
|
1514
|
+
# @param location [TD::Types::Location] Location of the map center.
|
1515
|
+
# @param zoom [Integer] Map zoom level; 13-20.
|
1516
|
+
# @param width [Integer] Map width in pixels before applying scale; 16-1024.
|
1517
|
+
# @param height [Integer] Map height in pixels before applying scale; 16-1024.
|
1518
|
+
# @param scale [Integer] Map scale; 1-3.
|
1519
|
+
# @param chat_id [Integer] Identifier of a chat, in which the thumbnail will be shown.
|
1520
|
+
# Use 0 if unknown.
|
1521
|
+
# @return [TD::Types::File]
|
1522
|
+
def get_map_thumbnail_file(location, zoom = 13, width = 1024, height = 1024, scale = 1, chat_id: 0)
|
1523
|
+
broadcast('@type' => 'getMapThumbnailFile',
|
1524
|
+
'location' => location,
|
1525
|
+
'zoom' => zoom,
|
1526
|
+
'width' => width,
|
1527
|
+
'height' => height,
|
1528
|
+
'scale' => scale,
|
1529
|
+
'chat_id' => chat_id)
|
1530
|
+
end
|
1531
|
+
|
1532
|
+
# Returns the current user.
|
1533
|
+
#
|
1534
|
+
# @return [TD::Types::User]
|
1535
|
+
def get_me
|
1536
|
+
broadcast('@type' => 'getMe')
|
1537
|
+
end
|
1538
|
+
|
1539
|
+
# Returns information about a message.
|
1540
|
+
#
|
1541
|
+
# @param chat_id [Integer] Identifier of the chat the message belongs to.
|
1542
|
+
# @param message_id [Integer] Identifier of the message to get.
|
1543
|
+
# @return [TD::Types::Message]
|
1544
|
+
def get_message(chat_id, message_id)
|
1545
|
+
broadcast('@type' => 'getMessage',
|
1546
|
+
'chat_id' => chat_id,
|
1547
|
+
'message_id' => message_id)
|
1548
|
+
end
|
1549
|
+
|
1550
|
+
# Returns information about messages.
|
1551
|
+
# If a message is not found, returns nil on the corresponding position of the result.
|
1552
|
+
#
|
1553
|
+
# @param chat_id [Integer] Identifier of the chat the messages belong to.
|
1554
|
+
# @param message_ids [Array<Integer>] Identifiers of the messages to get.
|
1555
|
+
# @return [TD::Types::Messages]
|
1556
|
+
def get_messages(chat_id, message_ids)
|
1557
|
+
broadcast('@type' => 'getMessages',
|
1558
|
+
'chat_id' => chat_id,
|
1559
|
+
'message_ids' => message_ids)
|
1560
|
+
end
|
1561
|
+
|
1562
|
+
# Returns network data usage statistics.
|
1563
|
+
# Can be called before authorization.
|
1564
|
+
#
|
1565
|
+
# @param only_current [Boolean] If true, returns only data for the current library launch.
|
1566
|
+
# @return [TD::Types::NetworkStatistics]
|
1567
|
+
def get_network_statistics(only_current = false)
|
1568
|
+
broadcast('@type' => 'getNetworkStatistics',
|
1569
|
+
'only_current' => only_current)
|
1570
|
+
end
|
1571
|
+
|
1572
|
+
# Returns the value of an option by its name.
|
1573
|
+
# Can be called before authorization.
|
1574
|
+
#
|
1575
|
+
# @param name [String] The name of the option.
|
1576
|
+
# @see https://core.telegram.org/tdlib/options List of available options
|
1577
|
+
# @return [TD::Types::OptionValue]
|
1578
|
+
def get_option(name)
|
1579
|
+
broadcast('@type' => 'getOption',
|
1580
|
+
'name' => name)
|
1581
|
+
end
|
1582
|
+
|
1583
|
+
# Returns a Telegram Passport authorization form for sharing data with a service.
|
1584
|
+
#
|
1585
|
+
# @param bot_user_id [Integer] User identifier of the service's bot.
|
1586
|
+
# @param scope [String] Telegram Passport element types requested by the service.
|
1587
|
+
# @param public_key [String] Service's public_key.
|
1588
|
+
# @param nonce [String] Authorization form nonce provided by the service.
|
1589
|
+
# @param password [String] Password of the current user.
|
1590
|
+
# @return [TD::Types::PassportAuthorizationForm]
|
1591
|
+
def get_passport_authorization_form(bot_user_id, scope, public_key, nonce, password)
|
1592
|
+
broadcast('@type' => 'getPassportAuthorizationForm',
|
1593
|
+
'bot_user_id' => bot_user_id,
|
1594
|
+
'scope' => scope,
|
1595
|
+
'public_key' => public_key,
|
1596
|
+
'nonce' => nonce,
|
1597
|
+
'password' => password)
|
1598
|
+
end
|
1599
|
+
|
1600
|
+
# Returns one of the available Telegram Passport elements.
|
1601
|
+
#
|
1602
|
+
# @param type [TD::Types::PassportElementType] Telegram Passport element type.
|
1603
|
+
# @param password [String] Password of the current user.
|
1604
|
+
# @return [TD::Types::PassportElement]
|
1605
|
+
def get_passport_element(type, password)
|
1606
|
+
broadcast('@type' => 'getPassportElement',
|
1607
|
+
'type' => type,
|
1608
|
+
'password' => password)
|
1609
|
+
end
|
1610
|
+
|
1611
|
+
# Returns the current state of 2-step verification.
|
1612
|
+
#
|
1613
|
+
# @return [TD::Types::PasswordState]
|
1614
|
+
def get_password_state
|
1615
|
+
broadcast('@type' => 'getPasswordState')
|
1616
|
+
end
|
1617
|
+
|
1618
|
+
# Returns an invoice payment form.
|
1619
|
+
# This method should be called when the user presses {TD::Types::InlineKeyboardButton::Buy}.
|
1620
|
+
#
|
1621
|
+
# @param chat_id [Integer] Chat identifier of the Invoice message.
|
1622
|
+
# @param message_id [Integer] Message identifier.
|
1623
|
+
# @return [TD::Types::PaymentForm]
|
1624
|
+
def get_payment_form(chat_id, message_id)
|
1625
|
+
broadcast('@type' => 'getPaymentForm',
|
1626
|
+
'chat_id' => chat_id,
|
1627
|
+
'message_id' => message_id)
|
1628
|
+
end
|
1629
|
+
|
1630
|
+
# Returns information about a successful payment.
|
1631
|
+
#
|
1632
|
+
# @param chat_id [Integer] Chat identifier of the PaymentSuccessful message.
|
1633
|
+
# @param message_id [Integer] Message identifier.
|
1634
|
+
# @return [TD::Types::PaymentReceipt]
|
1635
|
+
def get_payment_receipt(chat_id, message_id)
|
1636
|
+
broadcast('@type' => 'getPaymentReceipt',
|
1637
|
+
'chat_id' => chat_id,
|
1638
|
+
'message_id' => message_id)
|
1639
|
+
end
|
1640
|
+
|
1641
|
+
# Returns an IETF language tag of the language preferred in the country, which should be used to fill native fields
|
1642
|
+
# in Telegram Passport personal details.
|
1643
|
+
# Returns a 404 error if unknown.
|
1644
|
+
#
|
1645
|
+
# @param country_code [String] A two-letter ISO 3166-1 alpha-2 country code.
|
1646
|
+
# @return [TD::Types::Text]
|
1647
|
+
def get_preferred_country_language(country_code)
|
1648
|
+
broadcast('@type' => 'getPreferredCountryLanguage',
|
1649
|
+
'country_code' => country_code)
|
1650
|
+
end
|
1651
|
+
|
1652
|
+
# Returns list of proxies that are currently set up.
|
1653
|
+
# Can be called before authorization.
|
1654
|
+
#
|
1655
|
+
# @return [TD::Types::Proxies]
|
1656
|
+
def get_proxies
|
1657
|
+
broadcast('@type' => 'getProxies')
|
1658
|
+
end
|
1659
|
+
|
1660
|
+
# Returns an HTTPS link, which can be used to add a proxy.
|
1661
|
+
# Available only for SOCKS5 and MTProto proxies.
|
1662
|
+
# Can be called before authorization.
|
1663
|
+
#
|
1664
|
+
# @param proxy_id [Integer] Proxy identifier.
|
1665
|
+
# @return [TD::Types::Text]
|
1666
|
+
def get_proxy_link(proxy_id)
|
1667
|
+
broadcast('@type' => 'getProxyLink',
|
1668
|
+
'proxy_id' => proxy_id)
|
1669
|
+
end
|
1670
|
+
|
1671
|
+
# Returns a public HTTPS link to a message.
|
1672
|
+
# Available only for messages in public supergroups and channels.
|
1673
|
+
#
|
1674
|
+
# @param chat_id [Integer] Identifier of the chat to which the message belongs.
|
1675
|
+
# @param message_id [Integer] Identifier of the message.
|
1676
|
+
# @param for_album [Boolean] Pass true if a link for a whole media album should be returned.
|
1677
|
+
# @return [TD::Types::PublicMessageLink]
|
1678
|
+
def get_public_message_link(chat_id, message_id, for_album: false)
|
1679
|
+
broadcast('@type' => 'getPublicMessageLink',
|
1680
|
+
'chat_id' => chat_id,
|
1681
|
+
'message_id' => message_id,
|
1682
|
+
'for_album' => for_album)
|
1683
|
+
end
|
1684
|
+
|
1685
|
+
# Returns up to 20 recently used inline bots in the order of their last usage.
|
1686
|
+
#
|
1687
|
+
# @return [TD::Types::Users]
|
1688
|
+
def get_recent_inline_bots
|
1689
|
+
broadcast('@type' => 'getRecentInlineBots')
|
1690
|
+
end
|
1691
|
+
|
1692
|
+
# Returns a list of recently used stickers.
|
1693
|
+
#
|
1694
|
+
# @param is_attached [Boolean] Pass true to return stickers and masks that were recently attached to photos or video
|
1695
|
+
# files; pass false to return recently sent stickers.
|
1696
|
+
# @return [TD::Types::Stickers]
|
1697
|
+
def get_recent_stickers(is_attached = false)
|
1698
|
+
broadcast('@type' => 'getRecentStickers',
|
1699
|
+
'is_attached' => is_attached)
|
1700
|
+
end
|
1701
|
+
|
1702
|
+
# Returns t.me URLs recently visited by a newly registered user.
|
1703
|
+
#
|
1704
|
+
# @param referrer [String] Google Play referrer to identify the user.
|
1705
|
+
# @return [TD::Types::TMeUrls]
|
1706
|
+
def get_recently_visited_t_me_urls(referrer)
|
1707
|
+
broadcast('@type' => 'getRecentlyVisitedTMeUrls',
|
1708
|
+
'referrer' => referrer)
|
1709
|
+
end
|
1710
|
+
|
1711
|
+
# Returns a recovery email address that was previously set up.
|
1712
|
+
# This method can be used to verify a password provided by the user.
|
1713
|
+
#
|
1714
|
+
# @param password [String] The password for the current user.
|
1715
|
+
# @return [TD::Types::RecoveryEmailAddress]
|
1716
|
+
def get_recovery_email_address(password)
|
1717
|
+
broadcast('@type' => 'getRecoveryEmailAddress',
|
1718
|
+
'password' => password)
|
1719
|
+
end
|
1720
|
+
|
1721
|
+
# Returns information about a file by its remote ID; this is an offline request.
|
1722
|
+
# Can be used to register a URL as a file for further uploading, or sending as a message.
|
1723
|
+
#
|
1724
|
+
# @param remote_file_id [String] Remote identifier of the file to get.
|
1725
|
+
# @param file_type [TD::Types::FileType, nil] File type, if known.
|
1726
|
+
# @return [TD::Types::File]
|
1727
|
+
def get_remote_file(remote_file_id, file_type = nil)
|
1728
|
+
broadcast('@type' => 'getRemoteFile',
|
1729
|
+
'remote_file_id' => remote_file_id,
|
1730
|
+
'file_type' => file_type)
|
1731
|
+
end
|
1732
|
+
|
1733
|
+
# Returns information about a message that is replied by given message.
|
1734
|
+
#
|
1735
|
+
# @param chat_id [Integer] Identifier of the chat the message belongs to.
|
1736
|
+
# @param message_id [Integer] Identifier of the message reply to which get.
|
1737
|
+
# @return [TD::Types::Message]
|
1738
|
+
def get_replied_message(chat_id, message_id)
|
1739
|
+
broadcast('@type' => 'getRepliedMessage',
|
1740
|
+
'chat_id' => chat_id,
|
1741
|
+
'message_id' => message_id)
|
1742
|
+
end
|
1743
|
+
|
1744
|
+
# Returns saved animations.
|
1745
|
+
#
|
1746
|
+
# @return [TD::Types::Animations]
|
1747
|
+
def get_saved_animations
|
1748
|
+
broadcast('@type' => 'getSavedAnimations')
|
1749
|
+
end
|
1750
|
+
|
1751
|
+
# Returns saved order info, if any.
|
1752
|
+
#
|
1753
|
+
# @return [TD::Types::OrderInfo]
|
1754
|
+
def get_saved_order_info
|
1755
|
+
broadcast('@type' => 'getSavedOrderInfo')
|
1756
|
+
end
|
1757
|
+
|
1758
|
+
# Returns the notification settings for chats of a given type.
|
1759
|
+
#
|
1760
|
+
# @param scope [TD::Types::NotificationSettingsScope] Types of chats for which to return the notification settings
|
1761
|
+
# information.
|
1762
|
+
# @return [TD::Types::ScopeNotificationSettings]
|
1763
|
+
def get_scope_notification_settings(scope)
|
1764
|
+
broadcast('@type' => 'getScopeNotificationSettings',
|
1765
|
+
'scope' => scope)
|
1766
|
+
end
|
1767
|
+
|
1768
|
+
# Returns information about a secret chat by its identifier.
|
1769
|
+
# This is an offline request.
|
1770
|
+
#
|
1771
|
+
# @param secret_chat_id [Integer] Secret chat identifier.
|
1772
|
+
# @return [TD::Types::SecretChat]
|
1773
|
+
def get_secret_chat(secret_chat_id)
|
1774
|
+
broadcast('@type' => 'getSecretChat',
|
1775
|
+
'secret_chat_id' => secret_chat_id)
|
1776
|
+
end
|
1777
|
+
|
1778
|
+
# Returns emoji corresponding to a sticker.
|
1779
|
+
#
|
1780
|
+
# @param sticker [TD::Types::InputFile] Sticker file identifier.
|
1781
|
+
# @return [TD::Types::StickerEmojis]
|
1782
|
+
def get_sticker_emojis(sticker)
|
1783
|
+
broadcast('@type' => 'getStickerEmojis',
|
1784
|
+
'sticker' => sticker)
|
1785
|
+
end
|
1786
|
+
|
1787
|
+
# Returns information about a sticker set by its identifier.
|
1788
|
+
#
|
1789
|
+
# @param set_id [Integer] Identifier of the sticker set.
|
1790
|
+
# @return [TD::Types::StickerSet]
|
1791
|
+
def get_sticker_set(set_id)
|
1792
|
+
broadcast('@type' => 'getStickerSet',
|
1793
|
+
'set_id' => set_id)
|
1794
|
+
end
|
1795
|
+
|
1796
|
+
# Returns stickers from the installed sticker sets that correspond to a given emoji.
|
1797
|
+
# If the emoji is not empty, favorite and recently used stickers may also be returned.
|
1798
|
+
#
|
1799
|
+
# @param emoji [String] String representation of emoji.
|
1800
|
+
# If empty, returns all known installed stickers.
|
1801
|
+
# @param limit [Integer] Maximum number of stickers to be returned.
|
1802
|
+
# @return [TD::Types::Stickers]
|
1803
|
+
def get_stickers(emoji, limit = 100)
|
1804
|
+
broadcast('@type' => 'getStickers',
|
1805
|
+
'emoji' => emoji,
|
1806
|
+
'limit' => limit)
|
1807
|
+
end
|
1808
|
+
|
1809
|
+
# Returns storage usage statistics.
|
1810
|
+
#
|
1811
|
+
# @param chat_limit [Integer] Maximum number of chats with the largest storage usage for which separate statistics
|
1812
|
+
# should be returned.
|
1813
|
+
# All other chats will be grouped in entries with chat_id == 0.
|
1814
|
+
# If the chat info database is not used, the chat_limit is ignored and is always set to 0.
|
1815
|
+
# @return [TD::Types::StorageStatistics]
|
1816
|
+
def get_storage_statistics(chat_limit)
|
1817
|
+
broadcast('@type' => 'getStorageStatistics',
|
1818
|
+
'chat_limit' => chat_limit)
|
1819
|
+
end
|
1820
|
+
|
1821
|
+
# Quickly returns approximate storage usage statistics.
|
1822
|
+
#
|
1823
|
+
# @return [TD::Types::StorageStatisticsFast]
|
1824
|
+
def get_storage_statistics_fast
|
1825
|
+
broadcast('@type' => 'getStorageStatisticsFast')
|
1826
|
+
end
|
1827
|
+
|
1828
|
+
# Returns information about a supergroup or channel by its identifier.
|
1829
|
+
# This is an offline request if the current user is not a bot.
|
1830
|
+
#
|
1831
|
+
# @param supergroup_id [Integer] Supergroup or channel identifier.
|
1832
|
+
# @return [TD::Types::Supergroup]
|
1833
|
+
def get_supergroup(supergroup_id)
|
1834
|
+
broadcast('@type' => 'getSupergroup',
|
1835
|
+
'supergroup_id' => supergroup_id)
|
1836
|
+
end
|
1837
|
+
|
1838
|
+
# Returns full information about a supergroup or channel by its identifier, cached for up to 1 minute.
|
1839
|
+
#
|
1840
|
+
# @param supergroup_id [Integer] Supergroup or channel identifier.
|
1841
|
+
# @return [TD::Types::SupergroupFullInfo]
|
1842
|
+
def get_supergroup_full_info(supergroup_id)
|
1843
|
+
broadcast('@type' => 'getSupergroupFullInfo',
|
1844
|
+
'supergroup_id' => supergroup_id)
|
1845
|
+
end
|
1846
|
+
|
1847
|
+
# Returns information about members or banned users in a supergroup or channel.
|
1848
|
+
# Can be used only if SupergroupFullInfo.can_get_members == true; additionally, administrator privileges may be
|
1849
|
+
# required for some filters.
|
1850
|
+
#
|
1851
|
+
# @param supergroup_id [Integer] Identifier of the supergroup or channel.
|
1852
|
+
# @param filter [TD::Types::SupergroupMembersFilter] The type of users to return.
|
1853
|
+
# By default, {TD::Types::SupergroupMembersFilter::Recent}.
|
1854
|
+
# @param offset [Integer] Number of users to skip.
|
1855
|
+
# @param limit [Integer] The maximum number of users be returned; up to 200.
|
1856
|
+
# @return [TD::Types::ChatMembers]
|
1857
|
+
def get_supergroup_members(supergroup_id, filter, offset, limit)
|
1858
|
+
broadcast('@type' => 'getSupergroupMembers',
|
1859
|
+
'supergroup_id' => supergroup_id,
|
1860
|
+
'filter' => filter,
|
1861
|
+
'offset' => offset,
|
1862
|
+
'limit' => limit)
|
1863
|
+
end
|
1864
|
+
|
1865
|
+
# Returns a user that can be contacted to get support.
|
1866
|
+
#
|
1867
|
+
# @return [TD::Types::User]
|
1868
|
+
def get_support_user
|
1869
|
+
broadcast('@type' => 'getSupportUser')
|
1870
|
+
end
|
1871
|
+
|
1872
|
+
# Returns information about the current temporary password.
|
1873
|
+
#
|
1874
|
+
# @return [TD::Types::TemporaryPasswordState]
|
1875
|
+
def get_temporary_password_state
|
1876
|
+
broadcast('@type' => 'getTemporaryPasswordState')
|
1877
|
+
end
|
1878
|
+
|
1879
|
+
# Returns all entities (mentions, hashtags, cashtags, bot commands, URLs, and email addresses) contained in the text.
|
1880
|
+
# This is an offline method.
|
1881
|
+
# Can be called before authorization.
|
1882
|
+
# Can be called synchronously.
|
1883
|
+
#
|
1884
|
+
# @param text [String] The text in which to look for entites.
|
1885
|
+
# @return [TD::Types::TextEntities]
|
1886
|
+
def get_text_entities(text)
|
1887
|
+
broadcast('@type' => 'getTextEntities',
|
1888
|
+
'text' => text)
|
1889
|
+
end
|
1890
|
+
|
1891
|
+
# Returns a list of frequently used chats.
|
1892
|
+
# Supported only if the chat info database is enabled.
|
1893
|
+
#
|
1894
|
+
# @param category [TD::Types::TopChatCategory] Category of chats to be returned.
|
1895
|
+
# @param limit [Integer] Maximum number of chats to be returned; up to 30.
|
1896
|
+
# @return [TD::Types::Chats]
|
1897
|
+
def get_top_chats(category, limit = 30)
|
1898
|
+
broadcast('@type' => 'getTopChats',
|
1899
|
+
'category' => category,
|
1900
|
+
'limit' => limit)
|
1901
|
+
end
|
1902
|
+
|
1903
|
+
# Returns a list of trending sticker sets.
|
1904
|
+
#
|
1905
|
+
# @return [TD::Types::StickerSets]
|
1906
|
+
def get_trending_sticker_sets
|
1907
|
+
broadcast('@type' => 'getTrendingStickerSets')
|
1908
|
+
end
|
1909
|
+
|
1910
|
+
# Returns information about a user by their identifier.
|
1911
|
+
# This is an offline request if the current user is not a bot.
|
1912
|
+
#
|
1913
|
+
# @param user_id [Integer] User identifier.
|
1914
|
+
# @return [TD::Types::User]
|
1915
|
+
def get_user(user_id)
|
1916
|
+
broadcast('@type' => 'getUser',
|
1917
|
+
'user_id' => user_id)
|
1918
|
+
end
|
1919
|
+
|
1920
|
+
# Returns full information about a user by their identifier.
|
1921
|
+
#
|
1922
|
+
# @param user_id [Integer] User identifier.
|
1923
|
+
# @return [TD::Types::UserFullInfo]
|
1924
|
+
def get_user_full_info(user_id)
|
1925
|
+
broadcast('@type' => 'getUserFullInfo',
|
1926
|
+
'user_id' => user_id)
|
1927
|
+
end
|
1928
|
+
|
1929
|
+
# Returns the current privacy settings.
|
1930
|
+
#
|
1931
|
+
# @param setting [TD::Types::UserPrivacySetting] The privacy setting.
|
1932
|
+
# @return [TD::Types::UserPrivacySettingRules]
|
1933
|
+
def get_user_privacy_setting_rules(setting)
|
1934
|
+
broadcast('@type' => 'getUserPrivacySettingRules',
|
1935
|
+
'setting' => setting)
|
1936
|
+
end
|
1937
|
+
|
1938
|
+
# Returns the profile photos of a user.
|
1939
|
+
# The result of this query may be outdated: some photos might have been deleted already.
|
1940
|
+
#
|
1941
|
+
# @param user_id [Integer] User identifier.
|
1942
|
+
# @param offset [Integer] The number of photos to skip; must be non-negative.
|
1943
|
+
# @param limit [Integer] Maximum number of photos to be returned; up to 100.
|
1944
|
+
# @return [TD::Types::UserProfilePhotos]
|
1945
|
+
def get_user_profile_photos(user_id, offset = 0, limit = 100)
|
1946
|
+
broadcast('@type' => 'getUserProfilePhotos',
|
1947
|
+
'user_id' => user_id,
|
1948
|
+
'offset' => offset,
|
1949
|
+
'limit' => limit)
|
1950
|
+
end
|
1951
|
+
|
1952
|
+
# Returns background wallpapers.
|
1953
|
+
#
|
1954
|
+
# @return [TD::Types::Wallpapers]
|
1955
|
+
def get_wallpapers
|
1956
|
+
broadcast('@type' => 'getWallpapers')
|
1957
|
+
end
|
1958
|
+
|
1959
|
+
# Returns an instant view version of a web page if available.
|
1960
|
+
# Returns a 404 error if the web page has no instant view page.
|
1961
|
+
#
|
1962
|
+
# @param url [String] The web page URL.
|
1963
|
+
# @param force_full [Boolean] If true, the full instant view for the web page will be returned.
|
1964
|
+
# @return [TD::Types::WebPageInstantView]
|
1965
|
+
def get_web_page_instant_view(url, force_full = false)
|
1966
|
+
broadcast('@type' => 'getWebPageInstantView',
|
1967
|
+
'url' => url,
|
1968
|
+
'force_full' => force_full)
|
1969
|
+
end
|
1970
|
+
|
1971
|
+
# Returns a web page preview by the text of the message.
|
1972
|
+
# Do not call this function too often.
|
1973
|
+
# Returns a 404 error if the web page has no preview.
|
1974
|
+
#
|
1975
|
+
# @param text [TD::Types::FormattedText] Message text with formatting.
|
1976
|
+
# @return [TD::Types::WebPage]
|
1977
|
+
def get_web_page_preview(text)
|
1978
|
+
broadcast('@type' => 'getWebPagePreview',
|
1979
|
+
'text' => text)
|
1980
|
+
end
|
1981
|
+
|
1982
|
+
# Adds new contacts or edits existing contacts; contacts' user identifiers are ignored.
|
1983
|
+
#
|
1984
|
+
# @param contacts [Array<TD::Types::Contact>] The list of contacts to import or edit, contact's vCard are ignored and
|
1985
|
+
# are not imported.
|
1986
|
+
# @return [TD::Types::ImportedContacts]
|
1987
|
+
def import_contacts(contacts)
|
1988
|
+
broadcast('@type' => 'importContacts',
|
1989
|
+
'contacts' => contacts)
|
1990
|
+
end
|
1991
|
+
|
1992
|
+
# Adds current user as a new member to a chat.
|
1993
|
+
# Private and secret chats can't be joined using this method.
|
1994
|
+
#
|
1995
|
+
# @param chat_id [Integer] Chat identifier.
|
1996
|
+
# @return [TD::Types::Ok]
|
1997
|
+
def join_chat(chat_id)
|
1998
|
+
broadcast('@type' => 'joinChat',
|
1999
|
+
'chat_id' => chat_id)
|
2000
|
+
end
|
2001
|
+
|
2002
|
+
# Uses an invite link to add the current user to the chat if possible.
|
2003
|
+
# The new member will not be added until the chat state has been synchronized with the server.
|
2004
|
+
#
|
2005
|
+
# @param invite_link [String] Invite link to import; should begin with "https://t.me/joinchat/",
|
2006
|
+
# "https://telegram.me/joinchat/", or "https://telegram.dog/joinchat/".
|
2007
|
+
# @return [TD::Types::Chat]
|
2008
|
+
def join_chat_by_invite_link(invite_link)
|
2009
|
+
broadcast('@type' => 'joinChatByInviteLink',
|
2010
|
+
'invite_link' => invite_link)
|
2011
|
+
end
|
2012
|
+
|
2013
|
+
# Removes current user from chat members.
|
2014
|
+
# Private and secret chats can't be left using this method.
|
2015
|
+
#
|
2016
|
+
# @param chat_id [Integer] Chat identifier.
|
2017
|
+
# @return [TD::Types::Ok]
|
2018
|
+
def leave_chat(chat_id)
|
2019
|
+
broadcast('@type' => 'leaveChat',
|
2020
|
+
'chat_id' => chat_id)
|
2021
|
+
end
|
2022
|
+
|
2023
|
+
# Closes the TDLib instance after a proper logout.
|
2024
|
+
# Requires an available network connection.
|
2025
|
+
# All local data will be destroyed.
|
2026
|
+
# After the logout completes, {TD::Types::Update::AuthorizationState} with {TD::Types::AuthorizationState::Closed}
|
2027
|
+
# will be sent.
|
2028
|
+
#
|
2029
|
+
# @return [TD::Types::Ok]
|
2030
|
+
def log_out
|
2031
|
+
broadcast('@type' => 'logOut')
|
2032
|
+
end
|
2033
|
+
|
2034
|
+
# This method should be called if the chat is opened by the user.
|
2035
|
+
# Many useful activities depend on the chat being opened or closed (e.g., in supergroups and channels all updates are
|
2036
|
+
# received only for opened chats).
|
2037
|
+
#
|
2038
|
+
# @param chat_id [Integer] Chat identifier.
|
2039
|
+
# @return [TD::Types::Ok]
|
2040
|
+
def open_chat(chat_id)
|
2041
|
+
broadcast('@type' => 'openChat',
|
2042
|
+
'chat_id' => chat_id)
|
2043
|
+
end
|
2044
|
+
|
2045
|
+
# This method should be called if the message content has been opened (e.g., the user has opened a photo, video,
|
2046
|
+
# document, location or venue, or has listened to an audio file or voice note message).
|
2047
|
+
# An {TD::Types::Update::MessageContentOpened} will be generated if something has changed.
|
2048
|
+
#
|
2049
|
+
# @param chat_id [Integer] Chat identifier of the message.
|
2050
|
+
# @param message_id [Integer] Identifier of the message with the opened content.
|
2051
|
+
# @return [TD::Types::Ok]
|
2052
|
+
def open_message_content(chat_id, message_id)
|
2053
|
+
broadcast('@type' => 'openMessageContent',
|
2054
|
+
'chat_id' => chat_id,
|
2055
|
+
'message_id' => message_id)
|
2056
|
+
end
|
2057
|
+
|
2058
|
+
# Optimizes storage usage, i.e. deletes some files and returns new storage usage statistics.
|
2059
|
+
# Secret thumbnails can't be deleted.
|
2060
|
+
#
|
2061
|
+
# @param size [Integer] Limit on the total size of files after deletion.
|
2062
|
+
# Pass -1 to use the default limit.
|
2063
|
+
# @param ttl [Integer] Limit on the time that has passed since the last time a file was accessed (or creation time
|
2064
|
+
# for some filesystems).
|
2065
|
+
# Pass -1 to use the default limit.
|
2066
|
+
# @param count [Integer] Limit on the total count of files after deletion.
|
2067
|
+
# Pass -1 to use the default limit.
|
2068
|
+
# @param immunity_delay [Integer] The amount of time after the creation of a file during which it can't be deleted,
|
2069
|
+
# in seconds.
|
2070
|
+
# Pass -1 to use the default value.
|
2071
|
+
# @param file_types [Array<TD::Types::FileType>, nil] If not empty, only files with the given type(s) are considered.
|
2072
|
+
# By default, all types except thumbnails, profile photos, stickers and wallpapers are deleted.
|
2073
|
+
# @param chat_ids [Array<Integer>, nil] If not empty, only files from the given chats are considered.
|
2074
|
+
# Use 0 as chat identifier to delete files not belonging to any chat (e.g., profile photos).
|
2075
|
+
# @param exclude_chat_ids [Array<Integer>, nil] If not empty, files from the given chats are excluded.
|
2076
|
+
# Use 0 as chat identifier to exclude all files not belonging to any chat (e.g., profile photos).
|
2077
|
+
# @param chat_limit [Integer, nil] Same as in {#get_storage_statistics}.
|
2078
|
+
# Affects only returned statistics.
|
2079
|
+
# @return [TD::Types::StorageStatistics]
|
2080
|
+
def optimize_storage(size: -1, ttl: -1, count: -1, immunity_delay: -1,
|
2081
|
+
file_types: nil, chat_ids: nil, exclude_chat_ids: nil, chat_limit: nil)
|
2082
|
+
broadcast('@type' => 'optimizeStorage',
|
2083
|
+
'size' => size,
|
2084
|
+
'ttl' => ttl,
|
2085
|
+
'count' => count,
|
2086
|
+
'immunity_delay' => immunity_delay,
|
2087
|
+
'file_types' => file_types,
|
2088
|
+
'chat_ids' => chat_ids,
|
2089
|
+
'exclude_chat_ids' => exclude_chat_ids,
|
2090
|
+
'chat_limit' => chat_limit)
|
2091
|
+
end
|
2092
|
+
|
2093
|
+
# Parses Bold, Italic, Code, Pre, PreCode and TextUrl entities contained in the text.
|
2094
|
+
# This is an offline method.
|
2095
|
+
# Can be called before authorization.
|
2096
|
+
# Can be called synchronously.
|
2097
|
+
#
|
2098
|
+
# @param text [String] The text which should be parsed.
|
2099
|
+
# @param parse_mode [TD::Types::TextParseMode] Text parse mode.
|
2100
|
+
# @return [TD::Types::FormattedText]
|
2101
|
+
def parse_text_entities(text, parse_mode)
|
2102
|
+
broadcast('@type' => 'parseTextEntities',
|
2103
|
+
'text' => text,
|
2104
|
+
'parse_mode' => parse_mode)
|
2105
|
+
end
|
2106
|
+
|
2107
|
+
# Pins a message in a supergroup or channel; requires appropriate administrator rights in the supergroup or channel.
|
2108
|
+
#
|
2109
|
+
# @param supergroup_id [Integer] Identifier of the supergroup or channel.
|
2110
|
+
# @param message_id [Integer] Identifier of the new pinned message.
|
2111
|
+
# @param disable_notification [Boolean] True, if there should be no notification about the pinned message.
|
2112
|
+
# @return [TD::Types::Ok]
|
2113
|
+
def pin_supergroup_message(supergroup_id, message_id, disable_notification: false)
|
2114
|
+
broadcast('@type' => 'pinSupergroupMessage',
|
2115
|
+
'supergroup_id' => supergroup_id,
|
2116
|
+
'message_id' => message_id,
|
2117
|
+
'disable_notification' => disable_notification)
|
2118
|
+
end
|
2119
|
+
|
2120
|
+
# Computes time needed to receive a response from a Telegram server through a proxy.
|
2121
|
+
# Can be called before authorization.
|
2122
|
+
#
|
2123
|
+
# @param proxy_id [Integer] Proxy identifier.
|
2124
|
+
# Use 0 to ping a Telegram server without a proxy.
|
2125
|
+
# @return [TD::Types::Seconds]
|
2126
|
+
def ping_proxy(proxy_id)
|
2127
|
+
broadcast('@type' => 'pingProxy',
|
2128
|
+
'proxy_id' => proxy_id)
|
2129
|
+
end
|
2130
|
+
|
2131
|
+
# Handles a DC_UPDATE push service notification.
|
2132
|
+
# Can be called before authorization.
|
2133
|
+
#
|
2134
|
+
# @param dc [String] Value of the "dc" parameter of the notification.
|
2135
|
+
# @param addr [String] Value of the "addr" parameter of the notification.
|
2136
|
+
# @return [TD::Types::Ok]
|
2137
|
+
def process_dc_update(dc, addr)
|
2138
|
+
broadcast('@type' => 'processDcUpdate',
|
2139
|
+
'dc' => dc,
|
2140
|
+
'addr' => addr)
|
2141
|
+
end
|
2142
|
+
|
2143
|
+
# Marks all mentions in a chat as read.
|
2144
|
+
#
|
2145
|
+
# @param chat_id [Integer] Chat identifier.
|
2146
|
+
# @return [TD::Types::Ok]
|
2147
|
+
def read_all_chat_mentions(chat_id)
|
2148
|
+
broadcast('@type' => 'readAllChatMentions',
|
2149
|
+
'chat_id' => chat_id)
|
2150
|
+
end
|
2151
|
+
|
2152
|
+
# Recovers the password with a password recovery code sent to an email address that was previously set up.
|
2153
|
+
# Works only when the current authorization state is {TD::Types::AuthorizationState::WaitPassword}.
|
2154
|
+
#
|
2155
|
+
# @param recovery_code [String] Recovery code to check.
|
2156
|
+
# @return [TD::Types::Ok]
|
2157
|
+
def recover_authentication_password(recovery_code)
|
2158
|
+
broadcast('@type' => 'recoverAuthenticationPassword',
|
2159
|
+
'recovery_code' => recovery_code)
|
2160
|
+
end
|
2161
|
+
|
2162
|
+
# Recovers the password using a recovery code sent to an email address that was previously set up.
|
2163
|
+
#
|
2164
|
+
# @param recovery_code [String] Recovery code to check.
|
2165
|
+
# @return [TD::Types::PasswordState]
|
2166
|
+
def recover_password(recovery_code)
|
2167
|
+
broadcast('@type' => 'recoverPassword',
|
2168
|
+
'recovery_code' => recovery_code)
|
2169
|
+
end
|
2170
|
+
|
2171
|
+
# Registers the currently used device for receiving push notifications.
|
2172
|
+
#
|
2173
|
+
# @param device_token [TD::Types::DeviceToken] Device token.
|
2174
|
+
# @param other_user_ids [Array<Integer>] List of at most 100 user identifiers of other users currently using the
|
2175
|
+
# client.
|
2176
|
+
# @return [TD::Types::Ok]
|
2177
|
+
def register_device(device_token, other_user_ids = [])
|
2178
|
+
broadcast('@type' => 'registerDevice',
|
2179
|
+
'device_token' => device_token,
|
2180
|
+
'other_user_ids' => other_user_ids)
|
2181
|
+
end
|
2182
|
+
|
2183
|
+
# Removes users from the contacts list.
|
2184
|
+
#
|
2185
|
+
# @param user_ids [Array<Integer>] Identifiers of users to be deleted.
|
2186
|
+
# @return [TD::Types::Ok]
|
2187
|
+
def remove_contacts(user_ids)
|
2188
|
+
broadcast('@type' => 'removeContacts',
|
2189
|
+
'user_ids' => user_ids)
|
2190
|
+
end
|
2191
|
+
|
2192
|
+
# Removes a sticker from the list of favorite stickers.
|
2193
|
+
#
|
2194
|
+
# @param sticker [TD::Types::InputFile] Sticker file to delete from the list.
|
2195
|
+
# @return [TD::Types::Ok]
|
2196
|
+
def remove_favorite_sticker(sticker)
|
2197
|
+
broadcast('@type' => 'removeFavoriteSticker',
|
2198
|
+
'sticker' => sticker)
|
2199
|
+
end
|
2200
|
+
|
2201
|
+
# Removes a proxy server.
|
2202
|
+
# Can be called before authorization.
|
2203
|
+
#
|
2204
|
+
# @param proxy_id [Integer] Proxy identifier.
|
2205
|
+
# @return [TD::Types::Ok]
|
2206
|
+
def remove_proxy(proxy_id)
|
2207
|
+
broadcast('@type' => 'removeProxy',
|
2208
|
+
'proxy_id' => proxy_id)
|
2209
|
+
end
|
2210
|
+
|
2211
|
+
# Removes a hashtag from the list of recently used hashtags.
|
2212
|
+
#
|
2213
|
+
# @param hashtag [String] Hashtag to delete.
|
2214
|
+
# @return [TD::Types::Ok]
|
2215
|
+
def remove_recent_hashtag(hashtag)
|
2216
|
+
broadcast('@type' => 'removeRecentHashtag',
|
2217
|
+
'hashtag' => hashtag)
|
2218
|
+
end
|
2219
|
+
|
2220
|
+
# Removes a sticker from the list of recently used stickers.
|
2221
|
+
#
|
2222
|
+
# @param is_attached [Boolean] Pass true to remove the sticker from the list of stickers recently attached to photo
|
2223
|
+
# or video files; pass false to remove the sticker from the list of recently sent stickers.
|
2224
|
+
# @param sticker [TD::Types::InputFile] Sticker file to delete.
|
2225
|
+
# @return [TD::Types::Ok]
|
2226
|
+
def remove_recent_sticker(sticker, is_attached: false)
|
2227
|
+
broadcast('@type' => 'removeRecentSticker',
|
2228
|
+
'is_attached' => is_attached,
|
2229
|
+
'sticker' => sticker)
|
2230
|
+
end
|
2231
|
+
|
2232
|
+
# Removes a chat from the list of recently found chats.
|
2233
|
+
#
|
2234
|
+
# @param chat_id [Integer] Identifier of the chat to be removed.
|
2235
|
+
# @return [TD::Types::Ok]
|
2236
|
+
def remove_recently_found_chat(chat_id)
|
2237
|
+
broadcast('@type' => 'removeRecentlyFoundChat',
|
2238
|
+
'chat_id' => chat_id)
|
2239
|
+
end
|
2240
|
+
|
2241
|
+
# Removes an animation from the list of saved animations.
|
2242
|
+
#
|
2243
|
+
# @param animation [TD::Types::InputFile] Animation file to be removed.
|
2244
|
+
# @return [TD::Types::Ok]
|
2245
|
+
def remove_saved_animation(animation)
|
2246
|
+
broadcast('@type' => 'removeSavedAnimation',
|
2247
|
+
'animation' => animation)
|
2248
|
+
end
|
2249
|
+
|
2250
|
+
# Removes a sticker from the set to which it belongs; for bots only.
|
2251
|
+
# The sticker set must have been created by the bot.
|
2252
|
+
#
|
2253
|
+
# @param sticker [TD::Types::InputFile] Sticker.
|
2254
|
+
# @return [TD::Types::Ok]
|
2255
|
+
def remove_sticker_from_set(sticker)
|
2256
|
+
broadcast('@type' => 'removeStickerFromSet',
|
2257
|
+
'sticker' => sticker)
|
2258
|
+
end
|
2259
|
+
|
2260
|
+
# Removes a chat from the list of frequently used chats.
|
2261
|
+
# Supported only if the chat info database is enabled.
|
2262
|
+
#
|
2263
|
+
# @param category [TD::Types::TopChatCategory] Category of frequently used chats.
|
2264
|
+
# @param chat_id [Integer] Chat identifier.
|
2265
|
+
# @return [TD::Types::Ok]
|
2266
|
+
def remove_top_chat(category, chat_id)
|
2267
|
+
broadcast('@type' => 'removeTopChat',
|
2268
|
+
'category' => category,
|
2269
|
+
'chat_id' => chat_id)
|
2270
|
+
end
|
2271
|
+
|
2272
|
+
# Changes the order of installed sticker sets.
|
2273
|
+
#
|
2274
|
+
# @param is_masks [Boolean] Pass true to change the order of mask sticker sets; pass false to change the order of
|
2275
|
+
# ordinary sticker sets.
|
2276
|
+
# @param sticker_set_ids [Array<Integer>] Identifiers of installed sticker sets in the new correct order.
|
2277
|
+
# @return [TD::Types::Ok]
|
2278
|
+
def reorder_installed_sticker_sets(sticker_set_ids, is_masks: false)
|
2279
|
+
broadcast('@type' => 'reorderInstalledStickerSets',
|
2280
|
+
'is_masks' => is_masks,
|
2281
|
+
'sticker_set_ids' => sticker_set_ids)
|
2282
|
+
end
|
2283
|
+
|
2284
|
+
# Reports a chat to the Telegram moderators.
|
2285
|
+
# Supported only for supergroups, channels, or private chats with bots, since other chats can't be checked by
|
2286
|
+
# moderators.
|
2287
|
+
#
|
2288
|
+
# @param chat_id [Integer] Chat identifier.
|
2289
|
+
# @param reason [TD::Types::ChatReportReason] The reason for reporting the chat.
|
2290
|
+
# @param message_ids [Array<Integer>] Identifiers of reported messages, if any.
|
2291
|
+
# @return [TD::Types::Ok]
|
2292
|
+
def report_chat(chat_id, reason, message_ids = [])
|
2293
|
+
broadcast('@type' => 'reportChat',
|
2294
|
+
'chat_id' => chat_id,
|
2295
|
+
'reason' => reason,
|
2296
|
+
'message_ids' => message_ids)
|
2297
|
+
end
|
2298
|
+
|
2299
|
+
# Reports some messages from a user in a supergroup as spam; requires administrator rights in the supergroup.
|
2300
|
+
#
|
2301
|
+
# @param supergroup_id [Integer] Supergroup identifier.
|
2302
|
+
# @param user_id [Integer] User identifier.
|
2303
|
+
# @param message_ids [Array<Integer>] Identifiers of messages sent in the supergroup by the user.
|
2304
|
+
# This list must be non-empty.
|
2305
|
+
# @return [TD::Types::Ok]
|
2306
|
+
def report_supergroup_spam(supergroup_id, user_id, message_ids = [])
|
2307
|
+
broadcast('@type' => 'reportSupergroupSpam',
|
2308
|
+
'supergroup_id' => supergroup_id,
|
2309
|
+
'user_id' => user_id,
|
2310
|
+
'message_ids' => message_ids)
|
2311
|
+
end
|
2312
|
+
|
2313
|
+
# Requests to send a password recovery code to an email address that was previously set up.
|
2314
|
+
# Works only when the current authorization state is {TD::Types::AuthorizationState::WaitPassword}.
|
2315
|
+
#
|
2316
|
+
# @return [TD::Types::Ok]
|
2317
|
+
def request_authentication_password_recovery
|
2318
|
+
broadcast('@type' => 'requestAuthenticationPasswordRecovery')
|
2319
|
+
end
|
2320
|
+
|
2321
|
+
# Requests to send a password recovery code to an email address that was previously set up.
|
2322
|
+
#
|
2323
|
+
# @return [TD::Types::EmailAddressAuthenticationCodeInfo]
|
2324
|
+
def request_password_recovery
|
2325
|
+
broadcast('@type' => 'requestPasswordRecovery')
|
2326
|
+
end
|
2327
|
+
|
2328
|
+
# Re-sends an authentication code to the user.
|
2329
|
+
# Works only when the current authorization state is {TD::Types::AuthorizationState::WaitCode} and the
|
2330
|
+
# {TD::Types::AuthenticationCodeInfo#next_type} of the result is not nil.
|
2331
|
+
#
|
2332
|
+
# @return [TD::Types::Ok]
|
2333
|
+
def resend_authentication_code
|
2334
|
+
broadcast('@type' => 'resendAuthenticationCode')
|
2335
|
+
end
|
2336
|
+
|
2337
|
+
# Re-sends the authentication code sent to confirm a new phone number for the user.
|
2338
|
+
# Works only if the previously received {TD::Types::AuthenticationCodeInfo#next_type} was not nil.
|
2339
|
+
#
|
2340
|
+
# @return [TD::Types::AuthenticationCodeInfo]
|
2341
|
+
def resend_change_phone_number_code
|
2342
|
+
broadcast('@type' => 'resendChangePhoneNumberCode')
|
2343
|
+
end
|
2344
|
+
|
2345
|
+
# Re-sends the code to verify an email address to be added to a user's Telegram Passport.
|
2346
|
+
#
|
2347
|
+
# @return [TD::Types::EmailAddressAuthenticationCodeInfo]
|
2348
|
+
def resend_email_address_verification_code
|
2349
|
+
broadcast('@type' => 'resendEmailAddressVerificationCode')
|
2350
|
+
end
|
2351
|
+
|
2352
|
+
# Resends phone number confirmation code.
|
2353
|
+
#
|
2354
|
+
# @return [TD::Types::AuthenticationCodeInfo]
|
2355
|
+
def resend_phone_number_confirmation_code
|
2356
|
+
broadcast('@type' => 'resendPhoneNumberConfirmationCode')
|
2357
|
+
end
|
2358
|
+
|
2359
|
+
# Re-sends the code to verify a phone number to be added to a user's Telegram Passport.
|
2360
|
+
#
|
2361
|
+
# @return [TD::Types::AuthenticationCodeInfo]
|
2362
|
+
def resend_phone_number_verification_code
|
2363
|
+
broadcast('@type' => 'resendPhoneNumberVerificationCode')
|
2364
|
+
end
|
2365
|
+
|
2366
|
+
# Resets all notification settings to their default values.
|
2367
|
+
# By default, all chats are unmuted, the sound is set to "default" and message previews are shown.
|
2368
|
+
#
|
2369
|
+
# @return [TD::Types::Ok]
|
2370
|
+
def reset_all_notification_settings
|
2371
|
+
broadcast('@type' => 'resetAllNotificationSettings')
|
2372
|
+
end
|
2373
|
+
|
2374
|
+
# Resets all network data usage statistics to zero.
|
2375
|
+
# Can be called before authorization.
|
2376
|
+
#
|
2377
|
+
# @return [TD::Types::Ok]
|
2378
|
+
def reset_network_statistics
|
2379
|
+
broadcast('@type' => 'resetNetworkStatistics')
|
2380
|
+
end
|
2381
|
+
|
2382
|
+
# Searches for call messages.
|
2383
|
+
# Returns the results in reverse chronological order (i.e., in order of decreasing message_id).
|
2384
|
+
# For optimal performance the number of returned messages is chosen by the library.
|
2385
|
+
#
|
2386
|
+
# @param from_message_id [Integer] Identifier of the message from which to search; use 0 to get results from the last
|
2387
|
+
# message.
|
2388
|
+
# @param limit [Integer] The maximum number of messages to be returned; up to 100.
|
2389
|
+
# Fewer messages may be returned than specified by the limit, even if the end of the message history has not been
|
2390
|
+
# reached.
|
2391
|
+
# @param only_missed [Boolean] If true, returns only messages with missed calls.
|
2392
|
+
# @return [TD::Types::Messages]
|
2393
|
+
def search_call_messages(from_message_id, limit = 100, only_missed: false)
|
2394
|
+
broadcast('@type' => 'searchCallMessages',
|
2395
|
+
'from_message_id' => from_message_id,
|
2396
|
+
'limit' => limit,
|
2397
|
+
'only_missed' => only_missed)
|
2398
|
+
end
|
2399
|
+
|
2400
|
+
# Searches for a specified query in the first name, last name and username of the members of a specified chat.
|
2401
|
+
# Requires administrator rights in channels.
|
2402
|
+
#
|
2403
|
+
# @param chat_id [Integer] Chat identifier.
|
2404
|
+
# @param query [String, nil] Query to search for.
|
2405
|
+
# @param limit [Integer] The maximum number of users to be returned.
|
2406
|
+
# @param filter [TD::Types::ChatMembersFilter] The type of users to return.
|
2407
|
+
# By default, {TD::Types::ChatMembersFilter::Members}.
|
2408
|
+
# @return [TD::Types::ChatMembers]
|
2409
|
+
def search_chat_members(chat_id, limit = 100, query: nil, filter: ChatMembersFilter::Members.new)
|
2410
|
+
broadcast('@type' => 'searchChatMembers',
|
2411
|
+
'chat_id' => chat_id,
|
2412
|
+
'query' => query,
|
2413
|
+
'limit' => limit,
|
2414
|
+
'filter' => filter)
|
2415
|
+
end
|
2416
|
+
|
2417
|
+
# Searches for messages with given words in the chat.
|
2418
|
+
# Returns the results in reverse chronological order, i.e. in order of decreasing message_id.
|
2419
|
+
# Cannot be used in secret chats with a non-empty query (searchSecretMessages should be used instead), or without an
|
2420
|
+
# enabled message database.
|
2421
|
+
# For optimal performance the number of returned messages is chosen by the library.
|
2422
|
+
#
|
2423
|
+
# @param chat_id [Integer] Identifier of the chat in which to search messages.
|
2424
|
+
# @param query [String, nil] Query to search for.
|
2425
|
+
# @param sender_user_id [Integer] If not 0, only messages sent by the specified user will be returned.
|
2426
|
+
# Not supported in secret chats.
|
2427
|
+
# @param from_message_id [Integer] Identifier of the message starting from which history must be fetched; use 0 to
|
2428
|
+
# get results from the last message.
|
2429
|
+
# @param offset [Integer] Specify 0 to get results from exactly the from_message_id or a negative offset to get the
|
2430
|
+
# specified message and some newer messages.
|
2431
|
+
# @param limit [Integer] The maximum number of messages to be returned; must be positive and can't be greater than
|
2432
|
+
# 100.
|
2433
|
+
# If the offset is negative, the limit must be greater than -offset.
|
2434
|
+
# Fewer messages may be returned than specified by the limit, even if the end of the message history has not been
|
2435
|
+
# reached.
|
2436
|
+
# @param filter [TD::Types::SearchMessagesFilter] Filter for message content in the search results.
|
2437
|
+
# @return [TD::Types::Messages]
|
2438
|
+
def search_chat_messages(chat_id, offset = 0, limit = 100,
|
2439
|
+
query: nil, sender_user_id: 0, from_message_id: 0, filter: SearchMessagesFilter::Empty.new)
|
2440
|
+
broadcast('@type' => 'searchChatMessages',
|
2441
|
+
'chat_id' => chat_id,
|
2442
|
+
'query' => query,
|
2443
|
+
'sender_user_id' => sender_user_id,
|
2444
|
+
'from_message_id' => from_message_id,
|
2445
|
+
'offset' => offset,
|
2446
|
+
'limit' => limit,
|
2447
|
+
'filter' => filter)
|
2448
|
+
end
|
2449
|
+
|
2450
|
+
# Returns information about the recent locations of chat members that were sent to the chat.
|
2451
|
+
# Returns up to 1 location message per user.
|
2452
|
+
#
|
2453
|
+
# @param chat_id [Integer] Chat identifier.
|
2454
|
+
# @param limit [Integer] Maximum number of messages to be returned.
|
2455
|
+
# @return [TD::Types::Messages]
|
2456
|
+
def search_chat_recent_location_messages(chat_id, limit = 100)
|
2457
|
+
broadcast('@type' => 'searchChatRecentLocationMessages',
|
2458
|
+
'chat_id' => chat_id,
|
2459
|
+
'limit' => limit)
|
2460
|
+
end
|
2461
|
+
|
2462
|
+
# Searches for the specified query in the title and username of already known chats, this is an offline request.
|
2463
|
+
# Returns chats in the order seen in the chat list.
|
2464
|
+
#
|
2465
|
+
# @param query [String, nil] Query to search for.
|
2466
|
+
# If the query is empty, returns up to 20 recently found chats.
|
2467
|
+
# @param limit [Integer] Maximum number of chats to be returned.
|
2468
|
+
# @return [TD::Types::Chats]
|
2469
|
+
def search_chats(query = nil, limit = 100)
|
2470
|
+
broadcast('@type' => 'searchChats',
|
2471
|
+
'query' => query,
|
2472
|
+
'limit' => limit)
|
2473
|
+
end
|
2474
|
+
|
2475
|
+
# Searches for the specified query in the title and username of already known chats via request to the server.
|
2476
|
+
# Returns chats in the order seen in the chat list.
|
2477
|
+
#
|
2478
|
+
# @param query [String] Query to search for.
|
2479
|
+
# @param limit [Integer] Maximum number of chats to be returned.
|
2480
|
+
# @return [TD::Types::Chats]
|
2481
|
+
def search_chats_on_server(query, limit = 100)
|
2482
|
+
broadcast('@type' => 'searchChatsOnServer',
|
2483
|
+
'query' => query,
|
2484
|
+
'limit' => limit)
|
2485
|
+
end
|
2486
|
+
|
2487
|
+
# Searches for the specified query in the first names, last names and usernames of the known user contacts.
|
2488
|
+
#
|
2489
|
+
# @param query [String, nil] Query to search for; can be empty to return all contacts.
|
2490
|
+
# @param limit [Integer] Maximum number of users to be returned.
|
2491
|
+
# @return [TD::Types::Users]
|
2492
|
+
def search_contacts(query = nil, limit = 100)
|
2493
|
+
broadcast('@type' => 'searchContacts',
|
2494
|
+
'query' => query,
|
2495
|
+
'limit' => limit)
|
2496
|
+
end
|
2497
|
+
|
2498
|
+
# Searches for recently used hashtags by their prefix.
|
2499
|
+
#
|
2500
|
+
# @param prefix [String, nil] Hashtag prefix to search for.
|
2501
|
+
# @param limit [Integer] Maximum number of hashtags to be returned.
|
2502
|
+
# @return [TD::Types::Hashtags]
|
2503
|
+
def search_hashtags(prefix = nil, limit = 100)
|
2504
|
+
broadcast('@type' => 'searchHashtags',
|
2505
|
+
'prefix' => prefix,
|
2506
|
+
'limit' => limit)
|
2507
|
+
end
|
2508
|
+
|
2509
|
+
# Searches for installed sticker sets by looking for specified query in their title and name.
|
2510
|
+
#
|
2511
|
+
# @param is_masks [Boolean] Pass true to return mask sticker sets; pass false to return ordinary sticker sets.
|
2512
|
+
# @param query [String, nil] Query to search for.
|
2513
|
+
# @param limit [Integer] Maximum number of sticker sets to return.
|
2514
|
+
# @return [TD::Types::StickerSets]
|
2515
|
+
def search_installed_sticker_sets(query = nil, limit = 100, is_masks: false)
|
2516
|
+
broadcast('@type' => 'searchInstalledStickerSets',
|
2517
|
+
'is_masks' => is_masks,
|
2518
|
+
'query' => query,
|
2519
|
+
'limit' => limit)
|
2520
|
+
end
|
2521
|
+
|
2522
|
+
# Searches for messages in all chats except secret chats.
|
2523
|
+
# Returns the results in reverse chronological order (i.e., in order of decreasing (date, chat_id, message_id)).
|
2524
|
+
# For optimal performance the number of returned messages is chosen by the library.
|
2525
|
+
#
|
2526
|
+
# @param query [String] Query to search for.
|
2527
|
+
# @param offset_date [Integer] The date of the message starting from which the results should be fetched.
|
2528
|
+
# Use 0 or any date in the future to get results from the last message.
|
2529
|
+
# @param offset_chat_id [Integer] The chat identifier of the last found message, or 0 for the first request.
|
2530
|
+
# @param offset_message_id [Integer] The message identifier of the last found message, or 0 for the first request.
|
2531
|
+
# @param limit [Integer] The maximum number of messages to be returned, up to 100.
|
2532
|
+
# Fewer messages may be returned than specified by the limit, even if the end of the message history has not been
|
2533
|
+
# reached.
|
2534
|
+
# @return [TD::Types::Messages]
|
2535
|
+
def search_messages(query, limit = 100, offset_date: 0, offset_chat_id: 0, offset_message_id: 0)
|
2536
|
+
broadcast('@type' => 'searchMessages',
|
2537
|
+
'query' => query,
|
2538
|
+
'offset_date' => offset_date,
|
2539
|
+
'offset_chat_id' => offset_chat_id,
|
2540
|
+
'offset_message_id' => offset_message_id,
|
2541
|
+
'limit' => limit)
|
2542
|
+
end
|
2543
|
+
|
2544
|
+
# Searches a public chat by its username.
|
2545
|
+
# Currently only private chats, supergroups and channels can be public.
|
2546
|
+
# Returns the chat if found; otherwise an error is returned.
|
2547
|
+
#
|
2548
|
+
# @param username [String] Username to be resolved.
|
2549
|
+
# @return [TD::Types::Chat]
|
2550
|
+
def search_public_chat(username)
|
2551
|
+
broadcast('@type' => 'searchPublicChat',
|
2552
|
+
'username' => username)
|
2553
|
+
end
|
2554
|
+
|
2555
|
+
# Searches public chats by looking for specified query in their username and title.
|
2556
|
+
# Currently only private chats, supergroups and channels can be public.
|
2557
|
+
# Returns a meaningful number of results.
|
2558
|
+
# Returns nothing if the length of the searched username prefix is less than 5.
|
2559
|
+
# Excludes private chats with contacts and chats from the chat list from the results.
|
2560
|
+
#
|
2561
|
+
# @param query [String] Query to search for.
|
2562
|
+
# @return [TD::Types::Chats]
|
2563
|
+
def search_public_chats(query)
|
2564
|
+
broadcast('@type' => 'searchPublicChats',
|
2565
|
+
'query' => query)
|
2566
|
+
end
|
2567
|
+
|
2568
|
+
# Searches for messages in secret chats.
|
2569
|
+
# Returns the results in reverse chronological order.
|
2570
|
+
# For optimal performance the number of returned messages is chosen by the library.
|
2571
|
+
#
|
2572
|
+
# @param chat_id [Integer] Identifier of the chat in which to search.
|
2573
|
+
# Specify 0 to search in all secret chats.
|
2574
|
+
# @param query [String] Query to search for.
|
2575
|
+
# If empty, {#search_chat_messages} should be used instead.
|
2576
|
+
# @param from_search_id [Integer] The identifier from the result of a previous request, use 0 to get results from the
|
2577
|
+
# last message.
|
2578
|
+
# @param limit [Integer] Maximum number of messages to be returned; up to 100.
|
2579
|
+
# Fewer messages may be returned than specified by the limit, even if the end of the message history has not been
|
2580
|
+
# reached.
|
2581
|
+
# @param filter [TD::Types::SearchMessagesFilter] A filter for the content of messages in the search results.
|
2582
|
+
# @return [TD::Types::FoundMessages]
|
2583
|
+
def search_secret_messages(chat_id, query, limit = 100, from_search_id: 0, filter: SearchMessagesFilter::Empty.new)
|
2584
|
+
broadcast('@type' => 'searchSecretMessages',
|
2585
|
+
'chat_id' => chat_id,
|
2586
|
+
'query' => query,
|
2587
|
+
'from_search_id' => from_search_id,
|
2588
|
+
'limit' => limit,
|
2589
|
+
'filter' => filter)
|
2590
|
+
end
|
2591
|
+
|
2592
|
+
# Searches for a sticker set by its name.
|
2593
|
+
#
|
2594
|
+
# @param name [String] Name of the sticker set.
|
2595
|
+
# @return [TD::Types::StickerSet]
|
2596
|
+
def search_sticker_set(name)
|
2597
|
+
broadcast('@type' => 'searchStickerSet',
|
2598
|
+
'name' => name)
|
2599
|
+
end
|
2600
|
+
|
2601
|
+
# Searches for ordinary sticker sets by looking for specified query in their title and name.
|
2602
|
+
# Excludes installed sticker sets from the results.
|
2603
|
+
#
|
2604
|
+
# @param query [String] Query to search for.
|
2605
|
+
# @return [TD::Types::StickerSets]
|
2606
|
+
def search_sticker_sets(query)
|
2607
|
+
broadcast('@type' => 'searchStickerSets',
|
2608
|
+
'query' => query)
|
2609
|
+
end
|
2610
|
+
|
2611
|
+
# Searches for stickers from public sticker sets that correspond to a given emoji.
|
2612
|
+
#
|
2613
|
+
# @param emoji [String] String representation of emoji; must be non-empty.
|
2614
|
+
# @param limit [Integer] Maximum number of stickers to be returned.
|
2615
|
+
# @return [TD::Types::Stickers]
|
2616
|
+
def search_stickers(emoji, limit = 100)
|
2617
|
+
broadcast('@type' => 'searchStickers',
|
2618
|
+
'emoji' => emoji,
|
2619
|
+
'limit' => limit)
|
2620
|
+
end
|
2621
|
+
|
2622
|
+
# Invites a bot to a chat (if it is not yet a member) and sends it the /start command.
|
2623
|
+
# Bots can't be invited to a private chat other than the chat with the bot.
|
2624
|
+
# Bots can't be invited to channels (although they can be added as admins) and secret chats.
|
2625
|
+
#
|
2626
|
+
# @param bot_user_id [Integer] Identifier of the bot.
|
2627
|
+
# @param chat_id [Integer] Identifier of the target chat.
|
2628
|
+
# @param parameter [String, nil] A hidden parameter sent to the bot for deep linking purposes
|
2629
|
+
# @see https://api.telegram.org/bots#deep-linking
|
2630
|
+
# @return [TD::Types::Message] the sent message.
|
2631
|
+
def send_bot_start_message(bot_user_id, chat_id, parameter = nil)
|
2632
|
+
broadcast('@type' => 'sendBotStartMessage',
|
2633
|
+
'bot_user_id' => bot_user_id,
|
2634
|
+
'chat_id' => chat_id,
|
2635
|
+
'parameter' => parameter)
|
2636
|
+
end
|
2637
|
+
|
2638
|
+
# Sends debug information for a call.
|
2639
|
+
#
|
2640
|
+
# @param call_id [Integer] Call identifier.
|
2641
|
+
# @param debug_information [String] Debug information in application-specific format.
|
2642
|
+
# @return [TD::Types::Ok]
|
2643
|
+
def send_call_debug_information(call_id, debug_information)
|
2644
|
+
broadcast('@type' => 'sendCallDebugInformation',
|
2645
|
+
'call_id' => call_id,
|
2646
|
+
'debug_information' => debug_information)
|
2647
|
+
end
|
2648
|
+
|
2649
|
+
# Sends a call rating.
|
2650
|
+
#
|
2651
|
+
# @param call_id [Integer] Call identifier.
|
2652
|
+
# @param rating [Integer] Call rating; 1-5.
|
2653
|
+
# @param comment [String, nil] An optional user comment if the rating is less than 5.
|
2654
|
+
# @return [TD::Types::Ok]
|
2655
|
+
def send_call_rating(call_id, rating, comment = nil)
|
2656
|
+
broadcast('@type' => 'sendCallRating',
|
2657
|
+
'call_id' => call_id,
|
2658
|
+
'rating' => rating,
|
2659
|
+
'comment' => comment)
|
2660
|
+
end
|
2661
|
+
|
2662
|
+
# Sends a notification about user activity in a chat.
|
2663
|
+
#
|
2664
|
+
# @param chat_id [Integer] Chat identifier.
|
2665
|
+
# @param action [TD::Types::ChatAction] The action description.
|
2666
|
+
# @return [TD::Types::Ok]
|
2667
|
+
def send_chat_action(chat_id, action)
|
2668
|
+
broadcast('@type' => 'sendChatAction',
|
2669
|
+
'chat_id' => chat_id,
|
2670
|
+
'action' => action)
|
2671
|
+
end
|
2672
|
+
|
2673
|
+
# Sends a notification about a screenshot taken in a chat.
|
2674
|
+
# Supported only in private and secret chats.
|
2675
|
+
#
|
2676
|
+
# @param chat_id [Integer] Chat identifier.
|
2677
|
+
# @return [TD::Types::Ok]
|
2678
|
+
def send_chat_screenshot_taken_notification(chat_id)
|
2679
|
+
broadcast('@type' => 'sendChatScreenshotTakenNotification',
|
2680
|
+
'chat_id' => chat_id)
|
2681
|
+
end
|
2682
|
+
|
2683
|
+
# Changes the current TTL setting (sets a new self-destruct timer) in a secret chat and sends the corresponding
|
2684
|
+
# message.
|
2685
|
+
#
|
2686
|
+
# @param chat_id [Integer] Chat identifier.
|
2687
|
+
# @param ttl [Integer] New TTL value, in seconds.
|
2688
|
+
# @return [TD::Types::Message]
|
2689
|
+
def send_chat_set_ttl_message(chat_id, ttl)
|
2690
|
+
broadcast('@type' => 'sendChatSetTtlMessage',
|
2691
|
+
'chat_id' => chat_id,
|
2692
|
+
'ttl' => ttl)
|
2693
|
+
end
|
2694
|
+
|
2695
|
+
# Sends a custom request; for bots only.
|
2696
|
+
#
|
2697
|
+
# @param method [String] The method name.
|
2698
|
+
# @param parameters [String] JSON-serialized method parameters.
|
2699
|
+
# @return [TD::Types::CustomRequestResult]
|
2700
|
+
def send_custom_request(method, parameters)
|
2701
|
+
broadcast('@type' => 'sendCustomRequest',
|
2702
|
+
'method' => method,
|
2703
|
+
'parameters' => parameters)
|
2704
|
+
end
|
2705
|
+
|
2706
|
+
# Sends a code to verify an email address to be added to a user's Telegram Passport.
|
2707
|
+
#
|
2708
|
+
# @param email_address [String] Email address.
|
2709
|
+
# @return [TD::Types::EmailAddressAuthenticationCodeInfo]
|
2710
|
+
def send_email_address_verification_code(email_address)
|
2711
|
+
broadcast('@type' => 'sendEmailAddressVerificationCode',
|
2712
|
+
'email_address' => email_address)
|
2713
|
+
end
|
2714
|
+
|
2715
|
+
# Sends the result of an inline query as a message.
|
2716
|
+
# Returns the sent message.
|
2717
|
+
# Always clears a chat draft message.
|
2718
|
+
#
|
2719
|
+
# @param chat_id [Integer] Target chat.
|
2720
|
+
# @param reply_to_message_id [Integer] Identifier of a message to reply to or 0.
|
2721
|
+
# @param disable_notification [Boolean] Pass true to disable notification for the message.
|
2722
|
+
# Not supported in secret chats.
|
2723
|
+
# @param from_background [Boolean] Pass true if the message is sent from background.
|
2724
|
+
# @param query_id [Integer] Identifier of the inline query.
|
2725
|
+
# @param result_id [String] Identifier of the inline result.
|
2726
|
+
# @return [TD::Types::Message]
|
2727
|
+
def send_inline_query_result_message(chat_id, query_id, result_id,
|
2728
|
+
reply_to_message_id: 0, disable_notification: false, from_background: false)
|
2729
|
+
broadcast('@type' => 'sendInlineQueryResultMessage',
|
2730
|
+
'chat_id' => chat_id,
|
2731
|
+
'reply_to_message_id' => reply_to_message_id,
|
2732
|
+
'disable_notification' => disable_notification,
|
2733
|
+
'from_background' => from_background,
|
2734
|
+
'query_id' => query_id,
|
2735
|
+
'result_id' => result_id)
|
2736
|
+
end
|
2737
|
+
|
2738
|
+
# Sends a message.
|
2739
|
+
#
|
2740
|
+
# @param chat_id [Integer] Target chat.
|
2741
|
+
# @param reply_to_message_id [Integer] Identifier of the message to reply to or 0.
|
2742
|
+
# @param disable_notification [Boolean] Pass true to disable notification for the message.
|
2743
|
+
# Not supported in secret chats.
|
2744
|
+
# @param from_background [Boolean] Pass true if the message is sent from the background.
|
2745
|
+
# @param reply_markup [TD::Types::ReplyMarkup, nil] Markup for replying to the message; for bots only.
|
2746
|
+
# @param input_message_content [TD::Types::InputMessageContent] The content of the message to be sent.
|
2747
|
+
# @return [TD::Types::Message] the sent message.
|
2748
|
+
def send_message(chat_id, input_message_content,
|
2749
|
+
reply_to_message_id: 0, disable_notification: false, from_background: false, reply_markup: nil)
|
2750
|
+
broadcast('@type' => 'sendMessage',
|
2751
|
+
'chat_id' => chat_id,
|
2752
|
+
'reply_to_message_id' => reply_to_message_id,
|
2753
|
+
'disable_notification' => disable_notification,
|
2754
|
+
'from_background' => from_background,
|
2755
|
+
'reply_markup' => reply_markup,
|
2756
|
+
'input_message_content' => input_message_content)
|
2757
|
+
end
|
2758
|
+
|
2759
|
+
# Sends messages grouped together into an album.
|
2760
|
+
# Currently only photo and video messages can be grouped into an album.
|
2761
|
+
#
|
2762
|
+
# @param chat_id [Integer] Target chat.
|
2763
|
+
# @param reply_to_message_id [Integer] Identifier of a message to reply to or 0.
|
2764
|
+
# @param disable_notification [Boolean] Pass true to disable notification for the messages.
|
2765
|
+
# Not supported in secret chats.
|
2766
|
+
# @param from_background [Boolean] Pass true if the messages are sent from the background.
|
2767
|
+
# @param input_message_contents [Array<TD::Types::InputMessageContent>] Contents of messages to be sent.
|
2768
|
+
# @return [TD::Types::Messages] the sent messages.
|
2769
|
+
def send_message_album(chat_id, input_message_contents,
|
2770
|
+
reply_to_message_id: 0, disable_notification: false, from_background: false)
|
2771
|
+
broadcast('@type' => 'sendMessageAlbum',
|
2772
|
+
'chat_id' => chat_id,
|
2773
|
+
'reply_to_message_id' => reply_to_message_id,
|
2774
|
+
'disable_notification' => disable_notification,
|
2775
|
+
'from_background' => from_background,
|
2776
|
+
'input_message_contents' => input_message_contents)
|
2777
|
+
end
|
2778
|
+
|
2779
|
+
# Sends a Telegram Passport authorization form, effectively sharing data with the service.
|
2780
|
+
#
|
2781
|
+
# @param autorization_form_id [Integer] Authorization form identifier.
|
2782
|
+
# @param types [Array<TD::Types::PassportElementType>] Types of Telegram Passport elements chosen by user to complete
|
2783
|
+
# the authorization form.
|
2784
|
+
# @return [TD::Types::Ok]
|
2785
|
+
def send_passport_authorization_form(autorization_form_id, types)
|
2786
|
+
broadcast('@type' => 'sendPassportAuthorizationForm',
|
2787
|
+
'autorization_form_id' => autorization_form_id,
|
2788
|
+
'types' => types)
|
2789
|
+
end
|
2790
|
+
|
2791
|
+
# Sends a filled-out payment form to the bot for final verification.
|
2792
|
+
#
|
2793
|
+
# @param chat_id [Integer] Chat identifier of the Invoice message.
|
2794
|
+
# @param message_id [Integer] Message identifier.
|
2795
|
+
# @param order_info_id [String] Identifier returned by {#validate_order_info}, or an empty string.
|
2796
|
+
# @param shipping_option_id [String, nil] Identifier of a chosen shipping option, if applicable.
|
2797
|
+
# @param credentials [TD::Types::InputCredentials] The credentials chosen by user for payment.
|
2798
|
+
# @return [TD::Types::PaymentResult]
|
2799
|
+
def send_payment_form(chat_id, message_id, credentials, order_info_id: "", shipping_option_id: nil)
|
2800
|
+
broadcast('@type' => 'sendPaymentForm',
|
2801
|
+
'chat_id' => chat_id,
|
2802
|
+
'message_id' => message_id,
|
2803
|
+
'order_info_id' => order_info_id,
|
2804
|
+
'shipping_option_id' => shipping_option_id,
|
2805
|
+
'credentials' => credentials)
|
2806
|
+
end
|
2807
|
+
|
2808
|
+
# Sends phone number confirmation code.
|
2809
|
+
# Should be called when user presses "https://t.me/confirmphone?phone=*******&hash=**********" or
|
2810
|
+
# "tg://confirmphone?phone=*******&hash=**********" link.
|
2811
|
+
#
|
2812
|
+
# @param hash [String] Value of the "hash" parameter from the link.
|
2813
|
+
# @param phone_number [String] Value of the "phone" parameter from the link.
|
2814
|
+
# @param allow_flash_call [Boolean] Pass true if the authentication code may be sent via flash call to the specified
|
2815
|
+
# phone number.
|
2816
|
+
# @param is_current_phone_number [Boolean] Pass true if the phone number is used on the current device.
|
2817
|
+
# Ignored if allow_flash_call is false.
|
2818
|
+
# @return [TD::Types::AuthenticationCodeInfo]
|
2819
|
+
def send_phone_number_confirmation_code(hash, phone_number, allow_flash_call: false, is_current_phone_number: false)
|
2820
|
+
broadcast('@type' => 'sendPhoneNumberConfirmationCode',
|
2821
|
+
'hash' => hash,
|
2822
|
+
'phone_number' => phone_number,
|
2823
|
+
'allow_flash_call' => allow_flash_call,
|
2824
|
+
'is_current_phone_number' => is_current_phone_number)
|
2825
|
+
end
|
2826
|
+
|
2827
|
+
# Sends a code to verify a phone number to be added to a user's Telegram Passport.
|
2828
|
+
#
|
2829
|
+
# @param phone_number [String] The phone number of the user, in international format.
|
2830
|
+
# @param allow_flash_call [Boolean] Pass true if the authentication code may be sent via flash call to the specified
|
2831
|
+
# phone number.
|
2832
|
+
# @param is_current_phone_number [Boolean] Pass true if the phone number is used on the current device.
|
2833
|
+
# Ignored if allow_flash_call is false.
|
2834
|
+
# @return [TD::Types::AuthenticationCodeInfo]
|
2835
|
+
def send_phone_number_verification_code(phone_number, allow_flash_call: false, is_current_phone_number: false)
|
2836
|
+
broadcast('@type' => 'sendPhoneNumberVerificationCode',
|
2837
|
+
'phone_number' => phone_number,
|
2838
|
+
'allow_flash_call' => allow_flash_call,
|
2839
|
+
'is_current_phone_number' => is_current_phone_number)
|
2840
|
+
end
|
2841
|
+
|
2842
|
+
# Changes the period of inactivity after which the account of the current user will automatically be deleted.
|
2843
|
+
#
|
2844
|
+
# @param ttl [TD::Types::AccountTtl] New account TTL.
|
2845
|
+
# @return [TD::Types::Ok]
|
2846
|
+
def set_account_ttl(ttl)
|
2847
|
+
broadcast('@type' => 'setAccountTtl',
|
2848
|
+
'ttl' => ttl)
|
2849
|
+
end
|
2850
|
+
|
2851
|
+
# Succeeds after a specified amount of time has passed.
|
2852
|
+
# Can be called before authorization.
|
2853
|
+
# Can be called before initialization.
|
2854
|
+
#
|
2855
|
+
# @param seconds [Float] Number of seconds before the function returns.
|
2856
|
+
# @return [TD::Types::Ok]
|
2857
|
+
def set_alarm(seconds)
|
2858
|
+
broadcast('@type' => 'setAlarm',
|
2859
|
+
'seconds' => seconds)
|
2860
|
+
end
|
2861
|
+
|
2862
|
+
# Sets the phone number of the user and sends an authentication code to the user.
|
2863
|
+
# Works only when the current authorization state is {TD::Types::AuthorizationState::WaitPhoneNumber}.
|
2864
|
+
#
|
2865
|
+
# @param phone_number [String] The phone number of the user, in international format.
|
2866
|
+
# @param allow_flash_call [Boolean] Pass true if the authentication code may be sent via flash call to the specified
|
2867
|
+
# phone number.
|
2868
|
+
# @param is_current_phone_number [Boolean] Pass true if the phone number is used on the current device.
|
2869
|
+
# Ignored if allow_flash_call is false.
|
2870
|
+
# @return [TD::Types::Ok]
|
2871
|
+
def set_authentication_phone_number(phone_number, allow_flash_call: false, is_current_phone_number: false)
|
2872
|
+
broadcast('@type' => 'setAuthenticationPhoneNumber',
|
2873
|
+
'phone_number' => phone_number,
|
2874
|
+
'allow_flash_call' => allow_flash_call,
|
2875
|
+
'is_current_phone_number' => is_current_phone_number)
|
2876
|
+
end
|
2877
|
+
|
2878
|
+
# Changes the bio of the current user.
|
2879
|
+
#
|
2880
|
+
# @param bio [String] The new value of the user bio; 0-70 characters without line feeds.
|
2881
|
+
# @return [TD::Types::Ok]
|
2882
|
+
def set_bio(bio)
|
2883
|
+
broadcast('@type' => 'setBio',
|
2884
|
+
'bio' => bio)
|
2885
|
+
end
|
2886
|
+
|
2887
|
+
# Informs the server about the number of pending bot updates if they haven't been processed for a long time; for bots
|
2888
|
+
# only.
|
2889
|
+
#
|
2890
|
+
# @param pending_update_count [Integer] The number of pending updates.
|
2891
|
+
# @param error_message [String] The last error message.
|
2892
|
+
# @return [TD::Types::Ok]
|
2893
|
+
def set_bot_updates_status(pending_update_count, error_message)
|
2894
|
+
broadcast('@type' => 'setBotUpdatesStatus',
|
2895
|
+
'pending_update_count' => pending_update_count,
|
2896
|
+
'error_message' => error_message)
|
2897
|
+
end
|
2898
|
+
|
2899
|
+
# Changes client data associated with a chat.
|
2900
|
+
#
|
2901
|
+
# @param chat_id [Integer] Chat identifier.
|
2902
|
+
# @param client_data [String] New value of client_data.
|
2903
|
+
# @return [TD::Types::Ok]
|
2904
|
+
def set_chat_client_data(chat_id, client_data)
|
2905
|
+
broadcast('@type' => 'setChatClientData',
|
2906
|
+
'chat_id' => chat_id,
|
2907
|
+
'client_data' => client_data)
|
2908
|
+
end
|
2909
|
+
|
2910
|
+
# Changes the draft message in a chat.
|
2911
|
+
#
|
2912
|
+
# @param chat_id [Integer] Chat identifier.
|
2913
|
+
# @param draft_message [TD::Types::DraftMessage, nil] New draft message.
|
2914
|
+
# @return [TD::Types::Ok]
|
2915
|
+
def set_chat_draft_message(chat_id, draft_message = nil)
|
2916
|
+
broadcast('@type' => 'setChatDraftMessage',
|
2917
|
+
'chat_id' => chat_id,
|
2918
|
+
'draft_message' => draft_message)
|
2919
|
+
end
|
2920
|
+
|
2921
|
+
# Changes the status of a chat member, needs appropriate privileges.
|
2922
|
+
# This function is currently not suitable for adding new members to the chat; instead, use {#add_chat_member}.
|
2923
|
+
# The chat member status will not be changed until it has been synchronized with the server.
|
2924
|
+
#
|
2925
|
+
# @param chat_id [Integer] Chat identifier.
|
2926
|
+
# @param user_id [Integer] User identifier.
|
2927
|
+
# @param status [TD::Types::ChatMemberStatus] The new status of the member in the chat.
|
2928
|
+
# @return [TD::Types::Ok]
|
2929
|
+
def set_chat_member_status(chat_id, user_id, status)
|
2930
|
+
broadcast('@type' => 'setChatMemberStatus',
|
2931
|
+
'chat_id' => chat_id,
|
2932
|
+
'user_id' => user_id,
|
2933
|
+
'status' => status)
|
2934
|
+
end
|
2935
|
+
|
2936
|
+
# Changes the notification settings of a chat.
|
2937
|
+
#
|
2938
|
+
# @param chat_id [Integer] Chat identifier.
|
2939
|
+
# @param notification_settings [TD::Types::ChatNotificationSettings] New notification settings for the chat.
|
2940
|
+
# @return [TD::Types::Ok]
|
2941
|
+
def set_chat_notification_settings(chat_id, notification_settings)
|
2942
|
+
broadcast('@type' => 'setChatNotificationSettings',
|
2943
|
+
'chat_id' => chat_id,
|
2944
|
+
'notification_settings' => notification_settings)
|
2945
|
+
end
|
2946
|
+
|
2947
|
+
# Changes the photo of a chat.
|
2948
|
+
# Supported only for basic groups, supergroups and channels.
|
2949
|
+
# Requires administrator rights in basic groups and the appropriate administrator rights in supergroups and channels.
|
2950
|
+
# The photo will not be changed before request to the server has been completed.
|
2951
|
+
#
|
2952
|
+
# @param chat_id [Integer] Chat identifier.
|
2953
|
+
# @param photo [TD::Types::InputFile] New chat photo.
|
2954
|
+
# You can use a zero {TD::Types::InputFile::Id} to delete the chat photo.
|
2955
|
+
# Files that are accessible only by HTTP URL are not acceptable.
|
2956
|
+
# @return [TD::Types::Ok]
|
2957
|
+
def set_chat_photo(chat_id, photo = InputFile::Id.new(id: 0))
|
2958
|
+
broadcast('@type' => 'setChatPhoto',
|
2959
|
+
'chat_id' => chat_id,
|
2960
|
+
'photo' => photo)
|
2961
|
+
end
|
2962
|
+
|
2963
|
+
# Changes the chat title.
|
2964
|
+
# Supported only for basic groups, supergroups and channels.
|
2965
|
+
# Requires administrator rights in basic groups and the appropriate administrator rights in supergroups and channels.
|
2966
|
+
# The title will not be changed until the request to the server has been completed.
|
2967
|
+
#
|
2968
|
+
# @param chat_id [Integer] Chat identifier.
|
2969
|
+
# @param title [String] New title of the chat; 1-255 characters.
|
2970
|
+
# @return [TD::Types::Ok]
|
2971
|
+
def set_chat_title(chat_id, title)
|
2972
|
+
broadcast('@type' => 'setChatTitle',
|
2973
|
+
'chat_id' => chat_id,
|
2974
|
+
'title' => title)
|
2975
|
+
end
|
2976
|
+
|
2977
|
+
# Adds or changes a custom language pack to the current localization target.
|
2978
|
+
#
|
2979
|
+
# @param info [TD::Types::LanguagePackInfo] Information about the language pack.
|
2980
|
+
# Language pack ID must start with 'X', consist only of English letters, digits and hyphens, and must not exceed 64
|
2981
|
+
# characters.
|
2982
|
+
# @param strings [Array<TD::Types::LanguagePackString>] Strings of the new language pack.
|
2983
|
+
# @return [TD::Types::Ok]
|
2984
|
+
def set_custom_language_pack(info, strings)
|
2985
|
+
broadcast('@type' => 'setCustomLanguagePack',
|
2986
|
+
'info' => info,
|
2987
|
+
'strings' => strings)
|
2988
|
+
end
|
2989
|
+
|
2990
|
+
# Adds, edits or deletes a string in a custom language pack.
|
2991
|
+
#
|
2992
|
+
# @param language_pack_id [String] Identifier of a previously added custom language pack in the current localization
|
2993
|
+
# target.
|
2994
|
+
# @param new_string [TD::Types::LanguagePackString] New language pack string.
|
2995
|
+
# @return [TD::Types::Ok]
|
2996
|
+
def set_custom_language_pack_string(language_pack_id, new_string)
|
2997
|
+
broadcast('@type' => 'setCustomLanguagePackString',
|
2998
|
+
'language_pack_id' => language_pack_id,
|
2999
|
+
'new_string' => new_string)
|
3000
|
+
end
|
3001
|
+
|
3002
|
+
# Changes the database encryption key.
|
3003
|
+
# Usually the encryption key is never changed and is stored in some OS keychain.
|
3004
|
+
#
|
3005
|
+
# @param new_encryption_key [String] New encryption key.
|
3006
|
+
# @return [TD::Types::Ok]
|
3007
|
+
def set_database_encryption_key(new_encryption_key)
|
3008
|
+
broadcast('@type' => 'setDatabaseEncryptionKey',
|
3009
|
+
'new_encryption_key' => new_encryption_key)
|
3010
|
+
end
|
3011
|
+
|
3012
|
+
# The next part of a file was generated.
|
3013
|
+
#
|
3014
|
+
# @param generation_id [Integer] The identifier of the generation process.
|
3015
|
+
# @param expected_size [Integer] Expected size of the generated file, in bytes; 0 if unknown.
|
3016
|
+
# @param local_prefix_size [Integer] The number of bytes already generated.
|
3017
|
+
# @return [TD::Types::Ok]
|
3018
|
+
def set_file_generation_progress(generation_id, local_prefix_size, expected_size: 0)
|
3019
|
+
broadcast('@type' => 'setFileGenerationProgress',
|
3020
|
+
'generation_id' => generation_id,
|
3021
|
+
'expected_size' => expected_size,
|
3022
|
+
'local_prefix_size' => local_prefix_size)
|
3023
|
+
end
|
3024
|
+
|
3025
|
+
# Updates the game score of the specified user in the game; for bots only.
|
3026
|
+
#
|
3027
|
+
# @param chat_id [Integer] The chat to which the message with the game.
|
3028
|
+
# @param message_id [Integer] Identifier of the message.
|
3029
|
+
# @param edit_message [Boolean] True, if the message should be edited.
|
3030
|
+
# @param user_id [Integer] User identifier.
|
3031
|
+
# @param score [Integer] The new score.
|
3032
|
+
# @param force [Boolean] Pass true to update the score even if it decreases.
|
3033
|
+
# If the score is 0, the user will be deleted from the high score table.
|
3034
|
+
# @return [TD::Types::Message]
|
3035
|
+
def set_game_score(chat_id, message_id, user_id, score, edit_message: false, force: false)
|
3036
|
+
broadcast('@type' => 'setGameScore',
|
3037
|
+
'chat_id' => chat_id,
|
3038
|
+
'message_id' => message_id,
|
3039
|
+
'edit_message' => edit_message,
|
3040
|
+
'user_id' => user_id,
|
3041
|
+
'score' => score,
|
3042
|
+
'force' => force)
|
3043
|
+
end
|
3044
|
+
|
3045
|
+
# Updates the game score of the specified user in a game; for bots only.
|
3046
|
+
#
|
3047
|
+
# @param inline_message_id [String] Inline message identifier.
|
3048
|
+
# @param edit_message [Boolean] True, if the message should be edited.
|
3049
|
+
# @param user_id [Integer] User identifier.
|
3050
|
+
# @param score [Integer] The new score.
|
3051
|
+
# @param force [Boolean] Pass true to update the score even if it decreases.
|
3052
|
+
# If the score is 0, the user will be deleted from the high score table.
|
3053
|
+
# @return [TD::Types::Ok]
|
3054
|
+
def set_inline_game_score(inline_message_id, user_id, score, edit_message: false, force: false)
|
3055
|
+
broadcast('@type' => 'setInlineGameScore',
|
3056
|
+
'inline_message_id' => inline_message_id,
|
3057
|
+
'edit_message' => edit_message,
|
3058
|
+
'user_id' => user_id,
|
3059
|
+
'score' => score,
|
3060
|
+
'force' => force)
|
3061
|
+
end
|
3062
|
+
|
3063
|
+
# Changes the first and last name of the current user.
|
3064
|
+
# If something changes, {TD::Types::Update::User} will be sent.
|
3065
|
+
#
|
3066
|
+
# @param first_name [String] The new value of the first name for the user; 1-255 characters.
|
3067
|
+
# @param last_name [String] The new value of the optional last name for the user; 0-255 characters.
|
3068
|
+
# @return [TD::Types::Ok]
|
3069
|
+
def set_name(first_name, last_name)
|
3070
|
+
broadcast('@type' => 'setName',
|
3071
|
+
'first_name' => first_name,
|
3072
|
+
'last_name' => last_name)
|
3073
|
+
end
|
3074
|
+
|
3075
|
+
# Sets the current network type.
|
3076
|
+
# Can be called before authorization.
|
3077
|
+
# Calling this method forces all network connections to reopen, mitigating the delay in switching between different
|
3078
|
+
# networks, so it should be called whenever the network is changed, even if the network type remains the same.
|
3079
|
+
# Network type is used to check whether the library can use the network at all and also for collecting detailed
|
3080
|
+
# network data usage statistics.
|
3081
|
+
#
|
3082
|
+
# @param type [TD::Types::NetworkType] The new network type.
|
3083
|
+
# By default, {TD::Types::NetworkType::Other}.
|
3084
|
+
# @return [TD::Types::Ok]
|
3085
|
+
def set_network_type(type = NetworkType::Other)
|
3086
|
+
broadcast('@type' => 'setNetworkType',
|
3087
|
+
'type' => type)
|
3088
|
+
end
|
3089
|
+
|
3090
|
+
# Sets the value of an option.
|
3091
|
+
# Only writable options can be set.
|
3092
|
+
# Can be called before authorization.
|
3093
|
+
#
|
3094
|
+
# @param name [String] The name of the option.
|
3095
|
+
# @param value [TD::Types::OptionValue] The new value of the option.
|
3096
|
+
# @see https://core.telegram.org/tdlib/options List of available options
|
3097
|
+
# @return [TD::Types::Ok]
|
3098
|
+
def set_option(name, value)
|
3099
|
+
broadcast('@type' => 'setOption',
|
3100
|
+
'name' => name,
|
3101
|
+
'value' => value)
|
3102
|
+
end
|
3103
|
+
|
3104
|
+
# Adds an element to the user's Telegram Passport.
|
3105
|
+
# May return an error with a message "PHONE_VERIFICATION_NEEDED" or "EMAIL_VERIFICATION_NEEDED" if the chosen phone
|
3106
|
+
# number or the chosen email address must be verified first.
|
3107
|
+
#
|
3108
|
+
# @param element [TD::Types::InputPassportElement] Input Telegram Passport element.
|
3109
|
+
# @param password [String] Password of the current user.
|
3110
|
+
# @return [TD::Types::PassportElement]
|
3111
|
+
def set_passport_element(element, password)
|
3112
|
+
broadcast('@type' => 'setPassportElement',
|
3113
|
+
'element' => element,
|
3114
|
+
'password' => password)
|
3115
|
+
end
|
3116
|
+
|
3117
|
+
# Informs the user that some of the elements in their Telegram Passport contain errors; for bots only.
|
3118
|
+
# The user will not be able to resend the elements, until the errors are fixed.
|
3119
|
+
#
|
3120
|
+
# @param user_id [Integer] User identifier.
|
3121
|
+
# @param errors [Array<TD::Types::InputPassportElementError>] The errors.
|
3122
|
+
# @return [TD::Types::Ok]
|
3123
|
+
def set_passport_element_errors(user_id, errors)
|
3124
|
+
broadcast('@type' => 'setPassportElementErrors',
|
3125
|
+
'user_id' => user_id,
|
3126
|
+
'errors' => errors)
|
3127
|
+
end
|
3128
|
+
|
3129
|
+
# Changes the password for the user.
|
3130
|
+
# If a new recovery email address is specified, then the error EMAIL_UNCONFIRMED is returned and the password change
|
3131
|
+
# will not be applied until the new recovery email address has been confirmed.
|
3132
|
+
# The application should periodically call {#get_password_state} to check whether the new email address has been
|
3133
|
+
# confirmed.
|
3134
|
+
#
|
3135
|
+
# @param old_password [String] Previous password of the user.
|
3136
|
+
# @param new_password [String, nil] New password of the user; may be empty to remove the password.
|
3137
|
+
# @param new_hint [String, nil] New password hint.
|
3138
|
+
# @param set_recovery_email_address [Boolean] Pass true if the recovery email address should be changed.
|
3139
|
+
# @param new_recovery_email_address [String, nil] New recovery email address.
|
3140
|
+
# @return [TD::Types::PasswordState]
|
3141
|
+
def set_password(old_password, new_password: nil, new_hint: nil, set_recovery_email_address: false,
|
3142
|
+
new_recovery_email_address: nil)
|
3143
|
+
broadcast('@type' => 'setPassword',
|
3144
|
+
'old_password' => old_password,
|
3145
|
+
'new_password' => new_password,
|
3146
|
+
'new_hint' => new_hint,
|
3147
|
+
'set_recovery_email_address' => set_recovery_email_address,
|
3148
|
+
'new_recovery_email_address' => new_recovery_email_address)
|
3149
|
+
end
|
3150
|
+
|
3151
|
+
# Changes the order of pinned chats.
|
3152
|
+
#
|
3153
|
+
# @param chat_ids [Array<Integer>] The new list of pinned chats.
|
3154
|
+
# @return [TD::Types::Ok]
|
3155
|
+
def set_pinned_chats(chat_ids)
|
3156
|
+
broadcast('@type' => 'setPinnedChats',
|
3157
|
+
'chat_ids' => chat_ids)
|
3158
|
+
end
|
3159
|
+
|
3160
|
+
# Uploads a new profile photo for the current user.
|
3161
|
+
# If something changes, {TD::Types::Update::User} will be sent.
|
3162
|
+
#
|
3163
|
+
# @param photo [TD::Types::InputFile] Profile photo to set.
|
3164
|
+
# {TD::Types::InputFile::Id} and {TD::Types::InputFile::Remote} may still be unsupported.
|
3165
|
+
# @return [TD::Types::Ok]
|
3166
|
+
def set_profile_photo(photo)
|
3167
|
+
broadcast('@type' => 'setProfilePhoto',
|
3168
|
+
'photo' => photo)
|
3169
|
+
end
|
3170
|
+
|
3171
|
+
# Changes the recovery email address of the user.
|
3172
|
+
# If a new recovery email address is specified, then the error EMAIL_UNCONFIRMED is returned and the email address
|
3173
|
+
# will not be changed until the new email has been confirmed.
|
3174
|
+
# The application should periodically call {#get_password_state} to check whether the email address has been
|
3175
|
+
# confirmed.
|
3176
|
+
# If new_recovery_email_address is the same as the email address that is currently set up, this call succeeds
|
3177
|
+
# immediately and aborts all other requests waiting for an email confirmation.
|
3178
|
+
#
|
3179
|
+
# @param password [String] Password of the current user.
|
3180
|
+
# @param new_recovery_email_address [String] New recovery email address.
|
3181
|
+
# @return [TD::Types::PasswordState]
|
3182
|
+
def set_recovery_email_address(new_recovery_email_address, password)
|
3183
|
+
broadcast('@type' => 'setRecoveryEmailAddress',
|
3184
|
+
'password' => password,
|
3185
|
+
'new_recovery_email_address' => new_recovery_email_address)
|
3186
|
+
end
|
3187
|
+
|
3188
|
+
# Changes notification settings for chats of a given type.
|
3189
|
+
#
|
3190
|
+
# @param scope [TD::Types::NotificationSettingsScope] Types of chats for which to change the notification settings.
|
3191
|
+
# @param notification_settings [TD::Types::ScopeNotificationSettings] The new notification settings for the given
|
3192
|
+
# scope.
|
3193
|
+
# @return [TD::Types::Ok]
|
3194
|
+
def set_scope_notification_settings(scope, notification_settings)
|
3195
|
+
broadcast('@type' => 'setScopeNotificationSettings',
|
3196
|
+
'scope' => scope,
|
3197
|
+
'notification_settings' => notification_settings)
|
3198
|
+
end
|
3199
|
+
|
3200
|
+
# Changes the position of a sticker in the set to which it belongs; for bots only.
|
3201
|
+
# The sticker set must have been created by the bot.
|
3202
|
+
#
|
3203
|
+
# @param sticker [TD::Types::InputFile] Sticker.
|
3204
|
+
# @param position [Integer] New position of the sticker in the set, zero-based.
|
3205
|
+
# @return [TD::Types::Ok]
|
3206
|
+
def set_sticker_position_in_set(sticker, position)
|
3207
|
+
broadcast('@type' => 'setStickerPositionInSet',
|
3208
|
+
'sticker' => sticker,
|
3209
|
+
'position' => position)
|
3210
|
+
end
|
3211
|
+
|
3212
|
+
# Changes information about a supergroup or channel; requires appropriate administrator rights.
|
3213
|
+
#
|
3214
|
+
# @param supergroup_id [Integer] Identifier of the supergroup or channel.
|
3215
|
+
# @param description [String] New supergroup or channel description; 0-255 characters.
|
3216
|
+
# @return [TD::Types::Ok]
|
3217
|
+
def set_supergroup_description(supergroup_id, description)
|
3218
|
+
broadcast('@type' => 'setSupergroupDescription',
|
3219
|
+
'supergroup_id' => supergroup_id,
|
3220
|
+
'description' => description)
|
3221
|
+
end
|
3222
|
+
|
3223
|
+
# Changes the sticker set of a supergroup; requires appropriate rights in the supergroup.
|
3224
|
+
#
|
3225
|
+
# @param supergroup_id [Integer] Identifier of the supergroup.
|
3226
|
+
# @param sticker_set_id [Integer] New value of the supergroup sticker set identifier.
|
3227
|
+
# Use 0 to remove the supergroup sticker set.
|
3228
|
+
# @return [TD::Types::Ok]
|
3229
|
+
def set_supergroup_sticker_set(supergroup_id, sticker_set_id = 0)
|
3230
|
+
broadcast('@type' => 'setSupergroupStickerSet',
|
3231
|
+
'supergroup_id' => supergroup_id,
|
3232
|
+
'sticker_set_id' => sticker_set_id)
|
3233
|
+
end
|
3234
|
+
|
3235
|
+
# Changes the username of a supergroup or channel, requires creator privileges in the supergroup or channel.
|
3236
|
+
#
|
3237
|
+
# @param supergroup_id [Integer] Identifier of the supergroup or channel.
|
3238
|
+
# @param username [String] New value of the username.
|
3239
|
+
# Use an empty string to remove the username.
|
3240
|
+
# @return [TD::Types::Ok]
|
3241
|
+
def set_supergroup_username(supergroup_id, username = "")
|
3242
|
+
broadcast('@type' => 'setSupergroupUsername',
|
3243
|
+
'supergroup_id' => supergroup_id,
|
3244
|
+
'username' => username)
|
3245
|
+
end
|
3246
|
+
|
3247
|
+
# Sets the parameters for TDLib initialization.
|
3248
|
+
# Works only when the current authorization state is {TD::Types::AuthorizationState::WaitTdlibParameters}.
|
3249
|
+
#
|
3250
|
+
# @param parameters [TD::Types::TdlibParameters] Parameters.
|
3251
|
+
# @return [TD::Types::Ok]
|
3252
|
+
def set_tdlib_parameters(parameters)
|
3253
|
+
broadcast('@type' => 'setTdlibParameters',
|
3254
|
+
'parameters' => parameters)
|
3255
|
+
end
|
3256
|
+
|
3257
|
+
# Changes user privacy settings.
|
3258
|
+
#
|
3259
|
+
# @param setting [TD::Types::UserPrivacySetting] The privacy setting.
|
3260
|
+
# @param rules [TD::Types::UserPrivacySettingRules] The new privacy rules.
|
3261
|
+
# @return [TD::Types::Ok]
|
3262
|
+
def set_user_privacy_setting_rules(setting, rules)
|
3263
|
+
broadcast('@type' => 'setUserPrivacySettingRules',
|
3264
|
+
'setting' => setting,
|
3265
|
+
'rules' => rules)
|
3266
|
+
end
|
3267
|
+
|
3268
|
+
# Changes the username of the current user.
|
3269
|
+
# If something changes, {TD::Types::Update::User} will be sent.
|
3270
|
+
#
|
3271
|
+
# @param username [String] The new value of the username.
|
3272
|
+
# Use an empty string to remove the username.
|
3273
|
+
# @return [TD::Types::Ok]
|
3274
|
+
def set_username(username = "")
|
3275
|
+
broadcast('@type' => 'setUsername',
|
3276
|
+
'username' => username)
|
3277
|
+
end
|
3278
|
+
|
3279
|
+
# Terminates all other sessions of the current user.
|
3280
|
+
#
|
3281
|
+
# @return [TD::Types::Ok]
|
3282
|
+
def terminate_all_other_sessions
|
3283
|
+
broadcast('@type' => 'terminateAllOtherSessions')
|
3284
|
+
end
|
3285
|
+
|
3286
|
+
# Terminates a session of the current user.
|
3287
|
+
#
|
3288
|
+
# @param session_id [Integer] Session identifier.
|
3289
|
+
# @return [TD::Types::Ok]
|
3290
|
+
def terminate_session(session_id)
|
3291
|
+
broadcast('@type' => 'terminateSession',
|
3292
|
+
'session_id' => session_id)
|
3293
|
+
end
|
3294
|
+
|
3295
|
+
# Toggles the "All members are admins" setting in basic groups; requires creator privileges in the group.
|
3296
|
+
#
|
3297
|
+
# @param basic_group_id [Integer] Identifier of the basic group.
|
3298
|
+
# @param everyone_is_administrator [Boolean] New value of everyone_is_administrator.
|
3299
|
+
# @return [TD::Types::Ok]
|
3300
|
+
def toggle_basic_group_administrators(basic_group_id, everyone_is_administrator)
|
3301
|
+
broadcast('@type' => 'toggleBasicGroupAdministrators',
|
3302
|
+
'basic_group_id' => basic_group_id,
|
3303
|
+
'everyone_is_administrator' => everyone_is_administrator)
|
3304
|
+
end
|
3305
|
+
|
3306
|
+
# Changes the value of the default disable_notification parameter, used when a message is sent to a chat.
|
3307
|
+
#
|
3308
|
+
# @param chat_id [Integer] Chat identifier.
|
3309
|
+
# @param default_disable_notification [Boolean] New value of default_disable_notification.
|
3310
|
+
# @return [TD::Types::Ok]
|
3311
|
+
def toggle_chat_default_disable_notification(chat_id, default_disable_notification)
|
3312
|
+
broadcast('@type' => 'toggleChatDefaultDisableNotification',
|
3313
|
+
'chat_id' => chat_id,
|
3314
|
+
'default_disable_notification' => default_disable_notification)
|
3315
|
+
end
|
3316
|
+
|
3317
|
+
# Changes the marked as unread state of a chat.
|
3318
|
+
#
|
3319
|
+
# @param chat_id [Integer] Chat identifier.
|
3320
|
+
# @param is_marked_as_unread [Boolean] New value of is_marked_as_unread.
|
3321
|
+
# @return [TD::Types::Ok]
|
3322
|
+
def toggle_chat_is_marked_as_unread(chat_id, is_marked_as_unread)
|
3323
|
+
broadcast('@type' => 'toggleChatIsMarkedAsUnread',
|
3324
|
+
'chat_id' => chat_id,
|
3325
|
+
'is_marked_as_unread' => is_marked_as_unread)
|
3326
|
+
end
|
3327
|
+
|
3328
|
+
# Changes the pinned state of a chat.
|
3329
|
+
# You can pin up to GetOption("pinned_chat_count_max") non-secret chats and the same number of secret chats.
|
3330
|
+
#
|
3331
|
+
# @param chat_id [Integer] Chat identifier.
|
3332
|
+
# @param is_pinned [Boolean] New value of is_pinned.
|
3333
|
+
# @return [TD::Types::Ok]
|
3334
|
+
def toggle_chat_is_pinned(chat_id, is_pinned)
|
3335
|
+
broadcast('@type' => 'toggleChatIsPinned',
|
3336
|
+
'chat_id' => chat_id,
|
3337
|
+
'is_pinned' => is_pinned)
|
3338
|
+
end
|
3339
|
+
|
3340
|
+
# Toggles whether all members of a supergroup can add new members; requires appropriate administrator rights in the
|
3341
|
+
# supergroup.
|
3342
|
+
#
|
3343
|
+
# @param supergroup_id [Integer] Identifier of the supergroup.
|
3344
|
+
# @param anyone_can_invite [Boolean] New value of anyone_can_invite.
|
3345
|
+
# @return [TD::Types::Ok]
|
3346
|
+
def toggle_supergroup_invites(supergroup_id, anyone_can_invite)
|
3347
|
+
broadcast('@type' => 'toggleSupergroupInvites',
|
3348
|
+
'supergroup_id' => supergroup_id,
|
3349
|
+
'anyone_can_invite' => anyone_can_invite)
|
3350
|
+
end
|
3351
|
+
|
3352
|
+
# Toggles whether the message history of a supergroup is available to new members; requires appropriate administrator
|
3353
|
+
# rights in the supergroup.
|
3354
|
+
#
|
3355
|
+
# @param supergroup_id [Integer] The identifier of the supergroup.
|
3356
|
+
# @param is_all_history_available [Boolean] The new value of is_all_history_available.
|
3357
|
+
# @return [TD::Types::Ok]
|
3358
|
+
def toggle_supergroup_is_all_history_available(supergroup_id, is_all_history_available)
|
3359
|
+
broadcast('@type' => 'toggleSupergroupIsAllHistoryAvailable',
|
3360
|
+
'supergroup_id' => supergroup_id,
|
3361
|
+
'is_all_history_available' => is_all_history_available)
|
3362
|
+
end
|
3363
|
+
|
3364
|
+
# Toggles sender signatures messages sent in a channel; requires appropriate administrator rights in the channel.
|
3365
|
+
#
|
3366
|
+
# @param supergroup_id [Integer] Identifier of the channel.
|
3367
|
+
# @param sign_messages [Boolean] New value of sign_messages.
|
3368
|
+
# @return [TD::Types::Ok]
|
3369
|
+
def toggle_supergroup_sign_messages(supergroup_id, sign_messages)
|
3370
|
+
broadcast('@type' => 'toggleSupergroupSignMessages',
|
3371
|
+
'supergroup_id' => supergroup_id,
|
3372
|
+
'sign_messages' => sign_messages)
|
3373
|
+
end
|
3374
|
+
|
3375
|
+
# Removes a user from the blacklist.
|
3376
|
+
#
|
3377
|
+
# @param user_id [Integer] User identifier.
|
3378
|
+
# @return [TD::Types::Ok]
|
3379
|
+
def unblock_user(user_id)
|
3380
|
+
broadcast('@type' => 'unblockUser',
|
3381
|
+
'user_id' => user_id)
|
3382
|
+
end
|
3383
|
+
|
3384
|
+
# Removes the pinned message from a supergroup or channel; requires appropriate administrator rights in the
|
3385
|
+
# supergroup or channel.
|
3386
|
+
#
|
3387
|
+
# @param supergroup_id [Integer] Identifier of the supergroup or channel.
|
3388
|
+
# @return [TD::Types::Ok]
|
3389
|
+
def unpin_supergroup_message(supergroup_id)
|
3390
|
+
broadcast('@type' => 'unpinSupergroupMessage',
|
3391
|
+
'supergroup_id' => supergroup_id)
|
3392
|
+
end
|
3393
|
+
|
3394
|
+
# Creates a new supergroup from an existing basic group and sends a corresponding
|
3395
|
+
# {TD::Types::MessageContent::UpgradeTo} and {TD::Types::MessageContent::ChatUpgradeFrom}.
|
3396
|
+
# Deactivates the original basic group.
|
3397
|
+
#
|
3398
|
+
# @param chat_id [Integer] Identifier of the chat to upgrade.
|
3399
|
+
# @return [TD::Types::Chat]
|
3400
|
+
def upgrade_basic_group_chat_to_supergroup_chat(chat_id)
|
3401
|
+
broadcast('@type' => 'upgradeBasicGroupChatToSupergroupChat',
|
3402
|
+
'chat_id' => chat_id)
|
3403
|
+
end
|
3404
|
+
|
3405
|
+
# Asynchronously uploads a file to the cloud without sending it in a message.
|
3406
|
+
# {TD::Types::Update::File} will be used to notify about upload progress and successful completion of the upload.
|
3407
|
+
# The file will not have a persistent remote identifier until it will be sent in a message.
|
3408
|
+
#
|
3409
|
+
# @param file [TD::Types::InputFile] File to upload.
|
3410
|
+
# @param file_type [TD::Types::FileType] File type.
|
3411
|
+
# @param priority [Integer] Priority of the upload (1-32).
|
3412
|
+
# The higher the priority, the earlier the file will be uploaded.
|
3413
|
+
# If the priorities of two files are equal, then the first one for which {#upload_file} was called will be uploaded
|
3414
|
+
# first.
|
3415
|
+
# @return [TD::Types::File]
|
3416
|
+
def upload_file(file, file_type, priority = 1)
|
3417
|
+
broadcast('@type' => 'uploadFile',
|
3418
|
+
'file' => file,
|
3419
|
+
'file_type' => file_type,
|
3420
|
+
'priority' => priority)
|
3421
|
+
end
|
3422
|
+
|
3423
|
+
# Uploads a PNG image with a sticker; for bots only
|
3424
|
+
#
|
3425
|
+
# @param user_id [Integer] Sticker file owner.
|
3426
|
+
# @param png_sticker [TD::Types::InputFile] PNG image with the sticker; must be up to 512 kB in size and fit in
|
3427
|
+
# 512x512 square.
|
3428
|
+
# @return [TD::Types::File] the uploaded file.
|
3429
|
+
def upload_sticker_file(user_id, png_sticker)
|
3430
|
+
broadcast('@type' => 'uploadStickerFile',
|
3431
|
+
'user_id' => user_id,
|
3432
|
+
'png_sticker' => png_sticker)
|
3433
|
+
end
|
3434
|
+
|
3435
|
+
# Validates the order information provided by a user and returns the available shipping options for a flexible
|
3436
|
+
# invoice.
|
3437
|
+
#
|
3438
|
+
# @param chat_id [Integer] Chat identifier of the Invoice message.
|
3439
|
+
# @param message_id [Integer] Message identifier.
|
3440
|
+
# @param order_info [TD::Types::OrderInfo] The order information, provided by the user.
|
3441
|
+
# @param allow_save [Boolean] True, if the order information can be saved.
|
3442
|
+
# @return [TD::Types::ValidatedOrderInfo]
|
3443
|
+
def validate_order_info(chat_id, message_id, order_info, allow_save: false)
|
3444
|
+
broadcast('@type' => 'validateOrderInfo',
|
3445
|
+
'chat_id' => chat_id,
|
3446
|
+
'message_id' => message_id,
|
3447
|
+
'order_info' => order_info,
|
3448
|
+
'allow_save' => allow_save)
|
3449
|
+
end
|
3450
|
+
|
3451
|
+
# This method should be called if messages are being viewed by the user.
|
3452
|
+
# Many useful activities depend on whether the messages are currently being viewed or not (e.g., marking messages as
|
3453
|
+
# read, incrementing a view counter, updating a view counter, removing deleted messages in supergroups and channels).
|
3454
|
+
#
|
3455
|
+
# @param chat_id [Integer] Chat identifier.
|
3456
|
+
# @param message_ids [Array<Integer>] The identifiers of the messages being viewed.
|
3457
|
+
# @param force_read [Boolean] True, if messages in closed chats should be marked as read.
|
3458
|
+
# @return [TD::Types::Ok]
|
3459
|
+
def view_messages(chat_id, message_ids, force_read: false)
|
3460
|
+
broadcast('@type' => 'viewMessages',
|
3461
|
+
'chat_id' => chat_id,
|
3462
|
+
'message_ids' => message_ids,
|
3463
|
+
'force_read' => force_read)
|
3464
|
+
end
|
3465
|
+
|
3466
|
+
# Informs the server that some trending sticker sets have been viewed by the user.
|
3467
|
+
#
|
3468
|
+
# @param sticker_set_ids [Array<Integer>] Identifiers of viewed trending sticker sets.
|
3469
|
+
# @return [TD::Types::Ok]
|
3470
|
+
def view_trending_sticker_sets(sticker_set_ids)
|
3471
|
+
broadcast('@type' => 'viewTrendingStickerSets',
|
3472
|
+
'sticker_set_ids' => sticker_set_ids)
|
3473
|
+
end
|
3474
|
+
end
|