[chore] Add interaction filter to complement existing visibility filter (#3111)

* [chore] Add interaction filter to complement existing visibility filter

* pass in ptr to visibility and interaction filters to Processor{} to ensure shared

* use int constants for for match type, cache db calls in filterctx

* function name typo 😇

---------

Co-authored-by: kim <grufwub@gmail.com>
This commit is contained in:
tobi 2024-07-24 13:27:42 +02:00 committed by GitHub
commit c9b6220fef
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
61 changed files with 1661 additions and 585 deletions

View file

@ -38,7 +38,7 @@ type Processor struct {
state *state.State
converter *typeutils.Converter
mediaManager *media.Manager
filter *visibility.Filter
visFilter *visibility.Filter
formatter *text.Formatter
federator *federation.Federator
parseMention gtsmodel.ParseMentionFunc
@ -52,7 +52,7 @@ func New(
converter *typeutils.Converter,
mediaManager *media.Manager,
federator *federation.Federator,
filter *visibility.Filter,
visFilter *visibility.Filter,
parseMention gtsmodel.ParseMentionFunc,
) Processor {
return Processor{
@ -60,7 +60,7 @@ func New(
state: state,
converter: converter,
mediaManager: mediaManager,
filter: filter,
visFilter: visFilter,
formatter: text.NewFormatter(state.DB),
federator: federator,
parseMention: parseMention,

View file

@ -64,7 +64,7 @@ func (p *Processor) BookmarksGet(ctx context.Context, requestingAccount *gtsmode
return nil, gtserror.NewErrorInternalError(err) // A real error has occurred.
}
visible, err := p.filter.StatusVisible(ctx, requestingAccount, status)
visible, err := p.visFilter.StatusVisible(ctx, requestingAccount, status)
if err != nil {
log.Errorf(ctx, "error checking bookmarked status visibility: %s", err)
continue

View file

@ -42,7 +42,7 @@ func (p *Processor) ListsGet(ctx context.Context, requestingAccount *gtsmodel.Ac
return nil, gtserror.NewErrorInternalError(fmt.Errorf("db error: %w", err))
}
visible, err := p.filter.AccountVisible(ctx, requestingAccount, targetAccount)
visible, err := p.visFilter.AccountVisible(ctx, requestingAccount, targetAccount)
if err != nil {
return nil, gtserror.NewErrorInternalError(fmt.Errorf("db error: %w", err))
}

View file

@ -92,7 +92,7 @@ func (p *Processor) StatusesGet(
// Filtering + serialization process is the same for
// both pinned status queries and 'normal' ones.
filtered, err := p.filter.StatusesVisible(ctx, requestingAccount, statuses)
filtered, err := p.visFilter.StatusesVisible(ctx, requestingAccount, statuses)
if err != nil {
return nil, gtserror.NewErrorInternalError(err)
}