diff --git a/build.py b/build.py index 0b86a28..6c19e8c 100644 --- a/build.py +++ b/build.py @@ -1,22 +1,90 @@ -def get_user_repos_count(username): - pass +import requests, json +import pandas as pd +def get_user_repos_count(username): + url = 'https://api.github.com/users/'+username+'/repos' + r = requests.get(url) + data = json.loads(r.content) + return len(data) if type(data) == list else -1 def get_user_liked_repos_count(username): - pass - + url = 'https://api.github.com/users/'+username+'/starred' + r = requests.get(url) + data = json.loads(r.content) + return len(data) if type(data) == list else -1 def get_user_liked_repos(username): - pass + url = 'https://api.github.com/users/'+username+'/starred' + r = requests.get(url) + data = json.loads(r.content) + df = pd.DataFrame() + if type(data) != list: + return None + for i in data: + df = df.append({'Name':i['full_name'].split('/')[1], 'Url': i['html_url']}, ignore_index=True) + return df def get_user_liked_repos_owners(username): - pass + url = 'https://api.github.com/users/'+username+'/starred' + r = requests.get(url) + data = json.loads(r.content) + df = pd.DataFrame() + if type(data) != list: + return None + for i in data: + df = df.append({'Name':i['full_name'].split('/')[0], 'Url': i['html_url']}, ignore_index=True) + return df def get_owners_liked_repos(username): - pass + url = 'https://api.github.com/users/'+username+'/starred' + r = requests.get(url) + data = json.loads(r.content) + df = pd.DataFrame() + if type(data) != list: + return None + for item in data: + owner_name = item['full_name'].split('/')[0] + owner_url = 'https://github.com/'+owner_name + new_data = json.loads(r.content) + repo_name = item['full_name'].split('/')[1] + repo_url = item['html_url'] + for owner_liked in new_data: + df = df.append({'repo_name': repo_name, 'repo_url': repo_url, 'owner_name': owner_name, + 'owner_profile_url': owner_url, 'repo_liked_by_owner': owner_liked['full_name'].split('/')[1], + 'repo_url_liked_by_owner': owner_liked['html_url']}, ignore_index=True) + return df def get_owners_liked_repos_summary(username): - pass + url = 'https://api.github.com/users/'+username+'/starred' + r = requests.get(url) + data = json.loads(r.content) + if type(data) != list: + return None + df = pd.DataFrame() + for item in data: + owner_name = item['full_name'].split('/')[0] + ##### Making too many requests leads to blocking + #new_r = requests.get('https://api.github.com/users/'+owner_name+'/starred') + owner_url = 'https://github.com/'+owner_name + new_data = json.loads(r.content) + repo_name = item['full_name'].split('/')[1] + repo_url = item['html_url'] + for owner_liked in new_data: + df = df.append({'repo_name': repo_name, 'repo_url': repo_url, 'owner_name': owner_name, + 'owner_profile_url': owner_url, 'repo_liked_by_owner': owner_liked['full_name'].split('/')[1], + 'repo_url_liked_by_owner': owner_liked['html_url']}, ignore_index=True) + lst =[] + for index,row in df['repo_url_liked_by_owner'].value_counts().reset_index().head().iterrows(): + lst.append((row['index'],row['repo_url_liked_by_owner'])) + return lst + +username = 'nikhilakki' +print(get_user_repos_count(username)) +print(get_user_liked_repos_count(username)) +print(get_user_liked_repos(username)) +print(get_user_liked_repos_owners(username)) +print(get_owners_liked_repos(username)) +print(get_owners_liked_repos_summary(username)) diff --git a/build.pyc b/build.pyc new file mode 100644 index 0000000..48e9117 Binary files /dev/null and b/build.pyc differ diff --git a/tests/__init__.pyc b/tests/__init__.pyc new file mode 100644 index 0000000..46b4260 Binary files /dev/null and b/tests/__init__.pyc differ diff --git a/tests/test_get_user_repos_count.pyc b/tests/test_get_user_repos_count.pyc new file mode 100644 index 0000000..1a4c2e7 Binary files /dev/null and b/tests/test_get_user_repos_count.pyc differ