class Command(BaseCommand): def __init__(self): super().__init__() self.github_search = GithubSearchWrapper() self.github = GithubWrapper() def handle(self, *args, **options): self.parse_most_popular() # self.parse_moscowdjango_packages() def parse_moscowdjango_packages(self): for name in moscow_django_packages: successfull = False while not successfull: successfull = True try: repo, owner = self.github_search.get_most_popular_repo(name) except RateLimitExceeded: print('Sleeping...') sleep(20) print('Woke up!') successfull = False self.get_and_print_info(owner, repo) def parse_most_popular(self): page_size = 100 start_page = 5 max_pages_amount = 100 github_search = GithubSearchWrapper() for page_num in range(start_page, max_pages_amount): repos_info = github_search.ask_about_popular_repos(extra_params={ 'per_page': page_size, 'page': page_num, 'sort': 'stars', 'q': 'language:python', }) for repo, owner in [(r['name'], r['owner']['login']) for r in repos_info['items']]: self.get_and_print_info(owner, repo) print('*' * 100) def get_and_print_info(self, owner, repo): print( owner, repo, self.github.get_py3_fork_info(owner, repo), [i['title'] for i in self.github.get_py3_issues_info(owner, repo)], [p['title'] for p in self.github.get_py3_pull_requests(owner, repo)], sep='\t' )
def __init__(self): super().__init__() self.github_search = GithubSearchWrapper() self.github = GithubWrapper()