Skip to content

Commit 0f6612d

Browse files
committed
Upload business album covers.
1 parent 76c0705 commit 0f6612d

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

td/telegram/BusinessConnectionManager.cpp

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include "td/telegram/UserId.h"
3434
#include "td/telegram/UserManager.h"
3535

36+
#include "td/utils/algorithm.h"
3637
#include "td/utils/buffer.h"
3738
#include "td/utils/format.h"
3839
#include "td/utils/logging.h"
@@ -1138,6 +1139,36 @@ void BusinessConnectionManager::send_message_album(
11381139
request.upload_results_.resize(message_contents.size());
11391140
request.promise_ = std::move(promise);
11401141

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+
11411172
for (size_t media_pos = 0; media_pos < message_contents.size(); media_pos++) {
11421173
auto &message_content = message_contents[media_pos];
11431174
auto message =

td/telegram/BusinessConnectionManager.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,11 @@ class BusinessConnectionManager final : public Actor {
185185

186186
int64 generate_new_media_album_id();
187187

188+
void do_send_message_album(int64 request_id, BusinessConnectionId business_connection_id, DialogId dialog_id,
189+
MessageInputReplyTo &&input_reply_to, bool disable_notification, bool protect_content,
190+
MessageEffectId effect_id, vector<InputMessageContent> &&message_contents,
191+
Promise<td_api::object_ptr<td_api::businessMessages>> &&promise);
192+
188193
void on_upload_message_album_media(int64 request_id, size_t media_pos, Result<UploadMediaResult> &&result);
189194

190195
void process_sent_business_message_album(telegram_api::object_ptr<telegram_api::Updates> &&updates_ptr,

0 commit comments

Comments
 (0)