Jelajahi Sumber

re-added views

mk200789 10 tahun lalu
induk
melakukan
dd6a16c57b
1 mengubah file dengan 157 tambahan dan 0 penghapusan
  1. 157 0
      hackathon_starter/hackathon/views.py

+ 157 - 0
hackathon_starter/hackathon/views.py

@@ -0,0 +1,157 @@
+from django.shortcuts import render
+from hackathon.forms import UserForm
+from django.contrib.auth import logout
+from django.template import RequestContext, loader
+from django.contrib.auth import authenticate, login
+from django.http import HttpResponse, HttpResponseRedirect
+from scripts.steam import gamesPulling, steamIDPulling 
+from scripts.github import *
+from scripts.tumblr import *
+
+
+
+def index(request):
+    context = {'hello': 'world'}
+    return render(request, 'hackathon/index.html', context)
+
+def test(request):
+    return HttpResponse('meow')
+
+def api_examples(request):
+    context = {'title': 'API Examples Page'}
+    return render(request, 'hackathon/api_examples.html', context)
+
+def register(request):
+
+    # A boolean value for telling the template whether the registration was successful.
+    # Set to False initially. Code changes value to True when registration succeeds.
+    registered = False
+
+    # If it's a HTTP POST, we're interested in processing form data.
+    if request.method == 'POST':
+        # Attempt to grab information from the raw form information.
+        # Note that we make use of both UserForm and UserProfileForm.
+        user_form = UserForm(data=request.POST)
+
+        # If the two forms are valid...
+        if user_form.is_valid():
+            # Save the user's form data to the database.
+            user = user_form.save()
+
+            # Now we hash the password with the set_password method.
+            # Once hashed, we can update the user object.
+            user.set_password(user.password)
+            user.save()
+
+            # Update our variable to tell the template registration was successful.
+            registered = True
+
+        # Invalid form or forms - mistakes or something else?
+        # Print problems to the terminal.
+        # They'll also be shown to the user.
+        else:
+            print user_form.errors
+
+    # Not a HTTP POST, so we render our form using two ModelForm instances.
+    # These forms will be blank, ready for user input.
+    else:
+        user_form = UserForm()
+
+    # Render the template depending on the context.
+    return render(request,
+            'hackathon/register.html',
+            {'user_form': user_form, 'registered': registered} )
+
+def user_login(request):
+
+    # If the request is a HTTP POST, try to pull out the relevant information.
+    if request.method == 'POST':
+        # Gather the username and password provided by the user.
+        # This information is obtained from the login form.
+                # We use request.POST.get('<variable>') as opposed to request.POST['<variable>'],
+                # because the request.POST.get('<variable>') returns None, if the value does not exist,
+                # while the request.POST['<variable>'] will raise key error exception
+        username = request.POST.get('username')
+        password = request.POST.get('password')
+
+        # Use Django's machinery to attempt to see if the username/password
+        # combination is valid - a User object is returned if it is.
+        user = authenticate(username=username, password=password)
+
+        # If we have a User object, the details are correct.
+        # If None (Python's way of representing the absence of a value), no user
+        # with matching credentials was found.
+        if user:
+            # Is the account active? It could have been disabled.
+            if user.is_active:
+                # If the account is valid and active, we can log the user in.
+                # We'll send the user back to the homepage.
+                login(request, user)
+                return HttpResponseRedirect('/hackathon/')
+            else:
+                # An inactive account was used - no logging in!
+                return HttpResponse("Your Django Hackathon account is disabled.")
+        else:
+            # Bad login details were provided. So we can't log the user in.
+            print "Invalid login details: {0}, {1}".format(username, password)
+            return HttpResponse("Invalid login details supplied.")
+
+    # The request is not a HTTP POST, so display the login form.
+    # This scenario would most likely be a HTTP GET.
+    else:
+        # No context variables to pass to the template system, hence the
+        # blank dictionary object...
+        return render(request, 'hackathon/login.html', {})
+
+def user_logout(request):
+    # Since we know the user is logged in, we can now just log them out.
+    logout(request)
+
+    # Take the user back to the homepage.
+    return HttpResponseRedirect('/hackathon/')
+
+def steam(request):
+    #Should link to test of Steam API example.
+    key = '231E98D442E52B87110816C3D5114A1D'
+    SteamUN = "Marorin"
+    steamID = steamIDPulling(SteamUN, key)
+    game = gamesPulling(steamID, key)
+    return render(request,'hackathon/steam.html', {"game": game })
+
+def github(request):
+    allData = {}
+    # Get generic user data
+    userData = getUserData()
+    # Get a list of all the user's repositories
+    repositories = getUserRepositories()
+    # Get a list of all commit statistics for all repositories
+    list = getTopContributedRepositories(repositories)
+    # Get a list of the top 10 most committed repositories
+    filtered = filterCommits(list)
+    # Get list of all stargazer counts for all repositories
+    stargazers = getStarGazerCount()
+    # Return list of top 10 stargazed repositories
+    filteredStargazers = filterStarGazerCount(stargazers)
+    # Get list of forked repositories
+    forkedRepos = getForkedRepositories()
+    
+    # Store data into a dictionary for rendering
+    allData['userData'] = userData
+    allData['filteredData'] = filtered
+    allData['filteredStargazers'] = filteredStargazers
+    allData['forkedRepos'] = forkedRepos
+
+    return render(request, 'hackathon/github.html', { 'data': allData })
+
+def tumblr(request):
+    meta, response, blog = getBlogInfo('twitterthecomic')
+    tagged_blog = getTaggedInfo("starbucks")
+    blogontag = getTaggedBlog("starbucks")
+    context = {'title': "What's up Starbucks?", 'blogData': blog, 'blogTag': tagged_blog, 'blogontag': blogontag}
+    return render(request, 'hackathon/tumblr.html', context)
+
+def linkedin(request):
+    userinfo = getUserInfo()
+    context = {'title': 'linkedin Example','userdata': userinfo}
+    return render(request, 'hackathon/linkedin.html', context)
+