This commit is contained in:
Neeraj Gupta
2025-07-04 09:37:17 +05:30
parent 0f944b1796
commit 6340d9f646
2 changed files with 40 additions and 40 deletions

View File

@@ -707,7 +707,6 @@ class FileUploader {
await getMetadata(mediaUploadData, exifTime, file);
final Map<String, dynamic> pubMetadata =
buildPublicMagicData(mediaUploadData, exifTime, file.rAsset);
MetadataRequest? pubMetadataRequest;
final encryptedMetadataResult = await CryptoUtil.encryptChaCha(
utf8.encode(jsonEncode(metadata)),
@@ -719,13 +718,12 @@ class FileUploader {
final metadataDecryptionHeader =
CryptoUtil.bin2base64(encryptedMetadataResult.header!);
if (pubMetadata.isNotEmpty) {
pubMetadataRequest = await getPubMetadataRequest(
file,
pubMetadata,
fileEncryptResult.key!,
);
}
final MetadataRequest? pubMetadataRequest = await getPubMetadataRequest(
file,
pubMetadata,
fileEncryptResult.key!,
);
final fileDecryptionHeader =
CryptoUtil.bin2base64(fileEncryptResult.header!);
final thumbnailDecryptionHeader =

View File

@@ -235,44 +235,46 @@ Future<Map<String, dynamic>> getMetadata(
}
Map<String, dynamic> buildPublicMagicData(
MediaUploadData mediaUploadData,
ParsedExifDateTime? exifTime,
RemoteAsset? rAsset,
) {
final Map<String, dynamic> pubMetadata = {};
if ((mediaUploadData.height ?? 0) != 0 &&
(mediaUploadData.width ?? 0) != 0) {
pubMetadata[heightKey] = mediaUploadData.height;
pubMetadata[widthKey] = mediaUploadData.width;
}
pubMetadata[mediaTypeKey] = mediaUploadData.isPanorama == true ? 1 : 0;
if (mediaUploadData.motionPhotoStartIndex != null) {
pubMetadata[motionVideoIndexKey] = mediaUploadData.motionPhotoStartIndex;
}
if (mediaUploadData.thumbnail == null) {
pubMetadata[noThumbKey] = true;
}
if (exifTime != null) {
if (exifTime.dateTime != null) {
pubMetadata[dateTimeKey] = exifTime.dateTime;
}
if (exifTime.offsetTime != null) {
pubMetadata[offsetTimeKey] = exifTime.offsetTime;
}
}
final Map<String, dynamic> jsonToUpdate =
rAsset?.publicMetadata?.data ?? <String, dynamic>{};
pubMetadata.forEach((key, value) {
jsonToUpdate[key] = value;
});
return jsonToUpdate;
MediaUploadData mediaUploadData,
ParsedExifDateTime? exifTime,
RemoteAsset? rAsset,
) {
final Map<String, dynamic> pubMetadata = {};
if ((mediaUploadData.height ?? 0) != 0 && (mediaUploadData.width ?? 0) != 0) {
pubMetadata[heightKey] = mediaUploadData.height;
pubMetadata[widthKey] = mediaUploadData.width;
}
pubMetadata[mediaTypeKey] = mediaUploadData.isPanorama == true ? 1 : 0;
if (mediaUploadData.motionPhotoStartIndex != null) {
pubMetadata[motionVideoIndexKey] = mediaUploadData.motionPhotoStartIndex;
}
if (mediaUploadData.thumbnail == null) {
pubMetadata[noThumbKey] = true;
}
if (exifTime != null) {
if (exifTime.dateTime != null) {
pubMetadata[dateTimeKey] = exifTime.dateTime;
}
if (exifTime.offsetTime != null) {
pubMetadata[offsetTimeKey] = exifTime.offsetTime;
}
}
final Map<String, dynamic> jsonToUpdate =
rAsset?.publicMetadata?.data ?? <String, dynamic>{};
pubMetadata.forEach((key, value) {
jsonToUpdate[key] = value;
});
return jsonToUpdate;
}
Future<MetadataRequest> getPubMetadataRequest(
Future<MetadataRequest?> getPubMetadataRequest(
EnteFile file,
Map<String, dynamic> jsonToUpdate,
Uint8List fileKey,
) async {
if (jsonToUpdate.isEmpty) {
return null;
}
final int currentVersion = (file.rAsset?.publicMetadata?.version ?? 0);
final encryptedMMd = await CryptoUtil.encryptChaCha(
utf8.encode(jsonEncode(jsonToUpdate)),