only suggest local users as potential group members

This commit is contained in:
Hugh Rundle
2021-10-02 19:35:57 +10:00
parent 2c399fe1aa
commit 29f18ee123
3 changed files with 23 additions and 6 deletions

View File

@ -103,6 +103,28 @@ class SuggestedUsers(RedisStore):
break
return results
def get_group_suggestions(self, user):
"""get suggestions for new group members"""
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:
counts = self.get_counts_from_rank(rank)
try:
user = models.User.objects.get(
id=user_id, is_active=True, bookwyrm_user=True
)
except models.User.DoesNotExist as err:
# if this happens, the suggestions are janked way up
logger.exception(err)
continue
user.mutuals = counts["mutuals"]
# only suggest local users until Groups are ActivityPub compliant
if user.local:
results.append(user)
if len(results) >= 5:
break
return results
def get_annotated_users(viewer, *args, **kwargs):
"""Users, annotated with things they have in common"""