浏览代码

Working on refactoring top contributed Repositories

David Leonard 10 年之前
父节点
当前提交
4807d86413
共有 2 个文件被更改,包括 16 次插入15 次删除
  1. 5 5
      hackathon_starter/hackathon/scripts/github.py
  2. 11 10
      hackathon_starter/hackathon/views.py

+ 5 - 5
hackathon_starter/hackathon/scripts/github.py

@@ -158,7 +158,7 @@ def getUserData(user, clientID, clientSecret):
 
     return parsedData
 
-def getUserRepositories(clientID, clientSecret):
+def getUserRepositories(user, clientID, clientSecret):
     '''
     Returns a list of all the public repositories
     owned by a User.
@@ -181,7 +181,7 @@ def getUserRepositories(clientID, clientSecret):
     repositories = []
 
     while True:
-        req = requests.get('https://api.github.com/users/DrkSephy/repos?page=' \
+        req = requests.get('https://api.github.com/users/' + user + '/repos?page=' \
             + str(pageNumber) + '&' + clientID + '&' + clientSecret)
         jsonList.append(json.loads(req.content))
         if len(json.loads(req.content)) < 30:
@@ -235,7 +235,7 @@ def getForkedRepositories(clientID, clientSecret):
 
     return forkedRepositories
 
-def getTopContributedRepositories(repos, clientID, clientSecret):
+def getTopContributedRepositories(user, repos, clientID, clientSecret):
     '''
     Returns a list containing the commit totals for all
     repositories owned by a user.
@@ -260,7 +260,7 @@ def getTopContributedRepositories(repos, clientID, clientSecret):
     '''
     jsonList = []
     for repo in repos:
-        req = requests.get('https://api.github.com/repos/DrkSephy/' + repo \
+        req = requests.get('https://api.github.com/repos/' + user + '/' + repo \
             + '/stats/contributors' + '?' + clientID + '&' + clientSecret)
         jsonList.append(json.loads(req.content))
 
@@ -271,7 +271,7 @@ def getTopContributedRepositories(repos, clientID, clientSecret):
         indexNumber += 1
         commits = {}
         for data in item:
-            if data['author']['login'] == 'DrkSephy':
+            if data['author']['login'] == user:
                 commits['author'] = data['author']['login']
                 commits['total'] = data['total']
                 commits['repo_name'] = repos[indexNumber]

+ 11 - 10
hackathon_starter/hackathon/views.py

@@ -284,11 +284,8 @@ def nytimesarticles(request):
 #   GITHUB API  #
 #################
 
-
-
-
 def githubUser(request):
-    '''Returns JSON response about a specific Github User'''
+    '''Returns Github Profile data for a specific user.'''
     parsedData = {}
     if request.method == 'POST':
         user = request.POST.get('user')
@@ -300,17 +297,21 @@ def githubTopRepositories(request):
     '''Returns JSON response of a User's Top Committed repositories'''
 
     parsedData = {}
-    repositories = getUserRepositories(settings.GITHUB_CLIENT_ID, settings.GITHUB_CLIENT_SECRET)
-    list = getTopContributedRepositories(repositories, settings.GITHUB_CLIENT_ID, settings.GITHUB_CLIENT_SECRET)
-    filtered = filterCommits(list)
-    parsedData['committed'] = filtered
-    return JsonResponse({ 'data': parsedData })
+    if request.method == 'POST':
+        user = request.POST.get('user')
+        repositories = getUserRepositories(user, settings.GITHUB_CLIENT_ID, settings.GITHUB_CLIENT_SECRET)
+        list = getTopContributedRepositories(user, repositories, settings.GITHUB_CLIENT_ID, settings.GITHUB_CLIENT_SECRET)
+        filtered = filterCommits(list)
+        parsedData['committed'] = filtered
+        print parsedData
+    return render(request, 'hackathon/githubTopRepositories.html', {'data': parsedData})
+    # return JsonResponse({ 'data': parsedData })
 
 def githubResume(request):
     '''A sample application which pulls various Github data to form a Resume of sorts'''
     
     allData = {}
-    userData = getUserData(settings.GITHUB_CLIENT_ID, settings.GITHUB_CLIENT_SECRET)
+    userData = getUserData('DrkSephy', settings.GITHUB_CLIENT_ID, settings.GITHUB_CLIENT_SECRET)
     repositories = getUserRepositories(settings.GITHUB_CLIENT_ID, settings.GITHUB_CLIENT_SECRET)
     list = getTopContributedRepositories(repositories, settings.GITHUB_CLIENT_ID, settings.GITHUB_CLIENT_SECRET)
     filtered = filterCommits(list)