From 170b3b11a280a9b26e8f09388dddc3597179cb5a Mon Sep 17 00:00:00 2001 From: Evan Feenstra Date: Tue, 19 May 2020 13:01:25 -0700 Subject: [PATCH] tribe mediaKey --- api/utils/msg.ts | 12 +++++++++--- dist/api/utils/msg.js | 11 +++++++++-- dist/api/utils/msg.js.map | 2 +- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/api/utils/msg.ts b/api/utils/msg.ts index a284665..77a5012 100644 --- a/api/utils/msg.ts +++ b/api/utils/msg.ts @@ -60,12 +60,18 @@ async function encryptTribeBroadcast(full:{[k:string]:any}, contact, isTribe:boo return fillmsg(full, obj) } -function addInMediaKey(full:{[k:string]:any}, contactId){ +function addInMediaKey(full:{[k:string]:any}, contactId, isTribe:boolean){ const m = full && full.message if (!(m && m.mediaKey)) return full if (!(m && m.mediaTerms)) return full if (!(typeof m.mediaKey==='object')) return full - + + if(isTribe) { + if(Object.values(m.mediaKey).length===1) { + const tribeMediaKey = m.mediaTerms.skipSigning?'':Object.values(m.mediaKey)[0] + return fillmsg(full, {mediaKey:tribeMediaKey}) + } + } const mediaKey = m.mediaTerms.skipSigning ? '' : m.mediaKey[contactId+''] return fillmsg(full, {mediaKey}) } @@ -136,7 +142,7 @@ async function personalizeMessage(m,contact,isTribeOwner:boolean){ const msgWithRemoteTxt = addInRemoteText(cloned, contactId, isTribe) const cleanMsg = removeRecipientFromChatMembers(msgWithRemoteTxt, destkey) const cleanerMsg = removeAllNonAdminMembersIfTribe(cleanMsg, destkey) - const msgWithMediaKey = addInMediaKey(cleanerMsg, contactId) + const msgWithMediaKey = addInMediaKey(cleanerMsg, contactId, isTribe) const msgWithMediaToken = await finishTermsAndReceipt(msgWithMediaKey, destkey) const encMsg = await encryptTribeBroadcast(msgWithMediaToken, contact, isTribe, isTribeOwner) return encMsg diff --git a/dist/api/utils/msg.js b/dist/api/utils/msg.js index dd3b616..8d939b0 100644 --- a/dist/api/utils/msg.js +++ b/dist/api/utils/msg.js @@ -71,7 +71,7 @@ function encryptTribeBroadcast(full, contact, isTribe, isTribeOwner) { return fillmsg(full, obj); }); } -function addInMediaKey(full, contactId) { +function addInMediaKey(full, contactId, isTribe) { const m = full && full.message; if (!(m && m.mediaKey)) return full; @@ -79,6 +79,13 @@ function addInMediaKey(full, contactId) { return full; if (!(typeof m.mediaKey === 'object')) return full; + if (isTribe) { + // if just one, send it (for tribe remote_text_map... is there a better way?) + if (Object.values(m.mediaKey).length === 1) { + const tribeMediaKey = m.mediaTerms.skipSigning ? '' : Object.values(m.mediaKey)[0]; + return fillmsg(full, { mediaKey: tribeMediaKey }); + } + } const mediaKey = m.mediaTerms.skipSigning ? '' : m.mediaKey[contactId + '']; return fillmsg(full, { mediaKey }); } @@ -149,7 +156,7 @@ function personalizeMessage(m, contact, isTribeOwner) { const msgWithRemoteTxt = addInRemoteText(cloned, contactId, isTribe); const cleanMsg = removeRecipientFromChatMembers(msgWithRemoteTxt, destkey); const cleanerMsg = removeAllNonAdminMembersIfTribe(cleanMsg, destkey); - const msgWithMediaKey = addInMediaKey(cleanerMsg, contactId); + const msgWithMediaKey = addInMediaKey(cleanerMsg, contactId, isTribe); const msgWithMediaToken = yield finishTermsAndReceipt(msgWithMediaKey, destkey); const encMsg = yield encryptTribeBroadcast(msgWithMediaToken, contact, isTribe, isTribeOwner); return encMsg; diff --git a/dist/api/utils/msg.js.map b/dist/api/utils/msg.js.map index 9cb1b89..bcdedf8 100644 --- a/dist/api/utils/msg.js.map +++ b/dist/api/utils/msg.js.map @@ -1 +1 @@ -{"version":3,"file":"msg.js","sourceRoot":"","sources":["../../../api/utils/msg.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"msg.js","sourceRoot":"","sources":["../../../api/utils/msg.ts"],"names":[],"mappings":"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"} \ No newline at end of file