From b9b35ebe0a8ecfc7406c63935841cf11a898bbaa Mon Sep 17 00:00:00 2001 From: levlam Date: Thu, 8 Mar 2018 23:12:31 +0300 Subject: [PATCH] Better suggeste_name for thumbnails and profile photos. GitOrigin-RevId: 4313c9677fcdc07131d19be36ba66fdb137558df --- td/telegram/DocumentsManager.cpp | 3 +-- td/telegram/Photo.cpp | 15 +++++++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/td/telegram/DocumentsManager.cpp b/td/telegram/DocumentsManager.cpp index 14f77faa..f39ade91 100644 --- a/td/telegram/DocumentsManager.cpp +++ b/td/telegram/DocumentsManager.cpp @@ -35,7 +35,6 @@ #include "td/utils/StringBuilder.h" #include "td/utils/utf8.h" -#include #include namespace td { @@ -279,7 +278,7 @@ std::pair DocumentsManager::on_get_docum auto suggested_file_name = file_name; if (suggested_file_name.empty()) { - suggested_file_name = to_string(std::abs(id)); + suggested_file_name = to_string(static_cast(id)); auto extension = MimeType::to_extension(mime_type, default_extension); if (!extension.empty()) { suggested_file_name += '.'; diff --git a/td/telegram/Photo.cpp b/td/telegram/Photo.cpp index 0983eede..02a794f3 100644 --- a/td/telegram/Photo.cpp +++ b/td/telegram/Photo.cpp @@ -20,7 +20,6 @@ #include "td/utils/Random.h" #include -#include #include namespace td { @@ -92,9 +91,15 @@ static FileId register_photo(FileManager *file_manager, FileType file_type, int6 LOG(DEBUG) << "Receive photo of type " << static_cast(file_type) << " in [" << dc_id << "," << volume_id << "," << local_id << "]. Id: (" << id << ", " << access_hash << ")"; + auto suggested_name = [&] { + if (id) { + return PSTRING() << static_cast(id) << ".jpg"; + } + return PSTRING() << static_cast(volume_id) << "_" << static_cast(local_id) << ".jpg"; + }(); return file_manager->register_remote( FullRemoteFileLocation(file_type, id, access_hash, local_id, volume_id, secret, dc_id), - FileLocationSource::FromServer, owner_dialog_id, file_size, 0, to_string(std::abs(id ? id : local_id)) + ".jpg"); + FileLocationSource::FromServer, owner_dialog_id, file_size, 0, std::move(suggested_name)); } ProfilePhoto get_profile_photo(FileManager *file_manager, @@ -223,7 +228,8 @@ PhotoSize get_thumbnail_photo_size(FileManager *file_manager, BufferSlice bytes, auto secret = 0; res.file_id = file_manager->register_remote( FullRemoteFileLocation(FileType::EncryptedThumbnail, 0, 0, local_id, volume_id, secret, dc_id), - FileLocationSource::FromServer, owner_dialog_id, res.size, 0, to_string(std::abs(local_id)) + ".jpg"); + FileLocationSource::FromServer, owner_dialog_id, res.size, 0, + PSTRING() << static_cast(volume_id) << "_" << static_cast(local_id) << ".jpg"); file_manager->set_content(res.file_id, std::move(bytes)); return res; @@ -402,7 +408,8 @@ Photo get_photo(FileManager *file_manager, tl_object_ptrdc_id_)); FileId file_id = file_manager->register_remote( FullRemoteFileLocation(FileType::Encrypted, file->id_, file->access_hash_, DcId::internal(file->dc_id_)), - FileLocationSource::FromServer, owner_dialog_id, photo->size_, 0, to_string(std::abs(file->id_)) + ".jpg"); + FileLocationSource::FromServer, owner_dialog_id, photo->size_, 0, + PSTRING() << static_cast(file->id_) << ".jpg"); file_manager->set_encryption_key(file_id, FileEncryptionKey{photo->key_.as_slice(), photo->iv_.as_slice()}); Photo res;