Reregister uploaded by URL WEBP stickers.
This commit is contained in:
parent
0b502964b3
commit
862abd1e84
@ -8400,7 +8400,20 @@ void StickersManager::on_uploaded_sticker_file(FileId file_id, bool is_url,
|
|||||||
if (parsed_document.type != expected_document_type) {
|
if (parsed_document.type != expected_document_type) {
|
||||||
if (is_url && expected_document_type == Document::Type::General &&
|
if (is_url && expected_document_type == Document::Type::General &&
|
||||||
parsed_document.type == Document::Type::Sticker) {
|
parsed_document.type == Document::Type::Sticker) {
|
||||||
// nothing to do for uploaded by a URL WEBP sticker
|
// uploaded by a URL WEBP sticker
|
||||||
|
// re-register as document
|
||||||
|
FileView sticker_file_view = td_->file_manager_->get_file_view(parsed_document.file_id);
|
||||||
|
CHECK(sticker_file_view.has_remote_location());
|
||||||
|
auto remote_location = sticker_file_view.main_remote_location();
|
||||||
|
CHECK(remote_location.is_common());
|
||||||
|
remote_location.file_type_ = FileType::Document;
|
||||||
|
auto document_file_id =
|
||||||
|
td_->file_manager_->register_remote(std::move(remote_location), FileLocationSource::FromServer, DialogId(),
|
||||||
|
sticker_file_view.size(), 0, sticker_file_view.remote_name());
|
||||||
|
CHECK(document_file_id.is_valid());
|
||||||
|
td_->documents_manager_->create_document(document_file_id, string(), PhotoSize(), "sticker.webp", "image/webp",
|
||||||
|
false);
|
||||||
|
td_->documents_manager_->merge_documents(document_file_id, file_id);
|
||||||
return promise.set_value(Unit());
|
return promise.set_value(Unit());
|
||||||
}
|
}
|
||||||
return promise.set_error(Status::Error(400, "Wrong file type"));
|
return promise.set_error(Status::Error(400, "Wrong file type"));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user