diff options
Diffstat (limited to 'internal/visibility/statusvisible.go')
-rw-r--r-- | internal/visibility/statusvisible.go | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/internal/visibility/statusvisible.go b/internal/visibility/statusvisible.go index 1e48abcda..a99494836 100644 --- a/internal/visibility/statusvisible.go +++ b/internal/visibility/statusvisible.go @@ -239,3 +239,17 @@ func (f *filter) StatusVisible(ctx context.Context, targetStatus *gtsmodel.Statu // If we reached here, all is okay return true, nil } + +func (f *filter) StatusesVisible(ctx context.Context, statuses []*gtsmodel.Status, requestingAccount *gtsmodel.Account) ([]*gtsmodel.Status, error) { + filtered := []*gtsmodel.Status{} + for _, s := range statuses { + visible, err := f.StatusVisible(ctx, s, requestingAccount) + if err != nil { + return nil, err + } + if visible { + filtered = append(filtered, s) + } + } + return filtered, nil +} |