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
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
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'))
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'))