示例#1
0
 def get_statuses_for_user(self, user):
     # all public statuses by a local user
     return privacy_filter(
         user,
         models.Status.objects.select_subclasses().filter(user__local=True),
         privacy_levels=["public"],
     )
示例#2
0
 def get_statuses_for_user(self, user):
     return privacy_filter(
         user,
         models.Status.objects.select_subclasses(),
         privacy_levels=["public", "unlisted", "followers"],
         following_only=True,
     )
示例#3
0
 def get_statuses_for_user(self, user):  # pylint: disable=no-self-use
     """given a user, what statuses should they see on this stream"""
     return privacy_filter(
         user,
         models.Status.objects.select_subclasses(),
         privacy_levels=["public", "unlisted", "followers"],
     )
示例#4
0
 def remove_book_statuses(self, user, book):
     """add statuses about a book to a user's feed"""
     work = book.parent_work
     statuses = privacy_filter(
         user,
         models.Status.objects.select_subclasses().filter(
             Q(comment__book__parent_work=work)
             | Q(quotation__book__parent_work=work)
             | Q(review__book__parent_work=work)
             | Q(mention_books__parent_work=work)).distinct(),
         privacy_levels=["public"],
     )
     self.bulk_remove_objects_from_store(statuses, self.stream_id(user))
示例#5
0
 def get_statuses_for_user(self, user):
     """any public status that mentions the user's books"""
     books = user.shelfbook_set.values_list("book__parent_work__id",
                                            flat=True).distinct()
     return privacy_filter(
         user,
         models.Status.objects.select_subclasses().filter(
             Q(comment__book__parent_work__id__in=books)
             | Q(quotation__book__parent_work__id__in=books)
             | Q(review__book__parent_work__id__in=books)
             | Q(mention_books__parent_work__id__in=books)).distinct(),
         privacy_levels=["public"],
     )
示例#6
0
 def add_user_statuses(self, viewer, user):
     """add a user's statuses to another user's feed"""
     # only add the statuses that the viewer should be able to see (ie, not dms)
     statuses = privacy_filter(viewer, user.status_set.all())
     self.bulk_add_objects_to_store(statuses, self.stream_id(viewer))
示例#7
0
 def get_statuses_for_user(self, user):
     return privacy_filter(
         user,
         models.Status.objects.select_subclasses(),
         privacy_levels=["public"],
     )