diff options
author | 2024-06-06 10:44:43 +0000 | |
---|---|---|
committer | 2024-06-06 11:44:43 +0100 | |
commit | 5dcc954072ca0a27107ed3fdc6806986f61df7d0 (patch) | |
tree | 7a6380bf39e99dbcfee4fbe1434697706637d2bc /internal/cleaner/media.go | |
parent | [bugfix] Don't nil emojis + fields on blocked accounts (#2968) (diff) | |
download | gotosocial-5dcc954072ca0a27107ed3fdc6806986f61df7d0.tar.xz |
[feature] do not uncache status / emoji media if attached status is bookmarked (#2956)
* do not uncache status / emoji media if attached status is bookmarked
* add status bookmark and bookmark IDs caches
* update status bookmark tests
* move IsStatusBookmarkedBy() to StatusBookmark{} interface, rely on cache
* fix envparsing.sh test
Diffstat (limited to 'internal/cleaner/media.go')
-rw-r--r-- | internal/cleaner/media.go | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/internal/cleaner/media.go b/internal/cleaner/media.go index 185c64fb9..bf4a08699 100644 --- a/internal/cleaner/media.go +++ b/internal/cleaner/media.go @@ -35,9 +35,7 @@ import ( // Media encompasses a set of // media cleanup / admin utils. -type Media struct { - *Cleaner -} +type Media struct{ *Cleaner } // All will execute all cleaner.Media utilities synchronously, including output logging. // Context will be checked for `gtscontext.DryRun()` in order to actually perform the action. @@ -475,9 +473,21 @@ func (m *Media) uncacheRemote(ctx context.Context, after time.Time, media *gtsmo return false, nil } - if status != nil && status.FetchedAt.After(after) { - l.Debug("skipping due to recently fetched status") - return false, nil + if status != nil { + // Check if recently used status. + if status.FetchedAt.After(after) { + l.Debug("skipping due to recently fetched status") + return false, nil + } + + // Check whether status is bookmarked by active accounts. + bookmarked, err := m.state.DB.IsStatusBookmarked(ctx, status.ID) + if err != nil { + return false, err + } else if bookmarked { + l.Debug("skipping due to bookmarked status") + return false, nil + } } } |