From ece395754643cda9b3784c2660e9e20e4ed046d7 Mon Sep 17 00:00:00 2001 From: mudassirkhan19 Date: Sat, 24 Jun 2017 04:23:13 +0000 Subject: [PATCH] Done --- build.py | 82 ++++++++++++++++++++++++---- build.pyc | Bin 0 -> 3993 bytes tests/__init__.pyc | Bin 0 -> 166 bytes tests/test_get_user_repos_count.pyc | Bin 0 -> 3080 bytes 4 files changed, 72 insertions(+), 10 deletions(-) create mode 100644 build.pyc create mode 100644 tests/__init__.pyc create mode 100644 tests/test_get_user_repos_count.pyc diff --git a/build.py b/build.py index 0b86a28..acfc724 100644 --- a/build.py +++ b/build.py @@ -1,22 +1,84 @@ -def get_user_repos_count(username): - pass +import requests +import 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) + if type(data) != list: + return None + df = pd.DataFrame() + for item in data: + df = df.append({'Name': item['full_name'].split('/')[1], 'Url': item['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) + if type(data) != list: + return None + df = pd.DataFrame() + for item in data: + new_r = requests.get(item['url']) + df = df.append({'Name': item['full_name'].split('/')[0], 'Url': item['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) + 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) + 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) + l=[] + for index,row in df['repo_url_liked_by_owner'].value_counts().reset_index().head().iterrows(): + l.append((row['index'],row['repo_url_liked_by_owner'])) + return l diff --git a/build.pyc b/build.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3e512a26819e04bc2f8e0841b406bca2ae4ef337 GIT binary patch literal 3993 zcmeHK%Wfk@6uoUbj_ue<$S{QPnBhHUF=^P01R6z1glq;4q5=vNF<2dUC26PacDmXm zk?hs5`#e@|kO?Mc~_ZSSy4T$2FT6+-8#j9=g|I_p_|;KKA{fAFb|1+5TW>wVibRfwQUeT^T+6 z)b5H-L z=}^=qL-vBM)s{gTXIzO?UkHONXyQrKxDAy2{iJLC?jQ`Di_(Mrp!eZN{#KG6xPH*K zeme=RpU>xRYB8g(?S(eI>rPx|yZ+7~io@0ZN%kUKVfZZuZ|Ou^?PQS8!f~SF&3g;p zlK0=*7mmz#S&*hSJlh$=@ft3hA$kn=#&BZ{H^p!>4L3#C+|Y-q($r|?*nsQm*Z37U zovd*j9oTSsr5X3xmF8GEXl1}pC_E1XijsatrfvdfovJ($8I|OCgN#^zye1>Cr6ir2 zLqO%-sf(Uo`qnD^h1rm z4r*GeQ^ zF)mb>@_qy&f#f<+$fAOLOK!MDmAykzpKZ{?>R<(Q>hs%Ol?YGfD?$!u#D4v z_L<|nG7+W8D^Q|QRjVr~)#P|bh81Ypwv6T!adQ&EACikI0EX9UxFN&$sDIzsR?^_WUKRQ?QEt>VN3ITuGNk3LZd zDYm-1c^kXukNq^+jbf{6$q4#JE*Co|E$x#Lz^9&C=i8o(7|ID{hZ2LR`e$O8H_=6> znGc>b<21SG%Bgk#_y@9r?B(qlS#; zWmp$vD8qRP7iEPvytrH7sp1{3ds}GUY?2k%&eAiCDw+*JV&0~ChlU(f{m=6h4(Sqk z%F{>Ad1h()^L-ExY@Vq*Wk+fqpsQgt71_5zsBA(`lBUU#YZ8=~Af$Ph{obRQ@Xy@A zqkfLWhFs803{J0yhqn;nVji~KpxX`7lQr~k8hre5a+>u#%g3_kgO!?|<}1(CPgA{q z(8IS=ezL1rX%@-j(r^TZ{>=w4XS3AORepU{;QoF$2?w!VW8&+0wA7Kn)eF@!esk4E G_2ystO(m89 literal 0 HcmV?d00001 diff --git a/tests/__init__.pyc b/tests/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e53d3e86bf79a2ad5afc6bb785b40f03043b1aaf GIT binary patch literal 166 zcmZSn%*)kO<{g>L00oRd+5w1*S%5?e14FO|NW@PANHCxg#r{As{fzwFRQ=r2l*HoV z%%bd!#5_Yw{qX#v?BasNX;N l;*w(h`1s7c%#!$cy@JXT4xpJfx%nxjIjMFan~Q;%0RRTBJb!S%61YX2{ z><`fIoGtAV7Q=&SZJ5K%&Y3xvZ_YPU`!zrNnxvjU-sjl(v~v|aXyJMh4j4vf~MGc|Cf-JoDfzD$$aXg07# zhd1QVxUHg@PY~FN!;$cg5Z)oiH9B_a$fZM~J+XD@(y?32)k||V!UW9l99%2Rte2v` z2?M(oG1^5opT;^(^g%ZbO_JJPrj1UlWNP2fdcN)U!v*Ly>kyXnxt)hmpj;kahVTti zXWxIz{m5P)j@L5nTb;@0CWmTyz0uLmXk{tgO-zyq^A){T7hbjEJiz8*w%_%W=dW5{ z(rn-K{ElvQ(m=O%L)*=_mowc-<5(ww&X!HzSRJ=45H=#cs<5B+`gRFMSglflVKTE2 zl1K6r}xOXqj1hEotjDm#9L`4e^db=8R{vMDHQ+3M5uA`2 zF8(EZn$4K}%WU=l<7#9)lgF{2^+yPW(4`W&F&$LFBwQDT#tKu}ycd-zOjb<-uP1Q# zFL<5A`vPia4q|k}FFF#nJbXMa0VR8$@VMv2X^=-4DyDVC%M?GU6rXs-l&J1Qj3`2S zV|m9YeoXQuB*8SCnc_D)Gb1lw2_{cM%PCP%