diff --git a/td/telegram/cli.cpp b/td/telegram/cli.cpp index 476373f6b..cc5df8b2b 100644 --- a/td/telegram/cli.cpp +++ b/td/telegram/cli.cpp @@ -805,6 +805,18 @@ class CliClient final : public Actor { arg.message_id = as_message_id(args); } + struct MessageThreadId { + int64 message_thread_id = 0; + + operator int64() const { + return message_thread_id; + } + }; + + void get_args(string &args, MessageThreadId &arg) const { + arg.message_thread_id = as_message_thread_id(args); + } + struct UserId { int64 user_id = 0; @@ -1818,7 +1830,7 @@ class CliClient final : public Actor { void send_message(int64 chat_id, td_api::object_ptr &&input_message_content, bool disable_notification = false, bool from_background = false, int64 reply_to_message_id = 0) { auto id = send_request(td_api::make_object( - chat_id, as_message_thread_id(message_thread_id_), reply_to_message_id, + chat_id, message_thread_id_, reply_to_message_id, td_api::make_object(disable_notification, from_background, true, true, as_message_scheduling_state(schedule_date_)), nullptr, std::move(input_message_content))); @@ -2289,11 +2301,11 @@ class CliClient final : public Actor { 0, 100, false)); } else if (op == "replies") { ChatId chat_id; - string message_thread_id; + MessageThreadId message_thread_id; string filter; get_args(args, chat_id, message_thread_id, filter); send_request(td_api::make_object( - chat_id, "", nullptr, 0, 0, 100, as_search_messages_filter(filter), as_message_thread_id(message_thread_id))); + chat_id, "", nullptr, 0, 0, 100, as_search_messages_filter(filter), message_thread_id)); } else if (op == "spvf") { search_chat_id_ = as_chat_id(args); send_request(td_api::make_object(search_chat_id_, "", nullptr, 0, 0, 100, @@ -2399,10 +2411,10 @@ class CliClient final : public Actor { ChatId chat_id; MessageId message_id; string filter; - string message_thread_id; + MessageThreadId message_thread_id; get_args(args, chat_id, message_id, filter, message_thread_id); send_request(td_api::make_object( - chat_id, message_id, as_search_messages_filter(filter), as_message_thread_id(message_thread_id))); + chat_id, message_id, as_search_messages_filter(filter), message_thread_id)); } else if (op == "gup" || op == "gupp") { UserId user_id; int32 offset; @@ -3133,11 +3145,11 @@ class CliClient final : public Actor { ChatId chat_id; ChatId from_chat_id; string message_ids; - string message_thread_id; + MessageThreadId message_thread_id; get_args(args, chat_id, from_chat_id, message_ids, message_thread_id); send_request(td_api::make_object( - chat_id, as_message_thread_id(message_thread_id), from_chat_id, as_message_ids(message_ids), - default_message_send_options(), op[0] == 'c', rand_bool(), op.back() == 'p')); + chat_id, message_thread_id, from_chat_id, as_message_ids(message_ids), default_message_send_options(), + op[0] == 'c', rand_bool(), op.back() == 'p')); } else if (op == "resend") { ChatId chat_id; string message_ids; @@ -3555,7 +3567,7 @@ class CliClient final : public Actor { if (op == "scdm" || op == "scdmt") { ChatId chat_id; - string message_thread_id; + MessageThreadId message_thread_id; string reply_to_message_id; string message; if (op == "scdmt") { @@ -3572,8 +3584,8 @@ class CliClient final : public Actor { td_api::make_object(as_formatted_text(message, std::move(entities)), true, false)); } - send_request(td_api::make_object(chat_id, as_message_thread_id(message_thread_id), - std::move(draft_message))); + send_request( + td_api::make_object(chat_id, message_thread_id, std::move(draft_message))); } else if (op == "cadm") { send_request(td_api::make_object()); } else if (op == "tchpc") { @@ -3637,22 +3649,20 @@ class CliClient final : public Actor { UserId bot_user_id; string url; MessageId reply_to_message_id; - string message_thread_id; + MessageThreadId message_thread_id; get_args(args, chat_id, bot_user_id, url, reply_to_message_id, message_thread_id); send_request(td_api::make_object(chat_id, bot_user_id, url, as_theme_parameters(), "android", - reply_to_message_id, - as_message_thread_id(message_thread_id))); + reply_to_message_id, message_thread_id)); } else if (op == "cwa") { int64 launch_id; get_args(args, launch_id); send_request(td_api::make_object(launch_id)); } else if (op == "sca") { ChatId chat_id; - string message_thread_id; + MessageThreadId message_thread_id; string action; get_args(args, chat_id, message_thread_id, action); - send_request(td_api::make_object(chat_id, as_message_thread_id(message_thread_id), - as_chat_action(action))); + send_request(td_api::make_object(chat_id, message_thread_id, as_chat_action(action))); } else if (op == "smt" || op == "smtp" || op == "smtf" || op == "smtpf") { ChatId chat_id; get_args(args, chat_id); @@ -3679,7 +3689,7 @@ class CliClient final : public Actor { } else if (op == "ssd") { schedule_date_ = std::move(args); } else if (op == "smti") { - message_thread_id_ = std::move(args); + get_args(args, message_thread_id_); } else if (op == "gcams") { ChatId chat_id; get_args(args, chat_id); @@ -3740,7 +3750,7 @@ class CliClient final : public Actor { return content; }); send_request(td_api::make_object( - chat_id, as_message_thread_id(message_thread_id_), reply_to_message_id, default_message_send_options(), + chat_id, message_thread_id_, reply_to_message_id, default_message_send_options(), std::move(input_message_contents), op == "smapp" || op == "smaprp")); } else if (op == "smad" || op == "smadp") { ChatId chat_id; @@ -3750,7 +3760,7 @@ class CliClient final : public Actor { td_api::make_object(as_input_file(document), nullptr, true, as_caption("")); return content; }); - send_request(td_api::make_object(chat_id, as_message_thread_id(message_thread_id_), 0, + send_request(td_api::make_object(chat_id, message_thread_id_, 0, default_message_send_options(), std::move(input_message_contents), op.back() == 'p')); } else if (op == "gmft") { @@ -3885,8 +3895,7 @@ class CliClient final : public Actor { string result_id; get_args(args, chat_id, query_id, result_id); send_request(td_api::make_object( - chat_id, as_message_thread_id(message_thread_id_), 0, default_message_send_options(), query_id, result_id, - op == "siqrh")); + chat_id, message_thread_id_, 0, default_message_send_options(), query_id, result_id, op == "siqrh")); } else if (op == "gcqa") { ChatId chat_id; MessageId message_id; @@ -4740,14 +4749,14 @@ class CliClient final : public Actor { send_request(td_api::make_object(hashtag)); } else if (op == "view" || op == "viewt") { ChatId chat_id; - string message_thread_id; + MessageThreadId message_thread_id; string message_ids; get_args(args, chat_id, message_ids); if (op == "viewt") { get_args(message_ids, message_thread_id, message_ids); } - send_request(td_api::make_object(chat_id, as_message_thread_id(message_thread_id), - as_message_ids(message_ids), true)); + send_request( + td_api::make_object(chat_id, message_thread_id, as_message_ids(message_ids), true)); } else if (op == "omc") { ChatId chat_id; MessageId message_id; @@ -4769,14 +4778,14 @@ class CliClient final : public Actor { send_request(td_api::make_object(link, op == "gelw")); } else if (op == "racm") { ChatId chat_id; - string message_thread_id; + MessageThreadId message_thread_id; get_args(args, chat_id, message_thread_id); - send_request(td_api::make_object(chat_id, as_message_thread_id(message_thread_id))); + send_request(td_api::make_object(chat_id, message_thread_id)); } else if (op == "racr") { ChatId chat_id; - string message_thread_id; + MessageThreadId message_thread_id; get_args(args, chat_id, message_thread_id); - send_request(td_api::make_object(chat_id, as_message_thread_id(message_thread_id))); + send_request(td_api::make_object(chat_id, message_thread_id)); } else if (op == "tre") { send_request(td_api::make_object( args.empty() ? nullptr : td_api::make_object(-1, args))); @@ -5179,7 +5188,7 @@ class CliClient final : public Actor { int64 my_id_ = 0; td_api::object_ptr authorization_state_; string schedule_date_; - string message_thread_id_; + MessageThreadId message_thread_id_; int64 opened_chat_id_ = 0; ConcurrentScheduler *scheduler_{nullptr};