From 5a945c2024855b89dfb99f81a2c4d226bb39dc32 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Wed, 20 Sep 2023 19:47:56 -0700 Subject: Prefilter the mergefeed to ensure a better mix of following and custom feeds (#1498) * Prefilter the mergefeed to ensure a better mix of following and custom feeds * Test suite improvements & tests for the mergefeed (#1499) * Disable invite codes test for now * Update test sim to latest iphone * Introduce TestCtrls driver * Add mergefeed tests --- src/lib/api/feed-manip.ts | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) (limited to 'src/lib/api/feed-manip.ts') diff --git a/src/lib/api/feed-manip.ts b/src/lib/api/feed-manip.ts index ef57fc4f2..8f259a910 100644 --- a/src/lib/api/feed-manip.ts +++ b/src/lib/api/feed-manip.ts @@ -128,23 +128,32 @@ export class FeedTuner { tune( feed: FeedViewPost[], tunerFns: FeedTunerFn[] = [], - {dryRun}: {dryRun: boolean} = {dryRun: false}, + {dryRun, maintainOrder}: {dryRun: boolean; maintainOrder: boolean} = { + dryRun: false, + maintainOrder: false, + }, ): FeedViewPostsSlice[] { let slices: FeedViewPostsSlice[] = [] - // arrange the posts into thread slices - for (let i = feed.length - 1; i >= 0; i--) { - const item = feed[i] - - const selfReplyUri = getSelfReplyUri(item) - if (selfReplyUri) { - const parent = slices.find(item2 => item2.isNextInThread(selfReplyUri)) - if (parent) { - parent.insert(item) - continue + if (maintainOrder) { + slices = feed.map(item => new FeedViewPostsSlice([item])) + } else { + // arrange the posts into thread slices + for (let i = feed.length - 1; i >= 0; i--) { + const item = feed[i] + + const selfReplyUri = getSelfReplyUri(item) + if (selfReplyUri) { + const parent = slices.find(item2 => + item2.isNextInThread(selfReplyUri), + ) + if (parent) { + parent.insert(item) + continue + } } + slices.unshift(new FeedViewPostsSlice([item])) } - slices.unshift(new FeedViewPostsSlice([item])) } // run the custom tuners -- cgit 1.4.1