Call suggestions redis in feed

This commit is contained in:
Mouse Reeve
2021-04-06 08:31:18 -07:00
parent 18ba33e050
commit 03e5da12dd
3 changed files with 20 additions and 6 deletions

View File

@ -11,7 +11,7 @@ from bookwyrm.views.helpers import get_annotated_users
class SuggestedUsers(RedisStore):
""" suggested users for a user """
max_length = 30
max_length = 10
def get_rank(self, obj):
""" get computed rank """
@ -58,6 +58,19 @@ class SuggestedUsers(RedisStore):
""" update the ranks of the follows suggested to a user """
self.populate_store(self.store_id(user))
def get_suggestions(self, user):
""" get suggestions """
values = self.get_store(self.store_id(user), withscores=True)
results = []
# annotate users with mutuals and shared book counts
for user_id, rank in values[:5]:
counts = self.get_counts_from_rank(rank)
user = models.User.objects.get(id=user_id)
user.mutuals = counts["mutuals"]
user.shared_books = counts["shared_books"]
results.append(user)
return results
suggested_users = SuggestedUsers()