From f284eebecef2b3a98b54a4f4374f4a44f0fd8034 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Mon, 23 Aug 2021 07:04:59 -0700 Subject: [PATCH] Fixes boosts removing statuses from feeds --- bookwyrm/activitystreams.py | 5 +++-- bookwyrm/redis_store.py | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/bookwyrm/activitystreams.py b/bookwyrm/activitystreams.py index 0a90c9f4..4b9f6a60 100644 --- a/bookwyrm/activitystreams.py +++ b/bookwyrm/activitystreams.py @@ -273,9 +273,10 @@ def add_status_on_create(sender, instance, created, *args, **kwargs): created_date__lt=instance.created_date, ) for stream in streams.values(): - stream.remove_object_from_related_stores(boosted) + audience = streams.get_stores_for_object(instance) + stream.remove_object_from_related_stores(boosted, stores=audience) for status in old_versions: - stream.remove_object_from_related_stores(status) + stream.remove_object_from_related_stores(status, stores=audience) @receiver(signals.post_delete, sender=models.Boost) diff --git a/bookwyrm/redis_store.py b/bookwyrm/redis_store.py index fa5c73a5..edba5ae6 100644 --- a/bookwyrm/redis_store.py +++ b/bookwyrm/redis_store.py @@ -33,8 +33,9 @@ class RedisStore(ABC): # and go! return pipeline.execute() - def remove_object_from_related_stores(self, obj): + def remove_object_from_related_stores(self, obj, stores=None): """remove an object from all stores""" + stores = stores or self.get_stores_for_object(obj) pipeline = r.pipeline() for store in self.get_stores_for_object(obj): pipeline.zrem(store, -1, obj.id)