diff --git a/bookwyrm/models/activitypub_mixin.py b/bookwyrm/models/activitypub_mixin.py index 719debff6..c6ba249c5 100644 --- a/bookwyrm/models/activitypub_mixin.py +++ b/bookwyrm/models/activitypub_mixin.py @@ -359,6 +359,10 @@ class CollectionItemMixin(ActivitypubMixin): activity_serializer = activitypub.CollectionItem + def broadcast(self, activity, sender, software="bookwyrm"): + """ only send book collection updates to other bookwyrm instances """ + super().broadcast(activity, sender, software=software) + @property def privacy(self): """ inherit the privacy of the list, or direct if pending """ @@ -371,6 +375,9 @@ class CollectionItemMixin(ActivitypubMixin): def recipients(self): """ the owner of the list is a direct recipient """ collection_field = getattr(self, self.collection_field) + if collection_field.user.local: + # don't broadcast to yourself + return [] return [collection_field.user] def save(self, *args, broadcast=True, **kwargs): diff --git a/bookwyrm/tests/models/test_list.py b/bookwyrm/tests/models/test_list.py index 48f918a04..d99e54656 100644 --- a/bookwyrm/tests/models/test_list.py +++ b/bookwyrm/tests/models/test_list.py @@ -55,7 +55,7 @@ class List(TestCase): self.assertTrue(item.approved) self.assertEqual(item.privacy, "unlisted") - self.assertEqual(item.recipients, [self.local_user]) + self.assertEqual(item.recipients, []) def test_list_item_pending(self, _): """ a list entry """ @@ -71,4 +71,4 @@ class List(TestCase): self.assertFalse(item.approved) self.assertEqual(item.book_list.privacy, "public") self.assertEqual(item.privacy, "direct") - self.assertEqual(item.recipients, [self.local_user]) + self.assertEqual(item.recipients, [])