mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-12-09 04:18:06 -06:00
[bugfix] more robust list timeline invalidation (#1995)
This commit is contained in:
parent
346ecabd07
commit
f4319740ab
15 changed files with 254 additions and 226 deletions
14
internal/cache/cache.go
vendored
14
internal/cache/cache.go
vendored
|
|
@ -93,13 +93,14 @@ func (c *Caches) setuphooks() {
|
|||
})
|
||||
|
||||
c.GTS.EmojiCategory().SetInvalidateCallback(func(category *gtsmodel.EmojiCategory) {
|
||||
// Invalidate entire emoji cache,
|
||||
// as we can't know which emojis
|
||||
// specifically this will effect.
|
||||
c.GTS.Emoji().Clear()
|
||||
// Invalidate any emoji in this category.
|
||||
c.GTS.Emoji().Invalidate("CategoryID", category.ID)
|
||||
})
|
||||
|
||||
c.GTS.Follow().SetInvalidateCallback(func(follow *gtsmodel.Follow) {
|
||||
// Invalidate any related list entries.
|
||||
c.GTS.ListEntry().Invalidate("FollowID", follow.ID)
|
||||
|
||||
// Invalidate follow origin account ID cached visibility.
|
||||
c.Visibility.Invalidate("ItemID", follow.AccountID)
|
||||
c.Visibility.Invalidate("RequesterID", follow.AccountID)
|
||||
|
|
@ -122,6 +123,11 @@ func (c *Caches) setuphooks() {
|
|||
c.GTS.Follow().Invalidate("ID", followReq.ID)
|
||||
})
|
||||
|
||||
c.GTS.List().SetInvalidateCallback(func(list *gtsmodel.List) {
|
||||
// Invalidate all cached entries of this list.
|
||||
c.GTS.ListEntry().Invalidate("ListID", list.ID)
|
||||
})
|
||||
|
||||
c.GTS.Status().SetInvalidateCallback(func(status *gtsmodel.Status) {
|
||||
// Invalidate status ID cached visibility.
|
||||
c.Visibility.Invalidate("ItemID", status.ID)
|
||||
|
|
|
|||
3
internal/cache/gts.go
vendored
3
internal/cache/gts.go
vendored
|
|
@ -262,6 +262,7 @@ func (c *GTSCaches) initEmoji() {
|
|||
{Name: "URI"},
|
||||
{Name: "Shortcode.Domain"},
|
||||
{Name: "ImageStaticURL"},
|
||||
{Name: "CategoryID", Multi: true},
|
||||
}, func(e1 *gtsmodel.Emoji) *gtsmodel.Emoji {
|
||||
e2 := new(gtsmodel.Emoji)
|
||||
*e2 = *e1
|
||||
|
|
@ -338,6 +339,8 @@ func (c *GTSCaches) initList() {
|
|||
func (c *GTSCaches) initListEntry() {
|
||||
c.listEntry = result.New([]result.Lookup{
|
||||
{Name: "ID"},
|
||||
{Name: "ListID", Multi: true},
|
||||
{Name: "FollowID", Multi: true},
|
||||
}, func(l1 *gtsmodel.ListEntry) *gtsmodel.ListEntry {
|
||||
l2 := new(gtsmodel.ListEntry)
|
||||
*l2 = *l1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue