Remove 10-edit limit for note to self
This commit is contained in:
parent
f3aae86796
commit
d42df4b201
3 changed files with 26 additions and 25 deletions
|
@ -5,38 +5,27 @@ import type { ReadonlyMessageAttributesType } from '../model-types.d';
|
||||||
import { DAY } from './durations';
|
import { DAY } from './durations';
|
||||||
import { isMoreRecentThan } from './timestamp';
|
import { isMoreRecentThan } from './timestamp';
|
||||||
import { isOutgoing } from '../messages/helpers';
|
import { isOutgoing } from '../messages/helpers';
|
||||||
|
import { isMessageNoteToSelf } from './isMessageNoteToSelf';
|
||||||
|
|
||||||
export const MESSAGE_MAX_EDIT_COUNT = 10;
|
export const MESSAGE_MAX_EDIT_COUNT = 10;
|
||||||
|
|
||||||
export function canEditMessage(
|
export function canEditMessage(
|
||||||
message: ReadonlyMessageAttributesType
|
message: ReadonlyMessageAttributesType
|
||||||
): boolean {
|
): boolean {
|
||||||
if (message.sms) {
|
return (
|
||||||
return false;
|
!message.sms &&
|
||||||
}
|
|
||||||
|
|
||||||
const result =
|
|
||||||
!message.deletedForEveryone &&
|
!message.deletedForEveryone &&
|
||||||
isOutgoing(message) &&
|
isOutgoing(message) &&
|
||||||
isMoreRecentThan(message.sent_at, DAY) &&
|
(isMoreRecentThan(message.sent_at, DAY) || isMessageNoteToSelf(message)) &&
|
||||||
Boolean(message.body);
|
Boolean(message.body)
|
||||||
|
);
|
||||||
if (result) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (
|
|
||||||
message.conversationId ===
|
|
||||||
window.ConversationController.getOurConversationId()
|
|
||||||
) {
|
|
||||||
return !message.deletedForEveryone && Boolean(message.body);
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isWithinMaxEdits(
|
export function isWithinMaxEdits(
|
||||||
message: ReadonlyMessageAttributesType
|
message: ReadonlyMessageAttributesType
|
||||||
): boolean {
|
): boolean {
|
||||||
return (message.editHistory?.length ?? 0) <= MESSAGE_MAX_EDIT_COUNT;
|
return (
|
||||||
|
isMessageNoteToSelf(message) ||
|
||||||
|
(message.editHistory?.length ?? 0) <= MESSAGE_MAX_EDIT_COUNT
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,7 @@ import { isDirectConversation } from './whatTypeOfConversation';
|
||||||
import { isTooOldToModifyMessage } from './isTooOldToModifyMessage';
|
import { isTooOldToModifyMessage } from './isTooOldToModifyMessage';
|
||||||
import { queueAttachmentDownloads } from './queueAttachmentDownloads';
|
import { queueAttachmentDownloads } from './queueAttachmentDownloads';
|
||||||
import { modifyTargetMessage } from './modifyTargetMessage';
|
import { modifyTargetMessage } from './modifyTargetMessage';
|
||||||
|
import { isMessageNoteToSelf } from './isMessageNoteToSelf';
|
||||||
|
|
||||||
const RECURSION_LIMIT = 15;
|
const RECURSION_LIMIT = 15;
|
||||||
|
|
||||||
|
@ -92,12 +93,10 @@ export async function handleEditMessage(
|
||||||
}
|
}
|
||||||
|
|
||||||
const { serverTimestamp } = editAttributes.message;
|
const { serverTimestamp } = editAttributes.message;
|
||||||
const isNoteToSelf =
|
|
||||||
mainMessage.conversationId ===
|
|
||||||
window.ConversationController.getOurConversationId();
|
|
||||||
if (
|
if (
|
||||||
serverTimestamp &&
|
serverTimestamp &&
|
||||||
!isNoteToSelf &&
|
!isMessageNoteToSelf(mainMessage) &&
|
||||||
isTooOldToModifyMessage(serverTimestamp, mainMessage)
|
isTooOldToModifyMessage(serverTimestamp, mainMessage)
|
||||||
) {
|
) {
|
||||||
log.warn(`${idLog}: cannot edit message older than 48h`, serverTimestamp);
|
log.warn(`${idLog}: cannot edit message older than 48h`, serverTimestamp);
|
||||||
|
|
13
ts/util/isMessageNoteToSelf.ts
Normal file
13
ts/util/isMessageNoteToSelf.ts
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
// Copyright 2024 Signal Messenger, LLC
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
|
import type { ReadonlyMessageAttributesType } from '../model-types.d';
|
||||||
|
|
||||||
|
export function isMessageNoteToSelf(
|
||||||
|
message: Pick<ReadonlyMessageAttributesType, 'conversationId'>
|
||||||
|
): boolean {
|
||||||
|
return (
|
||||||
|
message.conversationId ===
|
||||||
|
window.ConversationController.getOurConversationId()
|
||||||
|
);
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue