From 0a0a25498d974fc026bbd1c1be889467af40df0f Mon Sep 17 00:00:00 2001 From: Josh Perez <60019601+josh-signal@users.noreply.github.com> Date: Thu, 23 Jun 2022 16:36:11 -0400 Subject: [PATCH] Repair old unexpired stories --- ts/services/storyLoader.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/ts/services/storyLoader.ts b/ts/services/storyLoader.ts index 2a7aee5a9..01d127799 100644 --- a/ts/services/storyLoader.ts +++ b/ts/services/storyLoader.ts @@ -4,6 +4,7 @@ import { pick } from 'lodash'; import type { MessageAttributesType } from '../model-types.d'; import type { StoryDataType } from '../state/ducks/stories'; +import * as durations from '../util/durations'; import * as log from '../logging/log'; import dataInterface from '../sql/Client'; import { getAttachmentsForMessage } from '../state/selectors/message'; @@ -65,14 +66,25 @@ export function getStoriesForRedux(): Array { async function repairUnexpiredStories(): Promise { strictAssert(storyData, 'Could not load stories'); + const DAY_AS_SECONDS = durations.DAY / 1000; + const storiesWithExpiry = storyData - .filter(story => !story.expirationStartTimestamp) + .filter( + story => + !story.expirationStartTimestamp || + !story.expireTimer || + story.expireTimer > DAY_AS_SECONDS + ) .map(story => ({ ...story, expirationStartTimestamp: Math.min( story.serverTimestamp || story.timestamp, Date.now() ), + expireTimer: Math.min( + Math.floor((story.timestamp + durations.DAY - Date.now()) / 1000), + DAY_AS_SECONDS + ), })); if (!storiesWithExpiry.length) {