diff options
author | 2023-04-06 16:11:25 +0100 | |
---|---|---|
committer | 2023-04-06 17:11:25 +0200 | |
commit | e46323c207230b01e48ae1b8e5117a9774d9f157 (patch) | |
tree | 088c9476dd4650092b916394364582ee64a7b328 /internal/visibility/status.go | |
parent | [bugfix/chore] Refactor timeline code (#1656) (diff) | |
download | gotosocial-e46323c207230b01e48ae1b8e5117a9774d9f157.tar.xz |
[bugfix] visibility caching and hometimeline (#1675)v0.8.0-rc1
* fix visibility caching to use correct type key
Signed-off-by: kim <grufwub@gmail.com>
* check for ID check > max possible ID
Signed-off-by: kim <grufwub@gmail.com>
* update home timeline code to include relevant threads to owner (e.g. between mutuals/follows)
Signed-off-by: kim <grufwub@gmail.com>
---------
Signed-off-by: kim <grufwub@gmail.com>
Diffstat (limited to 'internal/visibility/status.go')
-rw-r--r-- | internal/visibility/status.go | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/internal/visibility/status.go b/internal/visibility/status.go index dc8261624..d41bbc80b 100644 --- a/internal/visibility/status.go +++ b/internal/visibility/status.go @@ -49,6 +49,8 @@ func (f *Filter) StatusesVisible(ctx context.Context, requester *gtsmodel.Accoun // StatusVisible will check if given status is visible to requester, accounting for requester with no auth (i.e is nil), suspensions, disabled local users, account blocks and status privacy. func (f *Filter) StatusVisible(ctx context.Context, requester *gtsmodel.Account, status *gtsmodel.Status) (bool, error) { + const vtype = cache.VisibilityTypeStatus + // By default we assume no auth. requesterID := noauth @@ -68,10 +70,10 @@ func (f *Filter) StatusVisible(ctx context.Context, requester *gtsmodel.Account, return &cache.CachedVisibility{ ItemID: status.ID, RequesterID: requesterID, - Type: cache.VisibilityTypeStatus, + Type: vtype, Value: visible, }, nil - }, "status", requesterID, status.ID) + }, vtype, requesterID, status.ID) if err != nil { return false, err } @@ -83,7 +85,7 @@ func (f *Filter) StatusVisible(ctx context.Context, requester *gtsmodel.Account, func (f *Filter) isStatusVisible(ctx context.Context, requester *gtsmodel.Account, status *gtsmodel.Status) (bool, error) { // Ensure that status is fully populated for further processing. if err := f.state.DB.PopulateStatus(ctx, status); err != nil { - return false, err + return false, fmt.Errorf("isStatusVisible: error populating status %s: %w", status.ID, err) } // Check whether status accounts are visible to the requester. @@ -185,7 +187,7 @@ func (f *Filter) areStatusAccountsVisible(ctx context.Context, requester *gtsmod // Check whether status author's account is visible to requester. visible, err := f.AccountVisible(ctx, requester, status.Account) if err != nil { - return false, err + return false, fmt.Errorf("error checking status author visibility: %w", err) } if !visible { @@ -204,7 +206,7 @@ func (f *Filter) areStatusAccountsVisible(ctx context.Context, requester *gtsmod // Check whether boosted status author's account is visible to requester. visible, err := f.AccountVisible(ctx, requester, status.BoostOfAccount) if err != nil { - return false, err + return false, fmt.Errorf("error checking boosted author visibility: %w", err) } if !visible { |