mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[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
This commit is contained in:
@ -29,39 +29,41 @@ import (
|
||||
"github.com/superseriousbusiness/gotosocial/internal/processing/account"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/processing/admin"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/processing/fedi"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/processing/list"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/processing/media"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/processing/report"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/processing/status"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/processing/stream"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/processing/timeline"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/processing/user"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/state"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/timeline"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/typeutils"
|
||||
"github.com/superseriousbusiness/gotosocial/internal/visibility"
|
||||
)
|
||||
|
||||
type Processor struct {
|
||||
federator federation.Federator
|
||||
tc typeutils.TypeConverter
|
||||
oauthServer oauth.Server
|
||||
mediaManager mm.Manager
|
||||
statusTimelines timeline.Manager
|
||||
state *state.State
|
||||
emailSender email.Sender
|
||||
filter *visibility.Filter
|
||||
federator federation.Federator
|
||||
tc typeutils.TypeConverter
|
||||
oauthServer oauth.Server
|
||||
mediaManager mm.Manager
|
||||
state *state.State
|
||||
emailSender email.Sender
|
||||
filter *visibility.Filter
|
||||
|
||||
/*
|
||||
SUB-PROCESSORS
|
||||
*/
|
||||
|
||||
account account.Processor
|
||||
admin admin.Processor
|
||||
fedi fedi.Processor
|
||||
media media.Processor
|
||||
report report.Processor
|
||||
status status.Processor
|
||||
stream stream.Processor
|
||||
user user.Processor
|
||||
account account.Processor
|
||||
admin admin.Processor
|
||||
fedi fedi.Processor
|
||||
list list.Processor
|
||||
media media.Processor
|
||||
report report.Processor
|
||||
status status.Processor
|
||||
stream stream.Processor
|
||||
timeline timeline.Processor
|
||||
user user.Processor
|
||||
}
|
||||
|
||||
func (p *Processor) Account() *account.Processor {
|
||||
@ -76,6 +78,10 @@ func (p *Processor) Fedi() *fedi.Processor {
|
||||
return &p.fedi
|
||||
}
|
||||
|
||||
func (p *Processor) List() *list.Processor {
|
||||
return &p.list
|
||||
}
|
||||
|
||||
func (p *Processor) Media() *media.Processor {
|
||||
return &p.media
|
||||
}
|
||||
@ -92,6 +98,10 @@ func (p *Processor) Stream() *stream.Processor {
|
||||
return &p.stream
|
||||
}
|
||||
|
||||
func (p *Processor) Timeline() *timeline.Processor {
|
||||
return &p.timeline
|
||||
}
|
||||
|
||||
func (p *Processor) User() *user.Processor {
|
||||
return &p.user
|
||||
}
|
||||
@ -114,23 +124,19 @@ func NewProcessor(
|
||||
tc: tc,
|
||||
oauthServer: oauthServer,
|
||||
mediaManager: mediaManager,
|
||||
statusTimelines: timeline.NewManager(
|
||||
StatusGrabFunction(state.DB),
|
||||
StatusFilterFunction(state.DB, filter),
|
||||
StatusPrepareFunction(state.DB, tc),
|
||||
StatusSkipInsertFunction(),
|
||||
),
|
||||
state: state,
|
||||
filter: filter,
|
||||
emailSender: emailSender,
|
||||
state: state,
|
||||
filter: filter,
|
||||
emailSender: emailSender,
|
||||
}
|
||||
|
||||
// sub processors
|
||||
// Instantiate sub processors.
|
||||
processor.account = account.New(state, tc, mediaManager, oauthServer, federator, filter, parseMentionFunc)
|
||||
processor.admin = admin.New(state, tc, mediaManager, federator.TransportController(), emailSender)
|
||||
processor.fedi = fedi.New(state, tc, federator, filter)
|
||||
processor.list = list.New(state, tc)
|
||||
processor.media = media.New(state, tc, mediaManager, federator.TransportController())
|
||||
processor.report = report.New(state, tc)
|
||||
processor.timeline = timeline.New(state, tc, filter)
|
||||
processor.status = status.New(state, federator, tc, filter, parseMentionFunc)
|
||||
processor.stream = stream.New(state, oauthServer)
|
||||
processor.user = user.New(state, emailSender)
|
||||
@ -161,13 +167,3 @@ func (p *Processor) EnqueueFederator(ctx context.Context, msgs ...messages.FromF
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// Start starts the Processor.
|
||||
func (p *Processor) Start() error {
|
||||
return p.statusTimelines.Start()
|
||||
}
|
||||
|
||||
// Stop stops the processor cleanly.
|
||||
func (p *Processor) Stop() error {
|
||||
return p.statusTimelines.Stop()
|
||||
}
|
||||
|
Reference in New Issue
Block a user