From d0ccd61afd02f09c9805f2c4193ef403d23ec94a Mon Sep 17 00:00:00 2001 From: Jonas Obrist Date: Sat, 18 Aug 2012 18:15:14 +0200 Subject: [PATCH] DRYed some stuff --- githubnetwork/models.py | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/githubnetwork/models.py b/githubnetwork/models.py index 6274d29..917e99f 100644 --- a/githubnetwork/models.py +++ b/githubnetwork/models.py @@ -73,28 +73,20 @@ class GHUser(BaseAPIModel): self.complete = True self.save() # set followers/following - followers = [] cache = {} - for shortuser in api.get_iter('users/%s/followers' % self.gh_login): - follower = cache.get(shortuser['login'], None) - if not follower: - try: - follower = GHUser.objects.get(gh_login=shortuser['login']) - except self.DoesNotExist: - follower = GHUser.objects.create(**self._translate(shortuser)) - followers.append(follower) - cache[follower.gh_login] = follower - self.followers = followers - following = [] - for shortuser in api.get_iter('users/%s/following' % self.gh_login): - follower = cache.get(shortuser['login'], None) - if not follower: - try: - follower = GHUser.objects.get(gh_login=shortuser['login']) - except self.DoesNotExist: - follower = GHUser.objects.create(**self._translate(shortuser)) - following.append(follower) - self.following = following + def inner(iter): + users = [] + for shortuser in iter: + user = cache.get(shortuser['login'], None) + if not user: + try: + user = GHUser.objects.get(gh_login=shortuser['login']) + except self.DoesNotExist: + user = GHUser.objects.create(**self._translate(shortuser)) + users.append(user) + cache[user.gh_login] = user + self.followers = inner(api.get_iter('users/%s/followers' % self.gh_login)) + self.following = inner(api.get_iter('users/%s/followers' % self.gh_login)) return self