diff --git a/bookwyrm/suggested_users.py b/bookwyrm/suggested_users.py index 06ce6db7..4b85f1f6 100644 --- a/bookwyrm/suggested_users.py +++ b/bookwyrm/suggested_users.py @@ -81,7 +81,7 @@ class SuggestedUsers(RedisStore): """take a user out of someone's suggestions""" self.bulk_remove_objects_from_store([suggested_user], self.store_id(user)) - def get_suggestions(self, user): + def get_suggestions(self, user, **filters): """get suggestions""" values = self.get_store(self.store_id(user), withscores=True) results = [] @@ -97,35 +97,16 @@ class SuggestedUsers(RedisStore): logger.exception(err) continue user.mutuals = counts["mutuals"] - # user.shared_books = counts["shared_books"] - results.append(user) - if len(results) >= 5: - 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: + if filters.local: + if user.local: + results.append(user) + else: 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""" return ( diff --git a/bookwyrm/views/group.py b/bookwyrm/views/group.py index 42ae5a12..c184e495 100644 --- a/bookwyrm/views/group.py +++ b/bookwyrm/views/group.py @@ -107,8 +107,9 @@ class FindUsers(View): data = {"no_results": not user_results} if user_results.count() < 5: - user_results = list(user_results) + suggested_users.get_group_suggestions( - request.user + user_results = list(user_results) + suggested_users.get_suggestions( + request.user, + local=True ) group = get_object_or_404(models.Group, id=group_id)