Ejemplo n.º 1
0
def bitbucket_username_category_watched_update(request,username, category):
    owned = False
    category = urllib.unquote(category).lower()
    username = urllib.unquote(username)
    user = request.user
    logger.error(username)
    try:
        bitbucket_username = user.social_auth.get(provider='bitbucket').extra_data['username']
        logger.error(bitbucket_username)
        if username == bitbucket_username:
            profile = user.get_profile()
            profile.save()
            bitbucket_provider = BitbucketProvider(user)
            repository_user = bitbucket_provider.update_watched_category_repositories(username, category)
            repository_user.starred = None
            repository_user.save()
            if owned:
                return HttpResponseRedirect(reverse('bitbucket_username_category_owned', kwargs={'username': username, 'category':category}))
            else:
                return HttpResponseRedirect(reverse('bitbucket_username_category_starred', kwargs={'username': username,'category':category}))
    except ObjectDoesNotExist:
        pass
    res = HttpResponse("Unauthorized")
    res.status_code = 401
    return res
Ejemplo n.º 2
0
def bitbucket_username_watched(request,username):
    user = request.user
    # need to fixed the problem with owned repos
    try:
        bitbucket_username = user.social_auth.get(provider='bitbucket').extra_data['username']
        if username == bitbucket_username:
            bitbucket_provider = BitbucketProvider(user)
            repositories_by_language, repository_user = bitbucket_provider.retrieve_watched_repositories_dict(username)
            repository_user.save()
            if len(repositories_by_language) == 0:

                repositories = bitbucket_provider.get_watched_repositories(username)
                for repo in repositories:
                    update = False
                    try:
                        repository = bitbucket_provider.retrieve_repository_details(repo['owner'], repo['name'])
                    except ObjectDoesNotExist:
                        update = True
                        repository = Repository()
                    if update or (datetime.now() - repository.last_modified) > timedelta(days = 1):
                        repository = bitbucket_provider.create_or_update_repository_details(repo, repository)
                        if not repository.private:
                            repository.save()
                    repositories_by_language[repository.language].append(repository)
                for category in repositories_by_language.keys():
                    RepositoryCategory.objects.get_or_create(name = category)
                    repositories_by_language[category].sort(key=lambda x: x.watchers, reverse = True)
            return render_to_response('bitbucket_username_watched.html', {'username':username,'repositories_by_language':sorted(dict(repositories_by_language).iteritems(),key=lambda (k, v): len(v),reverse = True),'owned':False},context_instance=RequestContext(request))
    except ObjectDoesNotExist:
        pass
    res = HttpResponse("Unauthorized")
    res.status_code = 401
    return res
Ejemplo n.º 3
0
def bitbucket_username_category_owned_update(request, username, category):
    owned = True
    category = urllib.unquote(category).lower()
    username = urllib.unquote(username)
    user = request.user
    try:
        bitbucket_username = user.social_auth.get(
            provider='bitbucket').extra_data['username']
        if username == bitbucket_username:
            profile = user.get_profile()
            profile.save()
            bitbucket_provider = BitbucketProvider(user)
            repository_user = bitbucket_provider.update_owned_category_repositories(
                username, category)
            repository_user.save()
            if owned:
                return HttpResponseRedirect(
                    reverse('bitbucket_username_category_owned',
                            kwargs={
                                'username': username,
                                'category': category
                            }))
            else:
                return HttpResponseRedirect(
                    reverse('bitbucket_username_category_starred',
                            kwargs={
                                'username': username,
                                'category': category
                            }))
    except ObjectDoesNotExist:
        pass
    res = HttpResponse("Unauthorized")
    res.status_code = 401
    return res
Ejemplo n.º 4
0
def bitbucket_username_owned(request,username):
    repo_link_type, _ = LinkType.objects.get_or_create(name = "owned")
    user = request.user
    bitbucket_provider = BitbucketProvider(user)
    repositories_by_language, repository_user = bitbucket_provider.retrieve_owned_repositories_dict(username)
    repository_user.save()

    if len(repositories_by_language)==0:
        watched = bitbucket_provider.get_owned_repositories(username)
        for repo in watched:
            update = False
            try:
                repository = bitbucket_provider.retrieve_repository_details(repo['owner'], repo['name'])
            except ObjectDoesNotExist:
                update = True
                repository = Repository()
            if update or (datetime.now() - repository.last_modified) > timedelta(days = 1):
                repository = bitbucket_provider.create_or_update_repository_details(repo, repository)
                if not repository.private:
                    repository.save()
            if not repository.private:
                RepositoryUserRepositoryLink.objects.get_or_create(user = repository_user, repository = repository, link_type = repo_link_type)
            repositories_by_language[repository.language].append(repository)
        repository_user.public_repos = len(watched)
        repository_user.save()
        for category in repositories_by_language.keys():
            RepositoryCategory.objects.get_or_create(name = category)
            repositories_by_language[category].sort(key=lambda x: x.watchers, reverse = True)
    return render_to_response('bitbucket_username_watched.html', {'username':username,'repositories_by_language':sorted(dict(repositories_by_language).iteritems(),key=lambda (k, v): len(v),reverse = True),'owned':True},context_instance=RequestContext(request))
Ejemplo n.º 5
0
def bitbucket_username_owned_update(request, username):
    owned = True
    username = urllib.unquote(username)
    user = request.user
    try:
        bitbucket_username = user.social_auth.get(provider='bitbucket').extra_data['username']
        if username == bitbucket_username:
            profile = user.get_profile()
            profile.save()
            bitbucket_provider = BitbucketProvider(user)
            repository_user = bitbucket_provider.update_owned_repositories(username)
            repository_user.save()
            return HttpResponseRedirect(reverse('bitbucket_username_owned', kwargs={'username': username}))
    except ObjectDoesNotExist:
        pass
    res = HttpResponse("Unauthorized")
    res.status_code = 401
    return res
Ejemplo n.º 6
0
def bitbucket_repo(request, owner, repo):
    owner = urllib.unquote(owner)
    repo = urllib.unquote(repo)
    user = request.user
    slug = '/'.join((owner,repo))
    host_slug = '/'.join(('bitbucket',owner,repo))
    bitbucket_provider = BitbucketProvider(user)
    update = False
    try:
        repository = bitbucket_provider.retrieve_repository_details(owner, repo)
    except ObjectDoesNotExist:
        update = True
        repository = Repository()
    if update or (datetime.now() - repository.last_modified) > timedelta(days = 1):
        repository_dict = bitbucket_provider.get_repository_details(owner, repo)
        repository = bitbucket_provider.create_or_update_repository_details(repository_dict, repository)
        if not repository.private:
            repository.save()
    repo_events = bitbucket_provider.get_repository_events(owner, repo)
    return render_to_response('bitbucket_repo.html', {'repository': repository, 'repo_events': repo_events}, RequestContext(request))
Ejemplo n.º 7
0
def bitbucket_username_watched_save(request, username, link_type):
    user = request.user
    username = urllib.unquote(username)
    try:
        if user.is_authenticated() and username == user.social_auth.get(provider='bitbucket').extra_data['username']:
            profile = user.get_profile()
            profile.save()
            try:
                updated_dictionary = json.loads(request.POST["order"])
            except ValueError:
                updated_dictionary = {}
            bitbucket_provider = BitbucketProvider(user)
            bitbucket_provider.save_repositories(updated_dictionary, link_type)
            data= {'outcome':'success'}
            return HttpResponse(json.dumps(data),mimetype="application/json")
    except ObjectDoesNotExist:
        pass
    res = HttpResponse("Unauthorized")
    res.status_code = 401
    return res
Ejemplo n.º 8
0
def bitbucket_username_watched_save(request, username, link_type):
    user = request.user
    username = urllib.unquote(username)
    try:
        if user.is_authenticated() and username == user.social_auth.get(
                provider='bitbucket').extra_data['username']:
            profile = user.get_profile()
            profile.save()
            try:
                updated_dictionary = json.loads(request.POST["order"])
            except ValueError:
                updated_dictionary = {}
            bitbucket_provider = BitbucketProvider(user)
            bitbucket_provider.save_repositories(updated_dictionary, link_type)
            data = {'outcome': 'success'}
            return HttpResponse(json.dumps(data), mimetype="application/json")
    except ObjectDoesNotExist:
        pass
    res = HttpResponse("Unauthorized")
    res.status_code = 401
    return res
Ejemplo n.º 9
0
def bitbucket_repo(request, owner, repo):
    owner = urllib.unquote(owner)
    repo = urllib.unquote(repo)
    user = request.user
    slug = '/'.join((owner, repo))
    host_slug = '/'.join(('bitbucket', owner, repo))
    bitbucket_provider = BitbucketProvider(user)
    update = False
    try:
        repository = bitbucket_provider.retrieve_repository_details(
            owner, repo)
    except ObjectDoesNotExist:
        update = True
        repository = Repository()
    if update or (datetime.now() -
                  repository.last_modified) > timedelta(days=1):
        repository_dict = bitbucket_provider.get_repository_details(
            owner, repo)
        repository = bitbucket_provider.create_or_update_repository_details(
            repository_dict, repository)
        if not repository.private:
            repository.save()
    repo_events = bitbucket_provider.get_repository_events(owner, repo)
    return render_to_response('bitbucket_repo.html', {
        'repository': repository,
        'repo_events': repo_events
    }, RequestContext(request))
Ejemplo n.º 10
0
def bitbucket_username_category_watched(request, username, category):
    """has all bitbucket repos and the latest 30 events for a username with a specific category"""
    owned = False
    username = urllib.unquote(username)
    category = urllib.unquote(category)
    category = category.lower()
    user = request.user
    try:
        bitbucket_username = user.social_auth.get(
            provider='bitbucket').extra_data['username']
        if username == bitbucket_username:
            bitbucket_provider = BitbucketProvider(user)
            watched_filtered, repository_user = bitbucket_provider.retrieve_watched_category_repositories(
                username, category)
            repository_user.save()
            if len(watched_filtered) == 0:
                watched = bitbucket_provider.get_repositories(
                    username, "starred")
                for repo in watched:
                    update = False
                    try:
                        repository = Repository.objects.get(
                            host_slug='bitbucket/' + repo['owner'].lower() +
                            '/' + repo['name'].lower())
                    except ObjectDoesNotExist:
                        update = True
                        repository = Repository()
                    if update or (datetime.now() - repository.last_modified
                                  ) > timedelta(days=1):
                        bitbucket_provider.create_or_update_repository_details(
                            repo, repository)
                        if not repository.private:
                            repository.save()
                    if repository.language == category:
                        watched_filtered.append(repository)
                RepositoryCategory.objects.get_or_create(name=category)
                watched_filtered.sort(key=lambda x: x.watchers, reverse=True)
            repo_events = bitbucket_provider.get_repositories_events(
                watched_filtered)
            return render_to_response(
                'bitbucket_username_category_watched.html', {
                    'username': username,
                    'watched': watched_filtered,
                    'category': category,
                    'repo_events': repo_events,
                    'owned': owned
                },
                context_instance=RequestContext(request))
    except ObjectDoesNotExist:
        pass
    res = HttpResponse("Unauthorized")
    res.status_code = 401
    return res
Ejemplo n.º 11
0
def bitbucket_username_watched_update(request, username):
    owned = False
    username = urllib.unquote(username)
    user = request.user
    try:
        bitbucket_username = user.social_auth.get(
            provider='bitbucket').extra_data['username']
        if username == bitbucket_username:
            profile = user.get_profile()
            profile.save()
            bitbucket_provider = BitbucketProvider(user)
            repository_user = bitbucket_provider.update_watched_repositories(
                username)
            repository_user.starred = None
            repository_user.save()
            return HttpResponseRedirect(
                reverse('bitbucket_username_starred',
                        kwargs={'username': username}))
    except ObjectDoesNotExist:
        pass
    res = HttpResponse("Unauthorized")
    res.status_code = 401
    return res
Ejemplo n.º 12
0
def bitbucket_username_category_owned(request, username, category):
    """has all bitbucket repos and the latest 30 events for a username with a specific category"""
    repo_link_type, _ = LinkType.objects.get_or_create(name="owned")
    owned = True
    username = urllib.unquote(username)
    category = urllib.unquote(category)
    user = request.user
    bitbucket_provider = BitbucketProvider(user)
    watched_filtered, repository_user = bitbucket_provider.retrieve_owned_category_repositories(
        username, category)
    repository_user.save()

    if len(watched_filtered) == 0:
        owned = bitbucket_provider.get_owned_repositories(username)
        category_lower = category.lower()
        for repo in owned:
            update = False
            try:
                repository = bitbucket_provider.retrieve_repository_details(
                    repo['owner'], repo['name'])
            except ObjectDoesNotExist:
                update = True
                repository = Repository()
            if update or (datetime.now() -
                          repository.last_modified) > timedelta(days=1):
                repository = bitbucket_provider.create_or_update_repository_details(
                    repo, repository)
                if not repository.private:
                    repository.save()
            if repository.language == category_lower:
                watched_filtered.append(repository)
            if not repository.private:
                RepositoryUserRepositoryLink.objects.get_or_create(
                    user=repository_user,
                    repository=repository,
                    link_type=repo_link_type)
        RepositoryCategory.objects.get_or_create(name=category)
        repository_user.public_repos = len(owned)
        repository_user.save()
        watched_filtered.sort(key=lambda x: x.watchers, reverse=True)
    # Get repository events
    repo_events = bitbucket_provider.get_repositories_events(watched_filtered)
    return render_to_response('bitbucket_username_category_watched.html', {
        'username': username,
        'watched': watched_filtered,
        'category': category,
        'repo_events': repo_events,
        'owned': owned
    },
                              context_instance=RequestContext(request))
Ejemplo n.º 13
0
def bitbucket_username_watched(request, username):
    user = request.user
    # need to fixed the problem with owned repos
    try:
        bitbucket_username = user.social_auth.get(
            provider='bitbucket').extra_data['username']
        if username == bitbucket_username:
            bitbucket_provider = BitbucketProvider(user)
            repositories_by_language, repository_user = bitbucket_provider.retrieve_watched_repositories_dict(
                username)
            repository_user.save()
            if len(repositories_by_language) == 0:

                repositories = bitbucket_provider.get_watched_repositories(
                    username)
                for repo in repositories:
                    update = False
                    try:
                        repository = bitbucket_provider.retrieve_repository_details(
                            repo['owner'], repo['name'])
                    except ObjectDoesNotExist:
                        update = True
                        repository = Repository()
                    if update or (datetime.now() - repository.last_modified
                                  ) > timedelta(days=1):
                        repository = bitbucket_provider.create_or_update_repository_details(
                            repo, repository)
                        if not repository.private:
                            repository.save()
                    repositories_by_language[repository.language].append(
                        repository)
                for category in repositories_by_language.keys():
                    RepositoryCategory.objects.get_or_create(name=category)
                    repositories_by_language[category].sort(
                        key=lambda x: x.watchers, reverse=True)
            return render_to_response('bitbucket_username_watched.html', {
                'username':
                username,
                'repositories_by_language':
                sorted(dict(repositories_by_language).iteritems(),
                       key=lambda (k, v): len(v),
                       reverse=True),
                'owned':
                False
            },
                                      context_instance=RequestContext(request))
    except ObjectDoesNotExist:
        pass
    res = HttpResponse("Unauthorized")
    res.status_code = 401
    return res
Ejemplo n.º 14
0
def bitbucket_username_owned(request, username):
    repo_link_type, _ = LinkType.objects.get_or_create(name="owned")
    user = request.user
    bitbucket_provider = BitbucketProvider(user)
    repositories_by_language, repository_user = bitbucket_provider.retrieve_owned_repositories_dict(
        username)
    repository_user.save()

    if len(repositories_by_language) == 0:
        watched = bitbucket_provider.get_owned_repositories(username)
        for repo in watched:
            update = False
            try:
                repository = bitbucket_provider.retrieve_repository_details(
                    repo['owner'], repo['name'])
            except ObjectDoesNotExist:
                update = True
                repository = Repository()
            if update or (datetime.now() -
                          repository.last_modified) > timedelta(days=1):
                repository = bitbucket_provider.create_or_update_repository_details(
                    repo, repository)
                if not repository.private:
                    repository.save()
            if not repository.private:
                RepositoryUserRepositoryLink.objects.get_or_create(
                    user=repository_user,
                    repository=repository,
                    link_type=repo_link_type)
            repositories_by_language[repository.language].append(repository)
        repository_user.public_repos = len(watched)
        repository_user.save()
        for category in repositories_by_language.keys():
            RepositoryCategory.objects.get_or_create(name=category)
            repositories_by_language[category].sort(key=lambda x: x.watchers,
                                                    reverse=True)
    return render_to_response('bitbucket_username_watched.html', {
        'username':
        username,
        'repositories_by_language':
        sorted(dict(repositories_by_language).iteritems(),
               key=lambda (k, v): len(v),
               reverse=True),
        'owned':
        True
    },
                              context_instance=RequestContext(request))
Ejemplo n.º 15
0
def bitbucket_username_category_watched(request,username,category):
    """has all bitbucket repos and the latest 30 events for a username with a specific category"""
    owned = False
    username = urllib.unquote(username)
    category = urllib.unquote(category)
    category = category.lower()
    user = request.user
    try:
        bitbucket_username = user.social_auth.get(provider='bitbucket').extra_data['username']
        if username == bitbucket_username:
            bitbucket_provider = BitbucketProvider(user)
            watched_filtered, repository_user = bitbucket_provider.retrieve_watched_category_repositories(username, category)
            repository_user.save()
            if len(watched_filtered) == 0:
                watched = bitbucket_provider.get_repositories(username, "starred")
                for repo in watched:
                    update = False
                    try:
                        repository = Repository.objects.get(host_slug= 'bitbucket/'+repo['owner'].lower() + '/' + repo['name'].lower())
                    except ObjectDoesNotExist:
                        update = True
                        repository = Repository()
                    if update or (datetime.now() - repository.last_modified) > timedelta(days = 1):
                        bitbucket_provider.create_or_update_repository_details(repo, repository)
                        if not repository.private:
                            repository.save()
                    if repository.language == category:
                        watched_filtered.append(repository)
                RepositoryCategory.objects.get_or_create(name = category)
                watched_filtered.sort(key=lambda x: x.watchers, reverse = True)
            repo_events = bitbucket_provider.get_repositories_events(watched_filtered)
            return render_to_response('bitbucket_username_category_watched.html', {'username': username, 'watched':watched_filtered, 'category':category, 'repo_events':repo_events,'owned':owned},context_instance=RequestContext(request))
    except ObjectDoesNotExist:
        pass
    res = HttpResponse("Unauthorized")
    res.status_code = 401
    return res
Ejemplo n.º 16
0
def bitbucket_username_category_owned(request,username,category):
    """has all bitbucket repos and the latest 30 events for a username with a specific category"""
    repo_link_type, _ = LinkType.objects.get_or_create(name = "owned")
    owned = True
    username = urllib.unquote(username)
    category = urllib.unquote(category)
    user = request.user
    bitbucket_provider = BitbucketProvider(user)
    watched_filtered, repository_user = bitbucket_provider.retrieve_owned_category_repositories(username, category)
    repository_user.save()

    if len(watched_filtered) == 0:
        owned = bitbucket_provider.get_owned_repositories(username)
        category_lower = category.lower()
        for repo in owned:
            update = False
            try:
                repository = bitbucket_provider.retrieve_repository_details(repo['owner'], repo['name'])
            except ObjectDoesNotExist:
                update = True
                repository = Repository()
            if update or (datetime.now() - repository.last_modified) > timedelta(days = 1):
                repository = bitbucket_provider.create_or_update_repository_details(repo, repository)
                if not repository.private:
                    repository.save()
            if repository.language == category_lower:
                watched_filtered.append(repository)
            if not repository.private:
                RepositoryUserRepositoryLink.objects.get_or_create(user = repository_user, repository = repository, link_type = repo_link_type)
        RepositoryCategory.objects.get_or_create(name = category)
        repository_user.public_repos = len(owned)
        repository_user.save()
        watched_filtered.sort(key=lambda x: x.watchers, reverse = True)
    # Get repository events
    repo_events = bitbucket_provider.get_repositories_events(watched_filtered)
    return render_to_response('bitbucket_username_category_watched.html', {'username': username, 'watched':watched_filtered, 'category':category, 'repo_events':repo_events,'owned':owned},context_instance=RequestContext(request))
Ejemplo n.º 17
0
def authed_owned(request):
    repo_link_type, _ = LinkType.objects.get_or_create(name = "owned")
    repositories_by_language = defaultdict(list)
    github_repositories_by_language = defaultdict(list)
    bitbucket_repositories_by_language = defaultdict(list)
    bitbucket_authed = True
    github_authed = True
    owned = True
    api_only = True
    user = request.user
    github_username = None
    bitbucket_username = None
    try:
        github_username = user.social_auth.get(provider='github').extra_data['username']
        github_provider = GithubProvider(user)
        github_repositories_by_language, github_repository_user = github_provider.retrieve_repositories_dict(github_username, "owned")
        if len(github_repositories_by_language) == 0:
            owned_repos = github_provider.get_repositories(github_username, "owned")

            count = 0
            for repo in owned_repos:
                update = False
                try:
                    repository = github_provider.retrieve_repository_details(repo['owner'], repo['name'])
                except ObjectDoesNotExist:
                    update = True
                    repository = Repository()
                if update or (datetime.now() - repository.last_modified) > timedelta(days = 1):
                    repository = github_provider.create_or_update_repository_details(repo, repository)
                    if not repository.private:
                        repository.save()
                if not repository.private:
                    count += 1
                    RepositoryUserRepositoryLink.objects.get_or_create(user = github_repository_user, repository = repository, link_type = repo_link_type)

                github_repositories_by_language[repository.language.lower()].append(repository)
            for category in github_repositories_by_language.keys():
                RepositoryCategory.objects.get_or_create(name=category)
                repositories_by_language[category].extend(github_repositories_by_language[category])
            for category in repositories_by_language.keys():
                repositories_by_language[category].sort(key=lambda x: x.watchers, reverse = True)
        else:
            for category in github_repositories_by_language.keys():
                repositories_by_language[category].extend(github_repositories_by_language[category])
    except ObjectDoesNotExist:
        github_authed = False
    try:
        bitbucket_username = user.social_auth.get(provider='bitbucket').extra_data['username']
        bitbucket_provider = BitbucketProvider(user)
        bitbucket_repositories_by_language, bitbucket_repository_user = bitbucket_provider.retrieve_owned_repositories_dict(bitbucket_username)
        if len(bitbucket_repositories_by_language)==0:
            owned_repos = bitbucket_provider.get_owned_repositories(bitbucket_username)
            for repo in owned_repos:
                update = False
                try:
                    repository = bitbucket_provider.retrieve_repository_details(repo['owner'], repo['name'])
                except ObjectDoesNotExist:
                    update = True
                    repository = Repository()
                if update or (datetime.now() - repository.last_modified) > timedelta(days = 1):
                    repository = bitbucket_provider.create_or_update_repository_details(repo, repository)
                    if not repository.private:
                        repository.save()
                bitbucket_repositories_by_language[repository.language].append(repository)
            for category in bitbucket_repositories_by_language.keys():
                RepositoryCategory.objects.get_or_create(name=category)
                repositories_by_language[category].extend(bitbucket_repositories_by_language[category])
            for category in repositories_by_language.keys():
                repositories_by_language[category].sort(key=lambda x: x.watchers, reverse = True)
        else:
            for category in bitbucket_repositories_by_language.keys():
                repositories_by_language[category].extend(bitbucket_repositories_by_language[category])
    except ObjectDoesNotExist:
        bitbucket_authed = False
    if bitbucket_authed or github_authed:
        return render_to_response('username_watched.html', {'github_username': github_username,'github_authed': github_authed,'bitbucket_username':bitbucket_username, 'bitbucket_authed':bitbucket_authed,'repositories_by_language':sorted(dict(repositories_by_language).iteritems(),key=lambda (k, v): len(v),reverse = True),'owned':owned},context_instance=RequestContext(request))
    else:
        return HttpResponseRedirect(reverse('repowatcher.main.views.authed'))
Ejemplo n.º 18
0
def authed_category_owned(request, category):
    """has all github repos and the latest 30 events for a username with a specific category"""
    repo_link_type, _ = LinkType.objects.get_or_create(name="owned")
    owned = True
    category = urllib.unquote(category).lower()
    github_repo_events = []
    bitbucket_repo_events = []
    github_watched_filtered = []
    bitbucket_watched_filtered = []
    user = request.user
    repository_user = None
    github_username = None
    bitbucket_username = None
    bitbucket_authed = True
    github_authed = True
    watched_filtered = []
    try:
        github_username = user.social_auth.get(
            provider='github').extra_data['username']
        github_provider = GithubProvider(user)
        github_watched_filtered, github_repository_user = github_provider.retrieve_category_repositories(
            github_username, category, "owned")
        watched_filtered.extend(github_watched_filtered)
        github_repository_user.save()
        if len(github_watched_filtered) == 0:
            watched = github_provider.get_repositories(github_username,
                                                       "owned")
            category_lower = category.lower()
            for repo in watched:
                update = False
                try:
                    repository = Repository.objects.get(
                        host_slug='github/' + repo['owner'].lower() + '/' +
                        repo['name'].lower())
                except ObjectDoesNotExist:
                    update = True
                    repository = Repository()
                if update or (datetime.now() -
                              repository.last_modified) > timedelta(days=1):
                    repository = github_provider.create_or_update_repository_details(
                        repo, repository)
                    if not repository.private:
                        repository.save()
                if repository.language == category_lower:
                    github_watched_filtered.append(repository)
                if not repository.private:
                    RepositoryUserRepositoryLink.objects.get_or_create(
                        user=github_repository_user,
                        repository=repository,
                        link_type=repo_link_type)
            watched_filtered.extend(github_watched_filtered)
            watched_filtered.sort(key=lambda x: x.watchers, reverse=True)
            RepositoryCategory.objects.get_or_create(name=category.lower())
            github_repository_user.save()

        # Get repository events

        github_repo_events = github_provider.get_repositories_events(
            github_watched_filtered)
        for github_repo_event in github_repo_events:
            github_repo_event['host'] = 'github'
            github_repo_event['created_on'] = dateutil.parser.parse(
                github_repo_event['created_at'])
    except ObjectDoesNotExist:
        github_authed = False
    user = request.user
    try:
        bitbucket_username = user.social_auth.get(
            provider='bitbucket').extra_data['username']
        profile = user.get_profile()
        bitbucket_provider = BitbucketProvider(user)
        bitbucket_watched_filtered, bitbucket_repository_user = bitbucket_provider.retrieve_owned_category_repositories(
            bitbucket_username, category)
        watched_filtered.extend(bitbucket_watched_filtered)
        if len(bitbucket_watched_filtered) == 0:
            owned = bitbucket_provider.get_owned_repositories(
                bitbucket_username)
            for repo in owned:
                update = False
                try:
                    repository = Repository.objects.get(
                        host_slug='bitbucket/' + repo['owner'].lower() + '/' +
                        repo['name'].lower())
                except ObjectDoesNotExist:
                    update = True
                    repository = Repository()
                if update or (datetime.now() -
                              repository.last_modified) > timedelta(days=1):
                    repository = bitbucket_provider.create_or_update_repository_details(
                        repo, repository)
                    if not repository.private:
                        repository.save()

                if repository.language == category_lower:
                    bitbucket_watched_filtered.append(repository)
            watched_filtered.extend(bitbucket_watched_filtered)
            watched_filtered.sort(key=lambda x: x.watchers, reverse=True)
            RepositoryCategory.objects.get_or_create(name=category.lower())
        bitbucket_repo_events = bitbucket_provider.get_repositories_events(
            bitbucket_watched_filtered)
        for bitbucket_repo_event in bitbucket_repo_events:
            bitbucket_repo_event['host'] = 'bitbucket'
            bitbucket_repo_event['created_on'] = dateutil.parser.parse(
                bitbucket_repo_event['utc_created_on'])
    except ObjectDoesNotExist:
        bitbucket_authed = False
    repo_events = sorted(github_repo_events + bitbucket_repo_events,
                         key=itemgetter('created_on'),
                         reverse=True)[:30]
    if bitbucket_authed or github_authed:
        return render_to_response('username_category_watched.html', {
            'github_username': github_username,
            'github_authed': github_authed,
            'bitbucket_username': bitbucket_username,
            'bitbucket_authed': bitbucket_authed,
            'watched': watched_filtered,
            'category': category,
            'repo_events': repo_events,
            'owned': owned
        },
                                  context_instance=RequestContext(request))
    else:
        return HttpResponseRedirect(reverse('repowatcher.main.views.authed'))
Ejemplo n.º 19
0
def bitbucket_username(request, username):
    username = urllib.unquote(username)
    user = request.user
    repository_user = None
    update = False
    response = None

    bitbucket_provider = BitbucketProvider(user)
    # Get user information
    try:
        repository_user = bitbucket_provider.retrieve_user_details(username)
    except ObjectDoesNotExist:
        update = True
        repository_user = RepositoryUser()
    if update or (datetime.now() - repository_user.last_modified) > timedelta(days = 1):
        user_dict = bitbucket_provider.get_user_details(username)
        repository_user = bitbucket_provider.create_or_update_user_details(user_dict, repository_user)
        repository_user.save()

    user_events = bitbucket_provider.get_user_events(username)
    # Get repository information
    owned_repositories, repository_user = bitbucket_provider.retrieve_owned_repositories_list(username)
    watched_repositories, repository_user = bitbucket_provider.retrieve_watched_repositories_list(username)

    if len(owned_repositories) == 0:
        repo_link_type, _ = LinkType.objects.get_or_create(name = "owned")
        owned = bitbucket_provider.get_owned_repositories(username)
        for repo in owned:
            update = False
            try:
                repository = bitbucket_provider.retrieve_repository_details(repo['owner'], repo['name'])
            except ObjectDoesNotExist:
                update = True
                repository = Repository()
            if update or (datetime.now() - repository.last_modified) > timedelta(days = 1):
                repository = bitbucket_provider.create_or_update_repository_details(repo, repository)
                if not repository.private:
                    repository.save()
                RepositoryCategory.objects.get_or_create(name=repository.language)
            if not repository.private:
                RepositoryUserRepositoryLink.objects.get_or_create(user=repository_user, repository = repository, link_type = repo_link_type)
            owned_repositories.append(repository)
        repository_user.public_repos = len(owned_repositories)
        repository_user.save()

    if len(watched_repositories) == 0:
        watched = bitbucket_provider.get_watched_repositories(username)
        for repo in watched:
            update = False
            try:
                repository = bitbucket_provider.retrieve_repository_details(repo['owner'], repo['name'])
            except ObjectDoesNotExist:
                update = True
                repository = Repository()
            if update or (datetime.now() - repository.last_modified) > timedelta(days = 1):
                repository = bitbucket_provider.create_or_update_repository_details(repo, repository)
                if not repository.private:
                    repository.save()
            watched_repositories.append(repository)
        repository_user.starred = len(watched_repositories)
    return render_to_response('bitbucket_username.html', {'user_events':user_events,'repository_user':repository_user},context_instance=RequestContext(request))
Ejemplo n.º 20
0
def authed(request):
    user = request.user
    bitbucket_authed = True
    github_authed = True
    bitbucket_user_events = []
    github_user_events = []
    github_repository_user = None
    bitbucket_repository_user = None
    try:
        github_username = user.social_auth.get(provider='github').extra_data['username']
        github_provider = GithubProvider(user)
        update = False

        # Get user information
        try:
            github_repository_user = github_provider.retrieve_user_details(github_username)
        except ObjectDoesNotExist:
            update = True
            github_repository_user = RepositoryUser()
        if update or (datetime.now() - github_repository_user.last_modified) > timedelta(days = 1):
            github_user_dict = github_provider.get_user_details(github_username)
            github_repository_user = github_provider.create_or_update_user_details(github_user_dict, github_repository_user)
            github_repository_user.save()
        github_user_events = github_provider.get_user_events(github_username)
        for github_user_event in github_user_events:
            github_user_event['host'] = 'github'
            github_user_event['created_on'] = dateutil.parser.parse(github_user_event['created_at'])

        # Get repository information
        repositories, _ = github_provider.retrieve_starred_repositories_list(github_username)

        if len(repositories) == 0:
            repo_link_type, _ = LinkType.objects.get_or_create(name = "starred")
            if not github_repository_user:
                github_repository_user,_ = RepositoryUser.objects.get_or_create(login=github_username,host='github')
            watched = github_provider.get_starred_repositories(github_username)
            for repo in watched:
                update = False
                try:
                    repository = Repository.objects.get(host_slug= 'github/'+repo['owner'].lower() + '/' + repo['name'].lower())
                except ObjectDoesNotExist:
                    update = True
                    repository = Repository()
                if update or (datetime.now() - repository.last_modified) > timedelta(days = 1):
                    repository = github_provider.create_or_update_repository_details(repo, repository)
                    if not repository.private:
                        repository.save()
                    RepositoryCategory.objects.get_or_create(name = repository.language)
                if not repository.private:
                    RepositoryUserRepositoryLink.objects.get_or_create(user = github_repository_user, repository = repository, link_type = repo_link_type)

                repositories.append(repository)
        github_repository_user.starred = len(repositories)
        github_repository_user.save()

        # Get repository information
        repositories, _ = github_provider.retrieve_watched_repositories_list(github_username)

        if len(repositories) == 0:
            repo_link_type, _ = LinkType.objects.get_or_create(name = "watched")
            if not github_repository_user:
                github_repository_user,_ = RepositoryUser.objects.get_or_create(login=github_username,host='github')
            watched = github_provider.get_watched_repositories(github_username)
            for repo in watched:
                update = False
                try:
                    repository = Repository.objects.get(host_slug= 'github/'+repo['owner'].lower() + '/' + repo['name'].lower())
                except ObjectDoesNotExist:
                    update = True
                    repository = Repository()
                if update or (datetime.now() - repository.last_modified) > timedelta(days = 1):
                    repository = github_provider.create_or_update_repository_details(repo, repository)
                    if not repository.private:
                        repository.save()
                    RepositoryCategory.objects.get_or_create(name = repository.language)
                if not repository.private:
                    RepositoryUserRepositoryLink.objects.get_or_create(user = github_repository_user, repository = repository, link_type = repo_link_type)

                repositories.append(repository)
        github_repository_user.watched = len(repositories)
        github_repository_user.save()
    except ObjectDoesNotExist:
        github_authed = False

    try:
        bitbucket_username = user.social_auth.get(provider='bitbucket').extra_data['username']
        bitbucket_provider = BitbucketProvider(user)
        # Get user information
        update = False
        try:
            bitbucket_repository_user = bitbucket_provider.retrieve_user_details(bitbucket_username)
        except ObjectDoesNotExist:
            update = True
            bitbucket_repository_user = RepositoryUser()
        if update or (datetime.now() - bitbucket_repository_user.last_modified) > timedelta(days = 1):
            user_dict = bitbucket_provider.get_user_details(bitbucket_username)
            bitbucket_repository_user = bitbucket_provider.create_or_update_user_details(user_dict, bitbucket_repository_user)
            bitbucket_repository_user.save()
        bitbucket_user_events = bitbucket_provider.get_user_events(bitbucket_username)
        for bitbucket_user_event in bitbucket_user_events:
            bitbucket_user_event['host'] = 'bitbucket'
            bitbucket_user_event['created_on'] = dateutil.parser.parse(bitbucket_user_event['utc_created_on'])
        # Get repository information
        owned_repositories, _ = bitbucket_provider.retrieve_owned_repositories_list(bitbucket_username)
        watched_repositories, _ = bitbucket_provider.retrieve_watched_repositories_list(bitbucket_username)

        if len(owned_repositories) == 0:
            owned = bitbucket_provider.get_owned_repositories(bitbucket_username)
            for repo in owned:
                update = False
                try:
                    repository = bitbucket_provider.retrieve_repository_details(repo['owner'], repo['name'])
                except ObjectDoesNotExist:
                    update = True
                    repository = Repository()
                if update or (datetime.now() - repository.last_modified) > timedelta(days = 1):
                    repository = bitbucket_provider.create_or_update_repository_details(repo, repository)
                    if not repository.private:
                        repository.save()
                    RepositoryCategory.objects.get_or_create(name=repository.language)
                if not repository.private:
                    RepositoryUserRepositoryLink.objects.get_or_create(user=bitbucket_repository_user, repository = repository, owned = True)
                owned_repositories.append(repository)
            bitbucket_repository_user.public_repos = len(owned_repositories)
            bitbucket_repository_user.save()

        if len(watched_repositories) == 0:
            watched = bitbucket_provider.get_watched_repositories(bitbucket_username)
            for repo in watched:
                update = False
                try:
                    repository = bitbucket_provider.retrieve_repository_details(repo['owner'], repo['name'])
                except ObjectDoesNotExist:
                    update = True
                    repository = Repository()
                if update or (datetime.now() - repository.last_modified) > timedelta(days = 1):
                    repository = bitbucket_provider.create_or_update_repository_details(repo, repository)
                    if not repository.private:
                        repository.save()
                watched_repositories.append(repository)
            bitbucket_repository_user.starred = len(watched_repositories)
    except ObjectDoesNotExist:
        bitbucket_authed = False

    user_events = sorted(github_user_events + bitbucket_user_events,key=itemgetter('created_on'), reverse = True)[:30]

    return render_to_response('authed.html', {'user_events':user_events,'github_repository_user':github_repository_user,'bitbucket_repository_user':bitbucket_repository_user,'github_authed':github_authed,'bitbucket_authed':bitbucket_authed}, context_instance=RequestContext(request))
Ejemplo n.º 21
0
def authed_owned(request):
    repo_link_type, _ = LinkType.objects.get_or_create(name="owned")
    repositories_by_language = defaultdict(list)
    github_repositories_by_language = defaultdict(list)
    bitbucket_repositories_by_language = defaultdict(list)
    bitbucket_authed = True
    github_authed = True
    owned = True
    api_only = True
    user = request.user
    github_username = None
    bitbucket_username = None
    try:
        github_username = user.social_auth.get(
            provider='github').extra_data['username']
        github_provider = GithubProvider(user)
        github_repositories_by_language, github_repository_user = github_provider.retrieve_repositories_dict(
            github_username, "owned")
        if len(github_repositories_by_language) == 0:
            owned_repos = github_provider.get_repositories(
                github_username, "owned")

            count = 0
            for repo in owned_repos:
                update = False
                try:
                    repository = github_provider.retrieve_repository_details(
                        repo['owner'], repo['name'])
                except ObjectDoesNotExist:
                    update = True
                    repository = Repository()
                if update or (datetime.now() -
                              repository.last_modified) > timedelta(days=1):
                    repository = github_provider.create_or_update_repository_details(
                        repo, repository)
                    if not repository.private:
                        repository.save()
                if not repository.private:
                    count += 1
                    RepositoryUserRepositoryLink.objects.get_or_create(
                        user=github_repository_user,
                        repository=repository,
                        link_type=repo_link_type)

                github_repositories_by_language[
                    repository.language.lower()].append(repository)
            for category in github_repositories_by_language.keys():
                RepositoryCategory.objects.get_or_create(name=category)
                repositories_by_language[category].extend(
                    github_repositories_by_language[category])
            for category in repositories_by_language.keys():
                repositories_by_language[category].sort(
                    key=lambda x: x.watchers, reverse=True)
        else:
            for category in github_repositories_by_language.keys():
                repositories_by_language[category].extend(
                    github_repositories_by_language[category])
    except ObjectDoesNotExist:
        github_authed = False
    try:
        bitbucket_username = user.social_auth.get(
            provider='bitbucket').extra_data['username']
        bitbucket_provider = BitbucketProvider(user)
        bitbucket_repositories_by_language, bitbucket_repository_user = bitbucket_provider.retrieve_owned_repositories_dict(
            bitbucket_username)
        if len(bitbucket_repositories_by_language) == 0:
            owned_repos = bitbucket_provider.get_owned_repositories(
                bitbucket_username)
            for repo in owned_repos:
                update = False
                try:
                    repository = bitbucket_provider.retrieve_repository_details(
                        repo['owner'], repo['name'])
                except ObjectDoesNotExist:
                    update = True
                    repository = Repository()
                if update or (datetime.now() -
                              repository.last_modified) > timedelta(days=1):
                    repository = bitbucket_provider.create_or_update_repository_details(
                        repo, repository)
                    if not repository.private:
                        repository.save()
                bitbucket_repositories_by_language[repository.language].append(
                    repository)
            for category in bitbucket_repositories_by_language.keys():
                RepositoryCategory.objects.get_or_create(name=category)
                repositories_by_language[category].extend(
                    bitbucket_repositories_by_language[category])
            for category in repositories_by_language.keys():
                repositories_by_language[category].sort(
                    key=lambda x: x.watchers, reverse=True)
        else:
            for category in bitbucket_repositories_by_language.keys():
                repositories_by_language[category].extend(
                    bitbucket_repositories_by_language[category])
    except ObjectDoesNotExist:
        bitbucket_authed = False
    if bitbucket_authed or github_authed:
        return render_to_response('username_watched.html', {
            'github_username':
            github_username,
            'github_authed':
            github_authed,
            'bitbucket_username':
            bitbucket_username,
            'bitbucket_authed':
            bitbucket_authed,
            'repositories_by_language':
            sorted(dict(repositories_by_language).iteritems(),
                   key=lambda (k, v): len(v),
                   reverse=True),
            'owned':
            owned
        },
                                  context_instance=RequestContext(request))
    else:
        return HttpResponseRedirect(reverse('repowatcher.main.views.authed'))
Ejemplo n.º 22
0
def bitbucket_username(request, username):
    username = urllib.unquote(username)
    user = request.user
    repository_user = None
    update = False
    response = None

    bitbucket_provider = BitbucketProvider(user)
    # Get user information
    try:
        repository_user = bitbucket_provider.retrieve_user_details(username)
    except ObjectDoesNotExist:
        update = True
        repository_user = RepositoryUser()
    if update or (datetime.now() -
                  repository_user.last_modified) > timedelta(days=1):
        user_dict = bitbucket_provider.get_user_details(username)
        repository_user = bitbucket_provider.create_or_update_user_details(
            user_dict, repository_user)
        repository_user.save()

    user_events = bitbucket_provider.get_user_events(username)
    # Get repository information
    owned_repositories, repository_user = bitbucket_provider.retrieve_owned_repositories_list(
        username)
    watched_repositories, repository_user = bitbucket_provider.retrieve_watched_repositories_list(
        username)

    if len(owned_repositories) == 0:
        repo_link_type, _ = LinkType.objects.get_or_create(name="owned")
        owned = bitbucket_provider.get_owned_repositories(username)
        for repo in owned:
            update = False
            try:
                repository = bitbucket_provider.retrieve_repository_details(
                    repo['owner'], repo['name'])
            except ObjectDoesNotExist:
                update = True
                repository = Repository()
            if update or (datetime.now() -
                          repository.last_modified) > timedelta(days=1):
                repository = bitbucket_provider.create_or_update_repository_details(
                    repo, repository)
                if not repository.private:
                    repository.save()
                RepositoryCategory.objects.get_or_create(
                    name=repository.language)
            if not repository.private:
                RepositoryUserRepositoryLink.objects.get_or_create(
                    user=repository_user,
                    repository=repository,
                    link_type=repo_link_type)
            owned_repositories.append(repository)
        repository_user.public_repos = len(owned_repositories)
        repository_user.save()

    if len(watched_repositories) == 0:
        watched = bitbucket_provider.get_watched_repositories(username)
        for repo in watched:
            update = False
            try:
                repository = bitbucket_provider.retrieve_repository_details(
                    repo['owner'], repo['name'])
            except ObjectDoesNotExist:
                update = True
                repository = Repository()
            if update or (datetime.now() -
                          repository.last_modified) > timedelta(days=1):
                repository = bitbucket_provider.create_or_update_repository_details(
                    repo, repository)
                if not repository.private:
                    repository.save()
            watched_repositories.append(repository)
        repository_user.starred = len(watched_repositories)
    return render_to_response('bitbucket_username.html', {
        'user_events': user_events,
        'repository_user': repository_user
    },
                              context_instance=RequestContext(request))
Ejemplo n.º 23
0
def authed_category_owned(request,category):
    """has all github repos and the latest 30 events for a username with a specific category"""
    repo_link_type, _ = LinkType.objects.get_or_create(name = "owned")
    owned = True
    category = urllib.unquote(category).lower()
    github_repo_events = []
    bitbucket_repo_events = []
    github_watched_filtered = []
    bitbucket_watched_filtered = []
    user = request.user
    repository_user = None
    github_username = None
    bitbucket_username = None
    bitbucket_authed = True
    github_authed = True
    watched_filtered = []
    try:
        github_username = user.social_auth.get(provider='github').extra_data['username']
        github_provider = GithubProvider(user)
        github_watched_filtered, github_repository_user = github_provider.retrieve_category_repositories(github_username, category, "owned")
        watched_filtered.extend(github_watched_filtered)
        github_repository_user.save()
        if len(github_watched_filtered) == 0:
            watched = github_provider.get_repositories(github_username, "owned")
            category_lower = category.lower()
            for repo in watched:
                update = False
                try:
                    repository = Repository.objects.get(host_slug= 'github/'+repo['owner'].lower() + '/' + repo['name'].lower())
                except ObjectDoesNotExist:
                    update = True
                    repository = Repository()
                if update or (datetime.now() - repository.last_modified) > timedelta(days = 1):
                    repository = github_provider.create_or_update_repository_details(repo, repository)
                    if not repository.private:
                        repository.save()
                if repository.language == category_lower:
                    github_watched_filtered.append(repository)
                if not repository.private:
                    RepositoryUserRepositoryLink.objects.get_or_create(user = github_repository_user, repository = repository, link_type = repo_link_type)
            watched_filtered.extend(github_watched_filtered)
            watched_filtered.sort(key=lambda x: x.watchers, reverse = True)
            RepositoryCategory.objects.get_or_create(name = category.lower())
            github_repository_user.save()


        # Get repository events

        github_repo_events = github_provider.get_repositories_events(github_watched_filtered)
        for github_repo_event in github_repo_events:
            github_repo_event['host'] = 'github'
            github_repo_event['created_on'] = dateutil.parser.parse(github_repo_event['created_at'])
    except ObjectDoesNotExist:
        github_authed = False
    user = request.user
    try:
        bitbucket_username = user.social_auth.get(provider='bitbucket').extra_data['username']
        profile = user.get_profile()
        bitbucket_provider = BitbucketProvider(user)
        bitbucket_watched_filtered, bitbucket_repository_user = bitbucket_provider.retrieve_owned_category_repositories(bitbucket_username, category)
        watched_filtered.extend(bitbucket_watched_filtered)
        if len(bitbucket_watched_filtered) == 0:
            owned = bitbucket_provider.get_owned_repositories(bitbucket_username)
            for repo in owned:
                update = False
                try:
                    repository = Repository.objects.get(host_slug= 'bitbucket/'+repo['owner'].lower() + '/' + repo['name'].lower())
                except ObjectDoesNotExist:
                    update = True
                    repository = Repository()
                if update or (datetime.now() - repository.last_modified) > timedelta(days = 1):
                    repository = bitbucket_provider.create_or_update_repository_details(repo, repository)
                    if not repository.private:
                        repository.save()


                if repository.language == category_lower:
                    bitbucket_watched_filtered.append(repository)
            watched_filtered.extend(bitbucket_watched_filtered)
            watched_filtered.sort(key=lambda x: x.watchers, reverse = True)
            RepositoryCategory.objects.get_or_create(name = category.lower())
        bitbucket_repo_events = bitbucket_provider.get_repositories_events(bitbucket_watched_filtered)
        for bitbucket_repo_event in bitbucket_repo_events:
                bitbucket_repo_event['host'] = 'bitbucket'
                bitbucket_repo_event['created_on'] = dateutil.parser.parse(bitbucket_repo_event['utc_created_on'])
    except ObjectDoesNotExist:
        bitbucket_authed = False
    repo_events = sorted(github_repo_events + bitbucket_repo_events,key=itemgetter('created_on'), reverse = True)[:30]
    if bitbucket_authed or github_authed:
        return render_to_response('username_category_watched.html', {'github_username': github_username,'github_authed': github_authed,'bitbucket_username':bitbucket_username, 'bitbucket_authed':bitbucket_authed, 'watched':watched_filtered, 'category':category, 'repo_events':repo_events,'owned':owned},context_instance=RequestContext(request))
    else:
        return HttpResponseRedirect(reverse('repowatcher.main.views.authed'))
Ejemplo n.º 24
0
def authed(request):
    user = request.user
    bitbucket_authed = True
    github_authed = True
    bitbucket_user_events = []
    github_user_events = []
    github_repository_user = None
    bitbucket_repository_user = None
    try:
        github_username = user.social_auth.get(
            provider='github').extra_data['username']
        github_provider = GithubProvider(user)
        update = False

        # Get user information
        try:
            github_repository_user = github_provider.retrieve_user_details(
                github_username)
        except ObjectDoesNotExist:
            update = True
            github_repository_user = RepositoryUser()
        if update or (datetime.now() - github_repository_user.last_modified
                      ) > timedelta(days=1):
            github_user_dict = github_provider.get_user_details(
                github_username)
            github_repository_user = github_provider.create_or_update_user_details(
                github_user_dict, github_repository_user)
            github_repository_user.save()
        github_user_events = github_provider.get_user_events(github_username)
        for github_user_event in github_user_events:
            github_user_event['host'] = 'github'
            github_user_event['created_on'] = dateutil.parser.parse(
                github_user_event['created_at'])

        # Get repository information
        repositories, _ = github_provider.retrieve_starred_repositories_list(
            github_username)

        if len(repositories) == 0:
            repo_link_type, _ = LinkType.objects.get_or_create(name="starred")
            if not github_repository_user:
                github_repository_user, _ = RepositoryUser.objects.get_or_create(
                    login=github_username, host='github')
            watched = github_provider.get_starred_repositories(github_username)
            for repo in watched:
                update = False
                try:
                    repository = Repository.objects.get(
                        host_slug='github/' + repo['owner'].lower() + '/' +
                        repo['name'].lower())
                except ObjectDoesNotExist:
                    update = True
                    repository = Repository()
                if update or (datetime.now() -
                              repository.last_modified) > timedelta(days=1):
                    repository = github_provider.create_or_update_repository_details(
                        repo, repository)
                    if not repository.private:
                        repository.save()
                    RepositoryCategory.objects.get_or_create(
                        name=repository.language)
                if not repository.private:
                    RepositoryUserRepositoryLink.objects.get_or_create(
                        user=github_repository_user,
                        repository=repository,
                        link_type=repo_link_type)

                repositories.append(repository)
        github_repository_user.starred = len(repositories)
        github_repository_user.save()

        # Get repository information
        repositories, _ = github_provider.retrieve_watched_repositories_list(
            github_username)

        if len(repositories) == 0:
            repo_link_type, _ = LinkType.objects.get_or_create(name="watched")
            if not github_repository_user:
                github_repository_user, _ = RepositoryUser.objects.get_or_create(
                    login=github_username, host='github')
            watched = github_provider.get_watched_repositories(github_username)
            for repo in watched:
                update = False
                try:
                    repository = Repository.objects.get(
                        host_slug='github/' + repo['owner'].lower() + '/' +
                        repo['name'].lower())
                except ObjectDoesNotExist:
                    update = True
                    repository = Repository()
                if update or (datetime.now() -
                              repository.last_modified) > timedelta(days=1):
                    repository = github_provider.create_or_update_repository_details(
                        repo, repository)
                    if not repository.private:
                        repository.save()
                    RepositoryCategory.objects.get_or_create(
                        name=repository.language)
                if not repository.private:
                    RepositoryUserRepositoryLink.objects.get_or_create(
                        user=github_repository_user,
                        repository=repository,
                        link_type=repo_link_type)

                repositories.append(repository)
        github_repository_user.watched = len(repositories)
        github_repository_user.save()
    except ObjectDoesNotExist:
        github_authed = False

    try:
        bitbucket_username = user.social_auth.get(
            provider='bitbucket').extra_data['username']
        bitbucket_provider = BitbucketProvider(user)
        # Get user information
        update = False
        try:
            bitbucket_repository_user = bitbucket_provider.retrieve_user_details(
                bitbucket_username)
        except ObjectDoesNotExist:
            update = True
            bitbucket_repository_user = RepositoryUser()
        if update or (datetime.now() - bitbucket_repository_user.last_modified
                      ) > timedelta(days=1):
            user_dict = bitbucket_provider.get_user_details(bitbucket_username)
            bitbucket_repository_user = bitbucket_provider.create_or_update_user_details(
                user_dict, bitbucket_repository_user)
            bitbucket_repository_user.save()
        bitbucket_user_events = bitbucket_provider.get_user_events(
            bitbucket_username)
        for bitbucket_user_event in bitbucket_user_events:
            bitbucket_user_event['host'] = 'bitbucket'
            bitbucket_user_event['created_on'] = dateutil.parser.parse(
                bitbucket_user_event['utc_created_on'])
        # Get repository information
        owned_repositories, _ = bitbucket_provider.retrieve_owned_repositories_list(
            bitbucket_username)
        watched_repositories, _ = bitbucket_provider.retrieve_watched_repositories_list(
            bitbucket_username)

        if len(owned_repositories) == 0:
            owned = bitbucket_provider.get_owned_repositories(
                bitbucket_username)
            for repo in owned:
                update = False
                try:
                    repository = bitbucket_provider.retrieve_repository_details(
                        repo['owner'], repo['name'])
                except ObjectDoesNotExist:
                    update = True
                    repository = Repository()
                if update or (datetime.now() -
                              repository.last_modified) > timedelta(days=1):
                    repository = bitbucket_provider.create_or_update_repository_details(
                        repo, repository)
                    if not repository.private:
                        repository.save()
                    RepositoryCategory.objects.get_or_create(
                        name=repository.language)
                if not repository.private:
                    RepositoryUserRepositoryLink.objects.get_or_create(
                        user=bitbucket_repository_user,
                        repository=repository,
                        owned=True)
                owned_repositories.append(repository)
            bitbucket_repository_user.public_repos = len(owned_repositories)
            bitbucket_repository_user.save()

        if len(watched_repositories) == 0:
            watched = bitbucket_provider.get_watched_repositories(
                bitbucket_username)
            for repo in watched:
                update = False
                try:
                    repository = bitbucket_provider.retrieve_repository_details(
                        repo['owner'], repo['name'])
                except ObjectDoesNotExist:
                    update = True
                    repository = Repository()
                if update or (datetime.now() -
                              repository.last_modified) > timedelta(days=1):
                    repository = bitbucket_provider.create_or_update_repository_details(
                        repo, repository)
                    if not repository.private:
                        repository.save()
                watched_repositories.append(repository)
            bitbucket_repository_user.starred = len(watched_repositories)
    except ObjectDoesNotExist:
        bitbucket_authed = False

    user_events = sorted(github_user_events + bitbucket_user_events,
                         key=itemgetter('created_on'),
                         reverse=True)[:30]

    return render_to_response('authed.html', {
        'user_events': user_events,
        'github_repository_user': github_repository_user,
        'bitbucket_repository_user': bitbucket_repository_user,
        'github_authed': github_authed,
        'bitbucket_authed': bitbucket_authed
    },
                              context_instance=RequestContext(request))