From f5c004d67d4ed66b6c6df100afec47174aa14ae0 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Thu, 25 May 2023 10:37:38 +0200 Subject: [feature] Add List functionality (#1802) * start working on lists * further list work * test list db functions nicely * more work on lists * peepoopeepoo * poke * start list timeline func * we're getting there lads * couldn't be me working on stuff... could it? * hook up handlers * fiddling * weeee * woah * screaming, pissing * fix streaming being a whiny baby * lint, small test fix, swagger * tidying up, testing * fucked! by the linter * move timelines to state like a boss * add timeline start to tests using state * invalidate lists --- testrig/util.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'testrig/util.go') diff --git a/testrig/util.go b/testrig/util.go index d7183df1c..4e52d12b5 100644 --- a/testrig/util.go +++ b/testrig/util.go @@ -20,6 +20,7 @@ package testrig import ( "bytes" "context" + "fmt" "io" "mime/multipart" "net/url" @@ -27,7 +28,11 @@ import ( "time" "github.com/superseriousbusiness/gotosocial/internal/messages" + tlprocessor "github.com/superseriousbusiness/gotosocial/internal/processing/timeline" "github.com/superseriousbusiness/gotosocial/internal/state" + "github.com/superseriousbusiness/gotosocial/internal/timeline" + "github.com/superseriousbusiness/gotosocial/internal/typeutils" + "github.com/superseriousbusiness/gotosocial/internal/visibility" ) func StartWorkers(state *state.State) { @@ -47,6 +52,28 @@ func StopWorkers(state *state.State) { _ = state.Workers.Media.Stop() } +func StartTimelines(state *state.State, filter *visibility.Filter, typeConverter typeutils.TypeConverter) { + state.Timelines.Home = timeline.NewManager( + tlprocessor.HomeTimelineGrab(state), + tlprocessor.HomeTimelineFilter(state, filter), + tlprocessor.HomeTimelineStatusPrepare(state, typeConverter), + tlprocessor.SkipInsert(), + ) + if err := state.Timelines.Home.Start(); err != nil { + panic(fmt.Sprintf("error starting home timeline: %s", err)) + } + + state.Timelines.List = timeline.NewManager( + tlprocessor.ListTimelineGrab(state), + tlprocessor.ListTimelineFilter(state, filter), + tlprocessor.ListTimelineStatusPrepare(state, typeConverter), + tlprocessor.SkipInsert(), + ) + if err := state.Timelines.List.Start(); err != nil { + panic(fmt.Sprintf("error starting list timeline: %s", err)) + } +} + // CreateMultipartFormData is a handy function for taking a fieldname and a filename, and creating a multipart form bytes buffer // with the file contents set in the given fieldname. The extraFields param can be used to add extra FormFields to the request, as necessary. // The returned bytes.Buffer b can be used like so: -- cgit v1.2.3