@@ -364,6 +364,10 @@ class SendWebViewResultMessageQuery final : public Td::ResultHandler {
364
364
InlineQueriesManager::InlineQueriesManager (Td *td, ActorShared<> parent) : td_(td), parent_(std::move(parent)) {
365
365
drop_inline_query_result_timeout_.set_callback (on_drop_inline_query_result_timeout_callback);
366
366
drop_inline_query_result_timeout_.set_callback_data (static_cast <void *>(this ));
367
+
368
+ drop_inline_query_message_timeout_.set_callback (on_drop_inline_query_message_timeout_callback);
369
+ drop_inline_query_message_timeout_.set_callback_data (static_cast <void *>(this ));
370
+
367
371
next_inline_query_time_ = Time::now ();
368
372
}
369
373
@@ -393,13 +397,34 @@ void InlineQueriesManager::on_drop_inline_query_result_timeout(int64 query_hash)
393
397
if (it->second .pending_request_count == 0 ) {
394
398
if (it->second .results != nullptr ) {
395
399
auto query_id = it->second .results ->inline_query_id_ ;
396
- inline_message_contents_.erase (query_id);
397
- query_id_to_bot_user_id_.erase (query_id);
400
+ if (query_id) {
401
+ drop_inline_query_message_timeout_.set_timeout_in (query_id, 3600 );
402
+ }
398
403
}
399
404
inline_query_results_.erase (it);
400
405
}
401
406
}
402
407
408
+ void InlineQueriesManager::on_drop_inline_query_message_timeout_callback (void *inline_queries_manager_ptr,
409
+ int64 query_id) {
410
+ if (G ()->close_flag ()) {
411
+ return ;
412
+ }
413
+
414
+ auto inline_queries_manager = static_cast <InlineQueriesManager *>(inline_queries_manager_ptr);
415
+ send_closure_later (inline_queries_manager->actor_id (inline_queries_manager),
416
+ &InlineQueriesManager::on_drop_inline_query_message_timeout, query_id);
417
+ }
418
+
419
+ void InlineQueriesManager::on_drop_inline_query_message_timeout (int64 query_id) {
420
+ if (G ()->close_flag ()) {
421
+ return ;
422
+ }
423
+
424
+ inline_message_contents_.erase (query_id);
425
+ query_id_to_bot_user_id_.erase (query_id);
426
+ }
427
+
403
428
void InlineQueriesManager::after_get_difference () {
404
429
if (td_->auth_manager_ ->is_bot ()) {
405
430
return ;
0 commit comments