Page MenuHomePhabricator

D13415.id44389.diff
No OneTemporary

D13415.id44389.diff

diff --git a/lib/shared/dm-ops/send-multimedia-message-spec.js b/lib/shared/dm-ops/send-multimedia-message-spec.js
--- a/lib/shared/dm-ops/send-multimedia-message-spec.js
+++ b/lib/shared/dm-ops/send-multimedia-message-spec.js
@@ -4,10 +4,18 @@
DMOperationSpec,
ProcessDMOperationUtilities,
} from './dm-op-spec.js';
-import type { DMSendMultimediaMessageOperation } from '../../types/dm-ops.js';
+import {
+ encryptedMediaBlobURI,
+ encryptedVideoThumbnailBlobURI,
+} from '../../media/media-utils.js';
+import type {
+ DMSendMultimediaMessageOperation,
+ DMBlobOperation,
+} from '../../types/dm-ops.js';
import { messageTypes } from '../../types/message-types-enum.js';
import type { MediaMessageData } from '../../types/messages/media.js';
import type { ClientUpdateInfo } from '../../types/update-types.js';
+import { blobHashFromBlobServiceURI } from '../../utils/blob-service.js';
import { rawMessageInfoFromMessageData } from '../message-utils.js';
function createMessageDataFromDMOperation(
@@ -23,6 +31,34 @@
};
}
+function getBlobOpsFromOperation(
+ dmOperation: DMSendMultimediaMessageOperation,
+): Array<DMBlobOperation> {
+ const ops: Array<DMBlobOperation> = [];
+
+ for (const media of dmOperation.media) {
+ if (media.type !== 'encrypted_photo' && media.type !== 'encrypted_video') {
+ continue;
+ }
+ const blobURI = encryptedMediaBlobURI(media);
+ ops.push({
+ type: 'establish_holder',
+ blobHash: blobHashFromBlobServiceURI(blobURI),
+ dmOpType: 'inbound_only',
+ });
+ if (media.type === 'encrypted_video') {
+ const thumbnailBlobURI = encryptedVideoThumbnailBlobURI(media);
+ ops.push({
+ type: 'establish_holder',
+ blobHash: blobHashFromBlobServiceURI(thumbnailBlobURI),
+ dmOpType: 'inbound_only',
+ });
+ }
+ }
+
+ return ops;
+}
+
const sendMultimediaMessageSpec: DMOperationSpec<DMSendMultimediaMessageOperation> =
Object.freeze({
notificationsCreationData: async (
@@ -40,10 +76,11 @@
rawMessageInfoFromMessageData(messageData, messageID),
];
const updateInfos: Array<ClientUpdateInfo> = [];
+ const blobOps = getBlobOpsFromOperation(dmOperation);
return {
rawMessageInfos,
updateInfos,
- blobOps: [],
+ blobOps,
};
},
canBeProcessed: async (

File Metadata

Mime Type
text/plain
Expires
Sat, Sep 21, 1:00 PM (14 h, 15 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2160959
Default Alt Text
D13415.id44389.diff (2 KB)

Event Timeline