Include story=true when deleting your story for everyone
This commit is contained in:
parent
ca6c992528
commit
5dea03f713
4 changed files with 26 additions and 5 deletions
|
@ -34,6 +34,7 @@ import type { MessageModel } from '../../models/messages';
|
|||
import { SendMessageProtoError } from '../../textsecure/Errors';
|
||||
import { strictAssert } from '../../util/assert';
|
||||
import type { LoggerType } from '../../types/Logging';
|
||||
import { isStory } from '../../messages/helpers';
|
||||
|
||||
export async function sendDeleteForEveryone(
|
||||
conversation: ConversationModel,
|
||||
|
@ -59,6 +60,7 @@ export async function sendDeleteForEveryone(
|
|||
log.error(`Failed to fetch message ${messageId}. Failing job.`);
|
||||
return;
|
||||
}
|
||||
const story = isStory(message.attributes);
|
||||
|
||||
if (!shouldContinue) {
|
||||
log.info('Ran out of time. Giving up on sending delete for everyone');
|
||||
|
@ -105,7 +107,9 @@ export async function sendDeleteForEveryone(
|
|||
profileKey = await ourProfileKeyService.get();
|
||||
}
|
||||
|
||||
const sendOptions = await getSendOptions(conversation.attributes);
|
||||
const sendOptions = await getSendOptions(conversation.attributes, {
|
||||
story,
|
||||
});
|
||||
|
||||
try {
|
||||
if (isMe(conversation.attributes)) {
|
||||
|
@ -188,6 +192,7 @@ export async function sendDeleteForEveryone(
|
|||
profileKey,
|
||||
options: sendOptions,
|
||||
urgent: true,
|
||||
story,
|
||||
includePniSignatureMessage: true,
|
||||
}),
|
||||
sendType,
|
||||
|
@ -226,6 +231,7 @@ export async function sendDeleteForEveryone(
|
|||
sendOptions,
|
||||
sendTarget: conversation.toSenderKeyTarget(),
|
||||
sendType: 'deleteForEveryone',
|
||||
story,
|
||||
urgent: true,
|
||||
}),
|
||||
sendType,
|
||||
|
|
|
@ -1161,6 +1161,7 @@ export default class MessageSender {
|
|||
groupId,
|
||||
options,
|
||||
urgent,
|
||||
story,
|
||||
includePniSignatureMessage,
|
||||
}: Readonly<{
|
||||
messageOptions: MessageOptionsType;
|
||||
|
@ -1168,6 +1169,7 @@ export default class MessageSender {
|
|||
groupId: string | undefined;
|
||||
options?: SendOptionsType;
|
||||
urgent: boolean;
|
||||
story?: boolean;
|
||||
includePniSignatureMessage?: boolean;
|
||||
}>): Promise<CallbackResultType> {
|
||||
const proto = await this.getContentMessage({
|
||||
|
@ -1191,6 +1193,7 @@ export default class MessageSender {
|
|||
recipients: messageOptions.recipients || [],
|
||||
timestamp: messageOptions.timestamp,
|
||||
urgent,
|
||||
story,
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -1346,6 +1349,7 @@ export default class MessageSender {
|
|||
reaction,
|
||||
sticker,
|
||||
storyContext,
|
||||
story,
|
||||
timestamp,
|
||||
urgent,
|
||||
includePniSignatureMessage,
|
||||
|
@ -1365,6 +1369,7 @@ export default class MessageSender {
|
|||
reaction?: ReactionType;
|
||||
sticker?: StickerWithHydratedData;
|
||||
storyContext?: StoryContextType;
|
||||
story?: boolean;
|
||||
timestamp: number;
|
||||
urgent: boolean;
|
||||
includePniSignatureMessage?: boolean;
|
||||
|
@ -1388,6 +1393,7 @@ export default class MessageSender {
|
|||
contentHint,
|
||||
groupId,
|
||||
options,
|
||||
story,
|
||||
urgent,
|
||||
includePniSignatureMessage,
|
||||
});
|
||||
|
|
|
@ -12,7 +12,10 @@ import {
|
|||
conversationQueueJobEnum,
|
||||
} from '../jobs/conversationJobQueue';
|
||||
import { deleteForEveryone } from './deleteForEveryone';
|
||||
import { getConversationIdForLogging } from './idForLogging';
|
||||
import {
|
||||
getConversationIdForLogging,
|
||||
getMessageIdForLogging,
|
||||
} from './idForLogging';
|
||||
import { getMessageById } from '../messages/getMessageById';
|
||||
import { getRecipientConversationIds } from './getRecipientConversationIds';
|
||||
import { getRecipients } from './getRecipients';
|
||||
|
@ -38,6 +41,7 @@ export async function sendDeleteForEveryoneMessage(
|
|||
throw new Error('sendDeleteForEveryoneMessage: Cannot find message!');
|
||||
}
|
||||
const messageModel = window.MessageController.register(messageId, message);
|
||||
const idForLogging = getMessageIdForLogging(messageModel.attributes);
|
||||
|
||||
const timestamp = Date.now();
|
||||
const maxDuration = deleteForEveryoneDuration || THREE_HOURS;
|
||||
|
@ -62,9 +66,12 @@ export async function sendDeleteForEveryoneMessage(
|
|||
targetTimestamp,
|
||||
};
|
||||
await conversationJobQueue.add(jobData, async jobToInsert => {
|
||||
const idForLogging = getConversationIdForLogging(conversationAttributes);
|
||||
const conversationIdForLogging = getConversationIdForLogging(
|
||||
conversationAttributes
|
||||
);
|
||||
log.info(
|
||||
`sendDeleteForEveryoneMessage: saving message ${idForLogging} and job ${jobToInsert.id}`
|
||||
`sendDeleteForEveryoneMessage: Deleting message ${idForLogging} ` +
|
||||
`in conversation ${conversationIdForLogging} with job ${jobToInsert.id}`
|
||||
);
|
||||
await window.Signal.Data.saveMessage(messageModel.attributes, {
|
||||
jobToInsert,
|
||||
|
@ -73,7 +80,7 @@ export async function sendDeleteForEveryoneMessage(
|
|||
});
|
||||
} catch (error) {
|
||||
log.error(
|
||||
'sendDeleteForEveryoneMessage: Failed to queue delete for everyone',
|
||||
`sendDeleteForEveryoneMessage: Failed to queue delete for everyone for message ${idForLogging}`,
|
||||
Errors.toLogFormat(error)
|
||||
);
|
||||
throw error;
|
||||
|
|
|
@ -167,6 +167,7 @@ export async function sendStoryMessage(
|
|||
sent_at: timestamp,
|
||||
source: window.textsecure.storage.user.getNumber(),
|
||||
sourceUuid: window.textsecure.storage.user.getUuid()?.toString(),
|
||||
sourceDevice: window.textsecure.storage.user.getDeviceId(),
|
||||
storyDistributionListId: distributionList.id,
|
||||
timestamp,
|
||||
type: 'story',
|
||||
|
@ -249,6 +250,7 @@ export async function sendStoryMessage(
|
|||
sent_at: groupTimestamp,
|
||||
source: window.textsecure.storage.user.getNumber(),
|
||||
sourceUuid: window.textsecure.storage.user.getUuid()?.toString(),
|
||||
sourceDevice: window.textsecure.storage.user.getDeviceId(),
|
||||
timestamp: groupTimestamp,
|
||||
type: 'story',
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue