Ejemplo n.º 1
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.º 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 authed_watched(request):
    repo_link_type, _ = LinkType.objects.get_or_create(name = "starred")
    repositories_by_language = defaultdict(list)
    github_repositories_by_language = defaultdict(list)
    bitbucket_repositories_by_language = defaultdict(list)
    bitbucket_authed = True
    github_authed = True
    owned = False
    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,"starred")
        if len(github_repositories_by_language) == 0:
            watched = github_provider.get_repositories(github_username, "starred")
            count = 0
            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 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].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)
            github_repository_user.starred = count
            github_repository_user.save()
        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_watched_repositories_dict(bitbucket_username)
        if len(bitbucket_repositories_by_language) == 0:
            watched = bitbucket_provider.get_watched_repositories(bitbucket_username)
            count = 0
            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:
                        count += 1
                        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)
            bitbucket_repository_user.starred = count
        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.º 4
0
def authed_watched(request):
    repo_link_type, _ = LinkType.objects.get_or_create(name="starred")
    repositories_by_language = defaultdict(list)
    github_repositories_by_language = defaultdict(list)
    bitbucket_repositories_by_language = defaultdict(list)
    bitbucket_authed = True
    github_authed = True
    owned = False
    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, "starred")
        if len(github_repositories_by_language) == 0:
            watched = github_provider.get_repositories(github_username,
                                                       "starred")
            count = 0
            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 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].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)
            github_repository_user.starred = count
            github_repository_user.save()
        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_watched_repositories_dict(
            bitbucket_username)
        if len(bitbucket_repositories_by_language) == 0:
            watched = bitbucket_provider.get_watched_repositories(
                bitbucket_username)
            count = 0
            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:
                        count += 1
                        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)
            bitbucket_repository_user.starred = count
        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'))