|
33 | 33 | #include "td/telegram/UserId.h" |
34 | 34 | #include "td/telegram/UserManager.h" |
35 | 35 |
|
| 36 | +#include "td/utils/algorithm.h" |
36 | 37 | #include "td/utils/buffer.h" |
37 | 38 | #include "td/utils/format.h" |
38 | 39 | #include "td/utils/logging.h" |
@@ -1138,6 +1139,36 @@ void BusinessConnectionManager::send_message_album( |
1138 | 1139 | request.upload_results_.resize(message_contents.size()); |
1139 | 1140 | request.promise_ = std::move(promise); |
1140 | 1141 |
|
| 1142 | + do_send_message_album(request_id, business_connection_id, dialog_id, std::move(input_reply_to), disable_notification, |
| 1143 | + protect_content, effect_id, std::move(message_contents), std::move(promise)); |
| 1144 | +} |
| 1145 | + |
| 1146 | +void BusinessConnectionManager::do_send_message_album(int64 request_id, BusinessConnectionId business_connection_id, |
| 1147 | + DialogId dialog_id, MessageInputReplyTo &&input_reply_to, |
| 1148 | + bool disable_notification, bool protect_content, |
| 1149 | + MessageEffectId effect_id, |
| 1150 | + vector<InputMessageContent> &&message_contents, |
| 1151 | + Promise<td_api::object_ptr<td_api::businessMessages>> &&promise) { |
| 1152 | + vector<const Photo *> covers; |
| 1153 | + for (auto &content : message_contents) { |
| 1154 | + append(covers, get_message_content_need_to_upload_covers(td_, content.content.get())); |
| 1155 | + } |
| 1156 | + if (!covers.empty()) { |
| 1157 | + return td_->message_query_manager_->upload_message_covers( |
| 1158 | + business_connection_id, dialog_id, std::move(covers), |
| 1159 | + PromiseCreator::lambda([actor_id = actor_id(this), request_id, business_connection_id, dialog_id, |
| 1160 | + input_reply_to = std::move(input_reply_to), disable_notification, protect_content, |
| 1161 | + effect_id, message_contents = std::move(message_contents), |
| 1162 | + promise = std::move(promise)](Result<Unit> result) mutable { |
| 1163 | + if (result.is_error()) { |
| 1164 | + return promise.set_error(result.move_as_error()); |
| 1165 | + } |
| 1166 | + send_closure(actor_id, &BusinessConnectionManager::do_send_message_album, request_id, business_connection_id, |
| 1167 | + dialog_id, std::move(input_reply_to), disable_notification, protect_content, effect_id, |
| 1168 | + std::move(message_contents), std::move(promise)); |
| 1169 | + })); |
| 1170 | + } |
| 1171 | + |
1141 | 1172 | for (size_t media_pos = 0; media_pos < message_contents.size(); media_pos++) { |
1142 | 1173 | auto &message_content = message_contents[media_pos]; |
1143 | 1174 | auto message = |
|
0 commit comments