Cap mention processing in story reply and edit message paths.

This commit is contained in:
Greyson Parrelli
2026-07-10 05:47:04 +00:00
parent e7c5af7ea5
commit 12af41174a
2 changed files with 7 additions and 5 deletions
@@ -122,7 +122,7 @@ import kotlin.time.Duration.Companion.seconds
object DataMessageProcessor {
private const val BODY_RANGE_PROCESSING_LIMIT = 250
internal const val BODY_RANGE_PROCESSING_LIMIT = 250
private const val POLL_QUESTION_CHARACTER_LIMIT = 200
private const val POLL_CHARACTER_LIMIT = 100
private const val POLL_OPTIONS_LIMIT = 10
@@ -791,7 +791,8 @@ object DataMessageProcessor {
return null
}
val bodyRanges: BodyRangeList? = message.bodyRanges.filter { Util.allAreNull(it.mentionAci, it.mentionAciBinary) }.toList().toBodyRangeList()
val cappedBodyRanges: List<BodyRange> = message.bodyRanges.take(BODY_RANGE_PROCESSING_LIMIT)
val bodyRanges: BodyRangeList? = cappedBodyRanges.filter { Util.allAreNull(it.mentionAci, it.mentionAciBinary) }.toList().toBodyRangeList()
val mediaMessage = IncomingMessage(
type = MessageType.NORMAL,
@@ -805,7 +806,7 @@ object DataMessageProcessor {
body = message.body,
groupId = groupId,
quote = quoteModel,
mentions = getMentions(message.bodyRanges),
mentions = getMentions(cappedBodyRanges),
serverGuid = UuidUtil.getStringUUID(envelope.serverGuid, envelope.serverGuidBinary),
messageRanges = bodyRanges
)
@@ -124,7 +124,8 @@ object EditMessageProcessor {
message: DataMessage,
targetMessage: MmsMessageRecord
): InsertResult? {
val messageRanges: BodyRangeList? = message.bodyRanges.filter { Util.allAreNull(it.mentionAci, it.mentionAciBinary) }.toList().toBodyRangeList()
val cappedBodyRanges = message.bodyRanges.take(DataMessageProcessor.BODY_RANGE_PROCESSING_LIMIT)
val messageRanges: BodyRangeList? = cappedBodyRanges.filter { Util.allAreNull(it.mentionAci, it.mentionAciBinary) }.toList().toBodyRangeList()
val targetQuote = targetMessage.quote
val quote: QuoteModel? = if (targetQuote != null && (message.quote != null || (targetMessage.parentStoryId != null && message.storyContext != null))) {
QuoteModel(
@@ -159,7 +160,7 @@ object EditMessageProcessor {
parentStoryId = targetMessage.parentStoryId,
sharedContacts = emptyList(),
linkPreviews = DataMessageProcessor.getLinkPreviews(message.preview, message.body ?: "", false),
mentions = DataMessageProcessor.getMentions(message.bodyRanges),
mentions = DataMessageProcessor.getMentions(cappedBodyRanges),
serverGuid = UuidUtil.getStringUUID(envelope.serverGuid, envelope.serverGuidBinary),
messageRanges = messageRanges
)