Initial Poll message receive support

This commit is contained in:
yash-signal
2025-09-18 11:06:43 -05:00
committed by GitHub
parent 976a3135e5
commit 93ae2a4c48
15 changed files with 1072 additions and 6 deletions

View File

@@ -40,6 +40,12 @@ import {
import { getMessageIdForLogging } from './idForLogging.js';
import { markViewOnceMessageViewed } from '../services/MessageUpdater.js';
import { handleReaction } from '../messageModifiers/Reactions.js';
import {
drainCachedTerminatesForMessage as drainCachedPollTerminatesForMessage,
drainCachedVotesForMessage as drainCachedPollVotesForMessage,
handlePollTerminate,
handlePollVote,
} from '../messageModifiers/Polls.js';
const log = createLogger('modifyTargetMessage');
@@ -315,6 +321,28 @@ export async function modifyTargetMessage(
})
);
const pollVotes = drainCachedPollVotesForMessage(message.attributes);
if (pollVotes.length) {
changed = true;
await Promise.all(
pollVotes.map(vote =>
handlePollVote(message, vote, { shouldPersist: false })
)
);
}
const pollTerminates = drainCachedPollTerminatesForMessage(
message.attributes
);
if (pollTerminates.length) {
changed = true;
await Promise.all(
pollTerminates.map(term =>
handlePollTerminate(message, term, { shouldPersist: false })
)
);
}
// Does message message have any pending, previously-received associated
// delete for everyone messages?
const deletes = Deletes.forMessage(message.attributes);